/* FV and header only. Other sections keep their existing palette and typography. */
:root{
  --color-primary:#008A4B;
  --color-primary-dark:#003E2E;
  --color-heading:#002E24;
  --color-body:#202725;
  --color-muted:#697471;
  --color-bg:#FCFDFB;
  --color-bg-soft:#F4F7F5;
  --color-border:#DCE6E0;
  --color-accent:#F4B73E;
}
.site-header{height:76px;padding-inline:20px;border-bottom:0;background:var(--color-bg)}
.site-header .brand{gap:8px}
.site-header .brand-symbol{width:34px;height:34px}
.site-header .brand-word{width:96px;height:35px}
.site-header .menu-toggle{width:44px;min-height:44px;flex-direction:column;gap:6px;padding:0;color:var(--color-primary-dark);font-size:10px;font-weight:700;line-height:1;letter-spacing:0}
.site-header .menu-toggle__lines{position:relative;width:30px;height:22px;border-block:1.5px solid currentColor}
.site-header .menu-toggle__lines::before,.site-header .menu-toggle__lines::after{content:"";position:absolute;top:9px;left:0;width:30px;height:1.5px;background:currentColor}
.site-header .menu-toggle__lines::after{display:none}
.site-header .menu-toggle[aria-expanded=true] .menu-toggle__lines{height:22px;border-color:transparent;transform:none}
.site-header .menu-toggle[aria-expanded=true] .menu-toggle__lines::before{transform:rotate(45deg)}
.site-header .menu-toggle[aria-expanded=true] .menu-toggle__lines::after{display:block;transform:rotate(-45deg)}
.site-header .mobile-nav{top:76px;background:var(--color-bg)}
.hero-reference{position:relative;isolation:isolate;overflow:hidden;background:var(--color-bg);color:var(--color-body);font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;line-break:strict;overflow-wrap:normal;word-break:normal}
.hero-reference::before{content:"";position:absolute;z-index:-1;top:135px;right:-310px;width:700px;height:700px;background:var(--color-bg-soft);mask:url(assets/logo-symbol.svg) center/contain no-repeat;-webkit-mask:url(assets/logo-symbol.svg) center/contain no-repeat;pointer-events:none}
.hero-reference__inner{position:relative;width:calc(100% - 40px);max-width:1440px;padding-top:25px;padding-bottom:38px}
.hero-reference .hero-content{position:relative;z-index:1;min-width:0}
.hero-reference .hero-content>.eyebrow{margin-bottom:21px;font-size:13px;font-weight:700;line-height:1.5;letter-spacing:0;color:var(--color-primary)}
.hero-reference .hero-title{font-family:inherit;font-size:clamp(38px,12.5vw,46px);font-weight:800;line-height:1.18;letter-spacing:-.04em;color:var(--color-heading);margin:0}
.hero-title__opening{display:block}
.hero-title__ending,.hero-copy-unit{white-space:nowrap}
.hero-title__highlight{position:relative;isolation:isolate;display:inline-block;color:var(--color-primary)}
.hero-title__highlight::after{content:"";position:absolute;z-index:-1;left:-1px;right:-1px;bottom:.055em;height:8px;background:var(--color-accent)}
.hero-reference .hero-message{padding:0;border:0;margin-top:22px;font-family:inherit;font-size:19px;font-weight:600;line-height:1.65;letter-spacing:0;color:var(--color-body)}
.hero-reference .hero-message--lead{margin-top:24px;font-size:24px;font-weight:750;line-height:1.5;letter-spacing:-.025em;color:var(--color-heading)}
.hero-reference .hero-description{margin-top:18px;font-size:15px;font-weight:400;line-height:1.8;letter-spacing:0;color:var(--color-muted)}
.hero-reference .hero-actions{display:flex;flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:10px;margin-top:26px}
.hero-reference .hero-actions .button{position:relative;width:100%;min-width:0;height:56px;min-height:56px;padding:10px 42px 10px 22px;border-radius:999px;font-family:inherit;font-size:16px;font-weight:700;line-height:1.4;letter-spacing:0;white-space:nowrap}
.hero-reference .button-primary{background:var(--color-primary);border:1.5px solid var(--color-primary);color:#FFF}
.hero-reference .button-outline{background:#FFF;border:1.5px solid var(--color-primary);color:var(--color-primary)}
.hero-reference .hero-actions svg{position:absolute;right:21px;top:50%;transform:translateY(-50%);width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.hero-benefits{list-style:none;margin:25px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.hero-benefits li{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;min-width:0;padding-inline:5px}
.hero-benefits li+li{border-left:1px solid var(--color-border)}
.hero-benefits__icon{display:flex;align-items:center;justify-content:center;flex:none;width:40px;height:40px;border-radius:50%;background:#E1F0E7;color:var(--color-primary)}
.hero-benefits__icon svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}
.hero-benefits__icon .hero-benefits__bars{fill:currentColor;stroke:none}
.hero-benefits h2{margin:0;font-family:inherit;font-size:clamp(11.5px,3.5vw,13px);font-weight:700;line-height:1.5;letter-spacing:0;color:var(--color-heading);white-space:nowrap}
.hero-benefits p{margin-top:5px;font-size:11px;font-weight:400;line-height:1.5;color:var(--color-muted)}
.hero-geometry{position:absolute;z-index:0;top:200px;right:-214px;width:490px;opacity:.18;pointer-events:none;user-select:none}
.hero-geometry img{width:100%;height:auto}
@media(max-width:1079px){
  .site-header .desktop-nav{display:none}
  .site-header .menu-toggle{display:flex!important}
  .site-header .mobile-nav:not([hidden]){display:flex!important}
  .site-header .mobile-nav[hidden]{display:none!important}
}
@media(min-width:640px) and (max-width:1079px){
  .site-header{padding-inline:40px}
  .hero-reference__inner{width:calc(100% - 80px);max-width:740px;padding-top:38px;padding-bottom:48px}
  .hero-reference .hero-title{font-size:54px}
  .hero-title__opening{display:inline}
  .hero-reference .hero-message--lead{font-size:28px}
  .hero-reference .hero-message:not(.hero-message--lead){font-size:21px}
  .hero-reference .hero-description{font-size:16px}
  .hero-reference .hero-actions{max-width:550px;flex-direction:row}
  .hero-reference .hero-actions .button{flex:1}
  .hero-benefits{max-width:550px}
  .hero-benefits li{flex-direction:row;justify-content:center;gap:10px;text-align:left}
  .hero-benefits h2{font-size:13px}
  .hero-benefits p{font-size:11px}
  .hero-geometry{top:45px;right:-220px;width:640px;opacity:.16}
}
@media(min-width:1080px){
  .site-header{height:94px;padding-inline:max(48px,calc((100% - 1440px)/2))}
  .site-header .brand{gap:10px}
  .site-header .brand-symbol{width:44px;height:44px}
  .site-header .brand-word{width:122px;height:44px}
  .hero-reference__inner{display:grid;grid-template-columns:minmax(0,55fr) minmax(0,45fr);align-items:center;width:calc(100% - 96px);padding-top:54px;padding-bottom:56px}
  .hero-reference::before{top:-160px;right:-255px;width:1150px;height:1150px}
  .hero-reference .hero-content>.eyebrow{position:relative;padding-left:43px;font-size:15px;letter-spacing:.025em;margin-bottom:26px}
  .hero-reference .hero-content>.eyebrow::before{content:"";position:absolute;left:0;top:.75em;width:28px;height:1.5px;background:var(--color-primary)}
  .hero-reference .hero-title{font-size:clamp(48px,4.2vw,68px);font-weight:800;line-height:1.15}
  .hero-title__opening{display:inline}
  .hero-title__highlight::after{height:10px}
  .hero-reference .hero-message--lead{font-size:clamp(28px,2.4vw,38px);line-height:1.5;margin-top:29px}
  .hero-reference .hero-message:not(.hero-message--lead){font-size:clamp(20px,1.6vw,24px);line-height:1.65;margin-top:23px}
  .hero-reference .hero-description{font-size:16px;line-height:1.8;margin-top:18px}
  .hero-reference .hero-actions{flex-direction:row;gap:12px;margin-top:25px;max-width:660px}
  .hero-reference .hero-actions .button{flex:1;font-size:15px}
  .hero-benefits{max-width:660px;margin-top:26px}
  .hero-benefits li{flex-direction:row;align-items:center;justify-content:center;text-align:left;gap:10px;padding-inline:10px}
  .hero-benefits li:first-child{justify-content:flex-start;padding-left:0}
  .hero-benefits__icon{width:44px;height:44px}
  .hero-benefits__icon svg{width:33px;height:33px}
  .hero-benefits h2{font-size:13px}
  .hero-benefits p{font-size:11px;line-height:1.65;margin-top:4px}
  .hero-benefits p br{display:none}
  .hero-geometry{position:relative;grid-column:2;grid-row:1;align-self:center;top:auto;right:auto;width:118%;margin-left:-5%;opacity:1}
}
@media(min-width:1440px){
  .hero-reference .hero-content>.eyebrow{font-size:16px}
  .hero-reference .hero-actions .button{font-size:16px}
  .hero-benefits h2{font-size:14px}
  .hero-benefits p{font-size:12px}
}
