/* Did you know? – generated by src/facts.py */
.facts{overflow:hidden}
.facts-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:32px}
.facts-head>div:first-child{max-width:640px}.facts-head h2{margin-bottom:.3em}.facts-head p.muted{margin:0}
.facts-nav{display:flex;align-items:center;gap:12px;flex:none}
.fcount{font:600 .9rem/1 var(--font);color:var(--muted);min-width:4.5em;text-align:center;font-variant-numeric:tabular-nums}
.fbtn{width:46px;height:46px;border-radius:50%;border:0;background:var(--surface);color:var(--green);font-size:1.2rem;cursor:pointer;box-shadow:inset 0 0 0 1.5px var(--line),var(--shadow);transition:background .2s,color .2s}
.fbtn:hover:not(:disabled){background:var(--green);color:#fff}.fbtn:disabled{opacity:.35;cursor:default}
.facts-track{list-style:none;margin:0;padding:6px 2px 22px;display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.facts-track:focus-visible{outline:3px solid var(--accent);outline-offset:4px;border-radius:var(--r)}
.fact{position:relative;flex:0 0 calc((100% - 40px)/3);scroll-snap-align:start;background:var(--surface);border-radius:var(--r);padding:30px 28px 26px;box-shadow:var(--shadow);overflow:hidden;border-top:3px solid var(--accent)}
.fact-glyph{position:absolute;top:10px;right:14px;font:400 3.4rem/1 "Hiragino Mincho ProN","Yu Mincho","Noto Serif JP","Noto Serif CJK JP",serif;color:var(--green);opacity:.08;white-space:nowrap;pointer-events:none}
.fact-num{font:700 .74rem/1.4 var(--font);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 .8em}
.fact h3{font-size:1.25rem;margin:0 0 .55em;padding-right:2.5em}.fact p:last-child{margin:0;color:var(--muted);font-size:.98rem;line-height:1.65}
@media (max-width:980px){.fact{flex-basis:calc((100% - 20px)/2)}}
@media (max-width:640px){.facts-head{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:22px}.fact{flex-basis:86%;padding:26px 22px 22px}.facts-track{gap:14px;margin-right:-24px;padding-right:24px}}
@media (prefers-reduced-motion:reduce){.facts-track{scroll-behavior:auto}}
/* One price highlight – generated by src/build.py */
.oneprice{display:flex;gap:18px;align-items:flex-start;background:var(--accent-soft);border-left:4px solid var(--accent);border-radius:var(--r-sm);padding:22px 24px;margin:4px 0 24px}
.oneprice .ibox{width:44px;height:44px;border-radius:12px;background:#fff}
.oneprice .op-title{font:500 1.25rem/1.25 var(--serif);color:var(--green);margin:0 0 .35em}
.oneprice p{margin:0}.oneprice p+p{margin-top:.4em}.oneprice .op-note{color:var(--muted);font-size:.93rem;margin-top:.6em}
.op-wrap{margin-top:28px}.op-wrap .oneprice{margin:0}
@media (max-width:640px){.oneprice{padding:18px;gap:14px}.oneprice .ibox{width:38px;height:38px}}
/* Home banner – text on brand green, no photo (generated by src/build.py) */
.home-banner{background:var(--green);color:#fff;padding:80px 0 128px;position:relative;isolation:isolate;overflow:hidden}
.home-banner::before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(900px 480px at 88% 10%,rgba(255,255,255,.08),transparent 60%),radial-gradient(700px 400px at 0% 100%,rgba(139,74,43,.22),transparent 60%)}
.home-banner::after{content:"";position:absolute;z-index:-1;right:-90px;top:50%;width:520px;height:500px;transform:translateY(-50%);background:url(img/logo-light.png) center/contain no-repeat;opacity:.06;pointer-events:none}
.hb-in{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:64px;align-items:center}
.home-banner h1{color:#fff;font-size:clamp(2.5rem,5vw,4.2rem);margin-bottom:.3em}
.home-banner .lead{color:rgba(255,255,255,.88);font-size:1.18rem;max-width:56ch}.home-banner .eyebrow{color:#e9c9a8}
.hb-card{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-radius:22px;padding:28px 28px 24px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.hb-card h2{color:#fff;font-size:1.35rem;margin:0 0 14px}
.hb-card ul{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.hb-card li{display:flex;gap:14px;align-items:flex-start;color:rgba(255,255,255,.9);font-size:.98rem;line-height:1.5}
.hb-card li .i{width:20px;height:20px;margin-top:2px;color:#e9c9a8}
.hb-card a{color:#fff;font-weight:600}
.hb-note{display:flex;gap:12px;align-items:flex-start;margin:16px 0 0;padding:12px 14px;border-radius:12px;background:rgba(233,201,168,.14);border:1px solid rgba(233,201,168,.35);color:#fff;font-size:.93rem;line-height:1.5}
.hb-note .i{width:18px;height:18px;margin-top:2px;color:#e9c9a8}
.foot-find{font-size:.9rem;opacity:.85;margin:.5em 0}
.find-note{background:var(--accent-soft);border-left:3px solid var(--accent);border-radius:10px;padding:10px 14px;font-size:.93rem;margin:12px 0 0}
.finding-us p{margin:0}
.route-map{margin:1rem 0 0}.route-map img{display:block;width:100%;height:auto;border-radius:10px;border:1px solid #ddd}.route-map figcaption{font-size:.9rem;margin-top:.4rem;opacity:.85}
@media (max-width:1100px){.hb-in{grid-template-columns:1fr;gap:40px}.home-banner{padding:64px 0 112px}.hb-card{max-width:560px}}
@media (max-width:640px){.home-banner{padding:44px 0 88px}.home-banner .lead{font-size:1.05rem}.hb-card{padding:22px 20px 18px}.home-banner::after{width:340px;height:330px;right:-120px;top:auto;bottom:-60px;transform:none}}

/* footer credit */
.foot-bottom{gap:16px;align-items:center}.foot-bottom a[href*='webfreshstudio']{opacity:.8}
@media (max-width:600px){.foot-bottom{flex-wrap:wrap;gap:6px 16px}.foot-bottom>a{white-space:nowrap}}
