/* ==========================================================================
   Alps Group: shared design system ("Alpine night and first snow")
   Snow paper, night bands, hairline cards with brass survey ticks, ridge
   edges and contour lines. Colours only through the variables below.
   Shared by index.html and quote.html. Page-specific rules live in
   css/home.css and css/quote.css.
   ========================================================================== */
@font-face{font-family:'Fraunces';src:url(../assets/fonts/fraunces.woff2) format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'Archivo';src:url(../assets/fonts/archivo.woff2) format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url(../assets/fonts/plexmono-500.woff2) format('woff2');font-weight:500;font-style:normal;font-display:swap}
:root{
  /* surfaces */
  --snow:#FBF8F1;           /* page background */
  --frost:#EEF1EE;          /* alternate band */
  --paper:#FFFFFF;          /* cards */
  --night:#0F1D16;          /* dark bands */
  --night-2:#16291F;        /* raised surface on night */
  /* ink and brand */
  --ink:#16211B;
  --ink-soft:rgba(22,33,27,.78);
  --ink-mute:rgba(22,33,27,.62);
  --spruce:#1E3B2C;
  --red:#A8262F;            /* primary action only */
  --red-deep:#85201C;
  --brass:#93701F;          /* graphics on light */
  --brass-text:#7A5C14;     /* small text on light (AA) */
  --gold:#DDB35E;           /* accents on night */
  --ivory:#F6F1E4;          /* text on night */
  --ivory-soft:rgba(246,241,228,.8);
  --ivory-mute:rgba(246,241,228,.62);
  --line:rgba(22,33,27,.14);
  --line-strong:rgba(22,33,27,.3);
  --line-night:rgba(246,241,228,.16);
  /* type */
  --font-display:'Fraunces',Georgia,'Times New Roman',serif;
  --font-body:'Archivo',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;
  /* shape */
  --radius:8px;
  --radius-sm:6px;
  --shadow:0 1px 2px rgba(22,33,27,.05),0 10px 28px -12px rgba(22,33,27,.16);
  --shadow-lift:0 2px 4px rgba(22,33,27,.06),0 22px 44px -18px rgba(22,33,27,.26);
  --ease:cubic-bezier(.2,.7,.2,1);
  --wrap:1160px;
  --header-h:68px;
  --section-y:clamp(68px,9vw,124px);
  /* textures (inline SVG) */
  --contour-light:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='720' height='480' viewBox='0 0 720 480'%3E%3Cg fill='none' stroke='%2316211B' stroke-opacity='.07' stroke-width='1'%3E%3Cpath d='M0 31.7 L24 27.2 L48 23.7 L72 21.4 L96 20.3 L120 20.3 L144 21.0 L168 21.9 L192 22.6 L216 22.6 L240 21.7 L264 20.0 L288 17.7 L312 15.2 L336 12.9 L360 11.5 L384 11.4 L408 13.0 L432 16.2 L456 20.9 L480 26.6 L504 32.7 L528 38.6 L552 43.4 L576 46.8 L600 48.2 L624 47.6 L648 45.1 L672 41.3 L696 36.6 L720 31.7'/%3E%3Cpath d='M0 80.3 L24 72.1 L48 65.3 L72 60.5 L96 57.9 L120 57.7 L144 59.4 L168 62.4 L192 66.1 L216 69.6 L240 72.4 L264 74.1 L288 74.7 L312 74.3 L336 73.4 L360 72.7 L384 72.7 L408 74.1 L432 77.0 L456 81.5 L480 87.3 L504 93.7 L528 100.0 L552 105.3 L576 108.7 L600 109.7 L624 107.9 L648 103.5 L672 96.9 L696 88.9 L720 80.3'/%3E%3Cpath d='M0 112.3 L24 112.3 L48 113.5 L72 116.2 L96 120.6 L120 126.5 L144 133.7 L168 141.6 L192 149.4 L216 156.5 L240 162.1 L264 165.6 L288 166.8 L312 165.6 L336 162.0 L360 156.7 L384 150.2 L408 143.3 L432 136.5 L456 130.5 L480 125.7 L504 122.1 L528 119.7 L552 118.2 L576 117.3 L600 116.7 L624 116.1 L648 115.2 L672 114.1 L696 113.0 L720 112.3'/%3E%3Cpath d='M0 183.8 L24 184.6 L48 185.2 L72 186.1 L96 187.3 L120 189.0 L144 191.3 L168 194.1 L192 197.1 L216 199.9 L240 202.2 L264 203.5 L288 203.7 L312 202.5 L336 199.9 L360 196.2 L384 191.6 L408 186.6 L432 181.7 L456 177.4 L480 174.0 L504 171.9 L528 171.1 L552 171.4 L576 172.8 L600 174.8 L624 177.1 L648 179.3 L672 181.2 L696 182.7 L720 183.8'/%3E%3Cpath d='M0 216.8 L24 215.7 L48 217.1 L72 221.0 L96 226.6 L120 233.0 L144 238.8 L168 243.2 L192 246.0 L216 247.6 L240 248.8 L264 250.4 L288 253.0 L312 256.5 L336 260.2 L360 263.2 L384 264.3 L408 262.9 L432 259.0 L456 253.4 L480 247.0 L504 241.2 L528 236.8 L552 234.0 L576 232.4 L600 231.2 L624 229.6 L648 227.0 L672 223.5 L696 219.8 L720 216.8'/%3E%3Cpath d='M0 309.7 L24 304.6 L48 302.4 L72 303.3 L96 305.9 L120 308.1 L144 307.6 L168 303.1 L192 294.8 L216 284.2 L240 273.9 L264 266.4 L288 263.5 L312 265.3 L336 270.6 L360 276.9 L384 282.0 L408 284.2 L432 283.4 L456 280.8 L480 278.6 L504 279.1 L528 283.5 L552 291.9 L576 302.4 L600 312.8 L624 320.2 L648 323.2 L672 321.3 L696 316.1 L720 309.7'/%3E%3Cpath d='M0 349.0 L24 349.4 L48 351.8 L72 354.1 L96 353.7 L120 349.4 L144 341.3 L168 331.2 L192 321.8 L216 315.7 L240 314.6 L264 318.6 L288 326.1 L312 334.5 L336 341.1 L360 344.3 L384 344.0 L408 341.5 L432 339.3 L456 339.6 L480 343.9 L504 352.0 L528 362.1 L552 371.6 L576 377.6 L600 378.7 L624 374.7 L648 367.2 L672 358.9 L696 352.2 L720 349.0'/%3E%3Cpath d='M0 420.2 L24 418.9 L48 415.6 L72 409.8 L96 402.2 L120 393.8 L144 386.0 L168 380.2 L192 376.9 L216 376.1 L240 377.0 L264 378.6 L288 379.7 L312 380.1 L336 379.9 L360 379.8 L384 381.1 L408 384.4 L432 390.2 L456 397.8 L480 406.2 L504 414.0 L528 419.8 L552 423.1 L576 423.9 L600 423.0 L624 421.4 L648 420.3 L672 419.9 L696 420.1 L720 420.2'/%3E%3Cpath d='M0 450.3 L24 444.3 L48 442.7 L72 445.1 L96 449.6 L120 453.6 L144 454.8 L168 452.0 L192 445.7 L216 438.0 L240 431.6 L264 429.0 L288 431.4 L312 438.2 L336 447.5 L360 456.4 L384 462.3 L408 464.0 L432 461.6 L456 457.1 L480 453.1 L504 451.9 L528 454.7 L552 461.0 L576 468.7 L600 475.1 L624 477.7 L648 475.3 L672 468.4 L696 459.1 L720 450.3'/%3E%3Cellipse cx='170' cy='150' rx='69' ry='46' transform='rotate(-14 170 150)'/%3E%3Cellipse cx='170' cy='150' rx='39' ry='26' transform='rotate(-14 170 150)'/%3E%3Cellipse cx='540' cy='330' rx='87' ry='58' transform='rotate(-14 540 330)'/%3E%3Cellipse cx='540' cy='330' rx='51' ry='34' transform='rotate(-14 540 330)'/%3E%3Cellipse cx='540' cy='330' rx='21' ry='14' transform='rotate(-14 540 330)'/%3E%3C/g%3E%3C/svg%3E");
  --contour-dark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='720' height='480' viewBox='0 0 720 480'%3E%3Cg fill='none' stroke='%23F4ECDA' stroke-opacity='.07' stroke-width='1'%3E%3Cpath d='M0 31.7 L24 27.2 L48 23.7 L72 21.4 L96 20.3 L120 20.3 L144 21.0 L168 21.9 L192 22.6 L216 22.6 L240 21.7 L264 20.0 L288 17.7 L312 15.2 L336 12.9 L360 11.5 L384 11.4 L408 13.0 L432 16.2 L456 20.9 L480 26.6 L504 32.7 L528 38.6 L552 43.4 L576 46.8 L600 48.2 L624 47.6 L648 45.1 L672 41.3 L696 36.6 L720 31.7'/%3E%3Cpath d='M0 80.3 L24 72.1 L48 65.3 L72 60.5 L96 57.9 L120 57.7 L144 59.4 L168 62.4 L192 66.1 L216 69.6 L240 72.4 L264 74.1 L288 74.7 L312 74.3 L336 73.4 L360 72.7 L384 72.7 L408 74.1 L432 77.0 L456 81.5 L480 87.3 L504 93.7 L528 100.0 L552 105.3 L576 108.7 L600 109.7 L624 107.9 L648 103.5 L672 96.9 L696 88.9 L720 80.3'/%3E%3Cpath d='M0 112.3 L24 112.3 L48 113.5 L72 116.2 L96 120.6 L120 126.5 L144 133.7 L168 141.6 L192 149.4 L216 156.5 L240 162.1 L264 165.6 L288 166.8 L312 165.6 L336 162.0 L360 156.7 L384 150.2 L408 143.3 L432 136.5 L456 130.5 L480 125.7 L504 122.1 L528 119.7 L552 118.2 L576 117.3 L600 116.7 L624 116.1 L648 115.2 L672 114.1 L696 113.0 L720 112.3'/%3E%3Cpath d='M0 183.8 L24 184.6 L48 185.2 L72 186.1 L96 187.3 L120 189.0 L144 191.3 L168 194.1 L192 197.1 L216 199.9 L240 202.2 L264 203.5 L288 203.7 L312 202.5 L336 199.9 L360 196.2 L384 191.6 L408 186.6 L432 181.7 L456 177.4 L480 174.0 L504 171.9 L528 171.1 L552 171.4 L576 172.8 L600 174.8 L624 177.1 L648 179.3 L672 181.2 L696 182.7 L720 183.8'/%3E%3Cpath d='M0 216.8 L24 215.7 L48 217.1 L72 221.0 L96 226.6 L120 233.0 L144 238.8 L168 243.2 L192 246.0 L216 247.6 L240 248.8 L264 250.4 L288 253.0 L312 256.5 L336 260.2 L360 263.2 L384 264.3 L408 262.9 L432 259.0 L456 253.4 L480 247.0 L504 241.2 L528 236.8 L552 234.0 L576 232.4 L600 231.2 L624 229.6 L648 227.0 L672 223.5 L696 219.8 L720 216.8'/%3E%3Cpath d='M0 309.7 L24 304.6 L48 302.4 L72 303.3 L96 305.9 L120 308.1 L144 307.6 L168 303.1 L192 294.8 L216 284.2 L240 273.9 L264 266.4 L288 263.5 L312 265.3 L336 270.6 L360 276.9 L384 282.0 L408 284.2 L432 283.4 L456 280.8 L480 278.6 L504 279.1 L528 283.5 L552 291.9 L576 302.4 L600 312.8 L624 320.2 L648 323.2 L672 321.3 L696 316.1 L720 309.7'/%3E%3Cpath d='M0 349.0 L24 349.4 L48 351.8 L72 354.1 L96 353.7 L120 349.4 L144 341.3 L168 331.2 L192 321.8 L216 315.7 L240 314.6 L264 318.6 L288 326.1 L312 334.5 L336 341.1 L360 344.3 L384 344.0 L408 341.5 L432 339.3 L456 339.6 L480 343.9 L504 352.0 L528 362.1 L552 371.6 L576 377.6 L600 378.7 L624 374.7 L648 367.2 L672 358.9 L696 352.2 L720 349.0'/%3E%3Cpath d='M0 420.2 L24 418.9 L48 415.6 L72 409.8 L96 402.2 L120 393.8 L144 386.0 L168 380.2 L192 376.9 L216 376.1 L240 377.0 L264 378.6 L288 379.7 L312 380.1 L336 379.9 L360 379.8 L384 381.1 L408 384.4 L432 390.2 L456 397.8 L480 406.2 L504 414.0 L528 419.8 L552 423.1 L576 423.9 L600 423.0 L624 421.4 L648 420.3 L672 419.9 L696 420.1 L720 420.2'/%3E%3Cpath d='M0 450.3 L24 444.3 L48 442.7 L72 445.1 L96 449.6 L120 453.6 L144 454.8 L168 452.0 L192 445.7 L216 438.0 L240 431.6 L264 429.0 L288 431.4 L312 438.2 L336 447.5 L360 456.4 L384 462.3 L408 464.0 L432 461.6 L456 457.1 L480 453.1 L504 451.9 L528 454.7 L552 461.0 L576 468.7 L600 475.1 L624 477.7 L648 475.3 L672 468.4 L696 459.1 L720 450.3'/%3E%3Cellipse cx='170' cy='150' rx='69' ry='46' transform='rotate(-14 170 150)'/%3E%3Cellipse cx='170' cy='150' rx='39' ry='26' transform='rotate(-14 170 150)'/%3E%3Cellipse cx='540' cy='330' rx='87' ry='58' transform='rotate(-14 540 330)'/%3E%3Cellipse cx='540' cy='330' rx='51' ry='34' transform='rotate(-14 540 330)'/%3E%3Cellipse cx='540' cy='330' rx='21' ry='14' transform='rotate(-14 540 330)'/%3E%3C/g%3E%3C/svg%3E");
  --ridge-a:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1400 100' preserveAspectRatio='none'%3E%3Cpath d='M0 100 L0 61 L72 22 L100 6 L119 16 L191 79 L299 22 L327 6 L346 16 L420 72 L528 36 L556 20 L575 30 L640 76 L786 60 L814 44 L833 54 L885 94 L1015 26 L1043 10 L1062 20 L1107 73 L1247 24 L1275 8 L1293 18 L1359 86 L1400 61 L1400 100 Z'/%3E%3C/svg%3E");
  --ridge-b:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1400 100' preserveAspectRatio='none'%3E%3Cpath d='M0 100 L0 69 L50 54 L71 38 L85 48 L138 80 L212 21 L233 5 L247 15 L309 63 L385 22 L406 6 L420 16 L486 69 L559 20 L580 4 L594 14 L668 65 L760 51 L781 35 L795 45 L829 73 L920 57 L941 41 L955 51 L1010 78 L1109 65 L1130 49 L1144 59 L1183 69 L1285 51 L1306 35 L1320 45 L1355 71 L1400 69 L1400 100 Z'/%3E%3C/svg%3E");
  --arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--snow);color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.06;letter-spacing:-.022em;margin:0 0 .4em;color:var(--ink);font-optical-sizing:auto}
h1{font-size:clamp(2.5rem,5.6vw,4.4rem)}
h2{font-size:clamp(2rem,4.2vw,3.2rem)}
h3{font-size:clamp(1.25rem,2vw,1.5rem);letter-spacing:-.012em;line-height:1.15}
p{margin:0 0 1em}
:focus-visible{outline:2px solid var(--red);outline-offset:3px;border-radius:3px}
.on-dark :focus-visible,.band--night :focus-visible,.site-footer :focus-visible{outline-color:var(--gold)}
.skip{position:absolute;left:-999px;top:8px;background:var(--paper);border:1px solid var(--line-strong);padding:10px 16px;border-radius:var(--radius-sm);z-index:200}
.skip:focus{left:8px}
.sr-only{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.wrap{width:min(100% - 48px,var(--wrap));margin-inline:auto}
section{scroll-margin-top:calc(var(--header-h) + 8px)}
.center{text-align:center}
.nb{display:inline-block}
.lead{font-size:clamp(1.05rem,1.5vw,1.2rem);color:var(--ink-soft);max-width:44rem;text-wrap:pretty}
.center .lead{margin-inline:auto}
/* accent word: italic display face (red on light, gold on night) */
.accent{font-style:italic;font-weight:500;color:var(--red);letter-spacing:-.01em}
.on-dark .accent,.band--night .accent,.gold{color:var(--gold)}

/* ---------- small labels ---------- */
/* .kicker / .eyebrow: mono caps with a short brass rule in front */
.kicker,.eyebrow{display:inline-flex;align-items:center;gap:12px;font:500 .74rem/1.3 var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--brass-text);margin:0 0 18px}
.kicker::before,.eyebrow::before{content:"";flex:none;width:26px;height:1px;background:currentColor}
.center .kicker::after,.center .eyebrow::after,.section-head .kicker::after,.section-head .eyebrow::after{content:"";flex:none;width:26px;height:1px;background:currentColor}
.on-dark .kicker,.on-dark .eyebrow,.band--night .kicker,.band--night .eyebrow{color:var(--gold)}
.tag{display:inline-flex;align-items:center;gap:8px;font:500 .7rem/1.2 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--brass-text)}
.tag::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--brass);flex:none}
.on-dark .tag{color:var(--gold)}.on-dark .tag::before{background:var(--gold)}
.chip{display:inline-flex;align-items:center;gap:9px;padding:9px 15px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);font-weight:600;font-size:.95rem;color:var(--ink);background:var(--paper)}
.on-dark .chip,.band--night .chip{border-color:var(--line-night);color:var(--ivory);background:transparent}

/* ---------- buttons ---------- */
/* .btn = red primary with a sliding arrow. Variants: --ghost (ink outline),
   --gold (gold outline, for night bands), --sm, --noarrow, --glow (lantern pulse) */
.btn{--bg:var(--red);--fg:#fff;--bd:var(--red-deep);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:52px;padding:14px 24px;border-radius:var(--radius-sm);border:1px solid var(--bd);background:var(--bg);color:var(--fg);font:600 1rem/1.1 var(--font-body);letter-spacing:.01em;text-decoration:none;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(22,33,27,.18),0 8px 18px -10px rgba(133,32,28,.7);transition:background .2s,color .2s,border-color .2s,translate .2s var(--ease),box-shadow .2s}
.btn::after{content:"";flex:none;width:18px;height:18px;background:currentColor;-webkit-mask:var(--arrow) center/contain no-repeat;mask:var(--arrow) center/contain no-repeat;transition:translate .25s var(--ease)}
.btn:hover{background:var(--red-deep);translate:0 -1px}
.btn:hover::after{translate:4px 0}
.btn:active{translate:0 1px}
.btn--noarrow::after{display:none}
.btn--sm{min-height:44px;padding:10px 18px;font-size:.93rem;gap:10px}
.btn--sm::after{width:16px;height:16px}
.btn--ghost{--bg:transparent;--fg:var(--ink);--bd:var(--line-strong);box-shadow:none}
.btn--ghost:hover{background:var(--ink);color:var(--snow);border-color:var(--ink)}
.btn--ghost::after{display:none}
.btn--gold{--bg:transparent;--fg:var(--gold);--bd:rgba(221,179,94,.6);box-shadow:none}
.btn--gold:hover{background:var(--gold);color:var(--night);border-color:var(--gold)}
.btn--gold::after{display:none}
.btn--arrow::after{display:block}
.btn--glow{animation:lantern 3.6s ease-in-out infinite}
@keyframes lantern{0%,100%{box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(22,33,27,.18),0 0 0 0 rgba(221,179,94,0)}50%{box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(22,33,27,.18),0 0 26px 2px rgba(221,179,94,.34)}}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.textlink{display:inline-flex;align-items:center;gap:9px;font-weight:600;text-decoration:none;color:var(--ink);padding-bottom:3px;background:linear-gradient(var(--red),var(--red)) left bottom/100% 1px no-repeat;transition:color .2s}
.textlink::after{content:"";flex:none;width:16px;height:16px;background:currentColor;-webkit-mask:var(--arrow) center/contain no-repeat;mask:var(--arrow) center/contain no-repeat;transition:translate .25s var(--ease)}
.textlink:hover{color:var(--red)}
.textlink:hover::after{translate:4px 0}
.on-dark .textlink{color:var(--ivory);background-image:linear-gradient(var(--gold),var(--gold))}
.on-dark .textlink:hover{color:var(--gold)}

/* ---------- cards ---------- */
/* .card = white paper, hairline, soft shadow, brass survey ticks at the corners.
   --plain drops the ticks, --night is the dark version, --flat drops the shadow. */
.card{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(22px,3vw,34px)}
.card::before{content:"";position:absolute;inset:-5px;pointer-events:none;--t:var(--brass);
  background:
    linear-gradient(var(--t),var(--t)) left top/14px 1.5px no-repeat,linear-gradient(var(--t),var(--t)) left top/1.5px 14px no-repeat,
    linear-gradient(var(--t),var(--t)) right top/14px 1.5px no-repeat,linear-gradient(var(--t),var(--t)) right top/1.5px 14px no-repeat,
    linear-gradient(var(--t),var(--t)) left bottom/14px 1.5px no-repeat,linear-gradient(var(--t),var(--t)) left bottom/1.5px 14px no-repeat,
    linear-gradient(var(--t),var(--t)) right bottom/14px 1.5px no-repeat,linear-gradient(var(--t),var(--t)) right bottom/1.5px 14px no-repeat}
.card--plain::before{display:none}
.card--flat{box-shadow:none}
.card--night{background:var(--night);border-color:var(--night);color:var(--ivory)}
.card--night::before{--t:var(--gold)}
.card--night h2,.card--night h3{color:var(--ivory)}

/* ---------- bands, textures, ridge edges ---------- */
.band{position:relative;padding:var(--section-y) 0}
.band--snow{background:var(--snow)}
.band--frost{background:var(--frost)}
.band--night{background:var(--night);color:var(--ivory)}
.band--night h1,.band--night h2,.band--night h3,.on-dark h1,.on-dark h2,.on-dark h3{color:var(--ivory)}
.band--night .lead,.on-dark .lead{color:var(--ivory-soft)}
/* .contour: thin topographic lines behind the content of a band */
.contour{background-image:var(--contour-light);background-size:720px 480px}
.band--night.contour,.contour--dark{background-image:var(--contour-dark)}
.contour>*{position:relative}
/* .ridge-top: two mountain silhouettes rise from the top edge of the band into
   the one above. Set --ridge (front colour = this band) and --ridge-far (hazy back range). */
.ridge-top{position:relative;--rh:clamp(40px,6.4vw,92px);--rw:1400px}
.ridge-top::before,.ridge-top::after{content:"";position:absolute;left:0;right:0;height:var(--rh);pointer-events:none;-webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;-webkit-mask-size:var(--rw) 100%;mask-size:var(--rw) 100%}
.ridge-top::before,.ridge-top::after{bottom:calc(100% - 1px)}
.ridge-top::before{background:var(--ridge-far);height:calc(var(--rh)*1.25);-webkit-mask-image:var(--ridge-b);mask-image:var(--ridge-b);-webkit-mask-position:-420px bottom;mask-position:-420px bottom}
.ridge-top::after{background:var(--ridge);-webkit-mask-image:var(--ridge-a);mask-image:var(--ridge-a);-webkit-mask-position:left bottom;mask-position:left bottom}
.section-head{text-align:center;max-width:46rem;margin:0 auto clamp(40px,5vw,68px)}
.section-head h2{margin-bottom:.35em;text-wrap:balance}
.section-head .lead{margin:0 auto}

/* ---------- announcement + header ---------- */
.announce{background:var(--night);color:var(--ivory-soft);text-align:center;font-size:.86rem;padding:9px 16px;line-height:1.4}
.announce strong{color:var(--gold);font-weight:600}
.announce a{color:var(--ivory);font-weight:600;text-underline-offset:3px;display:inline-block;padding:14px 6px;margin:-14px -6px}
.announce .sep{opacity:.4;margin:0 8px}
.site-header{position:sticky;top:0;z-index:100;background:rgba(251,248,241,.94);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line);transition:box-shadow .25s}
.site-header.is-stuck{box-shadow:0 10px 30px -22px rgba(22,33,27,.5)}
.hdr{display:flex;align-items:center;gap:clamp(14px,2.6vw,36px);min-height:var(--header-h)}
.brand{display:flex;align-items:center;flex:none;min-height:44px;line-height:0}
.brand img{height:40px;width:auto}
.nav{display:flex;gap:clamp(16px,2.4vw,34px);margin-inline:auto}
.nav a{position:relative;font-weight:500;font-size:.95rem;text-decoration:none;padding:12px 2px;white-space:nowrap;color:var(--ink-soft);transition:color .2s}
.nav a::after{content:"";position:absolute;left:2px;right:2px;bottom:6px;height:1.5px;background:var(--brass);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease)}
.nav a:hover,.nav a[aria-current="true"]{color:var(--ink)}
.nav a:hover::after,.nav a[aria-current="true"]::after{transform:scaleX(1)}
.hdr-phone{display:inline-flex;align-items:center;gap:8px;min-height:44px;font:500 .9rem/1 var(--font-mono);letter-spacing:.02em;text-decoration:none;white-space:nowrap;color:var(--ink)}
.hdr-phone svg{width:17px;height:17px;color:var(--brass)}
.hdr .btn{white-space:nowrap}
.nav-toggle{display:none;width:46px;height:46px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--paper);cursor:pointer;padding:0;position:relative;flex:none}
.nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{position:absolute;left:13px;right:13px;height:1.5px;background:var(--ink);content:"";transition:transform .25s var(--ease),background .2s}
.nav-toggle span{top:22px}.nav-toggle span::before{left:0;right:0;top:-6px}.nav-toggle span::after{left:0;right:0;top:6px}
.nav-open .nav-toggle span{background:transparent}
.nav-open .nav-toggle span::before{transform:translateY(6px) rotate(45deg)}
.nav-open .nav-toggle span::after{transform:translateY(-6px) rotate(-45deg)}
.mobile-panel{display:none}

/* ---------- footer ---------- */
.site-footer{position:relative;background:var(--night);color:var(--ivory-soft);padding:clamp(52px,7vw,84px) 0 26px;font-size:.96rem;border-top:1px solid var(--line-night)}
.site-footer a{text-decoration:none;transition:color .2s}
.site-footer a:hover{color:var(--gold)}
.foot-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1.3fr;gap:clamp(24px,4vw,56px)}
.foot-brand .logo-badge{display:inline-block;margin-bottom:20px;line-height:0}
.foot-brand .logo-badge img{height:44px;width:auto}
.foot-brand p{max-width:22rem;margin:0}
.foot-col h4{font:500 .72rem/1 var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin:0 0 18px}
.foot-col ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.foot-col p{margin:0 0 10px}
.foot-towns{font-size:.93rem;line-height:1.85}
.foot-bottom{margin-top:44px;padding-top:20px;border-top:1px solid var(--line-night);display:flex;flex-wrap:wrap;gap:8px 32px;justify-content:space-between;font-size:.84rem;color:var(--ivory-mute)}

/* ---------- drifting snow canvas (js/site.js fills any [data-snow]) ---------- */
.snow{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}

/* ---------- reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:var(--rd,0s)}
.reveal.in{opacity:1;transform:none}
.no-js .reveal{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media (max-width:1020px){
  .nav,.hdr-phone .num,.hdr .btn{display:none}
  .hdr-phone{margin-left:auto;width:46px;height:46px;justify-content:center;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--paper)}
  .nav-toggle{display:block}
  .mobile-panel{display:block;max-height:0;overflow:hidden;transition:max-height .32s var(--ease);background:var(--snow)}
  .nav-open .mobile-panel{max-height:520px;border-top:1px solid var(--line)}
  .mobile-panel .wrap{display:grid;padding-block:6px 22px}
  .mobile-panel a:not(.btn){font:600 1.3rem/1.2 var(--font-display);letter-spacing:-.01em;text-decoration:none;padding:15px 2px;border-bottom:1px solid var(--line)}
  .mobile-panel .btn{margin-top:18px}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:620px){
  body{font-size:16.5px}
  .wrap{width:min(100% - 40px,var(--wrap))}
  :root{--header-h:62px}
  .brand img{height:36px}
  .foot-grid{grid-template-columns:1fr}
  .site-footer .foot-col ul{gap:0}
  .site-footer .foot-col a{display:inline-block;padding:12px 0}
  .site-footer .foot-col li:not(:has(a)){padding:10px 0}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
  .snow{display:none}
}

.announce .lang-sw{border:1px solid var(--line-night);border-radius:999px;padding:4px 12px;margin:0;text-decoration:none;font-weight:500;letter-spacing:.02em}
.announce .lang-sw:hover{border-color:var(--gold);color:var(--gold)}

/* town landing pages */
.town-hero{padding-block:clamp(64px,9vw,120px) clamp(56px,7vw,96px)}
.town-hero h1{font-size:clamp(2.2rem,5vw,3.6rem);max-width:18ch;margin:.3em 0 .45em}
.town-hero .lead{max-width:46rem;margin-bottom:1.6em;color:var(--ivory-soft)}
.town-body{max-width:820px}
.town-body h2{font-size:clamp(1.6rem,3vw,2.2rem);margin:1.6em 0 .6em}
.town-body h2:first-child{margin-top:0}
.town-body h3{font-size:1.2rem;margin:1.3em 0 .3em}
.town-body p{color:var(--ink-soft);margin:0 0 1em}
.town-body .incl{grid-template-columns:1fr;margin:28px 0 8px;padding-top:22px}
.town-body .btn-row{margin-top:28px}
a.v-name{color:inherit;text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:4px}
.town-hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(28px,5vw,72px);align-items:center}
.town-art{border:1px solid rgba(221,179,94,.4);border-radius:var(--radius);padding:10px;background:rgba(246,241,228,.03)}
.town-art img{display:block;width:100%;height:auto;border-radius:calc(var(--radius) - 3px)}
.town-hero .micro{margin-top:26px}
.town-steps{margin:0 0 8px;padding:0;list-style:none;counter-reset:ts;display:grid;gap:12px}
.town-steps li{counter-increment:ts;position:relative;padding:14px 16px 14px 58px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink-soft)}
.town-steps li::before{content:counter(ts);position:absolute;left:14px;top:12px;width:30px;height:30px;border-radius:50%;background:var(--spruce);color:var(--ivory);display:grid;place-items:center;font:500 .85rem/1 var(--font-mono)}
.town-steps strong{color:var(--ink)}
.town-links{font-size:.95rem;margin-top:1.6em!important}
@media (max-width:860px){.town-hero-grid{grid-template-columns:1fr}.town-art{max-width:460px}}
