* {
margin: 0;
padding: 0;
list-style-type: none;
border: none;
box-sizing: border-box;
}

/* iOSのデフォルトスタイルをリセット */
input[type=submit],
input[type=button] {
border-radius: 0;
-webkit-box-sizing: content-box;
-webkit-appearance: button;
-moz-appearance: button;
appearance: button;
border: none;
box-sizing: border-box;
}
input[type=submit]::-webkit-search-decoration,
input[type=button]::-webkit-search-decoration {
display: none;
}
input[type=submit]::focus,
input[type=button]::focus {
outline-offset: -2px;
}

/* iOSサファリで発生する部分的な文字の拡大表示の抑制 */
html {
-webkit-text-size-adjust: 100%;
}

/* font-family: "Zen Kaku Gothic New", sans-serif;
font-family: "Montserrat", sans-serif;
font-weight: 400;
font-weight: 700; */

body {
min-width: 1280px;
font-family: "Zen Kaku Gothic New", sans-serif;
font-size: 20px;
line-height: 1.5;
font-feature-settings: "palt";
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
h1, h2, h3, h4, h5, h6 {
font-weight: normal;
}

a:link {
color: var(--base-color);
text-decoration: none;
}

a:hover {
color: var(--base-color);
text-decoration: none;
}

a:visited {
color: var(--base-color);
text-decoration: none;
}

img {
width: 100%;
display: block;
border: none;
}

button {
border: 0;
outline: none;
font-size: 0;
color: transparent;
background-color: transparent;
}


:root {
--base-color: #000000;
--theme-color: #258ecd;
--sub-color: #003264;
--table-color_1: #d7f0ff;
--table-color_2: #bee6ff;
}


header {
width: 100%;
padding: 30px 0 10px 0;
position: fixed;
left: 0;
top: 0;
background-color: #fff;
z-index: 1;
}

#gnav {
/* max-inline-size: max-content; */
width: 1200px;
padding: 0 10px;
margin: auto;
display: flex;
justify-content: space-between;
align-items: center;
/* gap: 90px; */
}

#gnav div {
width: 200px;
}

#gnav nav ul {
display: grid;
grid-template-columns: repeat(7, 1fr);
}

#gnav nav ul li {
text-align: center;
white-space: nowrap;
padding: 10px 10px;
border-left: 1px solid #000;
}

#gnav nav ul li a {
color: var(--base-color);
line-height: 1;
display: grid;
gap: 10px;
}

#gnav nav ul li a:hover {
color: var(--theme-color);

}

#gnav nav ul li a span {
display: block;
}

#gnav nav ul li a span:first-child {
font-family: "Montserrat", sans-serif;
font-size: 18px;
font-weight: 700;
}

#gnav nav ul li a span:last-child {
font-size: 15px;
}

#gnav nav ul li a.current {
color: var(--theme-color);
}

#gnav nav ul .contact {
border-left: none;
background-color: var(--theme-color);
}

#gnav nav ul .contact a {
color: #fff !important;
}

#gnav nav ul .contact:hover {
opacity: 0.5;
}

#gnav nav ul .contact:hover a {
opacity: 0.5;
}


footer {
padding: 60px 0 20px 0;
background-color: var(--sub-color);
}

#logo_2 {
margin: 0 0 30px 0;
}

#logo_2 img {
width: 200px;
margin: 0 auto 20px auto;
}

#logo_2 figcaption {
font-weight: 700;
color: #fff;
text-align: center;
line-height: 1;
}

#footernav ul {
width: 780px;
margin: 0 auto 40px auto;
display: flex;
justify-content: center;
gap: 50px;
}

#footernav ul li {
text-align: center;
padding: 10px 0;
}

#footernav ul li a {
font-size: 15px;
color: #fff;
line-height: 1;
}


#credit {
font-size: 13px;
color: #fff;
text-align: center;
line-height: 1;
}


main {
padding: 110px 0 0 0;
}


#breadcrumbs {
width: 1200px;
padding: 0 10px 10px 10px;
margin: 0 auto;
font-size: 14px;
}

#breadcrumbs ul {
display: flex;
gap: 10px;
}

#breadcrumbs ul li a::after {
content: ">";
padding: 0 0 0 10px;
}

.headline {
font-family: "Montserrat", sans-serif;
font-size: 50px;
font-weight: 700;
color: var(--theme-color);
text-align: center;
line-height: 1;
margin: 0 0 50px 0;
}

.headline span {
font-family: "Zen Kaku Gothic New", sans-serif;
font-size: 16px;
font-weight: 400;
color: var(--base-color);
line-height: 1;
padding: 10px 0 0 0;
display: block;
}


#kv {
margin: 0 0 100px 0;
}


#maincopy {
text-align: center;
margin: 0 0 90px 0;
}

#maincopy h2 {
font-family: "Zen Kaku Gothic New", sans-serif;
font-size: 30px;
font-weight: 700;
color: var(--theme-color);
margin: 0 0 10px 0;
}


.casestudy {
width: 1000px;
margin: 0 auto 100px auto;
}

.casestudy h2 {
font-family: "Zen Kaku Gothic New", sans-serif;
font-size: 30px;
font-weight: 700;
color: var(--theme-color);
text-align: center;
margin: 0 0 40px 0;
}

.title,
.detail {
width: 100%;
border-spacing: 0;
}

.title th {
width: 33.33%;
padding: 10px 0;
font-weight: 700;
color: #fff;
text-align: center;
white-space: nowrap;
background-color: var(--theme-color);
}

.detail tr:nth-child(even) {
background-color: var(--table-color_1);
}

.detail tr:nth-child(odd) {
background-color: var(--table-color_2);
}

.detail td {
width: 33.33%;
padding: 10px 20px;
font-size: 13px;
}

.detail td p {
font-size: 20px;
}
