:root {
  --ivory: #f5f2eb; --white: #fffefb; --ink: #20251f; --muted: #677066;
  --forest: #29483a; --forest-2: #3f6252; --sea: #6f9fa6; --mist: #dce7e5;
  --gold: #b79a62; --line: #d9dcd4; --shadow: 0 18px 50px rgba(31,39,32,.10);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--ivory); font-family: "Segoe UI", Arial, sans-serif; line-height: 1.6; }
a { color: inherit; } img, video { display: block; width: 100%; object-fit: cover; }
.topbar { position: sticky; top: 0; z-index: 50; min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 12px clamp(20px,4vw,64px); color: var(--white); background: rgba(24,34,28,.92); backdrop-filter: blur(18px); }
.brand { color: var(--white); font-size: 13px; font-weight: 800; letter-spacing: .13em; text-decoration: none; text-transform: uppercase; }
.nav { display: flex; align-items: center; gap: 24px; font-size: 14px; }
.nav a { color: rgba(255,255,255,.86); text-decoration: none; }
.nav .nav-cta { color: var(--ink); background: var(--white); padding: 10px 15px; border-radius: 4px; font-weight: 750; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 20px; border: 1px solid transparent; border-radius: 4px; font-weight: 750; text-decoration: none; }
.button.primary { color: var(--white); background: var(--forest); } .button.light { color: var(--ink); background: var(--white); }
.eyebrow { display: block; margin-bottom: 14px; color: var(--forest-2); font-size: 12px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
h1,h2,h3 { margin: 0; font-family: Georgia,"Times New Roman",serif; font-weight: 500; line-height: 1.08; }
h1 { font-size: clamp(45px,6.2vw,84px); } h2 { font-size: clamp(34px,4vw,58px); } h3 { font-size: 25px; } p { margin: 0; }
.shell { width: min(1180px,calc(100% - 40px)); margin: 0 auto; }
.section { padding: clamp(68px,8vw,112px) 0; } .section.white { background: var(--white); } .section.dark { color: var(--white); background: var(--forest); }
.section-heading { display: grid; grid-template-columns: .8fr 1fr; gap: 60px; align-items: start; margin-bottom: 42px; }
.section-heading p { max-width: 670px; color: var(--muted); font-size: 18px; }
.sales-hero { min-height: calc(100vh - 68px); position: relative; display: grid; align-items: end; overflow: hidden; color: var(--white); background: var(--ink); }
.sales-hero > img { position: absolute; inset: 0; height: 100%; }
.sales-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(14,22,17,.83),rgba(14,22,17,.56) 46%,rgba(14,22,17,.10) 78%),linear-gradient(0deg,rgba(14,22,17,.62),transparent 46%); }
.sales-hero-content { position: relative; z-index: 2; width: min(1180px,calc(100% - 40px)); margin: 0 auto; padding: clamp(84px,11vw,150px) 0 72px; }
.sales-hero h1 { max-width: 890px; } .sales-hero .eyebrow,.section.dark .eyebrow { color: #d9c69e; }
.hero-lead { max-width: 720px; margin-top: 24px; color: rgba(255,255,255,.82); font-size: clamp(18px,2vw,22px); }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.hero-proof { display:flex; flex-wrap:wrap; gap:28px; margin-top:34px; color:rgba(255,255,255,.72); font-size:14px; }
.hero-proof span { padding-top:9px; border-top:1px solid rgba(255,255,255,.30); }
.problem-list { border-top:1px solid var(--line); }
.problem-row { display:grid; grid-template-columns:54px 1fr 1.1fr; gap:26px; padding:28px 0; border-bottom:1px solid var(--line); align-items:start; }
.problem-row > span { color:var(--gold); font-weight:800; } .problem-row p { color:var(--muted); }
.feature-layout { display:grid; grid-template-columns:1fr 1fr; gap:54px; align-items:center; }
.feature-photo { min-height:610px; overflow:hidden; box-shadow:var(--shadow); } .feature-photo img { height:610px; }
.feature-list { display:grid; margin-top:30px; border-top:1px solid rgba(255,255,255,.22); }
.feature-list article { display:grid; grid-template-columns:42px 1fr; gap:16px; padding:20px 0; border-bottom:1px solid rgba(255,255,255,.22); }
.feature-list span { color:#d9c69e; font-weight:800; } .feature-list p { margin-top:5px; color:rgba(255,255,255,.72); }
.author-band { display:grid; grid-template-columns:320px 1fr; gap:54px; align-items:center; } .author-band img { height:430px; }
.author-copy p { max-width:700px; margin-top:20px; color:var(--muted); font-size:18px; }
.price-layout { display:grid; grid-template-columns:1fr 400px; gap:50px; align-items:center; }
.price-layout > div:first-child p { max-width:660px; margin-top:18px; color:rgba(255,255,255,.72); font-size:18px; }
.price-box { padding:34px; color:var(--ink); background:var(--white); box-shadow:var(--shadow); }
.price-box strong { display:block; font-family:Georgia,serif; font-size:60px; font-weight:500; line-height:1; }
.price-box p { margin:14px 0 24px; color:var(--muted); font-size:15px; }

.app-body { background:#eef1ec; } .app-shell { min-height:100vh; display:grid; grid-template-columns:300px minmax(0,1fr); }
.app-sidebar { position:sticky; top:0; height:100vh; overflow-y:auto; padding:30px 24px; color:var(--white); background:#1d2c24; }
.app-sidebar .brand { display:block; margin-bottom:40px; } .app-title { margin-bottom:30px; } .app-title h1 { font-size:39px; }
.app-title p { margin-top:12px; color:rgba(255,255,255,.60); font-size:14px; }
.app-nav { display:grid; gap:5px; }
.app-nav a,.app-nav summary { display:grid; grid-template-columns:32px 1fr; gap:10px; align-items:center; min-height:48px; padding:10px 12px; color:rgba(255,255,255,.78); border-radius:4px; text-decoration:none; cursor:pointer; list-style:none; }
.app-nav a:hover,.app-nav summary:hover,.app-nav .active { color:var(--white); background:rgba(255,255,255,.09); }
.app-nav small { color:#b7cbbf; } .subnav { display:grid; padding:4px 0 8px 42px; }
.subnav a { display:block; min-height:0; padding:7px 10px; color:rgba(255,255,255,.58); font-size:13px; }
.app-main { min-width:0; padding-bottom:80px; }
.app-toolbar { min-height:68px; display:flex; align-items:center; justify-content:space-between; padding:0 34px; color:var(--muted); background:rgba(255,255,255,.93); border-bottom:1px solid var(--line); backdrop-filter:blur(15px); }
.app-toolbar strong { color:var(--ink); } .app-toolbar a { color:var(--forest); font-weight:750; text-decoration:none; }
.app-content { width:min(1120px,calc(100% - 56px)); margin:0 auto; padding-top:38px; }
.welcome { position:relative; min-height:420px; display:grid; align-items:end; overflow:hidden; color:var(--white); box-shadow:var(--shadow); }
.welcome img { position:absolute; inset:0; height:100%; } .welcome::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(16,28,21,.84),rgba(16,28,21,.08) 78%); }
.welcome-content { position:relative; z-index:2; padding:36px; } .welcome h1 { max-width:760px; font-size:clamp(42px,5vw,66px); }
.welcome p { max-width:700px; margin-top:14px; color:rgba(255,255,255,.78); font-size:18px; }
.quick-actions { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-top:14px; }
.quick-actions a { min-height:92px; display:grid; align-content:space-between; padding:16px; color:var(--ink); background:var(--white); border:1px solid var(--line); text-decoration:none; }
.quick-actions span { color:var(--forest-2); font-size:12px; font-weight:800; text-transform:uppercase; }
.dashboard-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin:54px 0 20px; }
.dashboard-heading h2 { font-size:42px; } .dashboard-heading p { max-width:570px; color:var(--muted); }
.dashboard-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.dashboard-card { min-height:220px; display:flex; flex-direction:column; justify-content:space-between; padding:24px; background:var(--white); border:1px solid var(--line); text-decoration:none; }
.dashboard-card.featured { color:var(--white); background:var(--forest); border-color:var(--forest); }
.dashboard-card .number { color:var(--gold); font-weight:850; } .dashboard-card p { margin-top:10px; color:var(--muted); }
.dashboard-card.featured p { color:rgba(255,255,255,.68); } .dashboard-card .go { margin-top:24px; color:var(--forest); font-weight:800; }
.dashboard-card.featured .go { color:#d9c69e; }
.seasonal { margin-top:12px; padding:24px; color:var(--ink); background:#e8ddc4; border-left:5px solid var(--gold); }
.seasonal a { font-weight:800; text-decoration:none; }

.article-body { background:var(--white); }
.article-layout { display:grid; grid-template-columns:250px minmax(0,760px) 210px; gap:48px; width:min(1260px,calc(100% - 48px)); margin:0 auto; padding:54px 0 100px; }
.article-toc,.article-aside { position:sticky; top:98px; align-self:start; }
.article-toc > span { display:block; margin-bottom:15px; color:var(--muted); font-size:12px; font-weight:800; text-transform:uppercase; }
.article-toc nav { display:grid; border-left:1px solid var(--line); }
.article-toc a { padding:8px 0 8px 18px; color:var(--muted); font-size:14px; text-decoration:none; }
.article-toc a.active { margin-left:-1px; color:var(--forest); border-left:2px solid var(--forest); font-weight:800; }
.article h1 { font-size:clamp(48px,6vw,78px); } .article-intro { margin-top:20px; color:var(--muted); font-size:21px; }
.article-hero-media { height:420px; margin:34px 0 42px; }
.article-section { padding:44px 0; border-top:1px solid var(--line); } .article-section h2 { margin-bottom:22px; font-size:42px; }
.article-section > p { margin-top:15px; color:#4f5850; font-size:17px; }
.audio-block { padding:24px; background:var(--mist); border-left:4px solid var(--sea); }
.audio-block strong { display:block; margin-bottom:12px; font-family:Georgia,serif; font-size:25px; } .audio-block audio { width:100%; }
.fact-strip { display:grid; grid-template-columns:repeat(3,1fr); margin-top:28px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.fact-strip div { padding:20px; border-right:1px solid var(--line); } .fact-strip div:last-child { border-right:0; }
.fact-strip strong { display:block; color:var(--forest); font-size:24px; } .fact-strip span { color:var(--muted); font-size:13px; }
.article .steps { display:grid; } .article .step { display:grid; grid-template-columns:48px 1fr; gap:20px; padding:22px 0; border-bottom:1px solid var(--line); }
.article .step > span { color:var(--gold); font-weight:850; } .article .step p { margin-top:5px; color:var(--muted); }
.official-box { padding:28px; color:var(--white); background:var(--forest); } .official-box p { margin:12px 0 22px; color:rgba(255,255,255,.70); }
.official-actions { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:24px; }
.official-actions .button.secondary { color:var(--white); border-color:rgba(255,255,255,.38); background:transparent; }
.tide-table-embed { overflow:hidden; background:var(--white); border:1px solid rgba(255,255,255,.22); }
.tide-table-embed iframe { display:block; width:100%; min-height:620px; border:0; background:var(--white); }
.tide-table-caption { padding:12px 16px; color:rgba(255,255,255,.70); background:rgba(255,255,255,.08); font-size:13px; }
.article-aside { display:grid; gap:12px; } .aside-note { padding:18px; background:var(--ivory); border-top:3px solid var(--gold); }
.aside-note span { color:var(--forest); font-size:12px; font-weight:850; text-transform:uppercase; } .aside-note p { margin-top:8px; color:var(--muted); font-size:14px; }
.mobile-tabs { display:none; }
@media(max-width:980px) {
  .nav a:not(.nav-cta) { display:none; }
  .section-heading,.feature-layout,.author-band,.price-layout { grid-template-columns:1fr; }
  .feature-photo,.feature-photo img { min-height:450px; height:450px; }
  .app-shell { display:block; } .app-sidebar { display:none; } .app-content { width:min(100% - 30px,760px); }
  .quick-actions,.dashboard-grid { grid-template-columns:1fr 1fr; }
  .article-layout { grid-template-columns:minmax(0,760px); width:min(100% - 34px,760px); } .article-toc,.article-aside { display:none; }
  .mobile-tabs { position:sticky; bottom:0; z-index:40; display:grid; grid-template-columns:repeat(4,1fr); min-height:64px; background:rgba(255,255,255,.96); border-top:1px solid var(--line); backdrop-filter:blur(16px); }
  .mobile-tabs a { display:grid; place-items:center; color:var(--muted); font-size:11px; font-weight:800; text-decoration:none; }
}
@media(max-width:640px) {
  .topbar { min-height:60px; } .sales-hero { min-height:calc(100svh - 60px); }
  .sales-hero::after { background:linear-gradient(0deg,rgba(14,22,17,.88),rgba(14,22,17,.18) 82%); }
  .sales-hero-content { padding-bottom:42px; } .sales-hero h1 { font-size:47px; } .hero-actions .button { width:100%; }
  .problem-row { grid-template-columns:36px 1fr; } .problem-row p { grid-column:2; } .section-heading { gap:18px; }
  .author-band img { height:360px; } .price-box strong { font-size:52px; }
  .app-toolbar { padding:0 18px; } .app-toolbar span { display:none; } .welcome { min-height:480px; } .welcome-content { padding:24px; }
  .welcome h1 { font-size:44px; } .quick-actions,.dashboard-grid { grid-template-columns:1fr; }
  .dashboard-heading { display:block; } .dashboard-heading p { margin-top:10px; }
  .article-layout { padding-top:36px; } .article h1 { font-size:50px; } .article-hero-media { height:300px; }
  .fact-strip { grid-template-columns:1fr; } .fact-strip div { border-right:0; border-bottom:1px solid var(--line); }
  .official-actions .button { width:100%; }
  .tide-table-embed iframe { min-height:520px; }
}

/* Compatibility layer for the complete guide */
body { background: var(--ivory); }
.knowledge-page { background: var(--white); }
.button.secondary { color: var(--ink); background: var(--white); border-color: var(--line); }
.button.dark-secondary { color: var(--white); border-color: rgba(255,255,255,.25); background: rgba(255,255,255,.08); }
.hero { min-height: min(780px, calc(100svh - 68px)); position: relative; display: grid; align-items: end; overflow: hidden; color: var(--white); background: var(--ink); }
.hero > img { position: absolute; inset: 0; height: 100%; }
.hero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(14,22,17,.83),rgba(14,22,17,.54) 48%,rgba(14,22,17,.10) 80%),linear-gradient(0deg,rgba(14,22,17,.64),transparent 48%); }
.hero-content { position:relative; z-index:2; width:min(1180px,calc(100% - 40px)); margin:0 auto; padding:clamp(84px,11vw,148px) 0 66px; }
.hero .eyebrow {
  color: #ead39d;
  text-shadow: 0 1px 12px rgba(0, 0, 0, .72);
}
.hero h1 { max-width:900px; }
.lead { max-width:760px; margin:24px 0 0; color:rgba(255,255,255,.82); font-size:clamp(18px,2vw,22px); }
.actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.meta { display:flex; flex-wrap:wrap; gap:28px; margin-top:24px; color:rgba(255,255,255,.8); font-size:14px; }
.meta span { border-top:1px solid rgba(255,255,255,.28); padding-top:8px; }
.grid-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.card { padding:26px; background:var(--white); border:1px solid var(--line); border-radius:0; }
.card.featured { color:var(--white); background:var(--forest); border-color:var(--forest); }
.card.dark { color:var(--white); background:var(--ink); }
.card strong { display:block; margin-bottom:10px; color:var(--forest); }
.card p { color:var(--muted); }
.card.featured strong,.card.dark strong { color:#d9c69e; }
.card.featured p,.card.dark p { color:rgba(255,255,255,.72); }
.photo-card { min-height:420px; overflow:hidden; border:1px solid var(--line); border-radius:0; box-shadow:var(--shadow); }
.photo-card img { height:100%; }
.booking-panel { padding:32px; color:var(--white); background:var(--forest); border-radius:0; }
.booking-actions { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:18px; }
.booking-action { min-height:96px; display:grid; align-content:center; gap:6px; padding:14px; color:var(--white); background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); border-radius:0; font-weight:800; text-decoration:none; }
.booking-action span { color:rgba(255,255,255,.66); font-size:13px; font-weight:500; }
.affiliate-note { margin-top:14px; color:var(--muted); font-size:13px; }
.booking-panel .affiliate-note { color:rgba(255,255,255,.62); }

.guide-app { min-height:100vh; display:grid; grid-template-columns:300px minmax(0,1fr); background:#eef1ec; }
.sidebar { position:sticky; top:0; height:100vh; overflow-y:auto; padding:30px 24px; display:flex; flex-direction:column; gap:28px; color:var(--white); background:#1d2c24; }
.guide-title { padding-bottom:26px; border-bottom:1px solid rgba(255,255,255,.16); }
.guide-title h1 { font-size:39px; }
.guide-title p { margin-top:12px; color:rgba(255,255,255,.60); font-size:14px; }
.side-nav { display:grid; gap:5px; }
.side-nav a,.side-group summary { min-height:48px; display:grid; grid-template-columns:32px 1fr; gap:10px; align-items:center; padding:10px 12px; color:rgba(255,255,255,.78); border-radius:4px; text-decoration:none; cursor:pointer; }
.side-group summary { grid-template-columns:32px 1fr 16px; list-style:none; }
.side-nav a:hover,.side-nav a.active,.side-group[open] summary { color:var(--white); background:rgba(255,255,255,.09); }
.side-nav span,.side-group summary span { color:#b7cbbf; }
.side-subnav { display:grid; padding:4px 0 8px 42px; }
.side-subnav a { min-height:0; display:block; padding:7px 10px; color:rgba(255,255,255,.58); font-size:13px; }
.guide-main { min-width:0; background:#eef1ec; }
.guide-main > .hero { width:min(1120px,calc(100% - 56px)); min-height:430px; margin:38px auto 0; box-shadow:var(--shadow); }
.guide-main > .hero .hero-content { width:100%; padding:56px 36px 34px; }
.guide-main > .hero h1 { font-size:clamp(42px,5vw,66px); }
.mode-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; max-width:none; margin-top:28px; }
.mode-card { min-height:180px; display:grid; align-content:start; gap:14px; padding:20px; color:var(--ink); background:rgba(255,255,255,.94); border:1px solid rgba(255,255,255,.45); border-radius:0; backdrop-filter:blur(16px); }
.mode-card p { color:var(--muted); }
.mode-card strong { font-family:Georgia,serif; font-size:30px; font-weight:500; line-height:1.08; }
.mode-actions { display:flex; flex-wrap:wrap; gap:8px; }
.mode-link { min-height:34px; display:inline-flex; align-items:center; padding:7px 10px; color:var(--ink); background:var(--white); border:1px solid var(--line); border-radius:0; font-size:13px; font-weight:800; text-decoration:none; }
.mode-link.dark { color:var(--white); background:var(--forest); }
.guide-content { width:min(1120px,calc(100% - 56px)); margin:0 auto; padding:38px 0 120px; }
.guide-section { padding:54px 0; border-top:1px solid var(--line); }
.guide-section:first-child { border-top:0; }
.guide-section .section-head { display:flex; align-items:end; justify-content:space-between; gap:24px; }
.guide-section .section-head h2 { font-size:42px; }
.guide-section .section-head p { max-width:620px; }
.guide-section .card {
  min-height: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 10px;
}
.guide-section .card strong { margin-bottom: 0; }
.guide-section .card p { margin: 0; }
#full .grid-2 { align-items: start; }
#full .grid-2 .card { padding: 24px 26px; }
#full .main-menu-card .mode-actions { margin-top: 4px; }
.menu-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.menu-tile { min-height:92px; display:grid; grid-template-columns:34px 1fr; gap:10px; align-items:center; padding:16px; color:var(--ink); background:var(--white); border:1px solid var(--line); border-radius:0; font-weight:750; text-decoration:none; }
.seasonal-callout { display:grid; gap:8px; margin-top:16px; padding:24px; color:var(--ink); background:#e8ddc4; border:0; border-left:5px solid var(--gold); border-radius:0; text-decoration:none; }
.bottom-tabs { display:none; }
.mobile-guide-bar,
.mobile-guide-overlay { display:none; }

.knowledge-topbar { position:sticky; top:0; z-index:50; min-height:68px; display:flex; align-items:center; justify-content:space-between; padding:12px clamp(20px,4vw,64px); color:var(--white); background:rgba(24,34,28,.92); backdrop-filter:blur(18px); }
.knowledge-crumbs { width:min(1260px,calc(100% - 48px)); margin:0 auto; color:var(--muted); }
.knowledge-page-head { padding:54px 0 46px; background:var(--white); border-bottom:1px solid var(--line); }
.knowledge-page-head .shell { width:min(1260px,calc(100% - 48px)); }
.knowledge-page-head h1 { max-width:940px; font-size:clamp(48px,6vw,78px); }
.knowledge-page-head p { max-width:760px; margin-top:18px; color:var(--muted); font-size:21px; }
.knowledge-page-head + .band { padding-top:42px; }
.knowledge-page section.band > .shell { width:min(980px,calc(100% - 48px)); }
.knowledge-page .section-head { grid-template-columns:1fr; gap:16px; }
.knowledge-page .section-head h2 { font-size:42px; }
.knowledge-page .section-head p { max-width:760px; }
.audio-guide { padding:24px; background:var(--mist); border:1px solid var(--line); border-left:4px solid var(--sea); border-radius:0; }
.audio-guide audio { width:100%; }
.knowledge-card,.page-toc,.tide-official-panel,.tide-planning-guide,.tide-story,.tide-basics article,.tide-restoration-grid article,.tide-personal-note,.tide-fact-card { border-radius:0; }
.knowledge-card { min-height:220px; }
.knowledge-card:hover { border-color:var(--forest); box-shadow:var(--shadow); }
.drive-nav { background:rgba(245,242,235,.96); }
.drive-nav a:hover,.drive-nav a.active { color:var(--white); background:var(--forest); }
.drive-map,.map-layout,.guide-master-map { border-radius:0; }

@media(max-width:940px) {
  .topbar,.knowledge-topbar { min-height:62px; }
  .nav { display:none; }
  .section-heading,.section-head,.grid-2,.grid-3,.booking-actions,.mode-grid,.menu-grid { grid-template-columns:1fr; }
  .hero { min-height:620px; }
  .hero-content,.shell,.guide-content { width:min(100% - 30px,720px); }
  .guide-app { display:block; } .sidebar { display:none; }
  .guide-main > .hero { width:min(100% - 30px,720px); min-height:540px; margin-top:15px; }
  .guide-main > .hero .hero-content { padding:48px 24px 24px; }
  .mode-card,.guide-section .card { min-height:0; }
  .guide-section .section-head { display:block; }
  .guide-section .section-head p { margin-top:10px; }
  body { padding-bottom:70px; }
  .bottom-tabs,
  .knowledge-mobile-nav { display:none !important; }
  .drive-nav { display:none; }
  .knowledge-actions .knowledge-dropdown { display:none; }
  .mobile-guide-bar {
    position:fixed;
    inset:auto 0 0;
    z-index:1000;
    min-height:68px;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    color:var(--muted);
    background:rgba(255,254,251,.98);
    border-top:1px solid var(--line);
    box-shadow:0 -8px 24px rgba(31,39,32,.09);
    backdrop-filter:blur(16px);
  }
  .mobile-guide-bar a,
  .mobile-guide-bar button {
    min-width:0;
    display:grid;
    place-items:center;
    align-content:center;
    gap:3px;
    padding:7px 3px;
    color:var(--muted);
    background:transparent;
    border:0;
    font:800 11px/1.15 "Segoe UI",Arial,sans-serif;
    text-decoration:none;
    cursor:pointer;
  }
  .mobile-guide-bar span {
    color:var(--forest);
    font-size:18px;
    line-height:1;
  }
  .mobile-guide-bar .is-active {
    color:var(--gold);
    background:rgba(31,74,57,.08);
  }
  .mobile-guide-bar .is-active span { color:var(--gold); }
  .mobile-guide-overlay {
    position:fixed;
    inset:0;
    z-index:1100;
    display:flex;
    align-items:flex-end;
    padding-top:60px;
    background:rgba(18,27,22,.52);
    opacity:0;
    transition:opacity .18s ease;
  }
  .mobile-guide-overlay[hidden] { display:none; }
  .mobile-guide-overlay.is-open { opacity:1; }
  .mobile-guide-sheet {
    width:100%;
    max-height:min(86svh,760px);
    overflow-y:auto;
    padding:0 18px calc(24px + env(safe-area-inset-bottom));
    color:var(--ink);
    background:var(--white);
    border-radius:8px 8px 0 0;
    transform:translateY(24px);
    transition:transform .18s ease;
  }
  .mobile-guide-overlay.is-open .mobile-guide-sheet { transform:translateY(0); }
  .mobile-guide-sheet header {
    position:sticky;
    top:0;
    z-index:2;
    min-height:72px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    background:var(--white);
    border-bottom:1px solid var(--line);
  }
  .mobile-guide-sheet header small {
    display:block;
    color:var(--forest-2);
    font-size:11px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
  }
  .mobile-guide-sheet header strong {
    display:block;
    margin-top:2px;
    font:25px/1.1 Georgia,serif;
  }
  .mobile-guide-close {
    width:42px;
    height:42px;
    color:var(--ink);
    background:var(--ivory);
    border:1px solid var(--line);
    font-size:27px;
    line-height:1;
    cursor:pointer;
  }
  .mobile-guide-home {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-top:12px;
    padding:15px 16px;
    color:var(--white);
    background:var(--forest);
    font-weight:800;
    text-decoration:none;
  }
  .mobile-guide-sheet nav { padding-top:4px; }
  .mobile-guide-group {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0 14px;
    padding:15px 0;
    border-bottom:1px solid var(--line);
  }
  .mobile-guide-group > span {
    grid-column:1 / -1;
    margin-bottom:7px;
    color:var(--gold);
    font-size:11px;
    font-weight:850;
    letter-spacing:.08em;
    text-transform:uppercase;
  }
  .mobile-guide-group a {
    padding:9px 0;
    color:var(--ink);
    font-size:14px;
    font-weight:700;
    text-decoration:none;
  }
  .mobile-guide-emergency {
    display:block;
    margin-top:16px;
    padding:15px;
    color:var(--white);
    background:var(--forest);
    font-weight:800;
    text-decoration:none;
  }
  .mobile-menu-open { overflow:hidden; }
  .knowledge-page-head .shell,.knowledge-crumbs,.knowledge-page section.band > .shell { width:min(100% - 30px,720px); }
}
@media(max-width:640px) {
  h1 { font-size:47px; }
  .hero { min-height:calc(100svh - 62px); }
  .hero-content { padding-bottom:42px; }
  .actions .button { width:100%; }
  .guide-main > .hero { min-height:620px; }
  .guide-main > .hero h1 { font-size:44px; }
  .knowledge-page-head h1 { font-size:50px; }
  .knowledge-page-head p { font-size:18px; }
}

/* Planner interface */
body:has(.planner-wrap) .hero { min-height:470px; }
body:has(.planner-wrap) .hero-content { padding-top:86px; padding-bottom:54px; }
body:has(.planner-wrap) .hero h1 { max-width:850px; font-size:clamp(43px,5.4vw,70px); }
body:has(.planner-wrap) .hero .lead { max-width:700px; }
.planner-wrap { display:grid; grid-template-columns:minmax(0,1fr) 370px; gap:18px; align-items:start; padding:38px 0 96px; }
.quiz { overflow:hidden; background:var(--white); border:1px solid var(--line); border-radius:0; box-shadow:var(--shadow); }
.quiz-head { display:grid; grid-template-columns:auto 1fr; gap:22px; align-items:center; padding:18px 26px; background:var(--white); border-bottom:1px solid var(--line); }
.quiz-head strong { color:var(--forest); font-size:13px; letter-spacing:.04em; white-space:nowrap; }
.progress { width:100%; height:5px; overflow:hidden; background:#e8ebe5; border-radius:0; }
.progress span { display:block; width:14%; height:100%; background:var(--forest); transition:width .25s ease; }
.planner-wrap .step { display:none; padding:38px 38px 26px; }
.planner-wrap .step.active { display:block; }
.planner-wrap .step h2 { max-width:660px; font-size:clamp(34px,4vw,48px); }
.planner-wrap .step > p { margin:10px 0 28px; color:var(--muted); font-size:17px; }
.options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.option { position:relative; min-height:116px; display:grid; align-content:center; gap:7px; padding:20px 48px 20px 20px; color:var(--ink); background:#faf9f5; border:1px solid var(--line); border-radius:0; text-align:left; cursor:pointer; font:inherit; transition:border-color .18s ease,background .18s ease,transform .18s ease; }
.option::after { content:""; position:absolute; top:18px; right:18px; width:17px; height:17px; border:1px solid #aeb6ad; border-radius:50%; }
.option:hover { transform:translateY(-2px); border-color:var(--forest-2); }
.option.selected { background:#edf2ee; border-color:var(--forest); box-shadow:inset 4px 0 0 var(--forest); }
.option.selected::after { border:5px solid var(--forest); background:var(--white); }
.option strong { color:var(--ink); font-size:18px; }
.option span { color:var(--muted); font-size:14px; line-height:1.45; }
.quiz-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 38px 34px; }
.quiz-actions .button { min-width:132px; }
.quiz-actions button:disabled { opacity:.35; cursor:not-allowed; }
.result { position:sticky; top:86px; min-height:530px; display:flex; flex-direction:column; justify-content:space-between; padding:30px; color:var(--white); background:var(--forest); border-radius:0; box-shadow:var(--shadow); }
.result-label { display:block; margin-bottom:20px; color:#d9c69e; font-size:11px; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.result h2 { margin-bottom:14px; font-size:38px; }
.result p { color:rgba(255,255,255,.72); }
.result-list { display:grid; gap:0; margin:25px 0; border-top:1px solid rgba(255,255,255,.18); }
.result-item { padding:13px 0; color:rgba(255,255,255,.82); border-bottom:1px solid rgba(255,255,255,.18); font-size:14px; }
.result-cta { display:grid; gap:9px; }
.result .button.primary { color:var(--ink); background:var(--white); }
.mini-note { margin-top:6px; color:rgba(255,255,255,.48); font-size:11px; }

/* Checklist transfer */
.prep-transfer {
  margin-top:18px;
  padding:28px;
  display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(360px,1.2fr);
  gap:28px;
  align-items:start;
  background:var(--mist);
  border:1px solid var(--line);
  border-left:4px solid var(--sea);
}
.prep-transfer h3 { margin:7px 0 12px; }
.prep-transfer-note { margin-top:12px; color:var(--muted); font-size:13px; }
.prep-transfer-controls { min-width:0; }
.prep-transfer-controls textarea {
  width:100%;
  min-height:128px;
  padding:14px;
  resize:vertical;
  color:var(--ink);
  background:var(--white);
  border:1px solid var(--line);
  font:12px/1.45 Consolas,monospace;
  overflow-wrap:anywhere;
}
.prep-transfer-controls .actions { margin-top:10px; }
.prep-transfer-controls .button { width:auto; }
.prep-transfer-status { min-height:22px; display:block; margin-top:10px; color:var(--forest); font-size:13px; font-weight:750; }
.price-terms-link { display:inline-block; margin-top:12px; color:rgba(255,255,255,.72); font-size:13px; }
.access-terms-summary {
  margin-top:28px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border:1px solid rgba(255,255,255,.18);
}
.access-terms-summary article { padding:20px; border-right:1px solid rgba(255,255,255,.18); }
.access-terms-summary article:last-child { border-right:0; }
.access-terms-summary strong { display:block; margin-bottom:8px; color:#d9c69e; }
.access-terms-summary p { color:rgba(255,255,255,.7); font-size:14px; }
.legal-copy { max-width:920px; }
.legal-copy > article { display:grid; grid-template-columns:54px 1fr; gap:18px; padding:30px 0; border-bottom:1px solid var(--line); }
.legal-copy > article > span { color:var(--forest); font-weight:850; }
.legal-copy h2 { font-size:30px; }
.legal-copy p { margin-top:10px; color:var(--muted); font-size:17px; }
.legal-copy a { color:var(--forest); font-weight:750; }
.legal-note { margin-top:28px; padding:24px; color:var(--white); background:var(--forest); }
.legal-note strong { color:#d9c69e; }
.legal-note p { color:rgba(255,255,255,.72); }
@media(max-width:940px) {
  body:has(.planner-wrap) .hero { min-height:420px; }
  .planner-wrap,.prep-transfer,.access-terms-summary { grid-template-columns:1fr; padding-top:20px; }
  .access-terms-summary article { border-right:0; border-bottom:1px solid rgba(255,255,255,.18); }
  .access-terms-summary article:last-child { border-bottom:0; }
  .result { position:static; min-height:0; }
}
@media(max-width:640px) {
  body:has(.planner-wrap) .hero { min-height:390px; }
  body:has(.planner-wrap) .hero-content { padding-top:64px; padding-bottom:34px; }
  body:has(.planner-wrap) .hero h1 { font-size:42px; }
  .quiz-head { grid-template-columns:1fr; gap:9px; padding:16px 20px; }
  .planner-wrap .step { padding:28px 20px 18px; }
  .options { grid-template-columns:1fr; }
  .option { min-height:96px; }
  .quiz-actions { padding:8px 20px 24px; }
  .quiz-actions .button { width:auto; min-width:112px; }
  .result { padding:24px 20px; }
}

.page-toc ~ [id], .page-toc-target { scroll-margin-top: 145px; }
@media(max-width:940px){ .page-toc { box-shadow:0 5px 14px rgba(27,39,31,.08); } }
