.special-page {
  --svc-primary: #22577a;
  --svc-secondary: #3a7ca5;
  --svc-accent: #d6a756;
  --svc-soft: #edf6f8;
  --svc-bg: #f4f1e8;
  --svc-card: rgba(255,255,255,.94);
  --svc-ink: #183447;
  --svc-muted: #5d727d;
  --svc-border: rgba(31,87,112,.17);
  --svc-shadow: 0 16px 38px rgba(23,62,78,.11);
  color: var(--svc-ink);
  background:
    radial-gradient(circle at 92% 3%, color-mix(in srgb, var(--svc-secondary) 18%, transparent), transparent 31rem),
    radial-gradient(circle at 4% 22%, rgba(214,167,86,.18), transparent 28rem),
    linear-gradient(155deg, #eef4f3, var(--svc-bg) 52%, #f7f4ec);
}
.special-page[data-service="farm"] { --svc-primary:#426a4a; --svc-secondary:#77966d; --svc-accent:#c6904f; --svc-soft:#eef5e9; --svc-bg:#f5f0df; --svc-ink:#263f31; --svc-border:rgba(63,103,69,.18); }
.special-page[data-service="flood"] { --svc-primary:#174f6d; --svc-secondary:#2589a6; --svc-accent:#e0a84a; --svc-soft:#e8f5f7; --svc-bg:#edf3ef; --svc-ink:#173747; --svc-border:rgba(23,79,109,.18); }
.special-page .page-shell { width:min(calc(100% - 28px),1480px); }
.special-page main { display:grid; gap:20px; }
.special-page a { color:var(--svc-primary); }
.special-page button,.special-page input,.special-page select { font:inherit; }
.special-page button:focus-visible,.special-page input:focus-visible,.special-page select:focus-visible,.special-page a:focus-visible { outline:3px solid color-mix(in srgb,var(--svc-secondary) 38%,transparent); outline-offset:3px; }

.svc-breadcrumbs { display:flex; align-items:center; gap:8px; margin:0 0 13px; color:var(--svc-muted); font-size:.88rem; }
.svc-breadcrumbs a { font-weight:850; text-decoration:none; }
.svc-hero { position:relative; min-height:clamp(300px,38vw,470px); overflow:hidden; border:1px solid rgba(255,255,255,.7); border-radius:26px; background:linear-gradient(118deg,var(--svc-primary),color-mix(in srgb,var(--svc-secondary) 82%,#12354b)); box-shadow:var(--svc-shadow); isolation:isolate; }
.svc-hero::before,.svc-hero::after { content:""; position:absolute; border-radius:50%; pointer-events:none; }
.svc-hero::before { width:min(52vw,680px); height:min(52vw,680px); top:-60%; right:-9%; border:2px solid rgba(255,255,255,.14); box-shadow:0 0 0 48px rgba(255,255,255,.035),0 0 0 100px rgba(255,255,255,.025); }
.svc-hero::after { inset:0; border-radius:0; background:linear-gradient(90deg,rgba(7,32,46,.34),transparent 70%),repeating-linear-gradient(120deg,transparent 0 42px,rgba(255,255,255,.025) 43px 44px); }
.svc-hero-icon { position:absolute; right:clamp(25px,8vw,120px); top:50%; z-index:1; transform:translateY(-50%) rotate(-7deg); font-size:clamp(6rem,18vw,13rem); filter:drop-shadow(0 18px 25px rgba(0,20,30,.22)); opacity:.93; }
.svc-hero-copy { position:relative; z-index:2; display:grid; align-content:center; width:min(760px,75%); min-height:inherit; padding:clamp(28px,5vw,70px); color:#fff; }
.svc-eyebrow,.svc-kicker { margin:0 0 8px; font-size:.78rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.svc-eyebrow { color:#e8f8f4; }
.svc-kicker { color:var(--svc-primary); }
.svc-hero h1 { max-width:720px; margin:0; font-size:clamp(2.3rem,6vw,5.25rem); line-height:.98; letter-spacing:-.04em; }
.svc-hero-copy>p:last-child { max-width:680px; margin:20px 0 0; font-size:clamp(1rem,1.8vw,1.24rem); font-weight:650; line-height:1.58; }
.svc-nav { display:flex; flex-wrap:wrap; gap:8px; margin-top:13px; }
.svc-nav a { display:inline-flex; min-height:44px; align-items:center; justify-content:center; padding:8px 13px; border:1px solid var(--svc-border); border-radius:999px; background:rgba(255,255,255,.88); color:var(--svc-primary); font-size:.86rem; font-weight:850; text-align:center; text-decoration:none; box-shadow:0 5px 14px rgba(20,65,80,.05); }
.svc-nav a:hover,.svc-nav a.is-current { border-color:var(--svc-primary); background:var(--svc-primary); color:#fff; }

.svc-card,.svc-intro,.svc-controls,.svc-map-card,.svc-detail,.svc-sources,.svc-guide { border:1px solid var(--svc-border); border-radius:21px; background:var(--svc-card); box-shadow:var(--svc-shadow); }
.svc-intro { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr); gap:22px; align-items:center; padding:clamp(21px,4vw,36px); }
.svc-intro h2,.svc-section-head h2,.svc-sources h2,.svc-guide h2 { margin:0; color:var(--svc-primary); font-size:clamp(1.5rem,3vw,2.2rem); }
.svc-intro p { margin:10px 0 0; color:var(--svc-muted); line-height:1.7; }
.svc-notice { padding:17px 19px; border:1px solid rgba(184,119,31,.23); border-radius:15px; background:#fff7e6; color:#674616!important; }
.svc-controls { padding:18px; }
.svc-form { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; align-items:end; }
.svc-form.is-travel { grid-template-columns:.75fr 1fr 1fr 1fr auto; }
.svc-field { display:grid; gap:6px; min-width:0; color:var(--svc-primary); font-size:.82rem; font-weight:850; }
.svc-field input,.svc-field select { width:100%; min-height:47px; padding:0 12px; border:1px solid color-mix(in srgb,var(--svc-primary) 24%,transparent); border-radius:12px; background:#fff; color:var(--svc-ink); }
.svc-submit,.svc-secondary-button { min-height:47px; padding:0 18px; border:1px solid var(--svc-primary); border-radius:12px; background:var(--svc-primary); color:#fff; font-weight:900; cursor:pointer; }
.svc-submit:hover,.svc-secondary-button:hover { filter:brightness(.9); }
.svc-secondary-button { background:#fff; color:var(--svc-primary); }
.svc-status { min-height:1.5em; margin:12px 2px 0; color:var(--svc-muted); font-size:.9rem; line-height:1.5; }
.svc-status[data-tone="loading"]::before { content:""; display:inline-block; width:.7rem; height:.7rem; margin-right:8px; border:2px solid color-mix(in srgb,var(--svc-primary) 25%,transparent); border-top-color:var(--svc-primary); border-radius:50%; animation:svc-spin .8s linear infinite; }
.svc-status[data-tone="danger"] { color:#9c3440; font-weight:850; }
.svc-status[data-tone="success"] { color:#27673f; font-weight:800; }

.svc-summary-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:11px; }
.svc-summary-card { min-width:0; padding:17px; }
.svc-summary-card>span { display:block; color:var(--svc-muted); font-size:.82rem; font-weight:750; }
.svc-summary-card>strong { display:block; margin-top:8px; color:var(--svc-primary); font-size:clamp(1.25rem,2.5vw,1.9rem); line-height:1.1; overflow-wrap:anywhere; }
.svc-summary-card>small { display:block; min-height:2.5em; margin-top:7px; color:var(--svc-muted); line-height:1.36; }
.svc-summary-card[data-tone="good"] { background:linear-gradient(145deg,#e7f6ec,#fff); }
.svc-summary-card[data-tone="warning"] { background:linear-gradient(145deg,#fff4d8,#fff); }
.svc-summary-card[data-tone="danger"] { background:linear-gradient(145deg,#ffe7e7,#fff); }

.svc-two-column { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr); gap:18px; align-items:start; }
.svc-map-card,.svc-detail { min-width:0; overflow:hidden; padding:18px; }
.svc-section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:14px; margin-bottom:14px; }
.svc-section-head h2 { font-size:clamp(1.35rem,2.6vw,1.9rem); }
.svc-section-head p { margin:5px 0 0; color:var(--svc-muted); line-height:1.5; }
.svc-badge { display:inline-flex; align-items:center; padding:6px 10px; border-radius:999px; background:var(--svc-soft); color:var(--svc-primary); font-size:.78rem; font-weight:900; white-space:nowrap; }
.svc-map-shell { position:relative; min-height:520px; overflow:hidden; border:1px solid var(--svc-border); border-radius:16px; background:#cfe0df; }
.svc-map { width:100%; min-height:520px; }
.svc-map-fullscreen { position:absolute; top:12px; right:12px; z-index:800; display:grid; width:46px; height:46px; place-items:center; border:2px solid #fff; border-radius:13px; background:var(--svc-primary); color:#fff; font-size:1.35rem; box-shadow:0 7px 20px rgba(0,35,50,.24); }
.svc-map-shell:fullscreen,.svc-map-shell.is-pseudo-fullscreen { position:fixed; inset:0; z-index:9999; width:100vw; height:100dvh; border:0; border-radius:0; }
.svc-map-shell:fullscreen .svc-map,.svc-map-shell.is-pseudo-fullscreen .svc-map { height:100dvh; min-height:100dvh; }
body.svc-map-open { overflow:hidden; }
.svc-marker { display:grid; min-width:44px; min-height:44px; place-content:center; border:3px solid #fff; border-radius:15px; background:var(--marker-color,var(--svc-primary)); color:#fff; font-size:.84rem; font-weight:950; text-align:center; box-shadow:0 6px 18px rgba(0,35,50,.3); }
.svc-marker small { display:block; font-size:.66rem; }

.svc-timeline,.svc-list { display:grid; gap:10px; }
.svc-timeline { max-height:610px; overflow:auto; padding-right:3px; scrollbar-width:thin; }
.svc-step,.svc-list-card { position:relative; padding:14px; border:1px solid var(--svc-border); border-radius:14px; background:#fff; }
.svc-step { padding-left:18px; border-left:5px solid var(--risk-color,var(--svc-secondary)); }
.svc-step-head,.svc-list-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.svc-step h3,.svc-list-card h3 { margin:0; color:var(--svc-primary); font-size:1.03rem; }
.svc-step p,.svc-list-card p { margin:7px 0 0; color:var(--svc-muted); line-height:1.5; }
.svc-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; margin-top:10px; }
.svc-fact { padding:8px 9px; border-radius:10px; background:var(--svc-soft); color:var(--svc-muted); font-size:.78rem; }
.svc-fact strong { display:block; margin-top:3px; color:var(--svc-ink); font-size:.9rem; }
.risk-chip { display:inline-flex; padding:5px 8px; border-radius:999px; background:color-mix(in srgb,var(--risk-color) 14%,white); color:var(--risk-color); font-size:.72rem; font-weight:900; }
.risk-chip[data-risk="good"] { --risk-color:#247045; }
.risk-chip[data-risk="watch"] { --risk-color:#a66b18; }
.risk-chip[data-risk="danger"] { --risk-color:#aa3744; }

.svc-day-strip { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(170px,1fr); gap:10px; overflow-x:auto; padding-bottom:6px; scrollbar-width:thin; }
.svc-day-card { padding:14px; border:1px solid var(--svc-border); border-radius:14px; background:#fff; }
.svc-day-card strong,.svc-day-card span,.svc-day-card small { display:block; }
.svc-day-card strong { color:var(--svc-primary); font-size:1.15rem; }
.svc-day-card span { margin-top:8px; color:var(--svc-ink); font-weight:800; }
.svc-day-card small { margin-top:5px; color:var(--svc-muted); line-height:1.4; }
.svc-windows { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:11px; }
.svc-window { padding:15px; border:1px solid var(--svc-border); border-radius:14px; background:#fff; }
.svc-window strong { display:block; color:var(--svc-primary); font-size:1.18rem; }
.svc-window span,.svc-window small { display:block; margin-top:6px; color:var(--svc-muted); line-height:1.45; }
.svc-table-scroll { overflow-x:auto; border:1px solid var(--svc-border); border-radius:15px; scrollbar-width:thin; }
.svc-table { width:100%; min-width:880px; border-collapse:collapse; background:#fff; }
.svc-table th,.svc-table td { padding:10px 11px; border-bottom:1px solid var(--svc-border); text-align:left; vertical-align:top; white-space:nowrap; }
.svc-table th { background:var(--svc-soft); color:var(--svc-primary); font-size:.78rem; }
.svc-table td { color:var(--svc-ink); font-size:.86rem; }
.svc-table small { display:block; color:var(--svc-muted); }

.svc-river-layout { display:grid; grid-template-columns:320px minmax(0,1fr); gap:18px; align-items:start; }
.svc-river-browser { position:sticky; top:12px; max-height:calc(100vh - 24px); overflow:auto; padding:13px; }
.river-button { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:4px 9px; width:100%; padding:12px; border:1px solid var(--svc-border); border-radius:12px; background:#fff; color:var(--svc-ink); text-align:left; }
.river-button+ .river-button { margin-top:7px; }
.river-button strong { color:var(--svc-primary); }
.river-button small { color:var(--svc-muted); }
.river-button span { grid-column:2; grid-row:1/3; align-self:center; }
.river-button.is-selected { border-color:var(--svc-primary); background:var(--svc-soft); box-shadow:inset 4px 0 var(--svc-primary); }
.svc-chart { min-height:280px; padding:12px; border:1px solid var(--svc-border); border-radius:15px; background:#fff; }
.svc-chart svg { display:block; width:100%; min-height:250px; overflow:visible; }
.chart-grid { stroke:rgba(30,85,105,.12); stroke-width:1; }
.chart-line { fill:none; stroke:var(--svc-secondary); stroke-width:4; stroke-linecap:round; stroke-linejoin:round; }
.chart-band { fill:color-mix(in srgb,var(--svc-secondary) 15%,transparent); }
.chart-normal { stroke:var(--svc-accent); stroke-width:2; stroke-dasharray:7 6; }
.chart-label { fill:var(--svc-muted); font-size:11px; }
.chart-dot { fill:var(--svc-primary); stroke:#fff; stroke-width:2; }

.svc-guide,.svc-sources { padding:clamp(21px,4vw,34px); }
.svc-guide-grid,.svc-source-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:16px; }
.svc-guide article,.svc-source-grid article { padding:16px; border:1px solid var(--svc-border); border-radius:14px; background:#fff; }
.svc-guide h3,.svc-source-grid h3 { margin:0; color:var(--svc-primary); font-size:1.02rem; }
.svc-guide p,.svc-source-grid p { margin:8px 0 0; color:var(--svc-muted); line-height:1.62; }
.svc-source-grid a { font-weight:800; }
.leaflet-popup-content .svc-popup strong { color:var(--svc-primary); }
.leaflet-popup-content .svc-popup p { margin:5px 0; }
@keyframes svc-spin { to { transform:rotate(360deg); } }

@media (max-width:1180px) {
  .svc-form.is-travel { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .svc-form.is-travel .svc-submit { min-height:47px; }
  .svc-summary-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:930px) {
  .svc-intro,.svc-two-column,.svc-river-layout { grid-template-columns:1fr; }
  .svc-river-browser { position:static; max-height:none; }
  .svc-river-list { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(215px,65vw); overflow-x:auto; }
  .river-button+.river-button { margin:0 0 0 7px; }
  .svc-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .svc-guide-grid,.svc-source-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:660px) {
  .special-page .page-shell { width:min(calc(100% - 16px),1480px); padding-top:14px; }
  .svc-hero { min-height:390px; border-radius:19px; }
  .svc-hero-copy { align-content:end; width:100%; padding:24px 21px 28px; }
  .svc-hero-copy h1 { font-size:clamp(2.25rem,13vw,3.6rem); }
  .svc-hero-icon { top:27%; right:12px; font-size:8.2rem; opacity:.42; }
  .svc-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .svc-nav a { padding:8px 7px; font-size:.77rem; }
  .svc-form,.svc-form.is-travel,.svc-summary-grid,.svc-guide-grid,.svc-source-grid,.svc-windows { grid-template-columns:1fr; }
  .svc-summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .svc-summary-card { padding:14px; }
  .svc-map-card,.svc-detail { padding:13px; }
  .svc-map-shell,.svc-map { min-height:430px; }
  .svc-section-head { align-items:flex-start; flex-direction:column; }
  .svc-facts { grid-template-columns:1fr; }
  .svc-intro { padding:20px; }
}

/* Calmer controls and panels — 2026-08-25 */
.svc-eyebrow,.svc-kicker { font-weight:750; letter-spacing:.035em; text-transform:none; }
.svc-nav { gap:5px; padding:4px; border:1px solid var(--svc-border); border-radius:13px; background:rgba(238,244,251,.72); }
.svc-nav a { min-height:42px; padding:7px 10px; border-color:transparent; border-radius:9px; background:transparent; font-weight:700; box-shadow:none; }
.svc-nav a:hover,.svc-nav a.is-current { border-color:var(--svc-border); background:#fff; color:var(--svc-primary); box-shadow:0 2px 7px rgba(20,65,80,.09); }
.svc-card,.svc-intro,.svc-controls,.svc-map-card,.svc-detail,.svc-sources,.svc-guide { border-radius:16px; box-shadow:0 7px 19px rgba(20,54,72,.1); }
.svc-submit,.svc-secondary-button { border-radius:9px; font-weight:750; box-shadow:none; }
.svc-field { font-weight:720; }

@media (max-width:660px) {
  .svc-nav { display:flex; overflow-x:auto; scrollbar-width:none; scroll-snap-type:x proximity; }
  .svc-nav a { min-width:max-content; min-height:44px; scroll-snap-align:start; }
}
@media (prefers-reduced-motion:reduce) { .svc-status[data-tone="loading"]::before { animation:none; } }
