/* ============================================================
   みんなのインパ — shared.css v1.0
   ============================================================ */

:root{
  --bg:#FAFAFA;--sf:#FFF;--sf-alt:#F3F4F6;--bd:#E5E7EB;--bd-lt:#F0F0F0;
  --tx:#1F2937;--tx2:#4B5563;--txM:#6B7280;
  --pri:#1D4ED8;--pri-h:#1E40AF;--pri-lt:#EFF6FF;--pri-sub:#DBEAFE;
  --acc:#C2410C;--acc-h:#9A3412;--acc-lt:#FFF7ED;
  --ok:#047857;--ok-lt:#ECFDF5;
  --warn:#92400E;--warn-lt:#FFFBEB;
  --err:#B91C1C;--err-lt:#FEF2F2;
  --lv1:#047857;--lv1b:#ECFDF5;
  --lv2:#0E7490;--lv2b:#ECFEFF;
  --lv3:#92400E;--lv3b:#FFFBEB;
  --lv4:#C2410C;--lv4b:#FFF7ED;
  --lv5:#B91C1C;--lv5b:#FEF2F2;
  --c1:#E6FAF2;--c2:#E0F7FA;--c3:#FFF8E1;--c4:#FFF3E0;--c5:#FFEBEE;
  --park-land:#C2410C;--park-land-lt:#FFF7ED;
  --park-sea:#1D4ED8;--park-sea-lt:#EFF6FF;
  --ff:'Noto Sans JP',-apple-system,BlinkMacSystemFont,sans-serif;
  --xs:.75rem;--sm:.8125rem;--base:.9375rem;--md:1.0625rem;--lg:1.25rem;--xl:1.5rem;--xxl:1.875rem;
  --lh:1.7;--lh-t:1.4;
  --n:400;--m:500;--sb:600;--b:700;
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--s12:48px;--s16:64px;
  --r-s:6px;--r-m:10px;--r-l:14px;--r-f:9999px;
  --sh-s:0 1px 2px rgba(0,0,0,.05);
  --sh-m:0 2px 8px rgba(0,0,0,.06);
  --sh-l:0 4px 16px rgba(0,0,0,.08);
  --mw:720px;--pad:20px;
  --tf:150ms ease;--tn:250ms ease;
}
[data-theme="dark"]{
  --bg:#0F172A;--sf:#1E293B;--sf-alt:#273548;--bd:#475569;--bd-lt:#334155;
  --tx:#F1F5F9;--tx2:#CBD5E1;--txM:#94A3B8;
  --pri:#93C5FD;--pri-h:#BFDBFE;--pri-lt:#172554;--pri-sub:#1E3A5F;
  --acc:#FDBA74;--acc-h:#FED7AA;--acc-lt:#3B2510;
  --ok:#6EE7B7;--ok-lt:#064E3B;
  --warn:#FCD34D;--warn-lt:#422006;
  --err:#FCA5A5;--err-lt:#450A0A;
  --lv1:#6EE7B7;--lv1b:#064E3B;
  --lv2:#67E8F9;--lv2b:#164E63;
  --lv3:#FCD34D;--lv3b:#422006;
  --lv4:#FDBA74;--lv4b:#3B2510;
  --lv5:#FCA5A5;--lv5b:#450A0A;
  --c1:#0D3B2E;--c2:#0C3547;--c3:#3D2E06;--c4:#3B2510;--c5:#3B1010;
  --park-land:#FDBA74;--park-land-lt:#3B2510;
  --park-sea:#93C5FD;--park-sea-lt:#172554;
  --sh-s:0 1px 3px rgba(0,0,0,.4),0 0 0 1px rgba(255,255,255,.04);
  --sh-m:0 3px 12px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.05);
  --sh-l:0 6px 24px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.06);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--ff);font-size:var(--base);line-height:var(--lh);color:var(--tx);background:var(--bg);-webkit-font-smoothing:antialiased;transition:background var(--tn),color var(--tn)}
a{color:var(--pri);text-decoration:none}
a:hover{color:var(--pri-h)}
:focus-visible{outline:2px solid var(--pri);outline-offset:2px;border-radius:var(--r-s)}
:focus:not(:focus-visible){outline:none}
img{max-width:100%;height:auto;display:block}

.skip{position:absolute;top:-100%;left:var(--s4);background:var(--pri);color:#fff;padding:var(--s2) var(--s4);border-radius:0 0 var(--r-s) var(--r-s);font-size:var(--sm);font-weight:var(--sb);z-index:200;transition:top var(--tf)}
.skip:focus{top:0}

.wrap{max-width:var(--mw);margin:0 auto;padding:0 var(--pad)}
main{padding-bottom:var(--s8)}

/* ヘッダー */
.hdr{background:var(--pri);position:sticky;top:0;z-index:50}
[data-theme="dark"] .hdr{background:#172554;border-bottom:1px solid var(--bd)}
.hdr-in{display:flex;align-items:center;justify-content:space-between;max-width:var(--mw);margin:0 auto;padding:var(--s3) var(--pad)}
.hdr-logo{display:flex;align-items:center;gap:var(--s2);font-size:var(--md);font-weight:var(--b);letter-spacing:.06em;color:#fff;text-decoration:none}
.hdr-logo:hover{color:#fff}
.hdr-logo svg{width:28px;height:28px;flex-shrink:0}
.hdr-ham{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.2);border-radius:var(--r-s);width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--tf)}
.hdr-ham:hover{background:rgba(255,255,255,.25)}
.hdr-ham svg{width:20px;height:20px;fill:#fff}

/* テキストナビ */
.subnav{background:var(--sf);border-bottom:1px solid var(--bd);position:sticky;top:52px;z-index:49}
.subnav-in{display:flex;max-width:var(--mw);margin:0 auto}
.subnav-link{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--s3) var(--s1);font-size:var(--sm);font-weight:var(--m);color:var(--tx2);text-decoration:none;transition:all var(--tf);border-bottom:2px solid transparent;white-space:nowrap;text-align:center}
.subnav-link:hover{color:var(--pri);background:var(--pri-lt)}
.subnav-link.active{color:var(--pri);font-weight:var(--sb);border-bottom-color:var(--pri)}
@media(max-width:374px){.subnav-link{font-size:.6875rem;padding:var(--s2) 2px}}

/* ハンバーガーメニュー */
.mov{display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:100;background:rgba(0,0,0,.5);opacity:0;transition:opacity var(--tn)}
.mov.open{display:block;opacity:1}
.mpanel{position:absolute;top:0;right:0;width:300px;max-width:88vw;height:100%;background:var(--sf);box-shadow:var(--sh-l);transform:translateX(100%);transition:transform var(--tn);overflow-y:auto;display:flex;flex-direction:column}
.mov.open .mpanel{transform:translateX(0)}
.mtop{display:flex;align-items:center;justify-content:space-between;padding:var(--s4) var(--s5);border-bottom:1px solid var(--bd-lt)}
.mtop-t{font-size:var(--base);font-weight:var(--sb);color:var(--tx)}
.mclose{background:none;border:none;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-s)}
.mclose svg{width:20px;height:20px;fill:var(--tx)}
.mgrp{padding:var(--s4) var(--s5)}
.mgrp-t{font-size:var(--xs);font-weight:var(--sb);color:var(--txM);letter-spacing:.06em;margin-bottom:var(--s2)}
.mgrp ul{list-style:none}
.mgrp li{border-bottom:1px solid var(--bd-lt)}
.mgrp li:last-child{border-bottom:none}
.mgrp a{display:block;padding:var(--s3) 0;font-size:var(--base);font-weight:var(--m);color:var(--tx);text-decoration:none;transition:color var(--tf)}
.mgrp a:hover,.mgrp a[aria-current]{color:var(--pri)}
.mset{margin-top:auto;padding:var(--s5);border-top:1px solid var(--bd);display:flex;flex-direction:column;gap:var(--s4)}
.mset-row{display:flex;align-items:center;justify-content:space-between}
.mset-lbl{font-size:var(--sm);color:var(--tx2)}
.tog{position:relative;width:44px;height:24px;background:var(--bd);border-radius:var(--r-f);cursor:pointer;transition:background var(--tf);border:none}
.tog.on{background:var(--pri)}
.tog::after{content:'';position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform var(--tf);box-shadow:var(--sh-s)}
.tog.on::after{transform:translateX(20px)}
.mlang{padding:var(--s2) var(--s4);border:1px solid var(--bd);border-radius:var(--r-s);background:var(--sf-alt);font-family:var(--ff);font-size:var(--sm);font-weight:var(--sb);color:var(--tx);cursor:pointer;transition:all var(--tf)}
.mlang:hover{border-color:var(--pri);color:var(--pri)}

/* パーク切替セグメント */
.park-seg{display:flex;background:var(--sf);border:1px solid var(--bd);border-radius:var(--r-l);padding:4px;gap:4px;margin-top:var(--s4);box-shadow:var(--sh-s)}
.park-seg button{flex:1;padding:var(--s2) var(--s3);border:none;background:transparent;border-radius:var(--r-m);font-family:var(--ff);font-size:var(--sm);font-weight:var(--m);color:var(--tx2);cursor:pointer;transition:all var(--tf);display:flex;align-items:center;justify-content:center;gap:var(--s2)}
.seg-dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex-shrink:0;opacity:.5;transition:opacity var(--tf)}
.park-seg button.active .seg-dot{opacity:1}
.park-seg button.land.active{background:var(--park-land-lt);color:var(--park-land);font-weight:var(--sb)}
.park-seg button.sea.active{background:var(--park-sea-lt);color:var(--park-sea);font-weight:var(--sb)}

/* ボタン */
.btn-p{display:inline-flex;align-items:center;gap:var(--s2);padding:var(--s2) var(--s4);border-radius:var(--r-s);font-family:var(--ff);font-size:var(--sm);font-weight:var(--m);border:none;cursor:pointer;transition:all var(--tf);text-decoration:none;background:var(--pri);color:#fff}
.btn-p:hover{background:var(--pri-h);color:#fff}
.btn-g{display:inline-flex;align-items:center;gap:var(--s2);padding:var(--s2) var(--s4);border-radius:var(--r-s);font-size:var(--sm);font-weight:var(--m);color:var(--pri);text-decoration:none;transition:background var(--tf)}
.btn-g:hover{background:var(--pri-lt);color:var(--pri)}

/* 広告枠 */
.ad{background:var(--sf-alt);border:1px dashed var(--bd);border-radius:var(--r-m);padding:var(--s4);text-align:center;margin-top:var(--s6)}
.ad-lb{font-size:10px;color:var(--txM);margin-bottom:var(--s2);letter-spacing:.1em;font-weight:var(--sb)}
.ad-in{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r-s);padding:var(--s5) var(--s4);color:var(--tx2);font-size:var(--sm)}
.ad-sz{font-size:10px;color:var(--txM);margin-top:var(--s2)}

/* CTAカード */
.cta-sec{margin-top:var(--s8)}
.cta-sec h2{font-size:var(--lg);font-weight:var(--sb);color:var(--pri);letter-spacing:.06em;margin-bottom:var(--s4)}
.cta-grid{display:grid;gap:var(--s3)}
@media(min-width:481px){.cta-grid{grid-template-columns:1fr 1fr}}
.cta-card{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r-m);padding:var(--s4);display:flex;align-items:center;gap:var(--s4);box-shadow:var(--sh-s);transition:box-shadow var(--tf),border-color var(--tf);cursor:pointer;text-decoration:none;color:var(--tx)}
.cta-card:hover{box-shadow:var(--sh-m);border-color:var(--pri-sub)}
.cta-ico{width:44px;height:44px;border-radius:var(--r-m);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.cta-ico svg{width:22px;height:22px}
.cta-body{flex:1;min-width:0}
.cta-t{font-size:var(--base);font-weight:var(--sb);margin-bottom:2px}
.cta-d{font-size:var(--sm);color:var(--tx2);line-height:1.5}
.cta-arr{color:var(--pri);font-size:var(--lg);flex-shrink:0}

/* インサイト */
.insight{background:var(--pri-lt);border-radius:var(--r-m);padding:var(--s5);margin-top:var(--s6)}
.insight-t{font-size:var(--md);font-weight:var(--sb);color:var(--pri);margin-bottom:var(--s2)}
.insight-b{font-size:var(--base);color:var(--tx2);line-height:var(--lh)}

/* フッター */
.ftr{margin-top:var(--s12);padding:var(--s6) 0;border-top:1px solid var(--bd);font-size:var(--xs);color:var(--txM);text-align:center;line-height:1.8}
.ftr-links{display:flex;justify-content:center;gap:var(--s4);margin-bottom:var(--s3);flex-wrap:wrap}
.ftr-links a{color:var(--tx2);font-weight:var(--m)}
.ftr-disc{margin-top:var(--s3);font-size:10px;max-width:480px;margin-inline:auto}

/* ページ見出し（サブページ共通） */
.pg-hd{padding:var(--s6) 0 var(--s4);border-bottom:1px solid var(--bd-lt);margin-bottom:var(--s6)}
.pg-hd h1{font-size:var(--xl);font-weight:var(--b);color:var(--pri);margin-bottom:var(--s2)}
.pg-hd-sub{font-size:var(--sm);color:var(--txM)}

/* 本文共通 */
.content-body h2{font-size:var(--lg);font-weight:var(--sb);color:var(--pri);margin:var(--s6) 0 var(--s3)}
.content-body h3{font-size:var(--md);font-weight:var(--sb);color:var(--tx);margin:var(--s5) 0 var(--s2)}
.content-body p{color:var(--tx2);line-height:var(--lh);margin-bottom:var(--s3)}
.content-body ul,.content-body ol{padding-left:var(--s5);color:var(--tx2);line-height:var(--lh);margin-bottom:var(--s3)}
.content-body li{margin-bottom:var(--s1)}
.content-body strong{color:var(--tx);font-weight:var(--sb)}

@media(max-width:480px){.wrap{padding:0 var(--s3)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
