*{margin:0;padding:0;box-sizing:border-box}
html{font-size:14px;scroll-behavior:smooth}
:root{
  --ink:#0B1512; --ink2:#12201B; --paper:#FAF9F5; --paper2:#F1EFE8; --surface:#FFFFFF;
  --sub:#4F5C55; --faint:#8B968F; --line:#E2E0D8;
  --green:#1B6B54; --green-deep:#0E4A3A; --green-tint:#EDF4F0; --green-tint2:#E1EDE6; --lime:#C8F25E; --red:#D8402A;
  --radius:14px;
}
body{font-family:'Noto Sans JP',sans-serif;background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased}
.disp{font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif}
.num{font-family:'Manrope','Noto Sans JP',sans-serif}
.wrap{max-width:1280px;margin:0 auto}
a{color:var(--green);text-decoration:none}
a:hover{color:var(--green-deep)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.hoverable{transition:transform .2s,box-shadow .2s,border-color .2s}
.hoverable:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(11,21,18,.09)}
.navlink:hover{background:rgba(11,21,18,.06);color:var(--ink)}
.btn-lime{background:var(--lime);color:var(--ink);display:inline-block;text-align:center;transition:filter .2s,transform .2s}
.btn-lime:hover{filter:brightness(1.06);transform:translateY(-2px);color:var(--ink)}
.btn-dark{background:var(--ink);color:#fff;transition:background .2s}
.btn-dark:hover{background:var(--green-deep);color:#fff}
.qcell{transition:background .2s,color .2s}
.qcell:hover{background:var(--green-tint);color:var(--green-deep)}
.voice-card{transition:background .2s,border-color .2s}
.voice-card:hover{background:var(--green-tint);border-color:var(--green);color:var(--green-deep)}
.row{transition:background .18s,padding-left .18s}
.row:hover{background:var(--green-tint);padding-left:26px}
.chip{padding:6px 14px;border-radius:99px;border:1.5px solid var(--line);background:var(--surface);font-size:11.5px;font-weight:600;color:var(--sub);cursor:pointer;font-family:inherit;transition:all .18s}
.chip:hover{border-color:var(--ink)}
.chip.on{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:800}
.hero-h1{font-size:clamp(34px,5.6vw,74px)}
.hero-photo{position:absolute;top:-3%;bottom:-3%;left:-3%;right:-3%;background-size:cover;background-position:center 34%;filter:saturate(1.05) brightness(1.02)}
.hero-photo-fade{position:absolute;inset:0;background:linear-gradient(100deg,rgba(255,255,255,.95) 0%,rgba(255,255,255,.84) 24%,rgba(255,255,255,.4) 48%,rgba(255,255,255,.1) 74%,rgba(255,255,255,0) 100%),linear-gradient(to bottom,rgba(255,255,255,.4) 0%,rgba(255,255,255,0) 20%,rgba(255,255,255,0) 74%,rgba(250,249,245,.9) 100%);pointer-events:none}
.hero-slogan{font-size:clamp(44px,8vw,116px)}
.hero-sub{font-size:clamp(13.5px,1.15vw,15.5px)}
@keyframes kb{0%{transform:scale(1) translate3d(0,0,0)}100%{transform:scale(1.06) translate3d(-1%,-.6%,0)}}
.kenburns{animation:kb 34s ease-in-out infinite alternate}
.img-wrap{overflow:hidden}
.img-live{transition:transform 6s ease-out}
.hoverable:hover .img-live{transform:scale(1.06)}
::-webkit-scrollbar{width:7px;height:7px}
::-webkit-scrollbar-thumb{background:#C3C9C2;border-radius:4px}
@media (max-width:1080px){
  .nav-links{display:none!important}
  .qbar{grid-template-columns:repeat(4,1fr)!important}
  .init-grid,.pillar-grid,.guide-grid{grid-template-columns:repeat(2,1fr)!important}
  .vision-grid,.news-layout,.slogan-grid,.voice-grid,.foot-grid,.promo-grid{grid-template-columns:1fr!important}
  .road{grid-template-columns:repeat(2,1fr)!important}
}
@media (max-width:860px){
  .hero-photo-fade{background:linear-gradient(100deg,rgba(255,255,255,.95) 0%,rgba(255,255,255,.88) 40%,rgba(255,255,255,.6) 72%,rgba(255,255,255,.3) 100%)}
}
@media (max-width:680px){
  .qbar{grid-template-columns:repeat(2,1fr)!important}
  .init-grid,.pillar-grid,.guide-grid,.road,.promo-cards{grid-template-columns:1fr!important}
  .row-author{display:none}
}
header{background:rgba(250,249,245,.9)!important}
@media (prefers-reduced-motion:reduce){.kenburns{animation:none}}

.ripple-layer{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.ripple-layer canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
@media (max-width:1080px){.foot-contacts{grid-template-columns:repeat(2,1fr)!important}}
@media (max-width:640px){.foot-contacts{grid-template-columns:1fr!important}}

.hero-slide{opacity:0;transition:opacity 2.4s ease-in-out}
.hero-slide.on{opacity:1}
@media (prefers-reduced-motion:reduce){.hero-slide{transition:opacity .4s linear}}
