/* かたみね社会保険労務士事務所 共通スタイル（色・文字・ヘッダー・フッター・トップページ） */
:root{
  --paper:#F5F0E3;
  --paper-raised:#EDE6D3;
  --paper-deep:#E6DCC3;
  --tea:#7A9B5E;
  --tea-strong:#55753E;
  --tea-tint:#A9C68C;
  --forest:#33432B;
  --forest-soft:#45593A;
  --amber:#D9643F;
  --amber-strong:#B5472A;
  --ink:#3A332B;
  --ink-soft:#6E6454;
  --ink-faint:#A0937C;
  --line:#DCD0B2;
  --focus:#55753E;
  --shadow:0 10px 28px -14px rgba(58,51,41,.28);
  --radius:18px;
  --container:1120px;
  --font-display:'Zen Maru Gothic', 'Hiragino Maru Gothic ProN', sans-serif;
  --font-body:'Zen Kaku Gothic New', 'Hiragino Kaku Gothic ProN', sans-serif;
  --font-accent:'M PLUS Rounded 1c', 'Zen Maru Gothic', sans-serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#211D16;
    --paper-raised:#2A2519;
    --paper-deep:#332C1D;
    --tea:#93BB72;
    --tea-strong:#B6D99A;
    --tea-tint:#4E6A3C;
    --forest:#16200F;
    --forest-soft:#223119;
    --amber:#E8835C;
    --amber-strong:#F2A077;
    --ink:#F3ECDC;
    --ink-soft:#CBC0A8;
    --ink-faint:#948A72;
    --line:#3D3524;
    --shadow:0 10px 28px -14px rgba(0,0,0,.5);
  }
}
:root[data-theme="dark"]{
  --paper:#211D16;
  --paper-raised:#2A2519;
  --paper-deep:#332C1D;
  --tea:#93BB72;
  --tea-strong:#B6D99A;
  --tea-tint:#4E6A3C;
  --forest:#16200F;
  --forest-soft:#223119;
  --amber:#E6A465;
  --amber-strong:#F0BB85;
  --ink:#F3ECDC;
  --ink-soft:#CBC0A8;
  --ink-faint:#948A72;
  --line:#3D3524;
  --shadow:0 10px 28px -14px rgba(0,0,0,.5);
}

*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--font-body); line-height:1.85; font-size:16px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
img{ max-width:100%; }
a{ color:inherit; }
:focus-visible{ outline:2px solid var(--focus); outline-offset:3px; border-radius:4px; }
.wrap{ max-width:var(--container); margin:0 auto; padding:0 24px; }
h1,h2,h3{ font-family:var(--font-display); text-wrap:balance; word-break:keep-all; overflow-wrap:anywhere; margin:0; font-weight:900; }
section{ padding:clamp(56px,9vw,100px) 0; position:relative; }
#pain,#why,#voices,#access{ background:var(--paper-raised); }
#service-labor,#service-rpo,#service-apps{ scroll-margin-top:92px; }
.eyebrow{
  font-family:var(--font-accent); font-size:13px; font-weight:700;
  letter-spacing:.08em; color:var(--tea-strong);
  display:inline-flex; align-items:center; gap:8px; max-width:100%;
}
.eyebrow::before{ content:"🍵"; font-size:14px; line-height:1; }
.section-head{ margin-bottom:clamp(30px,5vw,52px); max-width:44em; }
.section-head h2{ font-size:clamp(25px,3.4vw,33px); margin-top:12px; line-height:1.5; }
.section-head p{ color:var(--ink-soft); margin-top:14px; font-size:15px; max-width:36em; }

/* ---------- wavy divider ---------- */
.wave-divider{ display:block; width:100%; height:48px; margin-bottom:-1px; }
.wave-divider path{ fill:var(--paper); }
.wave-divider.to-raised path{ fill:var(--paper-raised); }
.wave-divider.to-paper path{ fill:var(--paper); }
.wave-divider.to-forest path{ fill:var(--forest); }

/* ---------- header ---------- */
.site-header{
  position:sticky; top:0; z-index:50;
  background:color-mix(in srgb, var(--paper) 90%, transparent);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  border-bottom:2px solid var(--line);
}
.site-header .wrap{ display:flex; align-items:center; justify-content:space-between; gap:20px; padding:14px 24px; }
.brand{ display:flex; align-items:center; gap:10px; text-decoration:none; font-family:var(--font-display); font-weight:700; font-size:clamp(15px,2.4vw,18px); white-space:nowrap; }
.brand-mono{ display:flex; align-items:center; justify-content:center; flex:none; background:#F6F1E6; border-radius:10px; padding:4px 8px; border:1px solid var(--line); }
.brand-mono img{ height:28px; width:auto; display:block; }
.nav-toggle{
  display:none; flex:none; width:42px; height:42px; align-items:center; justify-content:center;
  border:2px solid var(--line); border-radius:50%; background:var(--paper); cursor:pointer; padding:0;
}
.nav-toggle svg{ width:19px; height:19px; color:var(--forest); }
nav.primary-nav{ display:flex; align-items:center; gap:4px; font-family:var(--font-accent); font-size:14px; font-weight:700; flex-wrap:wrap; justify-content:flex-end; }
nav.primary-nav > a{ text-decoration:none; color:var(--ink-soft); white-space:nowrap; padding:9px 14px; border-radius:100px; transition:background .18s, color .18s; }
nav.primary-nav > a:hover{ background:var(--paper-deep); color:var(--tea-strong); }
.nav-item{ position:relative; }
.nav-item > a{ display:inline-flex; align-items:center; gap:5px; text-decoration:none; color:var(--ink-soft); white-space:nowrap; padding:9px 14px; border-radius:100px; transition:background .18s, color .18s; }
.nav-item > a:hover{ background:var(--paper-deep); color:var(--tea-strong); }
.nav-item .caret{ font-size:10px; color:var(--ink-faint); transition:transform .2s; }
.nav-item:hover .caret, .nav-item:focus-within .caret{ transform:translateY(1px); color:var(--tea-strong); }
.nav-dropdown{
  position:absolute; top:100%; left:50%; transform:translate(-50%,-4px);
  min-width:230px; margin-top:0; padding:10px 6px 6px;
  background:var(--paper); border:2px solid var(--line); border-radius:16px; overflow:hidden;
  box-shadow:var(--shadow);
  display:flex; flex-direction:column;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .15s ease, transform .15s ease; z-index:60;
}
.nav-item:hover .nav-dropdown, .nav-item:focus-within .nav-dropdown{ opacity:1; visibility:visible; pointer-events:auto; transform:translate(-50%,0); }
.nav-dropdown a{ text-decoration:none; color:var(--ink-soft); font-size:13.5px; font-weight:500; border-radius:10px; padding:10px 14px; white-space:nowrap; transition:background .15s, color .15s; }
.nav-dropdown a:hover{ background:var(--paper-raised); color:var(--tea-strong); }

@media (max-width:900px){
  .nav-toggle{ display:flex; }
  .site-header .wrap{ flex-wrap:wrap; }
  .brand{ white-space:normal; flex:1 1 auto; min-width:0; }
  nav.primary-nav{
    display:none; flex-direction:column; align-items:stretch; justify-content:flex-start;
    width:100%; gap:2px; margin-top:14px; padding-top:14px; border-top:2px solid var(--line);
  }
  nav.primary-nav.is-open{ display:flex; }
  nav.primary-nav > a, .nav-item > a{ width:100%; padding:13px 10px; border-radius:12px; justify-content:space-between; }
  .nav-item{ width:100%; }
  .nav-dropdown{
    position:static; min-width:0; width:100%; margin:2px 0 6px; padding:4px; transform:none;
    opacity:1; visibility:visible; pointer-events:auto; box-shadow:none; border:none; background:var(--paper-raised);
  }
}

/* ---------- hero ---------- */
.hero{ padding:clamp(48px,9vw,96px) 0 clamp(36px,7vw,72px); overflow:hidden; }
.hero .wrap{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(28px,5vw,56px); align-items:center; }
.hero h1{ font-size:clamp(32px,4.8vw,52px); line-height:1.4; max-width:15em; }
.hero h1 em{ font-style:normal; color:var(--tea-strong); }
.hero .lead{ max-width:32em; font-size:clamp(15px,1.6vw,17px); color:var(--ink-soft); margin-top:18px; }
.hero-cta{ display:flex; flex-wrap:wrap; gap:14px; margin-top:26px; }
.btn{
  display:inline-flex; align-items:center; gap:8px; font-family:var(--font-accent); font-weight:700; font-size:14.5px;
  padding:15px 28px; border-radius:100px; text-decoration:none; cursor:pointer; border:2px solid transparent;
  transition:transform .18s ease, box-shadow .18s ease, background .18s, color .18s;
}
.btn-primary{ background:var(--tea-strong); color:#FFFDF6; box-shadow:var(--shadow); }
.btn-primary:hover{ transform:translateY(-2px) rotate(-.4deg); background:var(--forest-soft); }
.btn-ghost{ border-color:var(--tea); color:var(--tea-strong); background:var(--paper); }
.btn-ghost:hover{ border-color:var(--tea-strong); background:var(--paper-deep); }
.cred-row{ display:flex; flex-wrap:wrap; gap:9px; margin-top:22px; }
.cred-pill{ font-family:var(--font-accent); font-size:12px; font-weight:700; color:var(--tea-strong); border:1.5px solid var(--tea-tint); border-radius:100px; padding:6px 14px; background:var(--paper-raised); }

.hero-art{ position:relative; display:flex; align-items:center; justify-content:center; min-height:320px; }
.hero-art svg{ width:100%; max-width:380px; height:auto; }
.steam{ transform-origin:bottom center; }
@media (prefers-reduced-motion: no-preference){
  .steam-a{ animation:steamRise 3.2s ease-in-out infinite; }
  .steam-b{ animation:steamRise 3.6s ease-in-out infinite .4s; }
  .steam-c{ animation:steamRise 3s ease-in-out infinite .8s; }
}
@keyframes steamRise{
  0%{ transform:translateY(2px) scaleY(.92); opacity:.35; }
  50%{ transform:translateY(-6px) scaleY(1.05); opacity:.85; }
  100%{ transform:translateY(2px) scaleY(.92); opacity:.35; }
}

/* ---------- location band ---------- */
.location-band{ position:relative; margin:0; height:clamp(200px,34vw,380px); overflow:hidden; }
.location-band img{ width:100%; height:100%; object-fit:cover; object-position:center 55%; display:block; filter:saturate(1.05) sepia(.12) hue-rotate(-6deg) brightness(.95) contrast(1.02); }
.location-band::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg, color-mix(in srgb, var(--forest) 80%, transparent) 0%, color-mix(in srgb, var(--forest) 18%, transparent) 48%, transparent 74%); }
.location-band figcaption{ position:absolute; left:0; right:0; bottom:0; padding:clamp(20px,4vw,38px) clamp(20px,5vw,48px); max-width:var(--container); margin:0 auto; display:flex; flex-direction:column; gap:8px; }
.location-band figcaption .eyebrow{ color:#D7E6C4; }
.location-band figcaption .eyebrow::before{ filter:none; }
.location-band figcaption p{ color:#FBF6EC; font-family:var(--font-display); font-weight:700; font-size:clamp(16px,2.4vw,20px); line-height:1.7; max-width:24em; text-wrap:balance; }

/* ---------- pain ---------- */
.pain-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:16px; }
.pain-item{ background:var(--paper); padding:26px 24px; display:flex; flex-direction:column; gap:10px; border:2px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }
.pain-item .num{ font-family:var(--font-accent); color:var(--amber-strong); font-weight:800; font-size:13px; }
.pain-item p{ font-size:14.5px; color:var(--ink-soft); margin:0; }
.pain-note{ margin-top:26px; font-family:var(--font-display); font-size:18px; color:var(--tea-strong); }

/* ---------- three cups ---------- */
.cups-list{ display:flex; flex-direction:column; gap:0; }
.cup-article{
  display:grid; grid-template-columns:minmax(130px,170px) 1fr; gap:clamp(20px,4vw,40px);
  padding:clamp(30px,5vw,48px) 0; border-bottom:2px dashed var(--line);
  opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease;
}
.cup-article > *{ min-width:0; }
.cup-article:first-child{ padding-top:0; }
.cup-article:last-child{ border-bottom:none; }
.cup-article.is-visible{ opacity:1; transform:translateY(0); }
.cup-icon{ width:58px; height:58px; border-radius:50%; background:var(--paper-raised); border:2px solid var(--tea-tint); display:flex; align-items:center; justify-content:center; margin-bottom:14px; flex:none; }
.cup-icon svg{ width:30px; height:30px; color:var(--tea-strong); }
.cup-no{ font-family:var(--font-accent); font-weight:800; color:var(--amber-strong); font-size:15px; letter-spacing:.02em; }
.cup-no span{ display:block; font-family:var(--font-accent); font-size:11.5px; color:var(--ink-faint); letter-spacing:.1em; margin-top:6px; font-weight:600; }
.cup-body h3{ font-size:clamp(20px,2.6vw,25px); margin-bottom:12px; color:var(--forest); }
.cup-body p{ color:var(--ink-soft); font-size:15px; margin:0 0 16px; max-width:38em; }
.cup-tags{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.cup-tags li{ font-family:var(--font-accent); font-size:12.5px; font-weight:700; color:var(--tea-strong); background:var(--paper-raised); border:1.5px solid var(--tea-tint); border-radius:100px; padding:6px 13px; }

/* ---------- app blueprint ---------- */
.blueprint{ background:var(--paper-raised); }
.app-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:16px; margin-top:8px; }
.app-card{ background:var(--paper); border:2px solid var(--line); border-radius:var(--radius); padding:22px 20px; display:flex; flex-direction:column; gap:8px; box-shadow:var(--shadow); opacity:0; transform:translateY(14px); transition:opacity .5s ease, transform .5s ease; }
.app-card.is-visible{ opacity:1; transform:translateY(0); }
.app-card .tag{ font-family:var(--font-accent); font-size:10.5px; font-weight:800; letter-spacing:.08em; color:var(--amber-strong); }
.app-card h4{ font-family:var(--font-display); font-size:16px; margin:2px 0 2px; color:var(--forest); font-weight:700; }
.app-card p{ font-size:13.5px; color:var(--ink-soft); margin:0; }

.price-banner{ margin-top:32px; background:var(--paper); border:2px solid var(--tea-tint); border-radius:var(--radius); padding:26px 28px; display:flex; flex-wrap:wrap; gap:16px; align-items:center; justify-content:flex-start; min-width:0; }
.price-banner > *{ min-width:0; }
.price-banner .figure{ display:flex; flex-wrap:wrap; align-items:baseline; gap:4px; font-family:var(--font-display); color:var(--forest); max-width:100%; }
.price-banner .yen{ font-size:20px; font-weight:700; }
.price-banner .amount{ font-size:clamp(30px,4vw,40px); font-weight:900; font-variant-numeric:tabular-nums; }
.price-banner .suffix{ font-size:14px; color:var(--ink-soft); font-weight:500; margin-left:4px; }
.price-banner .note{ font-size:13.5px; color:var(--ink-soft); margin:0; max-width:26em; }

/* ---------- statement band ---------- */
.statement-band{ background:radial-gradient(ellipse at 20% 20%, var(--forest-soft) 0%, var(--forest) 60%); color:#F3ECDC; }
.statement-band .eyebrow{ color:#B9D79A; justify-content:center; }
.statement-band .eyebrow::before{ filter:none; }
.statement-band .wrap{ text-align:center; display:flex; flex-direction:column; align-items:center; gap:18px; }
.statement-band h2{ font-size:clamp(24px,3.6vw,36px); max-width:20em; color:#FBF6EC; line-height:1.5; }
.statement-stats{ display:flex; flex-wrap:wrap; gap:clamp(28px,6vw,64px); justify-content:center; margin-top:10px; }
.stat{ display:flex; flex-direction:column; align-items:center; gap:6px; }
.stat .num{ font-family:var(--font-accent); font-size:clamp(30px,4.6vw,44px); font-weight:800; color:#CFE6B4; font-variant-numeric:tabular-nums; }
.stat .label{ font-size:12.5px; color:#D9CFB8; letter-spacing:.04em; }

/* ---------- strengths ---------- */
.strength-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:20px; }
.strength{ display:flex; flex-direction:column; gap:12px; opacity:0; transform:translateY(14px); transition:opacity .5s ease, transform .5s ease; }
.strength.is-visible{ opacity:1; transform:translateY(0); }
.icon-ring{ width:46px; height:46px; border-radius:50%; background:var(--paper); border:2px solid var(--tea-tint); display:flex; align-items:center; justify-content:center; flex:none; }
.icon-ring svg{ width:23px; height:23px; color:var(--tea-strong); }
.strength h3{ font-size:18px; color:var(--forest); }
.strength p{ font-size:14.5px; color:var(--ink-soft); margin:0; }

/* ---------- profiles ---------- */
.profile{ display:grid; grid-template-columns:190px 1fr; gap:clamp(24px,5vw,44px); padding:clamp(28px,4vw,40px) 0; border-bottom:2px dashed var(--line); opacity:0; transform:translateY(14px); transition:opacity .6s ease, transform .6s ease; }
.profile > *{ min-width:0; }
.profile.is-visible{ opacity:1; transform:translateY(0); }
.profile:last-child{ border-bottom:none; }
.seal{ width:160px; height:160px; border-radius:50%; overflow:hidden; border:3px solid var(--tea-tint); display:flex; align-items:center; justify-content:center; background:var(--paper-raised); font-family:var(--font-display); font-size:46px; font-weight:700; color:var(--tea-strong); flex:none; }
.seal img{ width:100%; height:100%; object-fit:cover; }
.profile-body h3{ font-size:19px; margin-bottom:2px; color:var(--forest); }
.profile-body .role{ font-size:13px; color:var(--amber-strong); font-weight:700; margin-bottom:14px; display:block; font-family:var(--font-accent); }
.profile-body .quals{ list-style:none; margin:0 0 14px; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.profile-body .quals li{ font-family:var(--font-accent); font-size:11.5px; font-weight:700; border:1.5px solid var(--tea-tint); border-radius:100px; padding:5px 12px; color:var(--tea-strong); background:var(--paper-raised); }
.profile-body ol.timeline{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.profile-body ol.timeline li{ font-size:13.5px; color:var(--ink-soft); display:flex; gap:12px; }
.profile-body ol.timeline li .yr{ font-family:var(--font-accent); color:var(--ink-faint); font-weight:700; flex:0 0 52px; font-variant-numeric:tabular-nums; }
.profile-note{ font-size:12.5px; color:var(--ink-faint); margin-top:12px; }

/* ---------- voices ---------- */
.voice-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:16px; }
.voice-card{ background:var(--paper); border:2px solid var(--line); border-radius:var(--radius); padding:24px 22px; display:flex; flex-direction:column; gap:14px; box-shadow:var(--shadow); opacity:0; transform:translateY(14px); transition:opacity .5s ease, transform .5s ease; }
.voice-card.is-visible{ opacity:1; transform:translateY(0); }
.voice-head{ font-family:var(--font-display); font-size:16.5px; font-weight:700; color:var(--forest); line-height:1.6; margin:0; text-wrap:balance; }
.voice-quote{ font-size:14px; color:var(--ink-soft); margin:0; line-height:1.9; flex:1; word-break:normal; line-break:strict; }
.voice-attr{ font-size:12.5px; color:var(--ink-faint); margin:0; display:flex; flex-direction:column; gap:2px; }
.voice-attr span{ font-size:11.5px; }
.voice-note{ margin-top:22px; font-size:12px; color:var(--ink-faint); max-width:46em; }

/* ---------- fee ---------- */
.fee-sub{ font-size:17px; color:var(--forest); margin:36px 0 14px; font-family:var(--font-display); }
.fee-sub:first-of-type{ margin-top:0; }
.fee-table{ border:2px solid var(--line); border-radius:var(--radius); overflow:hidden; background:var(--paper); }
.fee-row{ display:grid; grid-template-columns:1fr 2fr; gap:20px; padding:18px 22px; border-bottom:2px solid var(--line); align-items:center; }
.fee-row > *{ min-width:0; }
.fee-row:last-child{ border-bottom:none; }
.fee-row .label{ font-size:13.5px; color:var(--ink-soft); font-weight:700; }
.fee-row .detail{ font-size:14px; color:var(--ink); }
.fee-row .detail strong{ color:var(--amber-strong); font-weight:800; }
.fee-table-compact .fee-row{ padding:14px 20px; grid-template-columns:1.3fr 1fr; }
.plan-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; margin-top:18px; }
.plan-card{ background:var(--paper); border:2px solid var(--line); border-radius:var(--radius); padding:22px 20px; display:flex; flex-direction:column; gap:10px; }
.plan-card:nth-child(4){ border-color:var(--amber); box-shadow:var(--shadow); }
.plan-name{ font-family:var(--font-display); font-weight:800; font-size:16px; color:var(--forest); }
.plan-price{ font-family:var(--font-accent); font-size:22px; font-weight:800; color:var(--tea-strong); font-variant-numeric:tabular-nums; }
.plan-price .yen{ font-size:14px; margin-right:1px; }
.plan-price .suffix{ font-size:11.5px; color:var(--ink-faint); font-weight:500; margin-left:3px; }
.plan-term{ font-size:11px; color:var(--ink-faint); }
.plan-card ul{ margin:4px 0 0; padding:0 0 0 0; list-style:none; display:flex; flex-direction:column; gap:6px; }
.plan-card li{ font-size:12.5px; color:var(--ink-soft); padding-left:16px; position:relative; }
.plan-card li::before{ content:"🍃"; position:absolute; left:-3px; top:-1px; font-size:10px; }

/* ---------- contact / access ---------- */
.contact-panel{ display:grid; grid-template-columns:1fr auto; gap:40px; align-items:center; background:var(--paper); border:2px solid var(--tea-tint); border-radius:24px; padding:clamp(28px,5vw,44px); box-shadow:var(--shadow); }
.contact-panel > *{ min-width:0; }
.contact-info{ margin:0; display:flex; flex-direction:column; gap:14px; }
.contact-info div{ display:flex; gap:14px; align-items:baseline; }
.contact-info dt{ font-family:var(--font-accent); font-size:11.5px; font-weight:800; color:var(--tea-strong); flex:0 0 56px; }
.contact-info dd{ margin:0; font-size:14px; color:var(--ink); }
.contact-cta{ display:flex; flex-direction:column; gap:14px; align-items:flex-start; }
.contact-cta p{ font-family:var(--font-display); font-size:18px; color:var(--forest); margin:0; }

.access-grid{ display:grid; grid-template-columns:1.3fr .9fr; gap:28px; align-items:start; }
.access-grid > *{ min-width:0; }
.building-photo{ margin:0; border-radius:var(--radius); overflow:hidden; border:2px solid var(--line); box-shadow:var(--shadow); }
.building-photo img{ width:100%; display:block; filter:saturate(1.05) sepia(.08); }
.building-photo figcaption{ padding:12px 16px; font-size:12.5px; color:var(--ink-faint); background:var(--paper); }

@media (max-width:760px){
  .hero .wrap{ grid-template-columns:1fr; }
  .hero-art{ order:-1; min-height:220px; }
  .cup-article, .profile{ grid-template-columns:1fr; }
  .contact-panel{ grid-template-columns:1fr; text-align:left; }
}
@media (max-width:720px){ .access-grid{ grid-template-columns:1fr; } }
@media (max-width:560px){ .fee-row{ grid-template-columns:1fr; gap:6px; } }

footer{ background:var(--forest); color:#D9CFB8; padding:40px 0; }
footer .wrap{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:20px; }
.footer-logo{ background:#F6F1E6; border-radius:14px; padding:8px 14px; display:flex; align-items:center; }
.footer-logo img{ height:34px; width:auto; display:block; }
.footer-meta{ display:flex; flex-direction:column; gap:4px; align-items:flex-end; text-align:right; font-size:12.5px; }
@media (max-width:560px){ .footer-meta{ align-items:flex-start; text-align:left; } }

@media (prefers-reduced-motion: reduce){ *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; } }
