:root{
--space-0:0px;
--space-sm:8px;
--space-md:16px;
--space-lg:32px;
--space-xl:48px;
--space-2xl:64px;
--space-3xl:80px;
--space-4xl:96px;
--space-5xl:128px;
--space-6xl:192px;
}
body{font-family:'Noto Sans JP',sans-serif;line-height:1.6;color:#333;}
.container{width:100%;max-width:var(--container-width);margin:0 auto;padding:0 var(--space-0);}
.mx-auto{margin: 0 auto;}
.mt-sm{margin-top:var(--space-sm);}
.mt-md{margin-top:var(--space-md);}
.mt-lg{margin-top:var(--space-lg);}
.mt-2xl{margin-top:var(--space-2xl);}
.mt-4xl{margin-top:var(--space-4xl);}
.mb-0{margin-bottom:var(--space-0) !important;}
.mb-sm{margin-bottom:var(--space-sm) !important;}
.mb-md{margin-bottom:var(--space-md) !important;}
.mb-lg{margin-bottom:var(--space-lg) !important;}
.mb-xl{margin-bottom:var(--space-xl) !important;}
.mb-2xl{margin-bottom:var(--space-2xl) !important;}
.mb-6xl{margin-bottom:var(--space-6xl) !important;}
.site-header{padding:var(--space-sm) var(--space-2xl);}
.site-footer{padding:var(--space-xl) var(--space-2xl);}

:root {
--color-bg: #ffffff;
--color-text: #707070;
--color-line: #4d4d4d;
--color-accent-red: #d92323;
--color-green: #009344;
--color-green_r: rgba(00,147,68,1);
--color-h2: #0367a6;
--color-navy: #003f73;
--color-orange: #e5984c;
--color-yellow: #ffe066;
--color-pink: #e9a4a4;
--color-pink: #e9a4ba;
--color-cloud: #f0efeb;
--color-baltic-sea: #79b6d8;
--color-blue-fusion: #4a6275;
--color-ice-melt: #d4e3f1;
}
:root {
--oswald: "Oswald", sans-serif;
--border-radius: 20px;
}

*, *::before, *::after {
  box-sizing: border-box;
}
html {
font-size: 16px;
}


.biz-udgothic-regular {
  font-family: "BIZ UDGothic", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.biz-udgothic-bold {
  font-family: "BIZ UDGothic", sans-serif;
  font-weight: 700;
  font-style: normal;
}
.roboto-condensed-<uniquifier> {
  font-family: "Roboto Condensed", sans-serif;
  font-optical-sizing: auto;
  font-weight: <weight>;
  font-style: normal;
}



/* 基本のマージン・パディング調整 */
body, h1, h2, h3, h4, h5, h6, p, figure {
margin: 0;
padding: 0;
}

/* リストのデフォルトスタイルを削除 */
ul, ol {
list-style: none;
padding: 0;
margin: 0;
}

/* 画像の余白を消して、レスポンシブ対応 */
img {
max-width: 100%;
height: auto;
display: block;
}

/* ボタンの標準スタイルを調整 */
button {
background: none;
border: none;
cursor: pointer;
}

/* フォーム要素のリセット */
input, textarea, select {
font: inherit;
border: none;
outline: none;
}

/* aタグのデフォルト装飾を削除 */
a {
text-decoration: none;
color: inherit;
}
@media (hover: hover) and (pointer: fine) {
a:hover,
a img:hover {
transition: .3s;
}
}

@media (min-width:601px) {
a[href^="tel:"] {
pointer-events: none;
color: inherit;
}
}


body {
position: relative;
font-family: "Helvetica Neue", "Arial", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", "sans-serif";
overflow-wrap: anywhere; /* 収まらない場合に折り返す */
  word-break: normal; /* 単語の分割はデフォルトに依存 */
  line-break: strict; /* 禁則処理を厳格に適用 */
color: var(--color-text);
background: #f4fbfc;
overflow-x: hidden;
font-size: clamp(15px, 1.2vw, 18px);
}

body{
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 400;
  font-style: normal;
}

body {font-size: clamp(1rem, 4vw, 1rem); /* 画面のサイズに応じて動き、最小1rem、最大2rem */}
h1 {font-size: clamp(1.5rem, 6vw, 2.5rem);}
h2 {font-size: clamp(1.25rem, 5vw, 1.875rem);}
h3 {font-size: clamp(1.375rem, 6vw, 1.5rem);}
h4 {font-size: clamp(1.25rem, 5vw, 1.5rem);}
h5 {font-size: clamp(1.125rem, 6vw, 1.25rem);}
h6 {font-size: clamp(1.125rem, 5vw, 1.25rem);}
p {font-size: clamp(0.937rem, 3vw, 1.125rem);}
li {font-size: clamp(0.937rem, 3vw, 1.125rem);}

h1,h2,h3,h4,h5 {
font-family: "Zen Maru Gothic", sans-serif;
font-weight: 600;
font-style: normal;
}
.hentry{
margin-bottom: var(--space-6xl);
}
.hentry h2{
margin-top: var(--space-4xl);
margin-bottom: var(--space-xl);
}
.hentry p{
margin-bottom: var(--space-xl);
line-height: 2;
}

/********************************
	TEXT
********************************/

@media (max-width: 834px) {
body {font-size: clamp(1rem, 5vw, 1rem); /* タブレット用 */}
}
@media (max-width: 600px) {
body {font-size: clamp(1rem, 6vw, 1.2rem); /* スマホ用 */}
}

a{color: var(--color-accent-red);}
a:hover{color: var(--color-accent-green);}

.text-center{text-align: center;}
.text-md-center{text-align: center;}
.text-end{text-align: right;}
.text-start{text-align: left !important;}

.container{
width: 1200px;
max-width: 100%;
margin: 0 auto;
padding-left: 30px;
padding-right: 30px;
box-sizing: border-box;
}

.grid{
display:grid;
width: 100%;
box-sizing: border-box;
--gap-size: 30px; /* デフォルトのgap */
gap: var(--gap-size);
}
.gap-5 { --gap-size: 5px; }
.gap-10 { --gap-size: 10px; }
.gap-15 { --gap-size: 15px; }
.gap-20 { --gap-size: 20px; }
.gap-30 { --gap-size: 30px; }
.gap-60 { --gap-size: 60px; }
.gap-80 { --gap-size: 80px; }
.gap-90 { --gap-size: 90px; }

.grid-2{grid-template-columns: calc(50% - var(--gap-size) / 2) calc(50% - var(--gap-size) / 2);}
.grid-3{grid-template-columns: repeat(3, calc((100% - 2 * var(--gap-size)) / 3));}
.grid-4{grid-template-columns: repeat(4, calc((100% - 3 * var(--gap-size)) / 4));}
.grid-5{grid-template-columns: repeat(5, calc((100% - 4 * var(--gap-size)) / 5));}
.grid-1-2 {grid-template-columns: calc((100% - var(--gap-size)) * (1 / 3)) calc((100% - var(--gap-size)) * (2 / 3));}
.grid-2-1 {grid-template-columns: calc((100% - var(--gap-size)) * (2 / 3)) calc((100% - var(--gap-size)) * (1 / 3));}

.grid-1-3 {grid-template-columns: 1fr 3fr;gap: var(--gap-size);}


.w-900{
max-width: 900px;
margin: 0 auto;
}
.w-800{
max-width: 800px;
margin: 0 auto;
}
.pc{display: block;}
.tablet{display: none;}
.sp{display: none;}

@media (max-width:1199px) {
.container{
width: 100%;
padding: 0 60px;
}
}
@media (max-width:834px) {
.container{
width: 100%;
padding: 0 30px;
}
.text-md-center{
text-align: left;
}
.pc{display: none;}
.tablet{display: block;}
.sp{display: none;}
}
@media (max-width:600px) {
.container{
width: 100%;
max-width: 100%;
}
.pc{display: none;}
.tablet{display: none;}
.sp{display: block;}
.grid-2{
grid-template-columns: 1fr;
}
.grid-3{
grid-template-columns: 1fr;
}
.grid-4{
grid-template-columns: 1fr;
}
.grid-1-2{
grid-template-columns: 1fr;
}
.grid-2-1{
grid-template-columns: 1fr;
}
}

.section{
padding: 2.5rem 0;
}

.center-center {
display: grid;
place-content: center;
gap: 1ch;
}

.section{
padding: 2.5rem 0;
}
.d-block{
display: block;
}


/********************************
	UTILITY
********************************/

.btn{
display: block;
padding: .5rem 2rem;
background-color: #fff;
border: 1px solid #000;
width: fit-content;
}
.btn-basic{
display: block;
margin: 1rem 0 0;
padding: .375rem 1rem;
background-color: #fff;
width: fit-content;
border-radius: 100px;
letter-spacing: .05em;
color: var(--color-text);
border: 3px solid var(--color-accent-green);
}

/** CARD **/
section .card{
position: relative;
margin: 0 0 2.5rem;
padding: 0 2rem 2rem;
background-color: #fff;
border: 2px solid var(--color-h1);
box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px;
}
section .card h3 {
position: relative;
margin: 0 0 1.5rem;
padding-top: 4rem;
font-size: 1.25rem;
}
section .card h3 span{
display: block;
position: absolute;
left: 0;
right: 0;
top: -40px;
margin: 0 auto;
}
section .card h3 span img{
display: block;
left: 0;
right: 0;
margin: 0 auto;
background-color: #fff;
border: 2px solid var(--color-h1);
border-radius: 50%;
}
section .card ul {
position: relative;
margin: 0 0 1rem;
padding: 0;
}
section .card ul li{
position: relative;
padding: .25rem 0;
font-size: 1rem;
font-weight: 600;
}
section .card ul li::before{
content: "▶";
position: relative;
top: -2px;
display: inline-block;
margin: 0 .5em 0 0;
font-size: .5rem;
color: var(--color-h1);
}
section .card ul li:not(:last-child) {
border-bottom: 1px solid #ccc;
}


/********************************
  CTA
********************************/
.cta{
background-color: var(--color-bg);
}
a.cta{
display: block;
padding: 1rem 2rem;
background-color: var(--color-accent-green);
margin:0 auto 2.5rem;
width: fit-content;
box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px;
border-radius: 4px;
}
a.cta:hover{
background-color: var(--color-orange);
}

/********************************
  HEADER
********************************/
.site-header{
background-color: #000;
}
header{
display:grid;
grid-template-columns:300px 1fr;
}
header .site-id{
grid-column:1 / 2;
grid-row:1 / 2;
}
header .main-nav{
grid-column:2 / 3;
grid-row:1 / 2;
display: grid;
align-items: center;
}

/********************************
    NAVIGATION
********************************/

/* === バーガー（スマホ・タブレット専用） === */
.burger {
position: fixed;
top: 40px;
right: 20px;
width: 30px;
height: 30px;
display: none; /* PCでは非表示 */
justify-content: space-between;
align-items: center;
padding: 8px;
border-radius: 50px;
background-color: transparent;
transition: background-color 0.3s ease, box-shadow 0.3s ease;
z-index: 9999;
box-sizing: content-box;
}
.burger .dot {
width: 5px;
height: 5px;
background: #fff;
border-radius: 50%;
transition: transform 0.3s ease, opacity 0.3s ease;
}

.burger.open {
background-color: rgba(255, 255, 255, .5);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
backdrop-filter: blur(4px);
z-index: 9999;
}
.burger.open .dot:nth-child(1) {
transform: translateX(12.5px);
}
.burger.open .dot:nth-child(3) {
transform: translateX(-12.5px);
}
.burger.open .dot:nth-child(2) {
opacity: 0;
}

.burger.open .dot {
background: #000;
}

.menu-overlay {
position: fixed;
top: 0;
right: 0;
width: 100%;
max-width: 600px;
height: 100vh;
background-color: rgb(0 0 0 / .75);
backdrop-filter: blur(10px);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
transform: translateX(100%);
z-index: 1;
}
.menu-overlay ul.menu-list {
list-style: none;
margin: 0;
padding: 0;
}
.menu-overlay a {
color: #fff;
text-decoration: none;
font-family: 'Roboto Condensed', sans-serif;
font-weight: 700;
font-size: 1.5rem;
margin: 20px 0;
opacity: 0; /* GSAP 初期値と合わせる */
}

.main-nav .nav-list li.current-menu-item a{
color: var(--color-h1);
}

@media(min-width:901px){
.menu-item a {
position: relative;
display: inline-block;
padding: .4em;
text-decoration: none;
}
.menu-item a::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 1px;
-webkit-transform: scaleX(0);
-ms-transform: scaleX(0);
transform: scaleX(0);
background-color: var(--color-navy);
-webkit-transition: all .3s ease;
transition: all .3s ease;
}
.menu-item a:hover::after {
-webkit-transform: scaleX(1);
-ms-transform: scaleX(1);
transform: scaleX(1);
}
}



/********************************
    HEADER
********************************/

.site-id {
margin: 0;
padding: 0;
display: grid;
place-content: center;
gap: 1ch;
}


/* === PCナビ（横並び） === */
.main-nav .nav-list{
display: flex;
justify-content: end;
gap: 24px;
padding: 0;
margin: 0;
list-style: none;
}

.main-nav .nav-list li {
font-family: "Zen Maru Gothic", sans-serif;
font-weight: 600;
}

.main-nav .nav-list li a {
display: block;
padding: 8px 0;
color: #fff;
text-decoration: none;
}

/********************************
    RESPONSIVE
********************************/

/* 900px以下：バーガー表示、PCナビは非表示 */
@media (max-width: 900px) {

  /* バーガーを表示 */
  .burger {
    display: flex;
  }

  /* PCナビを隠す */
  .main-nav .nav-list {
    display: none;
  }
}


/********************************

	FOOTER

********************************/
.site-footer {
background-color: #000;
}
.site-footer .container{
display: grid;
grid-template-columns: 1fr 1fr;
}

footer{
position: relative;
margin: 0;
padding: 4rem 0;
}
.footer-nav{
margin: 0 0 2rem;
}
.footer-nav li a{
display: block;
padding: .5rem;
color: #fff;
}
.footer-nav li:nth-child(2){
display: grid;
grid-template-columns: repeat(2 ,1fr);
} 


.footer-nav li:not(:last-child) {
margin-right: 1em;
}
footer p br{
display: none;
}

footer h3 {
margin-bottom: 0.5rem;
font-size: 1.25rem;
font-weight: bold;
}

.address{
color: #fff;
}
.phone{
font-family: 'Roboto Condensed', sans-serif;
font-weight: 600;
font-size: 1.6rem;
color: #fff;
}

.copyright{
font-family: 'Roboto Condensed', sans-serif;
font-weight: 600;
font-size: .75rem;
letter-spacing: .15em;
text-align: center;
color: #fff;
}


/********************************
    LAYOUT
********************************/

/********************************
    HERO
********************************/
.home .hero{background-image: url(images/slider_01.webp);}
.strengths .hero{background-image: url(images/hero_strengths.webp);}
.services .hero{background-image: url(images/hero_services.webp);}
.solution .hero{background-image: url(images/hero_solution.webp);}
.works .hero{background-image: url(images/hero_works.webp);}
.company .hero{background-image: url(images/hero_company.webp);}
.recruit .hero{background-image: url(images/hero_recruit.webp);}
.contact .hero{background-image: url(images/hero_contact.webp);}
.privacy-policy .hero{background-image: url(images/hero_privacy-policy.webp);}

.hero{
margin: 0 0 192px;
min-height: 550px;
background-repeat: no-repeat;
background-position: center center;
box-shadow: 0px 0px 20px rgb(0 0 0 /.75);
}
.hero{
display: grid;
place-content: center;
gap: 1ch;
}
.hero .container div{
padding: 30px;
color: #fff;
background-color: rgb(0 0 0 /.75);
border: 1px solid #fff;
width: fit-content;
width: 800px;
min-width: 800px;
margin: 0 auto;
text-align: center;
}
.hero .container div h1{
margin-bottom: 30px;
}


.tabs {
max-width: 100%;
margin: 2rem auto;
font-family: "Helvetica Neue", sans-serif;
}
.tab-list {
margin: 0 0 1.5rem;
display: flex;
border-bottom: 2px solid #eee;
position: relative;
}
.tab {
flex: 1;
padding: 1rem;
background: none;
border: none;
font-size: 1.25rem;
font-weight: 600;
letter-spacing: .05em;
cursor: pointer;
transition: color .3s ease;
position: relative;
text-align: center;
}
.tab-1.is-active {
color: #63719d;
}
.tab-2.is-active {
color: #d77d92;
}
.tab::after {
content: "";
position: absolute;
left: 0; bottom: -2px;
width: 100%; height: 2px;
transform: scaleX(0);
transform-origin: right;
transition: transform .3s ease;
}
.tab-1::after {
background: #63719d;
}
.tab-2::after {
background: #d77d92;
}

.tab.is-active::after {
transform: scaleX(1);
transform-origin: left;
}
.tab-panels {
}
.tab-panel-1{
background-color: #f8e1e1;
} 
.tab-panel-2{
background-color: #dae9f2;
} 
.tab-panel {
padding: 1rem 2rem;
border-radius: 10px;
opacity: 0;
transform: translateY(10px);
transition: opacity .4s ease, transform .4s ease;
}
.tab-panel.is-active {
opacity: 1;
transform: translateY(0);
}
.tab-panel {
opacity: 0;
transform: scale(0.95);
transition: opacity .4s ease, transform .4s ease;
position: absolute; /* 重ねて表示切替 */
inset: 0;
}
.tab-panels{
position:relative;
min-height:120px;
}
.tab-panel{
position:absolute;
inset:0;
opacity:0;
transform:scale(.95);
transition:opacity .8s ease,transform .8s ease;
}
.tab-panel.is-active{
position:relative;
z-index: 3;
opacity:1;
transform:scale(1);
}
.tab-panel.exit{
opacity:0;
transform:scale(.9);
}
[hidden]{
display:none;
}


.more-text {
max-height: 0;
opacity: 0;
overflow: hidden;
transition: all 0.5s ease;
}
.read-more-check {
display: none;
}
.read-more-label {
color: #007bff;
cursor: pointer;
text-decoration: underline;
font-weight: bold;
}
.read-more-label::before {
content: "続きを読む";
}
.read-more-check:checked ~ .content .more-text {
max-height: 500px;
opacity: 1;
margin-top: 10px;
}
.read-more-check:checked ~ .read-more-label::before {
content: "閉じる";
}


.single main .container{
display: grid;
grid-template-columns: 1fr 300px;
gap: 60px;
}
.single main .container article{
grid-column:1 / 2;
grid-row:1 / 2;
}
.post-nav {
grid-column:1 / 2;
grid-row:2 / 3;
}
.single .sidebar{
grid-column:2 / 3;
grid-row:1 / 3;
}
.single main img{
display: block;
margin: 0 auto 2rem;
border-radius: var(--border-radius);
}
.single main hr{
margin:  1rem 0;
}




/********************************
    トップページ
********************************/
.parallax {
height: 100vh; /* スクロール用の余白 */
position: relative;
z-index: 0;
overflow: hidden;
}

.parallax-bg {
position: sticky;
top: 0;
height: 100vh;
width: 100%;
background-image: url(images/parallax.webp);
background-size: cover;
background-position: center;
transform: scale(1.1);
will-change: transform;
}
.parallax-content {
position: absolute;
z-index: 99;
inset: 0;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
pointer-events: none;
}

.parallax-content h1 {
margin: 0;
}

.news_front{
padding: 0 0 180px;
}
.news_front ul li{
position: relative;
margin: 10px 0;
padding: 10px 0;
border-bottom: 2px dotted var(--color-line);
}
.news_front ul li a{
color: var(--color-text);
}
.news_front ul li time{
position: relative;
padding-right: 30px;
}
.news_front ul li time::after{
content: "";
position: absolute;
left: 0;
bottom: -17px;
display: block;
width: 100%;
height: 4px;
background-color: var(--color-line);
}

.content{
position: relative;
z-index: 99;
padding: 4rem 0;
background-color: #fff;
}
.feature {
position: relative;
overflow: hidden;
height: 540px;
}
.feature-bg {
position: absolute;
inset: 0;
}
.feature-bg-inner {
position: absolute;
inset: 0;
background-size: auto 100%;
background-repeat: no-repeat;
transform: translateX(0);
opacity: 0;
transition:
  transform 2.9s cubic-bezier(.2,.8,.2,1),
  opacity 0.6s ease;
}
.feature--from-left {
margin-bottom: var(--space-5xl);
}

.feature.is-active .feature-bg-inner {
transform: translateX(0);
opacity: 1;
}
.feature--from-left .feature-bg-inner {
background-image: url(images/slidein_01.webp);
background-position: left center;
transform: translateX(-6%);
}
.feature--from-right .feature-bg-inner {
background-image: url(images/slidein_02.webp);
background-position: right center;
transform: translateX(6%);
transition-delay: 0.05s;
}
.feature.is-active .feature-bg-inner {
transform: translateX(0);
opacity: 1;
}
.feature.is-active .feature-bg-inner {
transform: translateX(0);
opacity: 1;
}
.feature-content{
position: relative;
z-index: 3;
min-height: 540px;
}
.feature-content .container{
padding-top: 90px;
padding-bottom: 90px;
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr;
gap: 0px 90px;
height: 450px;
}
.feature-content .container h2{
color: #fff;
text-align: center;
}
.feature--from-right .feature-content .container h2{
grid-column:2 / 3;
grid-row: 1/2;
}
.feature--from-right .feature-content .container div{
grid-column:1 / 2;
grid-row: 1/2;
display: grid;
place-content: center;
gap: 1ch;
}

.feature-content .container div a{
display: block;
padding: .5rem 0;
text-align: center;
color: #fff;
background-color: var(--color-navy);
border: 2px solid var(--color-navy);
}
.feature-content .container div a:hover{
text-align: center;
color: var(--color-navy);
background-color: #fff;
}


.link_pages{
margin: 0 0 120px;
display: grid;
grid-template-columns: repeat(3,1fr);
gap: 0px 200px;
}
.link_pages figure{}
.link_pages figure img{
display: block;
margin: 60px auto 28px;
background-color: rgb(0 0 0 /.37);
box-shadow: 0 0 0px 20px rgb(0 0 0 /.37);
border-radius: 50%;
}
.link_pages figcaption{
padding: 5px;
text-align: center;
color: #fff;
background-color: var(--color-navy);
border: 2px solid var(--color-navy);
}
.link_pages li a figcaption{
transition: .3s;
}
.link_pages li a:hover figcaption{
color: var(--color-navy);
background-color: #fff;
}


.site-header {
position: sticky;
top: 0;
z-index: 999;
padding: 2rem 1rem;
color: #fff;
background: #000;
transition:
  background-color .3s ease,
  box-shadow .3s ease;
}
#nav-trigger {
height: 0px;
}
.site-header.is-stuck {
background: rgba(0,0,0,.7);
box-shadow: 0 2px 8px rgba(0,0,0,.06);
}

/********************************
    わたしたちの強み
********************************/
.strengths .hentry h2{
margin-bottom: var(--space-lg);
}


/********************************
    事業内容
********************************/
.ul_contentslink{
display: grid;
grid-template-columns: 1fr 1fr;
gap: 40px;
margin: 0 0 var(--space-6xl);
}
.ul_contentslink li{
margin: 0;
padding: 0;
font-size: 1.5rem;
font-weight: 600;
}
.ul_contentslink li a{
display: block;
margin: 0;
padding: var(--space-md) 0;
color: #fff;
background-color: #000;
border-radius: 100px;
text-align: center;
border: 2px solid #000;
transition: .3s;
}
.ul_contentslink li a:hover{
color: #000;
background-color: #fff;
}

.ul_contentslink li:last-child{
grid-column: 1/3;
}

.ul_2column{
margin-bottom: var(--space-6xl);
padding-left: 2rem;
list-style: disc;
display: grid;
grid-template-columns: repeat(2, 26em);
gap: 8px 16px;
}


/********************************
    ソリューション
********************************/
.solution{}
.solution hr{
margin-top: var(--space-4xl);
}


/********************************
    お問い合わせ
********************************/
.recruit{}

.wpcf7-form label{
margin: 0 0 30px;
display: grid;
grid-template-columns:  200px 1fr;
width: 100%;
}
.wpcf7-form label input,
.wpcf7-form label textarea{
background-color: #fff;
border: 2px solid #bfbfbf;
width: 100%;
}
[data-name="acceptance"]{
display: block;
text-align: center;
}
.wpcf7-acceptance .wpcf7-list-item label{
display: grid;
grid-template-columns:  30px 1fr;
align-items: center;
}

.wpcf7-form input[type="submit"]{
display: block;
padding: 20px 0;
width: 100%;
color: #fff;
background-color: #55a795;
border: 2px solid #55a795;
transition: .3s;
}
.wpcf7-form input[type="submit"]:hover{
color: #55a795;
background-color: #fff;
}


/********************************
    プライバシーポリシー
********************************/
.privacy-policy{}

.privacy-policy .hentry p{
margin: 0 0 1rem;
}
.ul_bigdot{
margin: 0 0 1rem;
padding: 0;
}
.ul_bigdot li{
position: relative;
padding: .25rem 0;
}
.ul_bigdot li::before{
position: relative;
content: "●";
margin-right: .5rem;
}

.ol_bracket{
margin: 0 0 1rem;
counter-reset: bracket;
list-style: none;
padding-left: 0;
}
.ol_bracket li{
counter-increment: bracket;
display: grid;
grid-template-columns: auto 1fr;
column-gap: 0.1em;
align-items: start;
}
.ol_bracket li::before{
content: "（" counter(bracket) "）";
white-space: nowrap;
}

.ul_normal{
padding-left: 1.5rem;
list-style: disc;
}
.ul_normal li{
padding: .25rem 0;
}
.privacy-policy .hentry dl{
}
.privacy-policy .hentry dl,.privacy-policy .hentry dt,.privacy-policy .hentry dd{
margin: 0;
padding: 0;
}
.privacy-policy .hentry dl{
margin: 0 0 1rem;
width: 100%;
display: flex;
flex-wrap: wrap;
}
.privacy-policy .hentry dt{
}
.privacy-policy .hentry dt,
.privacy-policy .hentry dd{
padding: .25rem 0;
box-sizing: border-box;
}
.privacy-policy .hentry dt{
width: 6em;
}
.privacy-policy .hentry dd{
width: calc(100% - 6em);
}

/********************************
    TABLE
********************************/
.tbl-01{
border-top: 2px solid var(--color-line);
border-bottom: 2px solid var(--color-line);
}
.tbl-01 th,
.tbl-01 td{
border-bottom: 1px dotted var(--color-line);
}
.tbl-01 td{
padding: .25rem;
}
.tbl-01 th{
padding: .25rem 2rem .25rem .25rem;
width: 1%;
white-space: nowrap;
text-align: left;
}
.tbl-01 tr:last-child th,
.tbl-01 tr:last-child td{
border-bottom: none;
}

/********************************
    RWD
********************************/
@media (max-width:1000px){
.site-footer .container {
grid-template-columns: 1fr;
gap: 60px 0;
}
.footer-nav li:nth-child(2) {
grid-template-columns: 1fr;
}
.feature-content p{
color: #000;
}
.link_pages {
gap: 0px 60px;
}
}

@media (max-width:900px){
.menu-list li{
padding: .5rem 0;
}
.hero {
display: block;
place-content:end;
}
.hero .container{
transform: translateY(120px);
}
.hero .container div {
max-width: 100%;
min-width: auto;
}
.hero .container div p{
text-align: left;
}
.strengths .hero{background-image: url(images/hero_strengths_sp.webp);}
.services .hero{background-image: url(images/hero_services_sp.webp);}
.solution .hero{background-image: url(images/hero_solution_sp.webp);}
.works .hero{background-image: url(images/hero_works_sp.webp);}
.company .hero{background-image: url(images/hero_company_sp.webp);}
.recruit .hero{background-image: url(images/hero_recruit_sp.webp);}
.contact .hero{background-image: url(images/hero_contact_sp.webp);}
.privacy-policy .hero{background-image: url(images/hero_privacy-policy_sp.webp);}

}
@media (max-width:768px){
.ul_2column{
grid-template-columns: 1fr;
}
}
@media(max-width:600px){
.hentry {
margin-bottom: var(--space-4xl);
}
.site-footer {
padding: var(--space-xl) var(--space-sm);
}

.hero{
background-size:cover;
background-position: center top;
min-height: auto;
}
.hero .container {
padding: 0 15px;
transform: translateY(150px);
}
.hero .container div {
padding: 15px;
background-color: rgb(0 0 0 /.55);
}
.hero .container div p{
margin-bottom: 0;
font-size: clamp(0.875rem, 3vw, 1.125rem);
}
.feature {
height: auto;
margin-bottom: 0;
padding-bottom: 0;
}
.feature-content .container {
padding-top: 0;
padding-bottom: 90px;
display: grid;
grid-template-columns: 1fr;
grid-template-rows: auto;
gap: 0px 60px;
height: inherit;
}
.feature-content .container {
grid-template-columns: 1fr;
gap: 0px 90px;
height: 450px;
}
.feature-content .container P{
color: #FFF;
}
.feature--from-right .feature-content .container h2 {
grid-column: 1 / 2;
grid-row: 1/2;
}
.feature--from-right .feature-content .container div {
grid-column: 1 / 2;
grid-row: 2/3;
display: grid;
place-content: center;
gap: 1ch;
}
.link_pages {
margin: 0;
gap: 0px 30px;
}
.link_pages figure img{
width: 48px;
}
.wpcf7-form label {
grid-template-columns: 1fr;
}
}
