/*
Theme Name: Will one inc
Theme URI: https://willone-inc.jp/
Author: yy
Description: Will one corporate website custom theme.
Version: 2.0.0
Text Domain: willone
*/
:root{
  --green:#004b3b;
  --green-2:#0b5f4d;
  --green-3:#0f7159;
  --ink:#18231f;
  --muted:#6d756f;
  --line:#e6e8e7;
  --bg:#fbfcfb;
  --serif:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  --display:"DM Serif Display","Times New Roman",serif;
  --sans:"Noto Sans JP","Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;
  --container:1120px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);font-family:var(--sans);background:#fff;line-height:1.8}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{width:min(calc(100% - 56px),var(--container));margin-inline:auto}

.site-header{
  position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);
  backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.035)
}
.header-inner{height:88px;display:flex;align-items:center;justify-content:space-between;gap:36px}
.hd-logo{width:60%}
.brand{display:flex;align-items:center;gap:12px;width:25%}

.global-nav{display:flex;align-items:center;gap:34px;font-size:14px;font-weight:600}
.global-nav a{position:relative}
.global-nav a:not(.nav-contact)::after{content:"";position:absolute;left:0;bottom:-8px;width:0;height:1px;background:var(--green);transition:.25s}
.global-nav a:hover::after{width:100%}
.nav-contact{border:1px solid rgba(0,75,59,.45);border-radius:999px;padding:11px 20px;display:inline-flex;gap:18px;align-items:center}
.nav-contact:hover{background:var(--green);color:#fff}
.menu-btn{display:none;border:0;background:none;width:40px;height:40px}
.menu-btn span{display:block;height:1px;background:var(--green);margin:8px 0}

.hero{height:620px;position:relative;overflow:hidden;background:#0e2422}
.hero-photo{
  position:absolute;inset:0;background:
  linear-gradient(90deg,rgba(0,20,18,.68) 0%,rgba(0,20,18,.38) 35%,rgba(0,20,18,.08) 72%,rgba(0,20,18,0) 100%),
  url("./img/fv_1.png") center/cover no-repeat;
/*url("https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?auto=format&fit=crop&w=2200&q=88") center/cover no-repeat;*/
  filter:saturate(.88) brightness(.92)
}
.hero-shade{
  position:absolute;
  inset:auto 0 0;
  height:30%;
  background:linear-gradient(
    transparent,
    rgba(0,0,0,.10)
  );
}
.hero-content{position:relative;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding-top:200px}
.hero-kicker{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.55);margin:0 0 18px}
.hero h1{font-family:var(--serif);font-weight:500;font-size:clamp(20px,30px,30px);line-height:1.55;color:#fff;letter-spacing:.08em;margin:0 0 26px;text-shadow:0 2px 18px rgba(0,0,0,.25)}
.hero-lead{color:rgba(255,255,255,.9);font-size:16px;line-height:2;margin:0}

.section{position:relative;padding:150px 0}
.about{overflow:hidden}
.about-grid{display:grid;grid-template-columns:.9fr 1.2fr;gap:120px;align-items:center}
.eyebrow{font-size:12px;font-weight:700;letter-spacing:.16em;color:var(--green);margin:0 0 18px}
.section-intro h2,.section-head h2{font-family:var(--serif);font-size:clamp(20px,30px,30px);font-weight:500;line-height:1.55;letter-spacing:.05em;color:#1f2a25;margin:0}
.section-intro p:last-child{font-size:14px;line-height:2.1;margin-top:24px;color:#4f5752}
.mini-line{display:block;width:34px;height:1px;background:var(--green);margin:25px 0}
.about-card{
  background:#fff;padding:42px 52px;border:1px solid #eceeed;
  box-shadow:0 24px 60px rgba(20,63,53,.10);position:relative
}
.about-card::after{content:"";position:absolute;right:-14px;bottom:-14px;width:58%;height:68%;background:var(--green);z-index:-1}
.about-card article{display:flex;gap:20px;padding:16px 0}
.about-card h3{font-size:18px;margin:0 0 4px;font-family:var(--serif);font-weight:600}
.about-card p{margin:0;font-size:13px;color:#66706a}
.icon{
  position:relative;
  width:50px;
  height:50px;
  pointer-events:none;
}
.icon-1st{
  background-image:url("./img/icon_keiei.png");
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
}
.icon-2nd{
  background-image:url("./img/icon_banso.png");
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
}
.icon-3rd{
  background-image:url("./img/icon_team.png");
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
}
/*
.icon{width:42px;height:42px;flex:0 0 auto;border:1px solid rgba(0,75,59,.25);border-radius:50%;position:relative}
.icon::before,.icon::after{content:"";position:absolute;background:var(--green);opacity:.45}
.icon-people::before{width:8px;height:8px;border-radius:50%;left:9px;top:9px;box-shadow:14px 0 0 var(--green)}
.icon-people::after{width:24px;height:10px;border:1px solid var(--green);background:transparent;border-radius:12px 12px 0 0;left:8px;bottom:7px}
.icon-compass::before{width:16px;height:16px;border:1px solid var(--green);background:transparent;transform:rotate(45deg);left:12px;top:12px}
.icon-growth::before{width:3px;height:20px;left:10px;bottom:9px;box-shadow:8px -5px 0 var(--green),16px -12px 0 var(--green)}
*/
.geometry{
  position:absolute;
  width:320px;
  height:320px;
  opacity:.16;
  pointer-events:none;
  background-image:url("./img/icon.png");
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
}
.geometry::before,
.geometry::after{
  display:none;
}
.geometry-left{
  left:-120px;
  bottom:-50px;
}
.geometry-right{
  right:-120px;
  top:0px;
}
.business{padding-top:90px}
.section-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:42px}
.section-head.compact{margin-bottom:30px}
.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.service-card{background:var(--green);box-shadow:0 14px 28px rgba(0,52,40,.10);position:relative;overflow:hidden;transition:.28s}
.service-card:hover{transform:translateY(-6px);box-shadow:0 18px 42px rgba(0,52,40,.18)}
.service-img{aspect-ratio:1.65/1;background-size:cover;background-position:center}
.service-img-1{background-image:url("./img/hayabusa_1.jpg")}
.service-img-2{background-image:url("./img/comingsoon.jpg")}
.service-img-3{background-image:url("./img/engineer_1.jpg")}
.service-img-3{background-image:url("./img/hitsuji_2.jpg")}
.service-img-3-old{background-image:url("./img/consulting_1.png")}
.service-img-4{background-image:url("./img/branding_2.jpg")}
.service-body{padding:24px 22px 58px;color:#fff;min-height:260px;position:relative}
.service-no{display:block;font-family:var(--display);font-size:38px;color:rgba(255,255,255,.35);line-height:1}
.service-body h3{font-family:var(--serif);font-size:20px;margin:10px 0 2px;font-weight:500}
.service-body .en{font-family:var(--display);font-size:11px;letter-spacing:.05em;color:rgba(255,255,255,.7);margin:0 0 18px}
.service-body p:last-of-type{font-size:12px;color:rgba(255,255,255,.85);line-height:1.9;margin:0}
.card-arrow{position:absolute;right:18px;bottom:18px;width:34px;height:34px;border-radius:50%;background:#fff;color:var(--green);display:grid;place-items:center}

.clients{padding-top:70px;padding-bottom:95px}
.clients img{width:100%}
.client-logos{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.client-logos span{padding:28px 24px;text-align:center;color:#707874;font-weight:700;letter-spacing:.06em;border-right:1px solid var(--line);display:flex;justify-content:center}
.client-logos span:nth-child(4n){border-right:0}
.client-logos span:nth-child(-n+4){border-bottom:1px solid var(--line)}
.client-logos small{display:block;font-size:9px;letter-spacing:.12em;font-weight:500;color:#9aa19d}
.client-note{text-align:center;font-size:11px;color:#939a96;margin:14px 0 0}

.news{padding-top:60px;padding-bottom:120px}
.news-list{border-top:1px solid var(--line)}
.news-item{display:grid;grid-template-columns:120px 120px 1fr 30px;align-items:center;gap:20px;padding:25px 0;border-bottom:1px solid var(--line);transition:.2s}
.news-item:hover{background:linear-gradient(90deg,transparent,rgba(0,75,59,.025),transparent)}
.news-item time{font-size:13px;color:#4d5651}
.tag{display:inline-flex;justify-content:center;border:1px solid rgba(0,75,59,.45);color:var(--green);padding:3px 10px;font-size:11px;border-radius:3px}
.news-item p{margin:0;font-size:14px;font-weight:600}
.news-item .arrow{font-size:18px;color:var(--green);transition:.2s}
.news-item:hover .arrow{transform:translateX(4px)}
.more-link{display:flex;width:max-content;align-items:center;gap:18px;margin:34px auto 0;color:var(--green);font-size:13px;font-weight:700}

.contact-wrap{padding:20px 0 120px}
.contact-panel{display:grid;grid-template-columns:38% 62%;border-radius:4px;overflow:hidden;min-height:250px}
.contact-photo{background:url("https://images.unsplash.com/photo-1497366811353-6870744d04b2?auto=format&fit=crop&w=1200&q=86") center/cover no-repeat}
.contact-copy{position:relative;background:linear-gradient(135deg,#003d31,#005442);color:#fff;padding:46px 64px;overflow:hidden}
.contact-copy h2{font-family:var(--serif);font-size:34px;font-weight:500;margin:4px 0 8px}
.contact-copy p{font-size:13px;line-height:1.9;color:rgba(255,255,255,.86)}
.contact-btn{margin-top:14px;display:flex;align-items:center;justify-content:space-between;background:#fff;color:var(--green);padding:14px 22px;max-width:360px;font-weight:700;border-radius:4px}
.contact-geo{
  position:absolute;
  right:-70px;
  top:-70px;
  width:320px;
  height:320px;
  pointer-events:none;
  opacity:.17;

  background-image:url("./img/icon_w.png");
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
}
.light{color:rgba(255,255,255,.72)}

.site-footer{background:linear-gradient(135deg,#043a31,#00523f);color:#fff;padding:62px 0 28px}
.footer-grid{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:40px}
.footer-brand-logo .brand-name{color:#fff}
.brand.footer-brand-logo{width:100%}
.ft-logo{width:75%}
.socials{display:flex;gap:8px;margin-top:18px}
.socials a{width:30px;height:30px;border-radius:50%;border:1px solid rgba(255,255,255,.55);display:grid;place-items:center;font-size:11px}
.footer-col{display:flex;flex-direction:column;gap:10px}
.footer-col h3{font-size:13px;margin:0 0 5px}
.footer-col a{font-size:12px;color:rgba(255,255,255,.78)}
.footer-col a:hover{color:#fff}
.footer-bottom{display:flex;justify-content:flex-end;gap:18px;border-top:1px solid rgba(255,255,255,.12);margin-top:45px;padding-top:24px;font-size:11px;color:rgba(255,255,255,.75)}

@media (max-width: 980px){
  .global-nav{display:none}
  .menu-btn{display:block}
  .global-nav.open{
    display:flex;position:absolute;left:0;right:0;top:88px;background:#fff;padding:24px 28px;flex-direction:column;align-items:stretch;gap:0;border-top:1px solid var(--line);box-shadow:0 18px 40px rgba(0,0,0,.08)
  }
  .global-nav.open a{padding:14px 0}
  .global-nav.open .nav-contact{margin-top:8px;justify-content:space-between;padding:12px 18px}
  .about-grid{grid-template-columns:1fr;gap:60px}
  .service-grid{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1.5fr repeat(2,1fr)}
}
@media (max-width: 640px){
  .container{width:min(calc(100% - 36px),var(--container))}
  .header-inner{height:74px}
  .brand-name{font-size:27px}.brand-mark{width:34px;height:34px}
  .global-nav.open{top:74px}
  .hero{height:640px}
  .hero-photo{background-position:62% center}
  .hero-content{justify-content:flex-end;padding-bottom:72px}
  .hero h1{font-size:34px}
  .hero-lead{font-size:14px}
  .section{padding:105px 0}
  .about-card{padding:30px 24px}
  .about-card::after{right:-8px;bottom:-8px}
  .service-grid{grid-template-columns:1fr}
  .service-body{min-height:auto}
  .client-logos{grid-template-columns:repeat(2,1fr)}
  .client-logos span:nth-child(n){border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
  .client-logos span:nth-child(2n){border-right:0}
  .news-item{grid-template-columns:94px 88px 1fr;gap:12px}
  .news-item .arrow{display:none}
  .news-item p{grid-column:1/-1;padding-left:0}
  .contact-panel{grid-template-columns:1fr}
  .contact-photo{min-height:220px}
  .contact-copy{padding:34px 24px}
  .contact-copy h2{font-size:28px}
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-brand{grid-column:1/-1;margin-bottom:18px}
  .footer-bottom{justify-content:flex-start;flex-wrap:wrap}
}

.reveal{opacity:1;transform:none}
.reveal.reveal-ready{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .75s ease,transform .75s ease;
}
.reveal.reveal-ready.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important}
  .reveal,
  .reveal.reveal-ready{opacity:1;transform:none;transition:none}
}


/* =========================================
   ABOUT PAGE
========================================= */
.global-nav a.is-current::after{width:100%!important}

.sub-hero{
  height:430px;
  position:relative;
  overflow:hidden;
  background:#071b19;
}
.sub-hero-photo{
  position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(0,20,18,.68) 0%,rgba(0,20,18,.38) 35%,rgba(0,20,18,.08) 72%,rgba(0,20,18,0) 100%),
    url("./img/about_bg.png") center 42%/cover no-repeat;
  filter:saturate(.88) brightness(.92)
}
.sub-hero-shade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(
      90deg,
      rgba(0,20,18,.48) 0%,
      rgba(0,20,18,.24) 38%,
      rgba(0,20,18,.06) 72%,
      rgba(0,20,18,0) 100%
    ),
    linear-gradient(
      180deg,
      rgba(0,0,0,.02) 0%,
      rgba(0,0,0,.08) 100%
    );
}
.sub-hero-inner{position:relative;height:100%;display:flex;justify-content:center;flex-direction:column;color:#fff}
.breadcrumb{font-size:12px;letter-spacing:.08em;margin:0 0 20px;color:rgba(255,255,255,.78)}
.breadcrumb span{margin:0 10px;color:rgba(255,255,255,.4)}
.sub-hero h1{font-family:var(--display);font-weight:400;font-size:clamp(58px,7vw,92px);line-height:1;margin:0 0 22px;letter-spacing:.015em}
.sub-hero-ja{font-size:16px;font-weight:600;letter-spacing:.08em;margin:0}

.philosophy{
  position:relative;
  padding:100px 0;
  overflow:hidden;
}
.philosophy-first{padding-top:150px}
.philosophy-grid{
  display:grid;
  grid-template-columns:600px 1fr;
  gap:70px;
  align-items:center;
  min-height:320px;
}
.philosophy-title{padding-left:32px}
.philosophy-label{display:flex;align-items:baseline;gap:7px;color:var(--green);margin-bottom:26px}
.philosophy-no{font-family:var(--display);font-size:58px;line-height:1;color:var(--green)}
.outline-section .philosophy-no{font-weight:700;font-size:50px}
.slash{font-family:var(--display);font-size:30px;color:rgba(0,75,59,.45)}
.philosophy-label small{font-family:var(--display);font-size:12px;letter-spacing:.08em}
.philosophy-title h2{
  margin:0;
  font-family:var(--serif);
  font-size:clamp(25px,3.1vw,39px);
  font-weight:600;
  line-height:1.65;
  letter-spacing:.04em;
  color:#17251f;
}
.philosophy-copy{
  border-left:1px solid var(--line);
  padding-left:55px;
  font-size:14px;
  line-height:2.05;
  color:#364039;
}
.philosophy-copy p{margin:0 0 26px}
.philosophy-copy p:last-child{margin-bottom:0}

/* node / line decoration */
.node-art{height:220px;position:relative;opacity:.44}
.node-art::before,.node-art::after{
  content:"";position:absolute;border-top:1px solid rgba(0,75,59,.32);
  width:170px;left:30px;top:80px;transform:rotate(22deg)
}
.node-art::after{width:135px;left:70px;top:122px;transform:rotate(-25deg)}
.node-art i{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--green);opacity:.7}
.node-art i:nth-child(1){left:28px;top:78px}
.node-art i:nth-child(2){left:105px;top:108px}
.node-art i:nth-child(3){left:198px;top:144px}
.node-art i:nth-child(4){left:75px;top:154px}
.node-art i:nth-child(5){left:184px;top:54px}
.node-art-b{transform:rotate(-18deg)}
.node-art-c{transform:rotate(12deg)}

.value-section{padding:100px 0}
.value-grid{
  display:grid;
  grid-template-columns:310px 1fr 100px;
  gap:70px;
  align-items:start;
}
.value-lead{font-size:13px;line-height:1.9;color:#5c665f;margin-top:18px}
.value-list{list-style:none;margin:22px 0 0;padding:0}
.value-list li{
  display:grid;grid-template-columns:48px 1fr;align-items:center;
  min-height:50px;border-bottom:1px solid var(--line);
  font-weight:600;font-size:15px
}
.value-list li span{font-family:var(--display);font-size:23px;color:var(--green);font-style:italic}
.cube-art{width:190px;height:190px;border:1px solid rgba(0,75,59,.12);transform:rotate(30deg);margin-top:65px;position:relative}
.cube-art::before,.cube-art::after{content:"";position:absolute;border:1px solid rgba(0,75,59,.14)}
.cube-art::before{inset:33px;transform:rotate(30deg)}
.cube-art::after{inset:66px;transform:rotate(-30deg)}

.outline-section{padding:100px 0 0}
.outline-grid{
  display:grid;
  grid-template-columns:310px 1fr;
  gap:70px;
  align-items:start;
}
.company-table{margin:18px 0 0}
.company-table div{display:grid;grid-template-columns:130px 1fr;border-bottom:1px solid var(--line);padding:14px 0}
.company-table dt{font-size:13px;font-weight:700;color:var(--green)}
.company-table dd{font-size:13px;margin:0;color:#303a34;line-height:1.85}

.about-page .contact-wrap{padding-top:160px}
.about-page .site-footer{margin-top:40px}

@media (max-width:980px){
  .philosophy,.value-section,.outline-section{padding:170px 0}
  .philosophy-grid,.value-grid{grid-template-columns:260px 1fr;gap:50px}
  .node-art,.cube-art{display:none}
  .outline-grid{grid-template-columns:260px 1fr;gap:50px}
  .philosophy-title{padding-left:0}
}
@media (max-width:640px){
  .br-sp{display:none}
  .sub-hero{height:360px}
  .sub-hero-photo{background-position:58% center}
  .sub-hero h1{font-size:58px}
  .philosophy,.value-section,.outline-section{padding:125px 0}
  .philosophy-first{padding-top:110px}
  .philosophy-grid,.value-grid,.outline-grid{grid-template-columns:1fr;gap:42px}
  .philosophy-copy{border-left:0;border-top:1px solid var(--line);padding:34px 0 0}
  .philosophy-title h2{font-size:27px}
  .philosophy-label{margin-bottom:20px}
  .philosophy-no{font-size:50px}
  .company-table div{grid-template-columns:1fr;gap:4px}
  .company-table dt{font-size:12px}
  .company-table dd{font-size:13px}
  .about-page .contact-wrap{padding-top:90px}
}


/* =========================================
   SERVICE PAGE
========================================= */
.service-sub-hero .sub-hero-photo{
  background:
    linear-gradient(90deg,rgba(0,20,18,.68) 0%,rgba(0,20,18,.38) 35%,rgba(0,20,18,.08) 72%,rgba(0,20,18,0) 100%),
    url("./img/service_bg.png") center 54%/cover no-repeat;
  filter:saturate(.88) brightness(.92)
}

.service-detail{
  position:relative;
  padding:100px 0;
  overflow:hidden;
}
.service-detail:first-of-type{padding-top:190px}

.service-detail-grid{
  display:grid;
  grid-template-columns:1.25fr 1fr 1fr;
  gap:30px;
  align-items:center;
}
.service-detail-copy{
  padding-right:36px;
  border-right:1px solid var(--line);
}
.service-detail-copy .eyebrow{
  font-family:var(--display);
  font-size:12px;
  letter-spacing:.07em;
  margin-bottom:28px;
}
.service-detail-copy h2{
  font-family:var(--serif);
  font-size:clamp(25px,2.7vw,36px);
  font-weight:600;
  line-height:1.6;
  letter-spacing:.025em;
  margin:0 0 24px;
}
.service-catch{
  color:var(--green);
  font-weight:700;
  font-size:15px;
  line-height:1.85;
  margin:0 0 24px;
}
.service-desc{
  color:#555f59;
  font-size:13px;
  line-height:2;
  margin:0;
}

.service-visual-card,
.support-card{
  min-height:315px;
  border:1px solid #e7ebe9;
  border-radius:10px;
  background:#fff;
  box-shadow:0 10px 30px rgba(13,58,47,.06);
}
.service-visual-card{overflow:hidden}
.service-photo-card{
  background-size:cover;
  background-position:center;
}
.photo-hayabusa{
  background-image:url("./img/hayabusa_1.jpg");
}
.photo-construction{
  background-image:url("./img/comingsoon.jpg");
}
.photo-engineer{
  background-image:url("./img/engineer_1.jpg");
}
.photo-hitsuji{
  background-image:url("./img/hitsuji_2.jpg");
}
.photo-consulting{
  background-image:url("./img/consulting_1.png");
}
.photo-branding{
  background-image:url("./img/branding_2.jpg");
}
.photo-reskilling{
  background-image:url("./img/reskilling_1.jpg");
}
.brand-card{
  display:grid;
  place-items:center;
  padding:38px;
}
.hayabusa-mark{
  display:flex;
  flex-direction:column;
  align-items:center;
  color:var(--green);
}
.hayabusa-mark .wing{
  font-family:var(--serif);
  font-weight:800;
  font-size:92px;
  line-height:.95;
  transform:skewX(-11deg);
  text-shadow:12px 0 0 rgba(0,75,59,.08);
}
.hayabusa-mark strong{
  margin-top:12px;
  font-family:var(--serif);
  font-size:30px;
  letter-spacing:.03em;
}

.support-card{
  padding:32px 30px;
}
.support-card h3{
  margin:0 0 20px;
  color:var(--green);
  font-size:14px;
}
.check-list{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:15px;
}
.check-list li{
  position:relative;
  padding-left:30px;
  font-size:13px;
  font-weight:600;
  line-height:1.6;
}
.check-list li::before{
  content:"✓";
  position:absolute;
  left:0;
  top:1px;
  width:19px;
  height:19px;
  border-radius:50%;
  background:var(--green);
  color:#fff;
  display:grid;
  place-items:center;
  font-size:11px;
  line-height:1;
}
.check-list small{font-size:11px;color:#606a64;font-weight:500}

.service-node{
  position:absolute;
  right:-40px;
  top:40px;
  width:180px;
  height:180px;
  opacity:.22;
  border:1px solid rgba(0,75,59,.18);
  transform:rotate(28deg);
}
.service-node::before,.service-node::after{
  content:"";
  position:absolute;
  border:1px solid rgba(0,75,59,.2);
}
.service-node::before{inset:34px;transform:rotate(26deg)}
.service-node::after{inset:68px;transform:rotate(-22deg)}
.node-lower{top:auto;bottom:35px;right:-85px}
.service-cube{
  position:absolute;
  right:-45px;
  bottom:45px;
  width:180px;
  height:180px;
  border:1px solid rgba(0,75,59,.12);
  transform:rotate(30deg);
}
.service-cube::before,.service-cube::after{
  content:"";
  position:absolute;
  border:1px solid rgba(0,75,59,.14);
}
.service-cube::before{inset:34px;transform:rotate(30deg)}
.service-cube::after{inset:68px;transform:rotate(-30deg)}

.service-page .contact-wrap{padding-top:160px}
.service-page .site-footer{margin-top:40px}

@media (max-width:1100px){
  .service-detail-grid{
    grid-template-columns:minmax(250px,.95fr) minmax(300px,1.05fr);
  }
  .support-card{
    grid-column:2;
  }
  .service-detail-copy{
    grid-row:1 / span 2;
    align-self:stretch;
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
}
@media (max-width:760px){
  .service-detail,
  .service-detail:first-of-type{
    padding:120px 0;
  }
  .service-detail-grid{
    grid-template-columns:1fr;
    gap:24px;
  }
  .service-detail-copy{
    grid-row:auto;
    border-right:0;
    border-bottom:1px solid var(--line);
    padding:0 0 34px;
  }
  .support-card{grid-column:auto}
  .service-visual-card,.support-card{min-height:260px}
  .brand-card{min-height:250px}
  .hayabusa-mark .wing{font-size:72px}
  .hayabusa-mark strong{font-size:24px}
  .service-page .contact-wrap{padding-top:90px}
  .service-node,.service-cube{display:none}
}


/* =========================================
   NEWS PAGE
========================================= */
.news-page .sub-hero-photo{
  background:
    linear-gradient(90deg,rgba(0,20,18,.68) 0%,rgba(0,20,18,.38) 35%,rgba(0,20,18,.08) 72%,rgba(0,20,18,0) 100%),
    url("./img/news_bg.jpg") center 53%/cover no-repeat;
  filter:saturate(.88) brightness(.92)
}
.news-archive{
  padding:100px 0;
}
.news-filter{
  display:flex;
  align-items:center;
  gap:44px;
  padding:0 0 50px;
  border-bottom:1px solid var(--line);
}
.news-filter-title{
  margin:0;
  min-width:100px;
  font-weight:700;
  font-size:15px;
}
.news-filter-buttons{
  display:flex;
  gap:24px;
  flex-wrap:wrap;
}
.filter-btn{
  appearance:none;
  min-width:120px;
  border:1px solid rgba(0,75,59,.48);
  border-radius:4px;
  background:#fff;
  color:var(--green);
  font:600 13px/1 var(--sans);
  padding:11px 22px;
  cursor:pointer;
  transition:.22s ease;
}
.filter-btn:hover,
.filter-btn.is-active{
  color:#fff;
  background:var(--green);
  border-color:var(--green);
}
.archive-list{
  margin-top:0;
}
.archive-item{
  display:grid;
  grid-template-columns:125px 125px 1fr 40px;
  align-items:center;
  gap:20px;
  padding:35px 0;
  border-bottom:1px solid var(--line);
  transition:background .2s ease, opacity .25s ease, transform .25s ease;
}
.archive-item[hidden]{display:none}
.archive-item:hover{
  background:linear-gradient(90deg,transparent,rgba(0,75,59,.025),transparent);
}
.archive-item time{
  font-size:13px;
  color:#202925;
}
.archive-tag{
  display:inline-flex;
  justify-content:center;
  align-items:center;
  min-height:30px;
  padding:4px 10px;
  border:1px solid rgba(0,75,59,.50);
  border-radius:3px;
  color:var(--green);
  font-size:11px;
  font-weight:700;
}
.archive-copy h2{
  margin:0 0 8px;
  color:var(--green);
  font-size:17px;
  line-height:1.65;
  font-weight:700;
}
.archive-copy p{
  margin:0;
  font-size:12px;
  line-height:1.85;
  color:#4e5752;
}
.archive-arrow{
  justify-self:end;
  color:var(--green);
  font-size:25px;
  transition:transform .2s ease;
}
.archive-item:hover .archive-arrow{transform:translateX(4px)}

.pagination{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:20px;
  margin:50px 0 0;
}
.pagination a,
.pagination span{
  min-width:32px;
  height:32px;
  display:grid;
  place-items:center;
  font-size:13px;
  color:var(--green);
  border-radius:2px;
}
.pagination a.is-current{
  color:#fff;
  background:var(--green);
}
.pagination a:hover:not(.is-current){
  background:rgba(0,75,59,.06);
}
.news-page .site-footer{
  margin-top:0;
}

@media (max-width:760px){
  .news-archive{padding:70px 0 35px}
  .news-filter{
    align-items:flex-start;
    flex-direction:column;
    gap:18px;
  }
  .news-filter-buttons{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
    gap:10px;
  }
  .filter-btn{min-width:0}
  .archive-item{
    grid-template-columns:90px 100px 1fr;
    gap:12px;
    padding:27px 0;
  }
  .archive-copy{
    grid-column:1/-1;
  }
  .archive-copy h2{font-size:16px}
  .archive-arrow{display:none}
}


/* =========================================
   COLUMN PAGE
========================================= */
.column-page .sub-hero{
  min-height:430px;
}
.column-sub-hero .sub-hero-photo{
  background:
    linear-gradient(90deg,rgba(0,20,18,.68) 0%,rgba(0,20,18,.38) 35%,rgba(0,20,18,.08) 72%,rgba(0,20,18,0) 100%),
    url("./img/column_bg.jpg") center bottom/cover no-repeat;
  filter:saturate(.88) brightness(.92)
}
.column-hero-lead{
  margin:22px 0 0;
  color:rgba(255,255,255,.94);
  font-family:var(--serif);
  font-size:clamp(18px,2.2vw,27px);
  line-height:1.75;
  letter-spacing:.04em;
}
.column-archive{
  padding:100px 0;
}
.column-filter{
  margin-bottom:25px;
}
.column-filter .news-filter-buttons{
  gap:18px;
}
.column-filter .filter-btn{
  min-width:128px;
}
.column-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:25px;
}
.column-card{
  min-width:0;
}
.column-card[hidden]{display:none}
.column-card-link{
  display:flex;
  flex-direction:column;
  height:100%;
  background:#fff;
  border:1px solid #e5e9e7;
  border-radius:5px;
  overflow:hidden;
  box-shadow:0 10px 28px rgba(11,60,48,.045);
  transition:transform .22s ease, box-shadow .22s ease;
}
.column-card-link:hover{
  transform:translateY(-4px);
  box-shadow:0 14px 36px rgba(11,60,48,.085);
}
.column-thumb{
  aspect-ratio:1.62/1;
  background-size:cover;
  background-position:center;
}
.thumb-strategy-1{
  background-image:url("https://images.unsplash.com/photo-1521737711867-e3b97375f902?auto=format&fit=crop&w=1100&q=84");
}
.thumb-data-1{
  background-image:url("https://images.unsplash.com/photo-1556761175-b413da4baf72?auto=format&fit=crop&w=1100&q=84");
}
.thumb-branding-1{
  background-image:url("https://images.unsplash.com/photo-1460925895917-afdab827c52f?auto=format&fit=crop&w=1100&q=84");
}
.thumb-knowhow-1{
  background-image:url("https://images.unsplash.com/photo-1516321318423-f06f85e504b3?auto=format&fit=crop&w=1100&q=84");
}
.thumb-strategy-2{
  background-image:url("https://images.unsplash.com/photo-1455390582262-044cdead277a?auto=format&fit=crop&w=1100&q=84");
}
.thumb-data-2{
  background-image:url("https://images.unsplash.com/photo-1551836022-d5d88e9218df?auto=format&fit=crop&w=1100&q=84");
}
.column-card-body{
  display:flex;
  flex-direction:column;
  flex:1;
  position:relative;
  padding:18px 18px 46px;
}
.column-meta{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:14px;
}
.column-meta time{
  flex:0 0 auto;
  font-size:11px;
  color:#4f5853;
}
.column-meta .archive-tag{
  min-height:26px;
  font-size:10px;
}
.column-card h2{
  margin:0 0 12px;
  color:var(--green);
  font-size:18px;
  line-height:1.6;
  font-weight:700;
}
.column-card p{
  margin:0;
  color:#555f59;
  font-size:12px;
  line-height:1.85;
}
.column-arrow{
  position:absolute;
  right:18px;
  bottom:13px;
  color:var(--green);
  font-size:25px;
  transition:transform .2s ease;
}
.column-card-link:hover .column-arrow{
  transform:translateX(4px);
}
.column-page .pagination{
  margin:50px 0;
}
.column-page .site-footer{
  margin-top:0;
}

@media (max-width:980px){
  .column-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:640px){
  .column-page .sub-hero{
    min-height:410px;
  }
  .column-hero-lead{
    font-size:18px;
    margin-top:18px;
  }
  .column-grid{
    grid-template-columns:1fr;
  }
  .column-filter .news-filter-buttons{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}


/* =========================================
   CONTACT PAGE
========================================= */
.contact-page .sub-hero-photo{
  background:
    linear-gradient(90deg,rgba(0,20,18,.68) 0%,rgba(0,20,18,.38) 35%,rgba(0,20,18,.08) 72%,rgba(0,20,18,0) 100%),
    url("https://images.unsplash.com/photo-1497366216548-37526070297c?auto=format&fit=crop&w=2200&q=88") center 53%/cover no-repeat;
  filter:saturate(.88) brightness(.92)
}
.contact-form-section{
  padding:100px 0;
}
.contact-form-container{
  max-width:1120px;
}
.contact-form-heading{
  padding:25px 0;
  border-bottom:1px solid var(--line);
}
.contact-form-heading h2{
  margin:0 0 10px;
  color:var(--green);
  font-size:22px;
  font-weight:700;
}
.contact-form-heading p{
  margin:0;
  color:#4f5853;
  font-size:13px;
  line-height:1.9;
}
.contact-form{
  padding:0;
}
.form-row{
  display:grid;
  grid-template-columns:260px 1fr;
  gap:25px;
  align-items:start;
  padding:25px 0;
  border-bottom:1px solid var(--line);
}
.form-label-wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  min-height:44px;
}
.form-label-wrap label,
.form-label-text{
  font-size:14px;
  font-weight:700;
}
.required-badge,
.optional-badge{
  display:inline-flex;
  justify-content:center;
  align-items:center;
  min-width:42px;
  height:24px;
  padding:0 8px;
  border-radius:3px;
  font-size:10px;
  font-weight:700;
  line-height:1;
}
.required-badge{
  background:#ef6b62;
  color:#fff;
}
.optional-badge{
  background:#8d928f;
  color:#fff;
}
.form-control-wrap{
  width:100%;
}
.form-control-wrap input,
.form-control-wrap textarea,
.select-wrap select{
  width:100%;
  border:1px solid #d7dcda;
  border-radius:4px;
  background:#fff;
  color:#202925;
  font:400 14px/1.5 var(--sans);
  outline:none;
  transition:border-color .2s, box-shadow .2s, background .2s;
}
.form-control-wrap input,
.select-wrap select{
  height:48px;
  padding:0 16px;
}
.form-control-wrap textarea{
  min-height:145px;
  resize:vertical;
  padding:15px 16px;
}
.form-control-wrap input::placeholder,
.form-control-wrap textarea::placeholder{
  color:#a4aaa6;
}
.form-control-wrap input:focus,
.form-control-wrap textarea:focus,
.select-wrap select:focus{
  border-color:rgba(0,75,59,.7);
  box-shadow:0 0 0 3px rgba(0,75,59,.07);
}
.select-wrap{
  position:relative;
  max-width:430px;
}
.select-wrap::after{
  content:"";
  position:absolute;
  right:18px;
  top:18px;
  width:8px;
  height:8px;
  border-right:1px solid var(--green);
  border-bottom:1px solid var(--green);
  transform:rotate(45deg);
  pointer-events:none;
}
.select-wrap select{
  appearance:none;
  padding-right:44px;
}
.name-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.field-error{
  display:none;
  margin:7px 0 0;
  color:#c54f47;
  font-size:11px;
  line-height:1.5;
}
.is-invalid{
  border-color:#d9645c!important;
  background:#fff9f8!important;
}
.field-error.is-visible{
  display:block;
}
.privacy-note{
  padding:25px 0 0;
  /*max-width:760px;*/
  margin:0 auto;
  text-align:left;
}
.privacy-note p{
  margin:0;
  font-size:11px;
  line-height:1.9;
  color:#59625d;
}
.privacy-note a{
  color:var(--green);
  text-decoration:underline;
  text-underline-offset:3px;
}
.form-submit-wrap{
  display:flex;
  justify-content:center;
  padding:25px 0;
}
.form-submit-btn{
  width:min(430px,100%);
  height:58px;
  border:0;
  border-radius:999px;
  background:linear-gradient(90deg,#004634,#00614c);
  color:#fff;
  font:700 14px/1 var(--sans);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:70px;
  cursor:pointer;
  box-shadow:0 8px 24px rgba(0,75,59,.12);
  transition:transform .2s, box-shadow .2s, filter .2s;
}
.form-submit-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 30px rgba(0,75,59,.18);
  filter:brightness(1.03);
}

.form-preview{
  padding:25px 0;
}
.form-preview-card{
  border:1px solid var(--line);
  border-radius:8px;
  padding:38px;
  background:#fff;
  box-shadow:0 12px 34px rgba(0,75,59,.05);
}
.form-preview-card h2{
  margin:0 0 26px;
  font-family:var(--serif);
  font-size:30px;
  font-weight:600;
}
.form-preview-card dl{
  margin:0;
}
.form-preview-card dl div{
  display:grid;
  grid-template-columns:180px 1fr;
  gap:20px;
  border-bottom:1px solid var(--line);
  padding:15px 0;
}
.form-preview-card dt{
  font-size:13px;
  font-weight:700;
  color:var(--green);
}
.form-preview-card dd{
  margin:0;
  font-size:13px;
  white-space:pre-wrap;
}
.preview-actions{
  display:flex;
  justify-content:center;
  gap:18px;
  margin-top:28px;
}
.preview-back-btn,
.preview-send-btn{
  min-width:210px;
  min-height:48px;
  border-radius:999px;
  font:700 13px/1 var(--sans);
  cursor:pointer;
}
.preview-back-btn{
  border:1px solid rgba(0,75,59,.45);
  background:#fff;
  color:var(--green);
}
.preview-send-btn{
  border:1px solid var(--green);
  background:var(--green);
  color:#fff;
}
.preview-send-btn span{margin-left:26px}
.demo-note{
  margin:18px 0 0;
  text-align:center;
  color:#8b938f;
  font-size:10px;
}
.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.contact-page-cta{
  padding:25px 0;
}
.contact-page .site-footer{
  margin-top:0;
}

@media (max-width:760px){
  .form-row{
    grid-template-columns:1fr;
    gap:12px;
  }
  .form-label-wrap{
    justify-content:flex-start;
  }
  .name-grid{
    grid-template-columns:1fr;
  }
  .select-wrap{
    max-width:none;
  }
  .form-preview-card{
    padding:26px 20px;
  }
  .form-preview-card dl div{
    grid-template-columns:1fr;
    gap:5px;
  }
  .preview-actions{
    flex-direction:column-reverse;
  }
  .preview-back-btn,
  .preview-send-btn{
    width:100%;
  }
}


/* =========================================
   PRIVACY POLICY PAGE
========================================= */
.privacy-page .sub-hero-photo{
  background:
    linear-gradient(90deg,rgba(0,20,18,.68) 0%,rgba(0,20,18,.38) 35%,rgba(0,20,18,.08) 72%,rgba(0,20,18,0) 100%),
    url("https://images.unsplash.com/photo-1497366216548-37526070297c?auto=format&fit=crop&w=2200&q=88") center 53%/cover no-repeat;
  filter:saturate(.88) brightness(.92)
}

}
.privacy-page .sub-hero h1{
  font-size:clamp(48px,6vw,82px);
}
.privacy-content-section{
  padding:120px 0 80px;
}
.privacy-layout{
  display:grid;
  grid-template-columns:245px minmax(0,1fr);
  gap:90px;
  align-items:start;
}
.privacy-index{
  position:sticky;
  top:118px;
  padding:24px 0;
}
.privacy-index nav{
  display:flex;
  flex-direction:column;
  border-top:1px solid var(--line);
}
.privacy-index a{
  display:grid;
  grid-template-columns:34px 1fr;
  align-items:center;
  gap:10px;
  padding:13px 0;
  border-bottom:1px solid var(--line);
  font-size:12px;
  color:#505a54;
  transition:color .2s, padding-left .2s;
}
.privacy-index a span{
  color:var(--green);
  font-family:var(--display);
  font-size:15px;
}
.privacy-index a:hover{
  color:var(--green);
  padding-left:4px;
}
.privacy-main{
  max-width:780px;
}
.privacy-intro{
  padding:0 0 55px;
  font-size:15px;
  line-height:2.15;
  color:#3f4943;
}
.privacy-intro p{margin:0}
.privacy-item{
  display:grid;
  grid-template-columns:82px 1fr;
  gap:30px;
  padding:58px 0;
  border-top:1px solid var(--line);
  scroll-margin-top:130px;
}
.privacy-number{
  margin:1px 0 0;
  color:rgba(0,75,59,.46);
  font-family:var(--display);
  font-size:36px;
  line-height:1;
}
.privacy-item h2{
  margin:0 0 22px;
  color:var(--green);
  font-family:var(--serif);
  font-size:26px;
  font-weight:600;
  line-height:1.6;
}
.privacy-item p,
.privacy-item li{
  color:#4c5650;
  font-size:14px;
  line-height:2;
}
.privacy-item p{margin:0}
.privacy-item ul{
  margin:18px 0 0;
  padding-left:1.4em;
}
.privacy-item li+li{margin-top:6px}
.privacy-contact-box{
  margin-top:4px;
  padding:22px 26px;
  border-left:3px solid var(--green);
  background:#f5f8f7;
}
.privacy-contact-box p+p{margin-top:6px}
.privacy-contact-box a{
  color:var(--green);
  text-decoration:underline;
  text-underline-offset:3px;
}
.privacy-updated{
  display:flex;
  justify-content:flex-end;
  flex-direction:column;
  align-items:flex-end;
  gap:2px;
  padding:40px 0 0;
  border-top:1px solid var(--line);
}
.privacy-updated p{
  margin:0;
  color:#69716c;
  font-size:12px;
}
.privacy-contact-cta{
  padding:25px 0;
}
.privacy-page .site-footer{
  margin-top:0;
}
@media(max-width:900px){
  .privacy-layout{
    grid-template-columns:1fr;
    gap:35px;
  }
  .privacy-index{
    position:static;
    padding:0;
  }
  .privacy-index nav{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .privacy-index a:nth-child(odd){border-right:1px solid var(--line);padding-right:14px}
  .privacy-index a:nth-child(even){padding-left:14px}
  .privacy-main{max-width:none}
}
@media(max-width:640px){
  .privacy-content-section{padding:80px 0 55px}
  .privacy-page .sub-hero h1{font-size:44px}
  .privacy-index nav{grid-template-columns:1fr}
  .privacy-index a:nth-child(odd),
  .privacy-index a:nth-child(even){
    border-right:0;
    padding-left:0;
    padding-right:0;
  }
  .privacy-item{
    grid-template-columns:1fr;
    gap:15px;
    padding:42px 0;
  }
  .privacy-number{font-size:30px}
  .privacy-item h2{font-size:23px}
}


/* =========================================
   MEMBER PAGE
========================================= */
.member-section{position:relative;padding:90px 0 130px;overflow:hidden;background:#fff}
.member-head{margin-bottom:55px}
.member-head .eyebrow{margin-bottom:10px}
.member-head h1{margin:0;font-family:var(--serif);font-size:clamp(32px,4vw,48px);font-weight:500;line-height:1.4;letter-spacing:.05em;color:#1f2a25}
.member-head>p:last-child{margin:15px 0 0;font-size:13px;color:#69716c}
.member-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:28px;row-gap:78px;position:relative;z-index:1}
.member-card{min-width:0}
.member-photo{aspect-ratio:1/1;overflow:hidden;border-radius:5px;background:#f4f6f5}
.member-photo img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .45s ease}
.member-card:hover .member-photo img{transform:scale(1.025)}
.member-info{padding-top:16px}
.member-role{margin:0 0 4px;font-size:11px;line-height:1.6;color:#313b35}
.member-info h2{margin:0;font-family:var(--serif);font-size:18px;font-weight:500;line-height:1.5;color:#202a24}
.member-en{margin:3px 0 0;color:#b09ead;font-size:11px;line-height:1.5}
.member-geometry{width:430px;height:430px;left:-185px;top:80px;bottom:auto;opacity:.12}
.member-page .contact-wrap{padding-top:20px}
.member-page .site-footer{margin-top:0}
@media(max-width:980px){.member-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:55px 24px}.member-geometry{width:350px;height:350px;left:-170px;top:45px}}
@media(max-width:640px){.member-section{padding:70px 0 95px}.member-head{margin-bottom:38px}.member-grid{grid-template-columns:1fr;row-gap:45px}.member-geometry{width:280px;height:280px;left:-145px;top:30px;opacity:.09}}


/* =========================================
   HEADER DROPDOWN NAV
========================================= */
.nav-dropdown{
  position:relative;
  display:flex;
  align-items:center;
  height:100%;
}

.nav-dropdown-trigger{
  display:inline-flex;
  align-items:center;
  gap:6px;
}

.nav-dropdown-caret{
  display:inline-block;
  font-size:12px;
  line-height:1;
  color:var(--green);
  transform:translateY(-1px);
  transition:transform .2s ease;
}

.nav-dropdown-menu{
  position:absolute;
  top:calc(100% + 12px);
  left:50%;
  transform:translateX(-50%) translateY(-8px);
  width:488px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  background:#fff;
  border:1px solid rgba(0,0,0,.04);
  box-shadow:0 14px 36px rgba(0,0,0,.12);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
  z-index:100;
}

.nav-dropdown-menu::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-14px;
  height:14px;
}

.nav-dropdown-menu a{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:58px;
  padding:14px 18px;
  font-size:13px;
  font-weight:600;
  color:#303733;
  white-space:nowrap;
}

.nav-dropdown-menu a::after{
  display:none!important;
}

.nav-dropdown-menu a:hover{
  color:var(--green);
  background:#f7faf8;
}

.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown:focus-within .nav-dropdown-menu{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateX(-50%) translateY(0);
}

.nav-dropdown:hover .nav-dropdown-caret,
.nav-dropdown:focus-within .nav-dropdown-caret{
  transform:translateY(-1px) rotate(180deg);
}

@media (max-width:980px){
  .nav-dropdown{
    display:block;
    height:auto;
  }

  .global-nav.open .nav-dropdown-trigger{
    width:100%;
    justify-content:space-between;
  }

  .nav-dropdown-menu{
    position:static;
    width:100%;
    display:flex;
    flex-direction:column;
    transform:none;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    box-shadow:none;
    border:0;
    border-top:1px solid var(--line);
    background:#fafcfb;
  }

  .nav-dropdown-menu a{
    justify-content:flex-start;
    min-height:auto;
    padding:12px 16px!important;
    font-size:12px;
  }

  .nav-dropdown-caret{
    display:none;
  }
}

/* =========================================
   RESPONSIVE FINAL TUNING 2026-08
   PC design is preserved; tablet/mobile only.
========================================= */

/* Prevent long text / media from creating horizontal scroll */
html,body{max-width:100%;overflow-x:hidden}
img{height:auto}
main,section,.container{min-width:0}

@media (max-width: 1100px){
  :root{--container:960px}
  .container{width:min(calc(100% - 48px),var(--container))}
  .header-inner{gap:24px}
  .global-nav{gap:22px;font-size:13px}
  .brand{width:220px;flex:0 0 220px}
  .hd-logo{width:100%;max-width:180px}
  .contact-copy{padding:42px 44px}
  .contact-geo{right:-100px;top:-82px;width:300px;height:300px}
}

@media (max-width: 980px){
  :root{--container:820px}
  .container{width:min(calc(100% - 44px),var(--container))}

  /* Header / hamburger */
  .site-header{position:sticky;top:0}
  .header-inner{height:78px;gap:20px}
  .brand{width:auto;flex:0 0 auto;max-width:190px}
  .hd-logo{width:165px;max-width:100%}
  .menu-btn{display:block;position:relative;z-index:103;cursor:pointer;padding:8px}
  .menu-btn span{width:24px;margin:6px auto;transition:transform .2s ease,opacity .2s ease}
  .global-nav{display:none}
  .global-nav.open{
    display:flex;
    position:absolute;
    left:0;right:0;top:78px;
    max-height:calc(100vh - 78px);
    overflow-y:auto;
    background:#fff;
    padding:8px 22px 24px;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    border-top:1px solid var(--line);
    box-shadow:0 18px 40px rgba(0,0,0,.08)
  }
  .global-nav.open>a,
  .global-nav.open>.nav-dropdown>.nav-dropdown-trigger{
    display:flex;
    align-items:center;
    min-height:52px;
    padding:13px 4px;
    border-bottom:1px solid var(--line);
    font-size:14px;
  }
  .global-nav.open a::after{display:none!important}
  .global-nav.open .nav-contact{
    margin-top:18px;
    min-height:50px;
    padding:12px 18px;
    justify-content:space-between;
    border-bottom:1px solid rgba(0,75,59,.45)
  }
  .nav-dropdown{width:100%}
  .nav-dropdown-menu{
    position:static;
    width:100%;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    transform:none;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    box-shadow:none;
    border:0;
    border-bottom:1px solid var(--line);
    background:#f8faf9;
  }
  .nav-dropdown-menu a{
    min-height:46px;
    padding:11px 8px!important;
    justify-content:center;
    text-align:center;
    font-size:12px;
    border-right:1px solid var(--line);
  }
  .nav-dropdown-menu a:last-child{border-right:0}

  /* Common lower-page hero */
  .sub-hero{height:340px;min-height:340px!important}
  .sub-hero h1{font-size:clamp(48px,8vw,68px);margin-bottom:17px}
  .sub-hero-ja{font-size:14px}
  .sub-hero-inner{padding-top:0}

  /* TOP */
  .hero{height:560px}
  .section{padding:110px 0}
  .about-grid{grid-template-columns:1fr;gap:55px}
  .service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
  .service-body{min-height:230px}
  .client-logos{grid-template-columns:repeat(2,1fr)}
  .client-logos span:nth-child(n){border-bottom:1px solid var(--line)}
  .client-logos span:nth-child(2n){border-right:0}
  .news-item{grid-template-columns:105px 105px 1fr 26px;gap:16px}

  /* About */
  .philosophy,.value-section,.outline-section{padding:105px 0}
  .philosophy-first{padding-top:120px}
  .philosophy-grid{grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);gap:42px;min-height:0}
  .philosophy-title{padding-left:0}
  .philosophy-copy{padding-left:38px}
  .value-grid{grid-template-columns:240px 1fr;gap:42px}
  .outline-grid{grid-template-columns:240px 1fr;gap:42px}
  .node-art,.cube-art{display:none}
  .about-page .contact-wrap{padding-top:80px}

  /* Service */
  .service-detail,.service-detail:first-of-type{padding:90px 0}
  .service-detail-grid{grid-template-columns:minmax(0,1fr) minmax(280px,1fr);gap:26px}
  .service-detail-copy{grid-row:auto;border-right:0;border-bottom:1px solid var(--line);padding:0 0 30px;grid-column:1/-1}
  .service-visual-card,.support-card{min-height:290px}
  .support-card{grid-column:auto}
  .service-node,.service-cube{opacity:.08}
  .service-page .contact-wrap{padding-top:80px}

  /* News */
  .news-archive{padding:80px 0}
  .news-filter{align-items:flex-start;gap:24px;padding-bottom:35px}
  .news-filter-buttons{gap:12px}
  .filter-btn{min-width:105px;padding:11px 16px}
  .archive-item{grid-template-columns:100px 105px 1fr 30px;gap:15px;padding:30px 0}
  .archive-copy h2{font-size:16px}

  /* Column */
  .column-archive{padding:80px 0}
  .column-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
  .column-filter .filter-btn{min-width:112px}

  /* Contact */
  .contact-form-section{padding:80px 0}
  .form-row{grid-template-columns:210px 1fr;gap:22px}
  .privacy-note{max-width:100%}

  /* Privacy */
  .privacy-content-section{padding:90px 0 65px}
  .privacy-layout{grid-template-columns:200px minmax(0,1fr);gap:50px}
  .privacy-index{top:105px}

  /* Member */
  .member-section{padding:80px 0 110px}
  .member-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:55px 24px}
  .member-geometry{width:330px;height:330px;left:-170px;top:35px}

  /* CTA / footer */
  .contact-wrap{padding-bottom:90px}
  .contact-panel{grid-template-columns:42% 58%;min-height:235px}
  .contact-copy{padding:36px 38px}
  .contact-copy h2{font-size:30px}
  .contact-btn{max-width:330px}
  .site-footer{padding:52px 0 26px}
  .footer-grid{grid-template-columns:1.25fr repeat(3,1fr);gap:28px}
  .ft-logo{width:180px;max-width:100%}
}

@media (max-width: 760px){
  :root{--container:680px}
  .container{width:min(calc(100% - 36px),var(--container))}

  .header-inner{height:72px}
  .hd-logo{width:145px}
  .global-nav.open{top:72px;max-height:calc(100vh - 72px)}
  .nav-dropdown-menu{grid-template-columns:1fr}
  .nav-dropdown-menu a{justify-content:flex-start;padding:11px 14px!important;border-right:0;border-bottom:1px solid rgba(230,232,231,.75)}
  .nav-dropdown-menu a:last-child{border-bottom:0}

  .sub-hero{height:300px;min-height:300px!important}
  .sub-hero-photo{background-position:62% center!important}
  .sub-hero h1{font-size:48px}

  /* TOP */
  .hero{height:520px}
  .hero-photo{background-position:66% center}
  .hero-content{justify-content:flex-end;padding-bottom:64px}
  .hero h1{font-size:30px;line-height:1.55;letter-spacing:.05em}
  .hero-lead{font-size:13px;line-height:1.9}
  .section{padding:85px 0}
  .about-grid{gap:42px}
  .about-card{padding:28px 24px}
  .about-card article{gap:15px}
  .icon{width:50px;height:50px;flex:0 0 50px}
  .service-grid{grid-template-columns:1fr;gap:18px}
  .service-body{min-height:auto}
  .clients{padding-top:45px;padding-bottom:75px}
  .news{padding-top:45px;padding-bottom:85px}
  .news-item{grid-template-columns:92px 90px 1fr;gap:10px;padding:22px 0}
  .news-item p{grid-column:1/-1;font-size:13px;line-height:1.7}
  .news-item .arrow{display:none}

  /* About */
  .philosophy,.value-section,.outline-section{padding:80px 0}
  .philosophy-first{padding-top:90px}
  .philosophy-grid,.value-grid,.outline-grid{grid-template-columns:1fr;gap:32px}
  .philosophy-copy{border-left:0;border-top:1px solid var(--line);padding:28px 0 0;font-size:13px}
  .philosophy-title h2{font-size:clamp(25px,5vw,30px)}
  .philosophy-no{font-size:48px}
  .outline-section .philosophy-no{font-size:40px}
  .value-list li{font-size:14px}
  .company-table div{grid-template-columns:105px 1fr}
  .about-page .contact-wrap{padding-top:55px}

  /* Service */
  .service-detail,.service-detail:first-of-type{padding:70px 0}
  .service-detail-grid{grid-template-columns:1fr;gap:20px}
  .service-detail-copy{grid-column:auto;padding-bottom:26px}
  .service-detail-copy h2{font-size:23px}
  .service-visual-card,.support-card{min-height:250px}
  .support-card{padding:26px 22px}
  .service-node,.service-cube{display:none}
  .service-page .contact-wrap{padding-top:55px}

  /* News */
  .news-archive{padding:65px 0}
  .news-filter{flex-direction:column;gap:16px;padding-bottom:28px}
  .news-filter-title{min-width:0}
  .news-filter-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:10px}
  .filter-btn,.column-filter .filter-btn{min-width:0;width:100%;padding:11px 8px}
  .archive-item{grid-template-columns:88px 95px 1fr;gap:10px;padding:24px 0}
  .archive-copy{grid-column:1/-1}
  .archive-copy h2{font-size:15px;margin-bottom:6px}
  .archive-copy p{font-size:11.5px}
  .archive-arrow{display:none}
  .pagination{gap:11px;margin-top:36px}

  /* Column */
  .column-archive{padding:65px 0}
  .column-grid{grid-template-columns:1fr;gap:22px}
  .column-card h2{font-size:17px}
  .column-thumb{aspect-ratio:1.7/1}

  /* Contact form */
  .contact-form-section{padding:65px 0}
  .contact-form-heading{padding:0 0 26px}
  .form-row{grid-template-columns:1fr;gap:10px;padding:22px 0}
  .form-label-wrap{justify-content:flex-start;min-height:auto}
  .name-grid{grid-template-columns:1fr;gap:12px}
  .select-wrap{max-width:none}
  .form-control-wrap input,.select-wrap select{height:50px}
  .privacy-note{padding-top:22px}
  .form-submit-btn{gap:38px}
  .form-preview-card{padding:26px 20px}
  .form-preview-card dl div{grid-template-columns:1fr;gap:5px}
  .preview-actions{flex-direction:column-reverse}
  .preview-back-btn,.preview-send-btn{width:100%}

  /* Privacy */
  .privacy-content-section{padding:70px 0 50px}
  .privacy-layout{grid-template-columns:1fr;gap:30px}
  .privacy-index{position:static;padding:0}
  .privacy-index nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .privacy-index a:nth-child(odd){border-right:1px solid var(--line);padding-right:10px}
  .privacy-index a:nth-child(even){padding-left:10px}
  .privacy-item{grid-template-columns:60px 1fr;gap:20px;padding:45px 0}
  .privacy-item h2{font-size:23px}
  .privacy-item p,.privacy-item li{font-size:13px}

  /* Member */
  .member-section{padding:65px 0 90px}
  .member-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:42px 18px}
  .member-info{padding-top:12px}
  .member-info h2{font-size:17px}
  .member-role{font-size:10.5px}
  .member-geometry{width:280px;height:280px;left:-155px;top:20px;opacity:.09}

  /* CTA */
  .contact-wrap{padding:20px 0 70px}
  .contact-panel{grid-template-columns:1fr;border-radius:6px;min-height:0}
  .contact-photo{min-height:210px}
  .contact-copy{padding:32px 24px 36px}
  .contact-copy h2{font-size:27px;position:relative;z-index:1}
  .contact-copy p,.contact-copy .eyebrow,.contact-btn{position:relative;z-index:1}
  .contact-geo{right:-78px;top:-68px;width:250px;height:250px;opacity:.12}
  .contact-btn{max-width:none;width:100%}

  /* Footer */
  .site-footer{padding:46px 0 24px}
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 22px}
  .footer-brand{grid-column:1/-1;margin-bottom:4px}
  .ft-logo{width:175px}
  .footer-bottom{justify-content:flex-start;flex-wrap:wrap;margin-top:35px}
}

@media (max-width: 480px){
  .container{width:calc(100% - 30px)}
  .hd-logo{width:132px}

  .hero{height:490px}
  .hero h1{font-size:28px}
  .sub-hero{height:270px;min-height:270px!important}
  .sub-hero h1{font-size:42px}
  .philosophy-no{font-size:42px}
  .outline-section .philosophy-no{font-size:32px}

  .hero-photo{
    background:
    linear-gradient(90deg,rgba(0,20,18,.68) 0%,rgba(0,20,18,.38) 35%,rgba(0,20,18,.08) 72%,rgba(0,20,18,0) 100%),
  url("./img/fv_sp_1.png") 50% 75% /cover no-repeat;
}


  .section-intro h2,.section-head h2{font-size:29px}
  .geometry{width:240px;height:240px}

  .company-table div{grid-template-columns:1fr;gap:4px}
  .company-table dt{font-size:11px}

  .news-filter-buttons{grid-template-columns:1fr 1fr}
  .archive-item{grid-template-columns:78px 88px 1fr}
  .archive-item time{font-size:11px}
  .archive-tag{font-size:10px;padding:3px 7px}

  .member-grid{grid-template-columns:1fr;row-gap:38px}
  .member-photo{aspect-ratio:1/1}

  .privacy-index nav{grid-template-columns:1fr}
  .privacy-index a:nth-child(odd),.privacy-index a:nth-child(even){border-right:0;padding-left:0;padding-right:0}
  .privacy-item{grid-template-columns:1fr;gap:12px;padding:38px 0}
  .privacy-number{font-size:28px}

  .footer-grid{grid-template-columns:1fr}
  .footer-brand{grid-column:auto}
  .footer-col{padding-top:5px}
}


/* =========================================
   FOOTER LINKS / ANCHOR OFFSET
========================================= */
.footer-col h3 a{
  color:inherit;
  text-decoration:none;
}

.footer-col h3 a:hover{
  color:#fff;
}

.service-detail[id],
.philosophy[id]{
  scroll-margin-top:110px;
}

@media (max-width:640px){
  .service-detail[id],
  .philosophy[id]{
    scroll-margin-top:90px;
  }
}


/* =========================================
   RESKILLING DETAIL PAGE
========================================= */
.reskilling-page .sub-hero-photo{
  background:
    linear-gradient(90deg,rgba(0,28,24,.92) 0%,rgba(0,28,24,.65) 40%,rgba(0,28,24,.18) 72%),
    url("./img/reskilling_1.jpg") center 52%/cover no-repeat;
  filter:saturate(.74) brightness(.70);
}

.reskilling-intro{
  padding:120px 0 135px;
  text-align:center;
}

.reskilling-intro-inner{
  max-width:820px;
}

.reskilling-intro h2{
  margin:0;
  color:var(--green);
  font-family:var(--serif);
  font-size:clamp(30px,4vw,46px);
  font-weight:600;
  line-height:1.45;
  letter-spacing:.04em;
}

.reskilling-intro h2 span{
  display:inline-block;
  margin-top:4px;
}

.reskilling-intro p:last-child{
  margin:38px 0 0;
  color:#4c5650;
  font-size:14px;
  line-height:2.2;
}

.dx-course-section{
  padding:100px 0 150px;
  background-color:#fff;
  background-image:
    linear-gradient(rgba(0,75,59,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(0,75,59,.035) 1px,transparent 1px);
  background-size:28px 28px;
}

.dx-course-heading{
  margin-bottom:90px;
}

.dx-course-heading .eyebrow{
  font-size:clamp(40px,6vw,72px);
  letter-spacing:.02em;
  line-height:1;
  margin-bottom:18px;
}

.dx-course-heading h2{
  margin:0;
  color:var(--green);
  font-size:20px;
  font-weight:700;
}

.dx-course{
  position:relative;
  min-height:590px;
  margin:0 0 125px;
}

.dx-course:last-child{
  margin-bottom:0;
}

.dx-course-image{
  width:68%;
  max-width:840px;
  position:relative;
  z-index:1;
  overflow:hidden;
}

.dx-course-image img{
  width:100%;
  aspect-ratio:1.58/1;
  object-fit:cover;
}

.dx-course-card{
  position:absolute;
  z-index:2;
  width:52%;
  max-width:640px;
  min-height:440px;
  top:48%;
  transform:translateY(-35%);
  background:#fff;
  padding:48px 52px;
  box-shadow:0 14px 35px rgba(22,48,39,.12);
}

.dx-course-right .dx-course-image{
  margin-right:auto;
}

.dx-course-right .dx-course-card{
  right:0;
}

.dx-course-left .dx-course-image{
  margin-left:auto;
}

.dx-course-left .dx-course-card{
  left:0;
}

.dx-course-card h3{
  position:relative;
  margin:0 0 34px;
  padding-left:20px;
  font-size:25px;
  font-weight:700;
  line-height:1.5;
  color:#2e3531;
}

.dx-course-card h3::before{
  content:"";
  position:absolute;
  left:0;
  top:.2em;
  width:5px;
  height:30px;
  border-radius:2px;
  background:linear-gradient(#0f7159,#004b3b);
}

.dx-course-card dl{
  margin:0;
}

.dx-course-card dt{
  margin:0 0 5px;
  font-weight:700;
  font-size:13px;
}

.dx-course-card dd{
  margin:0 0 26px;
  color:#454e49;
  font-size:13px;
  line-height:1.85;
}

.dx-course-card ul{
  list-style:none;
  margin:0;
  padding:0;
}

.dx-course-card li{
  position:relative;
  padding-left:13px;
}

.dx-course-card li::before{
  content:"・";
  position:absolute;
  left:0;
}

.dx-course-meta{
  margin-top:28px;
}

.dx-course-meta p{
  margin:5px 0;
  font-size:13px;
  line-height:1.8;
  color:#3e4742;
}

.dx-course-meta strong{
  font-weight:500;
  margin-right:10px;
}

.dx-details{
  padding:120px 0 150px;
  background:#fbfcfb;
}

.dx-details-head{
  margin-bottom:75px;
}

.dx-details-head .eyebrow{
  font-size:clamp(40px,6vw,72px);
  line-height:1;
  margin-bottom:18px;
  letter-spacing:.02em;
}

.dx-details-head h2{
  margin:0;
  color:var(--green);
  font-size:20px;
}

.dx-details-table{
  max-width:1030px;
  margin:0 auto;
  border-top:1px solid #d8dcda;
}

.dx-details-row{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:38px;
  padding:28px 24px;
  border-bottom:1px solid #d8dcda;
}

.dx-details-row h3{
  margin:0;
  font-size:14px;
  font-weight:700;
}

.dx-details-row p{
  margin:0;
  font-size:13px;
  line-height:1.85;
  color:#434c47;
}

.dx-details-row p+p{
  margin-top:22px;
}

.reskilling-page .contact-wrap{
  padding-top:20px;
}

@media(max-width:980px){
  .reskilling-intro{
    padding:95px 0 105px;
  }

  .dx-course-section{
    padding:85px 0 110px;
  }

  .dx-course{
    min-height:0;
    margin-bottom:90px;
  }

  .dx-course-image{
    width:78%;
  }

  .dx-course-card{
    position:relative;
    width:76%;
    max-width:none;
    min-height:0;
    top:auto;
    transform:none;
    margin-top:-85px;
  }

  .dx-course-right .dx-course-card{
    right:auto;
    margin-left:auto;
  }

  .dx-course-left .dx-course-card{
    left:auto;
    margin-right:auto;
  }

  .dx-details{
    padding:95px 0 115px;
  }
}

@media(max-width:640px){
  .reskilling-intro{
    padding:75px 0 85px;
  }

  .reskilling-intro p:last-child{
    margin-top:28px;
    font-size:13px;
    line-height:2;
  }

  .dx-course-section{
    padding:65px 0 85px;
    background-size:22px 22px;
  }

  .dx-course-heading{
    margin-bottom:55px;
  }

  .dx-course-heading .eyebrow,
  .dx-details-head .eyebrow{
    font-size:42px;
  }

  .dx-course{
    margin-bottom:75px;
  }

  .dx-course-image{
    width:100%;
  }

  .dx-course-image img{
    aspect-ratio:1.35/1;
  }

  .dx-course-card{
    width:calc(100% - 24px);
    margin:-34px auto 0!important;
    padding:30px 22px;
  }

  .dx-course-card h3{
    font-size:21px;
    margin-bottom:26px;
  }

  .dx-course-card dd,
  .dx-course-meta p{
    font-size:12px;
  }

  .dx-details{
    padding:75px 0 90px;
  }

  .dx-details-head{
    margin-bottom:45px;
  }

  .dx-details-row{
    grid-template-columns:1fr;
    gap:12px;
    padding:24px 4px;
  }

  .dx-details-row h3{
    color:var(--green);
  }
}

.service-detail-link{display:inline-flex;align-items:center;gap:18px;margin-top:28px;color:var(--green);font-size:13px;font-weight:700;border-bottom:1px solid rgba(0,75,59,.35);padding-bottom:4px}
.service-detail-link span{transition:transform .2s ease}
.service-detail-link:hover span{transform:translateX(4px)}

.contact-message-success,.contact-message-error{margin:25px 0;padding:16px 20px;border-radius:4px;font-size:13px}.contact-message-success{background:#eef8f4;color:var(--green);border:1px solid rgba(0,75,59,.2)}.contact-message-error{background:#fff5f4;color:#b24d45;border:1px solid rgba(178,77,69,.2)}.entry-content{font-size:14px;line-height:2;color:#39443e}.entry-content p{margin:0 0 1.6em}


/* =========================================
   MW WP FORM / CONTACT KEY 671
========================================= */
.mw-form-wrap{padding:0}
.mw-form-wrap .mw_wp_form{width:100%}
.mw-form-wrap .mw_wp_form form{width:100%}
.mw-form-wrap .mw_wp_form p{margin:0}

.mw-form-wrap .mw_wp_form input[type="text"],
.mw-form-wrap .mw_wp_form input[type="email"],
.mw-form-wrap .mw_wp_form input[type="tel"],
.mw-form-wrap .mw_wp_form input[type="url"],
.mw-form-wrap .mw_wp_form input[type="number"],
.mw-form-wrap .mw_wp_form select,
.mw-form-wrap .mw_wp_form textarea{
  width:100%;
  border:1px solid #d7dcda;
  border-radius:4px;
  background:#fff;
  color:#202925;
  font:400 14px/1.5 var(--sans);
  outline:none;
  transition:border-color .2s,box-shadow .2s,background .2s;
}

.mw-form-wrap .mw_wp_form input[type="text"],
.mw-form-wrap .mw_wp_form input[type="email"],
.mw-form-wrap .mw_wp_form input[type="tel"],
.mw-form-wrap .mw_wp_form input[type="url"],
.mw-form-wrap .mw_wp_form input[type="number"],
.mw-form-wrap .mw_wp_form select{
  min-height:48px;
  padding:0 16px;
}

.mw-form-wrap .mw_wp_form textarea{
  min-height:145px;
  padding:15px 16px;
  resize:vertical;
}

.mw-form-wrap .mw_wp_form input:focus,
.mw-form-wrap .mw_wp_form select:focus,
.mw-form-wrap .mw_wp_form textarea:focus{
  border-color:rgba(0,75,59,.7);
  box-shadow:0 0 0 3px rgba(0,75,59,.07);
}

.mw-form-wrap .mw_wp_form .error{
  margin-top:7px;
  color:#c54f47;
  font-size:11px;
  line-height:1.5;
}

.mw-form-wrap .mw_wp_form input[type="submit"]{
  appearance:none;
  cursor:pointer;
  font-family:var(--sans);
  transition:transform .2s,box-shadow .2s,background .2s;
}

.mw-form-wrap .mw_wp_form input[name="submitConfirm"],
.mw-form-wrap .mw_wp_form input[type="submit"]:not([name="submitBack"]){
  display:block;
  width:min(430px,100%);
  min-height:58px;
  margin:38px auto 0;
  border:0;
  border-radius:999px;
  background:linear-gradient(90deg,var(--green),var(--green-2));
  color:#fff;
  font-size:14px;
  font-weight:700;
  box-shadow:0 8px 24px rgba(0,75,59,.12);
}

.mw-form-wrap .mw_wp_form input[name="submitBack"]{
  display:block;
  width:min(300px,100%);
  min-height:48px;
  margin:20px auto 0;
  border:1px solid rgba(0,75,59,.45);
  border-radius:999px;
  background:#fff;
  color:var(--green);
  font-size:13px;
  font-weight:700;
}

.mw-form-wrap .mw_wp_form_confirm .error{display:none}

.mw-form-wrap .form-row{
  display:grid;
  grid-template-columns:260px 1fr;
  gap:25px;
  align-items:start;
  padding:25px 0;
  border-bottom:1px solid var(--line);
}

@media(max-width:760px){
  .mw-form-wrap .form-row{
    grid-template-columns:1fr;
    gap:12px;
  }
}


/* =========================================
   MW WP FORM 671 - CONTACT DESIGN FIX
   Match original static contact page
========================================= */
.contact-page .mw-form-wrap{
  width:100%;
}

.contact-page .mw-form-wrap .mw_wp_form{
  width:100%;
}

/* MW WP Form sometimes outputs p/br wrappers */
.contact-page .mw-form-wrap .mw_wp_form p{
  margin:0;
  text-align: center;
}

.contact-page .mw-form-wrap .mw_wp_form br{
  display:none;
}

/* Existing form-row layout */
.contact-page .mw-form-wrap .form-row{
  display:grid;
  grid-template-columns:260px minmax(0,1fr);
  gap:25px;
  align-items:start;
  padding:25px 0;
  border-bottom:1px solid var(--line);
}

.contact-page .mw-form-wrap .form-label-wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  min-height:48px;
}

.contact-page .mw-form-wrap .form-label-text{
  font-size:14px;
  font-weight:700;
}

.contact-page .mw-form-wrap .required-badge,
.contact-page .mw-form-wrap .optional-badge{
  flex:0 0 auto;
}

/* Field column */
.contact-page .mw-form-wrap .form-control-wrap{
  width:100%;
  min-width:0;
}

/* Inputs */
.contact-page .mw-form-wrap input[type="text"],
.contact-page .mw-form-wrap input[type="email"],
.contact-page .mw-form-wrap input[type="tel"],
.contact-page .mw-form-wrap select,
.contact-page .mw-form-wrap textarea{
  width:100%;
  max-width:none;
  box-sizing:border-box;
  border:1px solid #d7dcda;
  border-radius:4px;
  background:#fff;
  color:#202925;
  font:400 14px/1.5 var(--sans);
  outline:none;
  box-shadow:none;
}

.contact-page .mw-form-wrap input[type="text"],
.contact-page .mw-form-wrap input[type="email"],
.contact-page .mw-form-wrap input[type="tel"],
.contact-page .mw-form-wrap select{
  height:48px;
  padding:0 16px;
}

.contact-page .mw-form-wrap textarea{
  min-height:145px;
  padding:15px 16px;
  resize:vertical;
}

.contact-page .mw-form-wrap select{
  appearance:auto;
  max-width:430px;
}

.contact-page .mw-form-wrap input:focus,
.contact-page .mw-form-wrap select:focus,
.contact-page .mw-form-wrap textarea:focus{
  border-color:rgba(0,75,59,.7);
  box-shadow:0 0 0 3px rgba(0,75,59,.07);
}

/* Telephone field: allow MW WP Form's 3-part tel shortcode to sit neatly */
.contact-page .mw-form-wrap .mwform-tel-field{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
}

.contact-page .mw-form-wrap .mwform-tel-field input{
  width:120px;
  max-width:calc((100% - 40px)/3);
}

.contact-page .mw-form-wrap .mwform-tel-field span{
  flex:0 0 auto;
}

/* Validation */
.contact-page .mw-form-wrap .error{
  display:block;
  margin:7px 0 0;
  color:#d65d55;
  font-size:11px;
  line-height:1.5;
}

/* Button area */
.contact-page .mw-form-wrap .form-submit,
.contact-page .mw-form-wrap .submit-wrap,
.contact-page .mw-form-wrap .mwform-submit-area{
  padding-top:38px;
  text-align:center;
}

/* Confirm + Send */
.contact-page .mw-form-wrap input[type="submit"],
.contact-page .mw-form-wrap button[type="submit"]{
  appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:320px;
  min-height:58px;
  padding:14px 34px;
  border:0;
  border-radius:999px;
  background:linear-gradient(90deg,var(--green),var(--green-2));
  color:#fff;
  font:700 14px/1 var(--sans);
  letter-spacing:.02em;
  cursor:pointer;
  box-shadow:0 8px 24px rgba(0,75,59,.13);
  transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease;
  margin-top: 25px;
}

.contact-page .mw-form-wrap input[type="submit"]:hover,
.contact-page .mw-form-wrap button[type="submit"]:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 30px rgba(0,75,59,.18);
}

/* Back button */
.contact-page .mw-form-wrap input[name="submitBack"]{
  min-width:180px;
  min-height:50px;
  margin-right:14px;
  border:1px solid rgba(0,75,59,.5);
  background:#fff;
  color:var(--green);
  box-shadow:none;
}

/* If buttons are directly output without wrapper, keep them centered */
.contact-page .mw-form-wrap .mw_wp_form > form > input[type="submit"],
.contact-page .mw-form-wrap .mw_wp_form > form > button[type="submit"]{
  display:flex;
  margin:38px auto 0;
}

/* Confirmation screen */
.contact-page .mw-form-wrap .mw_wp_form_confirm .form-control-wrap{
  min-height:48px;
  display:flex;
  align-items:center;
  color:#303a34;
  font-size:14px;
  line-height:1.85;
}

.contact-page .mw-form-wrap .mw_wp_form_confirm .mwform-tel-field{
  display:block;
}

/* Complete screen */
.contact-page .mw-form-wrap .mw_wp_form_complete{
  padding:45px 0 20px;
  text-align:center;
}

.contact-page .mw-form-wrap .mw_wp_form_complete p{
  margin:0 auto;
  max-width:700px;
  color:#4f5853;
  font-size:14px;
  line-height:2;
}

/* Responsive */
@media(max-width:760px){
  .contact-page .mw-form-wrap .form-row{
    grid-template-columns:1fr;
    gap:12px;
    padding:22px 0;
  }

  .contact-page .mw-form-wrap .form-label-wrap{
    min-height:0;
  }

  .contact-page .mw-form-wrap select{
    max-width:none;
  }

  .contact-page .mw-form-wrap .mwform-tel-field{
    gap:6px;
  }

  .contact-page .mw-form-wrap .mwform-tel-field input{
    width:calc((100% - 32px)/3);
    max-width:none;
    padding:0 10px;
  }

  .contact-page .mw-form-wrap input[type="submit"],
  .contact-page .mw-form-wrap button[type="submit"]{
    width:100%;
    min-width:0;
  }

  .contact-page .mw-form-wrap input[name="submitBack"]{
    margin:0 0 12px;
  }
}
