/* =========================================================
   Ha:Neul（ハヌル）宮原・深層リンパドレナージュ＆よもぎ蒸しサロン — 22件目 見本HP
   顔: 紙#F9F2ED(paper・紅み生成り) × 墨#2E2620(ink・あたたかい墨茶) × よもぎセージ#6B7A56(accent)
   タイポ: Murecho(見出し・欧文) / Noto Sans JP(本文)
   モーション: 呼吸(Breath・署名) / R15 全画面ズーム(index) / R17 積み重ねカード×2群(service) / R1 リビール
   安全弁: html.no-js→js / 2.5秒js-fallbackタイマー / prefers-reduced-motionで全transform停止でも読める
   コントラスト実測: accent(#6B7A56)はpaper上4.17:1で本文文字には不足 → 文字用途はaccent-deep(#52604A・6.05:1)を使用
   ========================================================= */
:root{
  --paper:      #F9F2ED;
  --paper-deep: #F0E1D9;
  --card:       #FDF9F6;
  --ink:        #2E2620;
  --ink-soft:   #6B5D53;  /* paper上5.72:1・paper-deep上4.97:1、いずれも4.5以上=実測OK */
  --line:       #E6D5CC;
  --accent:     #6B7A56;      /* よもぎのくすみセージ。ボタン背景・アイコン・線に限定使用（白文字4.62:1でOK） */
  --accent-deep:#52604A;      /* 文字用の濃いセージ。paper上6.05:1／paper-deep上5.26:1で本文可 */
  --sky-glow-a: #E7F0F3;      /* 呼吸モーション専用グラデ */
  --sky-glow-b: #CFE0E6;
  --mincho:"Murecho",sans-serif; /* 見出し・欧文とも同一ファミリーで統一 */
  --gothic:"Noto Sans JP",sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  font-family:var(--gothic);background:var(--paper);color:var(--ink);
  line-height:1.9;font-size:15.5px;-webkit-font-smoothing:antialiased;overflow-wrap:anywhere;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--accent-deep)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{
  outline:2px solid var(--accent-deep);outline-offset:3px;border-radius:2px}
main:focus{outline:none}
[id]{scroll-margin-top:82px}
h1,h2,h3{text-wrap:balance;font-weight:500;font-family:var(--mincho);letter-spacing:.01em}
.skip-link{position:absolute;left:-9999px;top:0;z-index:200;background:var(--ink);color:var(--paper);padding:.7em 1.3em;font-size:.9rem}
.skip-link:focus{left:0}
.wrap{max-width:1180px;margin:0 auto;padding:0 22px}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---------- header（常時 濃色地・透過事故防止） ---------- */
.site-header{position:sticky;top:0;z-index:80;background:rgba(46,38,32,.92);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-bottom:1px solid rgba(249,242,237,.08)}
.header-in{max-width:1180px;margin:0 auto;padding:13px 22px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{display:flex;flex-direction:column;text-decoration:none;color:var(--paper);line-height:1.3}
.brand .b-main{font-family:var(--mincho);font-size:1.4rem;letter-spacing:.05em}
.brand .b-small{font-size:.62rem;letter-spacing:.08em;color:#CBB8AC}
.gnav ul{display:flex;gap:2px;list-style:none;flex-wrap:wrap}
.gnav a{display:block;padding:.5em .68em;text-decoration:none;color:var(--paper);font-size:.8rem;letter-spacing:.02em;border-radius:3px;position:relative;white-space:nowrap}
.gnav a::after{content:"";position:absolute;left:.68em;right:.68em;bottom:.3em;height:1.5px;background:var(--sky-glow-b);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.gnav a:hover::after,.gnav a[aria-current="page"]::after{transform:scaleX(1)}
@media (prefers-reduced-motion:reduce){.gnav a::after{transition:none}}
@media (max-width:860px){
  .header-in{flex-wrap:wrap;padding:10px 16px}
  .gnav{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .gnav ul{flex-wrap:nowrap}
  .brand .b-main{font-size:1.18rem}
}

/* ---------- section common ---------- */
.section{padding:86px 22px}
.section.tight{padding:54px 22px}
.section.paper{background:var(--paper)}
.section.deep{background:var(--paper-deep)}
.section-in{max-width:1180px;margin:0 auto}
.sec-label{font-family:var(--mincho);font-weight:600;font-size:.86rem;letter-spacing:.14em;color:var(--accent-deep);display:block;margin-bottom:.8em;text-transform:uppercase}
.sec-title{font-size:clamp(1.4rem,3vw,2rem);line-height:1.65;color:var(--ink);margin-bottom:.7em}
.sec-lead{max-width:36em;color:var(--ink-soft)}
.prose{max-width:36em}
.prose p+p{margin-top:1.15em}
.note{font-size:.86rem;color:var(--ink-soft)}
.page-head{background:var(--paper-deep);padding:58px 22px 42px;border-bottom:1px solid var(--line)}
.page-head-in{max-width:1180px;margin:0 auto}
.page-head h1{font-size:clamp(1.55rem,3.4vw,2.2rem);margin-bottom:.5em}
.page-head p{color:var(--ink-soft);max-width:38em;font-size:.96rem}

/* ---------- ボタン ---------- */
.btn{display:inline-flex;align-items:center;gap:.4em;padding:.85em 1.8em;border-radius:4px;font-size:.9rem;letter-spacing:.03em;
  text-decoration:none;border:1px solid transparent;cursor:pointer;font:inherit;
  transition:transform .12s ease-out,background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease)}
.btn:active{transform:scale(.96)}
@media (prefers-reduced-motion:reduce){
  .btn{transition:background .01ms linear,color .01ms linear,border-color .01ms linear}
  .btn:active{transform:none;filter:brightness(.94)}
}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent-deep)}
.btn-line{background:#fff;color:var(--accent-deep);border-color:var(--accent)}
.btn-line:hover{background:var(--accent-deep);color:#fff;border-color:var(--accent-deep)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--accent-deep);color:var(--accent-deep)}
.btn-row{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:1.7em}

/* ============================================================
   呼吸（Breath）★署名モーション
   ヒーロー背後・クロージング直前の最大2箇所のみ。transform/opacityのみでGPU軽量。
   reduced-motionでは中間の静止値に固定（animation:none）。
   ============================================================ */
.breath{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.breath::before{
  content:"";position:absolute;left:50%;top:50%;width:min(70vw,780px);height:min(70vw,780px);
  transform:translate(-50%,-50%) scale(1);border-radius:50%;
  background:radial-gradient(circle,var(--sky-glow-a) 0%,var(--sky-glow-b) 46%,transparent 72%);
  opacity:.5;filter:blur(2px);
  animation:breathe 10s ease-in-out infinite;
}
@keyframes breathe{
  0%,100%{transform:translate(-50%,-50%) scale(1);opacity:.5}
  50%{transform:translate(-50%,-50%) scale(1.035);opacity:.7}
}
@media (prefers-reduced-motion:reduce){
  .breath::before{animation:none;transform:translate(-50%,-50%) scale(1);opacity:.6}
}

/* ---------- hero(index) ---------- */
.hero{position:relative;overflow:hidden;color:#fff}
.hero-media{position:absolute;inset:0;z-index:0}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 38%}
.hero-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(46,38,32,.42) 0%,rgba(46,38,32,.5) 55%,rgba(46,38,32,.72) 100%)}
.hero-in{position:relative;z-index:2;max-width:1180px;margin:0 auto;padding:min(20vh,150px) 22px 70px}
.hero .eyebrow{font-family:var(--mincho);letter-spacing:.22em;font-size:.75rem;color:var(--sky-glow-b);text-transform:uppercase;display:inline-block;margin-bottom:1.1em}
.hero h1{font-weight:500;font-size:clamp(1.7rem,4.6vw,2.9rem);line-height:1.55;letter-spacing:.02em;max-width:19em;text-shadow:0 2px 20px rgba(20,15,10,.35)}
.hero .h-sub{max-width:32em;color:#F1E7DF;margin-top:1.2em;font-size:.98rem;line-height:2}

/* ============================================================
   R15 全画面ズーム（Full-Bleed Zoom）
   小さく置いた写真がスクロールで画面いっぱいに広がる。台帳★エース(86bbd61a)を使用。
   安全弁: no-js/js-fallback/reduced-motionでは track高さをautoに戻し、写真は最初から静止全画面。
   ============================================================ */
.zoom-track{position:relative;height:220vh}
.zoom-stage{position:sticky;top:0;height:100vh;display:grid;place-items:center;overflow:hidden;background:var(--ink)}
.zoom-media{width:100%;height:100%;position:absolute;inset:0;transform:scale(.42);border-radius:22px;will-change:transform,border-radius;transform-origin:center center}
.zoom-media img{width:100%;height:100%;object-fit:cover}
.zoom-cap{position:relative;z-index:2;text-align:center;color:#fff;text-shadow:0 2px 20px rgba(20,15,10,.5);padding:0 22px;transition:opacity .4s var(--ease)}
.zoom-cap .sec-label{color:var(--sky-glow-b)}
.zoom-cap h2{font-size:clamp(1.5rem,4vw,2.4rem);color:#fff}
.zoom-cap p{margin-top:.7em;color:#F1E7DF;font-size:.95rem;max-width:28em;margin-inline:auto}
html.no-js .zoom-track,html.js-fallback .zoom-track{height:auto}
html.no-js .zoom-stage,html.js-fallback .zoom-stage{position:static;height:64vh}
html.no-js .zoom-media,html.js-fallback .zoom-media{transform:none;border-radius:0}
@media (prefers-reduced-motion:reduce){
  .zoom-track{height:auto}
  .zoom-stage{position:static;height:64vh}
  .zoom-media{transform:none !important;border-radius:0}
}
@media (max-width:600px){.zoom-stage{height:78vh}html.no-js .zoom-stage,html.js-fallback .zoom-stage{height:56vh}@media (prefers-reduced-motion:reduce){.zoom-stage{height:56vh}}}

/* ---------- facts ---------- */
.facts{background:var(--paper-deep);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.facts-in{max-width:1180px;margin:0 auto;padding:34px 22px 40px;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.facts .f b{font-family:var(--mincho);font-size:clamp(1.2rem,2.4vw,1.5rem);color:var(--accent-deep);display:block;line-height:1.2;margin-bottom:.3em}
.facts .f span{font-size:.82rem;color:var(--ink-soft)}
@media (max-width:700px){.facts-in{grid-template-columns:1fr}}

/* ---------- 3つの核 ---------- */
.core-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.core-card{background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden;display:flex;flex-direction:column}
.core-card .core-media{aspect-ratio:4/3;background:var(--paper-deep);position:relative;overflow:hidden}
.core-card .core-media img{width:100%;height:100%;object-fit:cover}
.core-card .core-motif{width:100%;height:100%;display:grid;place-items:center;background:linear-gradient(155deg,var(--paper-deep),var(--card))}
.core-card .core-motif svg{width:44%;height:44%;color:var(--accent)}
.core-card .core-body{padding:22px 22px 26px}
.core-card .n{font-family:var(--mincho);font-size:.78rem;letter-spacing:.14em;color:var(--accent-deep)}
.core-card h3{font-size:1.12rem;margin:.4em 0 .5em}
.core-card p{font-size:.9rem;color:var(--ink-soft)}
@media (max-width:900px){.core-grid{grid-template-columns:1fr}}

/* ---------- quote / voice(抑制的) ---------- */
.voice-pick{text-align:center}
.voice-pick blockquote{max-width:30em;margin:0 auto}
.voice-pick p{font-family:var(--mincho);font-size:clamp(1.02rem,2vw,1.22rem);color:var(--ink);line-height:2.15}
.voice-pick .attr{margin-top:1.4em;font-size:.8rem;color:var(--ink-soft)}

/* ---------- 2周年 ---------- */
.anniv{text-align:center}
.anniv .badge{display:inline-block;font-family:var(--mincho);font-size:.82rem;letter-spacing:.12em;color:var(--accent-deep);border:1px solid var(--accent);border-radius:999px;padding:.4em 1.3em;margin-bottom:1.1em}

/* ---------- card-grid（汎用カード群） ---------- */
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px}
.card{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:26px 24px}
.card h3{font-size:1.05rem;color:var(--ink);margin-bottom:.5em}
.card p{font-size:.9rem;color:var(--ink-soft)}

/* ---------- 価格表(roster・menu.html) ---------- */
.roster{max-width:56em}
.roster-row{display:grid;grid-template-columns:1fr auto;gap:8px 1.4em;align-items:baseline;padding:1.1em .1em;border-bottom:1px solid var(--line)}
.roster-row .n{font-size:1rem;color:var(--ink)}
.roster-row .n small{display:block;color:var(--ink-soft);font-size:.84rem;margin-top:.35em;font-weight:400;max-width:42em;line-height:1.8}
.roster-row .p{font-family:var(--mincho);font-size:1.02rem;white-space:nowrap;color:var(--accent-deep)}
.roster-note{margin-top:1.4em}
.menu-cut{display:flex;gap:22px;align-items:flex-start;margin:44px 0;flex-wrap:wrap}
.menu-cut img{width:180px;border-radius:6px;flex:0 0 auto}
.menu-cut .menu-cut-text{flex:1 1 260px}
.menu-cut .menu-cut-text .tag{display:inline-block;font-size:.74rem;letter-spacing:.08em;color:var(--accent-deep);border:1px solid var(--accent);border-radius:999px;padding:.22em .9em;margin-bottom:.7em}
@media (max-width:560px){.menu-cut img{width:140px}}

/* ============================================================
   R17 積み重ねカード（複数グループ対応: [data-stack-group]）
   ============================================================ */
.stack{max-width:880px;margin:52px auto 0;padding:0 22px 8vh}
.stack-card{
  position:sticky;border-radius:10px;padding:clamp(26px,4vw,46px);
  min-height:44vh;display:flex;flex-direction:column;justify-content:center;
  color:#fff;background:linear-gradient(155deg,var(--accent),var(--accent-deep));
  box-shadow:0 -10px 32px rgba(60,50,40,.14);transform-origin:center top;overflow:hidden
}
.stack-card:nth-child(1){top:9vh}
.stack-card:nth-child(2){top:12vh}
.stack-card:nth-child(3){top:15vh}
.stack-card:nth-child(4){top:18vh}
.stack-card.photo{background:none;position:relative}
.stack-card.photo .stack-photo{position:absolute;inset:0}
.stack-card.photo .stack-photo img{width:100%;height:100%;object-fit:cover;object-position:center 30%}
.stack-card.photo .stack-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(155deg,rgba(46,38,32,.86),rgba(82,96,74,.72))}
.stack-card .stack-body{position:relative;z-index:2}
.stack-card .n{font-family:var(--mincho);font-size:.8rem;letter-spacing:.16em;color:var(--sky-glow-b)}
.stack-card h3{font-size:clamp(1.2rem,2.8vw,1.5rem);margin:.5em 0 .5em;color:#fff}
.stack-card p{font-size:.92rem;color:#F1E7DF;max-width:32em}
.stack-card .stack-tag{display:inline-block;margin-top:.9em;font-size:.72rem;letter-spacing:.06em;color:#fff;opacity:.85;border:1px solid rgba(255,255,255,.5);border-radius:999px;padding:.2em .8em}

html.no-js .stack-card,html.js-fallback .stack-card{position:relative;top:auto!important;margin-bottom:16px;transform:none!important}
@media (prefers-reduced-motion:reduce){
  .stack-card{position:relative;top:auto!important;margin-bottom:16px;transform:none!important;opacity:1!important}
}

/* ---------- 空間紹介(service.html) ---------- */
.space-feature{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center}
.space-feature figure{margin:0;border-radius:8px;overflow:hidden}
.space-feature figcaption{margin-top:.7em;font-size:.82rem;color:var(--ink-soft)}
@media (max-width:860px){.space-feature{grid-template-columns:1fr;gap:22px}}

/* ---------- FAQ（details排他アコーディオン） ---------- */
.faq{max-width:48em}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;position:relative;padding:1.15em 2.3em 1.15em .1em;font-family:var(--mincho);font-size:1rem;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:.4em;top:50%;width:9px;height:9px;
  border-right:1.5px solid var(--accent-deep);border-bottom:1.5px solid var(--accent-deep);
  transform:translateY(-70%) rotate(45deg);transition:transform .3s var(--ease)}
.faq details[open] summary::after{transform:translateY(-30%) rotate(225deg)}
.faq .faq-a{padding:0 2.3em 1.35em .1em;font-size:.92rem;color:var(--ink-soft);max-width:40em}
@media (prefers-reduced-motion:reduce){
  .faq summary::after{transition:none}
}

/* ---------- form ---------- */
.form{max-width:600px}
.form .field{margin-bottom:22px}
.form label{display:block;font-size:.9rem;font-weight:500;margin-bottom:.4em}
.form .req{color:var(--accent-deep);font-size:.75rem;margin-left:.4em}
.form input[type="text"],.form input[type="tel"],.form input[type="email"],.form textarea{
  width:100%;padding:.75em .9em;border:1px solid #C9B7AC;border-radius:4px;background:#fff;font:inherit;font-size:16px;color:var(--ink)}
.form textarea{min-height:150px;resize:vertical}
.hp-field{position:absolute;left:-9999px;height:0;overflow:hidden}

/* ---------- 地図 ---------- */
.map-frame{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--card)}
.map-frame iframe{width:100%;height:320px;border:0;display:block}

/* ---------- footer ---------- */
.site-footer{background:var(--ink);color:#CBB8AC;padding:58px 22px 40px}
.footer-in{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.1fr 1fr auto;gap:36px}
.site-footer .f-brand{font-family:var(--mincho);font-size:1.4rem;color:var(--paper)}
.site-footer .f-name{font-size:.82rem;margin-top:.35em}
.site-footer address{font-style:normal;font-size:.86rem;margin-top:1.1em;line-height:1.95}
.site-footer address b{color:var(--paper);font-weight:500;font-family:var(--mincho)}
.site-footer a{color:#CBB8AC}
.site-footer a:hover{color:var(--sky-glow-b)}
.f-sns{margin-top:1em;display:flex;gap:14px}
.f-note{font-size:.78rem;opacity:.9;margin-top:1.2em;max-width:34em}
.f-nav ul{list-style:none}
.f-nav a{display:block;padding:.28em 0;text-decoration:none;font-size:.86rem}
.copyright{max-width:1180px;margin:40px auto 0;font-size:.74rem;opacity:.85}
@media (max-width:900px){.footer-in{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.footer-in{grid-template-columns:1fr}}

/* ---------- スマホ sticky CTA（RESERVA主／LINE／電話の3本・AD案§6準拠） ---------- */
.sticky-cta{display:none}
@media (max-width:760px){
  .sticky-cta{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:90;gap:1px;
    background:var(--line);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
  .sticky-cta a{flex:1;text-align:center;padding:.9em .4em;text-decoration:none;font-size:.78rem;letter-spacing:.01em;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15em}
  .sticky-cta .s1{background:var(--accent);color:#fff;flex:1.3}
  .sticky-cta .s2{background:#06C755;color:#fff}
  .sticky-cta .s3{background:var(--ink);color:var(--paper)}
  body{padding-bottom:calc(58px + env(safe-area-inset-bottom))}
  input,textarea,select,button{scroll-margin-bottom:80px}
}

/* ---------- R1 リビール ---------- */
.rv{opacity:1;transform:none}
html.motion-ready .rv{opacity:0;transform:translateY(14px);transition:opacity .65s var(--ease),transform .65s var(--ease)}
html.motion-ready .rv.on{opacity:1;transform:none}
html.motion-ready .rv-d1{transition-delay:.07s}html.motion-ready .rv-d2{transition-delay:.14s}html.motion-ready .rv-d3{transition-delay:.21s}
html.js-fallback .rv{opacity:1!important;transform:none!important;transition:opacity .4s ease}
@media (prefers-reduced-motion:reduce){html.motion-ready .rv{opacity:1;transform:none;transition:none}}

/* 下層カード群のstagger登場（R1拡張。安全弁は共通） */
html.motion-ready .core-grid.rv,html.motion-ready .card-grid.rv,html.motion-ready .roster.rv,
html.motion-ready .gallery.rv,html.motion-ready .faq.rv{opacity:1;transform:none}
html.motion-ready .core-grid.rv .core-card,
html.motion-ready .card-grid.rv .card,
html.motion-ready .roster.rv .roster-row,
html.motion-ready .faq.rv details{opacity:0;transform:translateY(16px);transition:opacity .55s var(--ease),transform .55s var(--ease)}
html.motion-ready .core-grid.rv.on .core-card,
html.motion-ready .card-grid.rv.on .card,
html.motion-ready .roster.rv.on .roster-row,
html.motion-ready .faq.rv.on details{opacity:1;transform:none}
html.motion-ready .core-grid.rv.on .core-card:nth-child(2),html.motion-ready .card-grid.rv.on .card:nth-child(2),html.motion-ready .roster.rv.on .roster-row:nth-child(2),html.motion-ready .faq.rv.on details:nth-child(2){transition-delay:.08s}
html.motion-ready .core-grid.rv.on .core-card:nth-child(3),html.motion-ready .card-grid.rv.on .card:nth-child(3),html.motion-ready .roster.rv.on .roster-row:nth-child(3),html.motion-ready .faq.rv.on details:nth-child(3){transition-delay:.16s}
html.motion-ready .card-grid.rv.on .card:nth-child(4),html.motion-ready .roster.rv.on .roster-row:nth-child(4),html.motion-ready .faq.rv.on details:nth-child(4){transition-delay:.24s}
html.motion-ready .roster.rv.on .roster-row:nth-child(n+5),html.motion-ready .faq.rv.on details:nth-child(n+5){transition-delay:.3s}
html.no-js .core-card,html.js-fallback .core-card,html.no-js .card,html.js-fallback .card,
html.no-js .roster-row,html.js-fallback .roster-row,html.no-js .faq details,html.js-fallback .faq details{opacity:1!important;transform:none!important}
@media (prefers-reduced-motion:reduce){
  html.motion-ready .core-grid.rv .core-card,html.motion-ready .card-grid.rv .card,
  html.motion-ready .roster.rv .roster-row,html.motion-ready .faq.rv details{opacity:1!important;transform:none!important;transition:none}
}

/* ---------- responsive base ---------- */
@media (max-width:600px){
  body{font-size:15px}
  .section{padding:58px 16px}
  .section.tight{padding:42px 16px}
  .hero-in{padding:min(16vh,110px) 16px 46px}
  .facts-in{padding:26px 16px 36px}
  .space-feature{gap:18px}
}
