/* ===== Santa Claus San Diego — Joe Mystic | North Pole theme ===== */
:root{
  --red:#c8102e;
  --red-2:#e23b52;
  --green:#0f5132;
  --green-2:#157347;
  --green-deep:#0a3d27;
  --gold:#f4c542;
  --gold-2:#ffe08a;
  --cream:#fff7ec;
  --ink:#1c2a22;
  --snow:#ffffff;
  --night:#0b1b2b;
  --night-2:#102a43;
  --line:rgba(255,255,255,.18);
  --radius:18px;
  --shadow:0 18px 50px rgba(4,20,12,.45);
  --serif:"Mountains of Christmas","Georgia",serif;
  --script:"Pacifico",cursive;
  --font:"Poppins",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;font-family:var(--font);color:var(--cream);line-height:1.6;
  background:
    radial-gradient(800px 480px at 12% 0%, rgba(200,16,46,.22), transparent),
    radial-gradient(760px 520px at 95% 30%, rgba(200,16,46,.16), transparent),
    radial-gradient(700px 460px at 50% 100%, rgba(226,59,82,.16), transparent),
    radial-gradient(900px 500px at 80% -5%, rgba(244,197,66,.12), transparent),
    radial-gradient(700px 500px at 0% 10%, rgba(21,115,71,.18), transparent),
    linear-gradient(180deg,#0b0f17 0%, #10202e 40%, #0a3d27 100%);
  background-attachment:fixed;overflow-x:hidden;
}
a{color:var(--gold-2);text-decoration:none}
a:hover{color:var(--gold)}
img{max-width:100%;display:block}
h1,h2,h3{font-family:var(--serif);font-weight:700;line-height:1.05;margin:0 0 .4em}
.script{font-family:var(--script)}
.container{max-width:var(--max);margin:0 auto;padding:0 22px}
.center{text-align:center}
.gold{color:var(--gold-2)}
.red{color:var(--red-2)}

/* ===== Loading screen: Santa sleigh ===== */
#loader{display:none !important}  /* loading screen removed */
#loader.show-loader{position:fixed;inset:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:radial-gradient(circle at 50% 30%,#143055,#06121f 70%);transition:opacity .7s ease, visibility .7s}
#loader.hide{opacity:0;visibility:hidden}
#loader .moon{position:absolute;top:12%;right:16%;width:90px;height:90px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%,#fff,#ffe9b0 60%,#e9c97a);box-shadow:0 0 60px rgba(255,225,150,.6)}
.loader-stars{position:absolute;inset:0;overflow:hidden}
.loader-stars span{position:absolute;width:3px;height:3px;background:#fff;border-radius:50%;opacity:.85;animation:twinkle 2s infinite}
.sleigh-track{position:relative;width:100%;height:140px;overflow:hidden}
.sleigh{position:absolute;left:-260px;bottom:30px;font-size:3.4rem;white-space:nowrap;animation:fly 3s ease-in-out forwards;filter:drop-shadow(0 6px 10px rgba(0,0,0,.4))}
@keyframes fly{
  0%{left:-280px;bottom:20px}
  50%{bottom:60px}
  100%{left:110%;bottom:30px}
}
#loader h2{font-family:var(--script);color:var(--gold-2);font-size:1.6rem;margin-top:10px;text-shadow:0 2px 12px rgba(0,0,0,.5)}
#loader .lp{color:#cfe3ff;font-size:.95rem}
.load-bar{width:240px;height:8px;background:rgba(255,255,255,.15);border-radius:99px;overflow:hidden;margin-top:14px}
.load-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--red-2),var(--gold),var(--green-2));border-radius:99px;animation:load 2.6s ease forwards}
@keyframes load{to{width:100%}}
@keyframes twinkle{0%,100%{opacity:.2}50%{opacity:1}}

/* ===== Flying sleigh across the page ===== */
#flying-sleigh{position:fixed;top:96px;left:0;z-index:58;font-size:2.6rem;white-space:nowrap;pointer-events:none;
  filter:drop-shadow(0 8px 10px rgba(0,0,0,.4));transform:translateX(-340px);
  animation:sleighcross 16s linear infinite}
#flying-sleigh .trail{font-size:1rem;opacity:.8}
@keyframes sleighcross{
  0%{transform:translateX(-340px) translateY(0) scaleX(1)}
  15%{transform:translateX(18vw) translateY(-26px)}
  35%{transform:translateX(42vw) translateY(10px)}
  55%{transform:translateX(62vw) translateY(-22px)}
  80%{transform:translateX(86vw) translateY(6px)}
  100%{transform:translateX(118vw) translateY(-14px) scaleX(1)}
}
@media(max-width:600px){#flying-sleigh{font-size:2rem;top:84px}}

/* ===== Music toggle ===== */
.music-toggle{position:fixed;right:18px;bottom:86px;z-index:80;width:58px;height:58px;border-radius:50%;border:3px solid var(--gold-2);
  background:linear-gradient(180deg,var(--red-2),var(--red));color:#fff;font-size:1.5rem;cursor:pointer;
  box-shadow:0 8px 22px rgba(0,0,0,.4);display:grid;place-items:center;transition:.2s}
.music-toggle:hover{transform:scale(1.08)}
.music-toggle.on{background:linear-gradient(180deg,var(--green-2),var(--green));animation:jingle 1.2s ease-in-out infinite}
.music-toggle .tip{position:absolute;right:68px;bottom:14px;white-space:nowrap;background:#fff;color:var(--ink);
  font-size:.78rem;font-weight:600;padding:6px 12px;border-radius:99px;box-shadow:var(--shadow);opacity:0;transform:translateX(8px);transition:.2s;pointer-events:none}
.music-toggle:hover .tip{opacity:1;transform:translateX(0)}
@keyframes jingle{0%,100%{transform:rotate(-7deg)}50%{transform:rotate(7deg)}}

/* ===== Falling snow ===== */
#snow{position:fixed;inset:0;pointer-events:none;z-index:60;overflow:hidden}
.flake{position:absolute;top:-20px;color:#fff;opacity:.85;user-select:none;animation:fall linear infinite}
@keyframes fall{to{transform:translateY(110vh) rotate(360deg)}}

/* ===== String lights (crisp round bulbs) ===== */
.lights{display:flex;justify-content:center;align-items:center;height:26px;overflow:hidden;
  background:linear-gradient(180deg,rgba(4,12,8,.5),transparent)}
.lights .bulb{position:relative;width:13px;height:13px;border-radius:50%;margin:0 10px;top:4px;
  animation:blink 1.6s infinite ease-in-out}
/* crisp brass cap */
.lights .bulb::before{content:"";position:absolute;top:-5px;left:50%;transform:translateX(-50%);
  width:5px;height:5px;background:#caa63a;border-radius:1px}
/* crisp specular highlight */
.lights .bulb::after{content:"";position:absolute;top:2.5px;left:2.5px;width:3.5px;height:3.5px;
  border-radius:50%;background:rgba(255,255,255,.92)}
.bulb.c1{background:#ff3b3b;box-shadow:0 0 7px 1px rgba(255,59,59,.95);animation-delay:0s}
.bulb.c2{background:#ffd633;box-shadow:0 0 7px 1px rgba(255,214,51,.95);animation-delay:.25s}
.bulb.c3{background:#34e079;box-shadow:0 0 7px 1px rgba(52,224,121,.95);animation-delay:.5s}
.bulb.c4{background:#36b6ff;box-shadow:0 0 7px 1px rgba(54,182,255,.95);animation-delay:.75s}
.bulb.c5{background:#ff5ed6;box-shadow:0 0 7px 1px rgba(255,94,214,.95);animation-delay:1s}
@keyframes blink{0%,100%{opacity:1;filter:brightness(1.25)}50%{opacity:.55;filter:brightness(.75)}}

/* ===== Top bar ===== */
.topbar{background:var(--red);color:#fff;text-align:center;font-weight:600;font-size:.9rem;padding:8px 14px;letter-spacing:.02em}
.topbar a{color:#fff;text-decoration:underline}

/* ===== Nav ===== */
header.nav{position:sticky;top:0;z-index:55;background:rgba(10,30,20,.82);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:76px}
.brand{display:flex;align-items:center;gap:12px}
.brand .logo{height:60px;width:auto;min-width:60px;border-radius:0;display:flex;align-items:center;justify-content:center;
  font-size:1.7rem;background:transparent;overflow:visible;box-shadow:none}
.brand .logo img{height:100% !important;width:auto !important;max-width:150px;object-fit:contain !important;border-radius:0 !important}
.brand b{font-family:var(--serif);font-size:1.4rem;line-height:.95;display:block;color:#fff}
.brand small{color:var(--gold-2);font-size:.66rem;letter-spacing:.28em;text-transform:uppercase}
nav.links{display:flex;gap:22px;align-items:center}
nav.links a{color:#eafff2;font-weight:500;font-size:.95rem;white-space:nowrap;position:relative}
nav.links a:hover,nav.links a.active{color:var(--gold-2)}
nav.links a.active:not(.nav-cta)::after{content:"";position:absolute;left:0;right:0;bottom:-27px;height:3px;background:var(--gold)}
nav.links a.nav-cta::after{display:none !important}
nav.links a.nav-cta:focus,nav.links a.nav-cta:active{outline:none}
.nav-cta{background:linear-gradient(180deg,var(--red-2),var(--red));color:#fff !important;padding:11px 20px;border-radius:99px;font-weight:700;box-shadow:0 6px 16px rgba(200,16,46,.4);display:inline-block;line-height:1.4}
.nav-cta:hover{filter:brightness(1.08)}
.burger{display:none;background:none;border:0;color:#fff;font-size:1.7rem;cursor:pointer}

/* ===== Buttons ===== */
.btn{display:inline-block;border:0;cursor:pointer;font-family:var(--font);font-weight:700;padding:14px 30px;
  border-radius:99px;font-size:1rem;transition:.18s;text-align:center}
.btn-red{background:linear-gradient(180deg,var(--red-2),var(--red));color:#fff;box-shadow:0 8px 20px rgba(200,16,46,.4)}
.btn-red:hover{transform:translateY(-2px);color:#fff;filter:brightness(1.08)}
.btn-green{background:linear-gradient(180deg,var(--green-2),var(--green));color:#fff}
.btn-green:hover{transform:translateY(-2px);color:#fff;filter:brightness(1.1)}
.btn-gold{background:linear-gradient(180deg,var(--gold-2),var(--gold));color:#5b3d00;box-shadow:0 8px 20px rgba(244,197,66,.4)}
.btn-gold:hover{transform:translateY(-2px);color:#5b3d00;filter:brightness(1.05)}
.btn-ghost{background:rgba(255,255,255,.08);color:#fff;border:1px solid var(--line)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold-2)}

/* ===== Hero ===== */
.hero{position:relative;text-align:center;padding:70px 0 80px;overflow:hidden}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:90px;
  background:radial-gradient(120% 90px at 50% 100%, #fff 0 40%, transparent 41%);opacity:.95}
.hero .eyebrow{font-family:var(--script);color:var(--gold-2);font-size:1.5rem}
.hero h1{font-size:clamp(2.6rem,7vw,5rem);color:#fff;text-shadow:0 4px 24px rgba(0,0,0,.5)}
.hero h1 .red{color:var(--red-2)}
.hero p.sub{font-size:1.2rem;color:#dff3e6;max-width:640px;margin:0 auto 22px}
.hero .santa-emoji{font-size:5rem;filter:drop-shadow(0 10px 18px rgba(0,0,0,.4));animation:bob 3s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-12px) rotate(2deg)}}

/* ===== Northern lights (aurora) in the hero ===== */
.hero{overflow:hidden}
/* aurora intensity (--aur-op) and movement speed (--aur-spd) are adjustable from the admin panel */
.aurora{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;opacity:var(--aur-op,1)}
.aurora span{position:absolute;left:-40%;right:-40%;height:60%;filter:blur(42px);opacity:.6;mix-blend-mode:screen;will-change:transform,opacity}
.aurora .a1{top:-8%;background:linear-gradient(90deg,transparent,rgba(43,255,136,.7),rgba(39,224,214,.55),transparent);
  animation:aur1 calc(8s / var(--aur-spd,1)) ease-in-out infinite alternate}
.aurora .a2{top:4%;background:linear-gradient(90deg,transparent,rgba(123,92,255,.65),rgba(255,94,214,.55),transparent);
  animation:aur2 calc(11s / var(--aur-spd,1)) ease-in-out infinite alternate}
.aurora .a3{top:-4%;height:52%;background:linear-gradient(90deg,transparent,rgba(77,184,255,.6),rgba(43,255,136,.5),transparent);
  animation:aur3 calc(14s / var(--aur-spd,1)) ease-in-out infinite alternate}
@keyframes aur1{
  0%{transform:translate(-34%,-6%) skewX(-22deg) scaleY(1);opacity:.45}
  50%{transform:translate(6%,8%) skewX(6deg) scaleY(1.5);opacity:.9}
  100%{transform:translate(34%,-4%) skewX(20deg) scaleY(.85);opacity:.55}}
@keyframes aur2{
  0%{transform:translate(30%,6%) skewX(18deg) scaleY(1.2);opacity:.35}
  50%{transform:translate(-8%,-8%) skewX(-10deg) scaleY(.8);opacity:.85}
  100%{transform:translate(-30%,4%) skewX(-20deg) scaleY(1.3);opacity:.5}}
@keyframes aur3{
  0%{transform:translate(-22%,4%) skewX(-14deg) scaleY(.9);opacity:.3}
  50%{transform:translate(10%,-6%) skewX(8deg) scaleY(1.4);opacity:.8}
  100%{transform:translate(26%,6%) skewX(16deg) scaleY(1);opacity:.5}}
@media(prefers-reduced-motion:reduce){.aurora span{animation:none}}

/* ===== RGB-glow red service cards ===== */
.rgb-cards .card{background:linear-gradient(160deg,#c8102e 0%,#8e0c20 60%,#5e0814 100%);
  border:2px solid #ff5d6c;color:#fff;animation:rgbGlow 6s linear infinite}
.rgb-cards .card h3{color:#fff}
.rgb-cards .card .price-tag{background:var(--gold);color:#5b3d00}
.rgb-cards .card:nth-child(1){animation-duration:5s;animation-delay:0s}
.rgb-cards .card:nth-child(2){animation-duration:7s;animation-delay:-1s}
.rgb-cards .card:nth-child(3){animation-duration:6s;animation-delay:-2.5s}
.rgb-cards .card:nth-child(4){animation-duration:8s;animation-delay:-3s}
.rgb-cards .card:nth-child(5){animation-duration:5.5s;animation-delay:-1.8s}
.rgb-cards .card:nth-child(6){animation-duration:7.5s;animation-delay:-4s}
.rgb-cards .card:hover{transform:translateY(-5px) scale(1.02)}
@keyframes rgbGlow{
  0%{border-color:#ff3b3b;box-shadow:0 0 16px 1px rgba(255,59,59,.6)}
  25%{border-color:#ffd633;box-shadow:0 0 16px 1px rgba(255,214,51,.6)}
  50%{border-color:#34e079;box-shadow:0 0 16px 1px rgba(52,224,121,.6)}
  75%{border-color:#36b6ff;box-shadow:0 0 16px 1px rgba(54,182,255,.6)}
  100%{border-color:#ff3b3b;box-shadow:0 0 16px 1px rgba(255,59,59,.6)}
}
/* RGB glow on the "Your Trip to the North Pole" step boxes */
.journey .step{border:2px solid #ff5d6c;animation:rgbGlow 6s linear infinite}
.journey .step:nth-child(1){animation-duration:5.5s;animation-delay:-.4s}
.journey .step:nth-child(2){animation-duration:7s;animation-delay:-2s}
.journey .step:nth-child(3){animation-duration:6.2s;animation-delay:-3.4s}
.journey .step:nth-child(4){animation-duration:8s;animation-delay:-1.2s}

/* ===== Hero split + Santa photo ===== */
.hero-split{display:grid;grid-template-columns:1.05fr .95fr;gap:46px;align-items:center;text-align:left;position:relative;z-index:2}
.santa-photo{position:relative;border-radius:26px;overflow:hidden;border:7px solid #fff;box-shadow:var(--shadow);
  background:linear-gradient(180deg,#143055,#0a3d27);aspect-ratio:3/4;rotate:1.5deg;transition:.3s}
.santa-photo:hover{rotate:0deg;transform:scale(1.01)}
.santa-photo img{width:100%;height:100%;object-fit:cover;display:block}
.santa-photo.noimg::after{content:"🎅";position:absolute;inset:0;display:grid;place-items:center;font-size:9rem}
.santa-photo .ribbon{position:absolute;left:-8px;right:-8px;bottom:18px;background:linear-gradient(180deg,var(--red-2),var(--red));
  color:#fff;text-align:center;padding:10px;font-family:var(--serif);font-size:1.35rem;box-shadow:0 8px 18px rgba(0,0,0,.4)}
.santa-photo .hat{position:absolute;top:-22px;right:-14px;font-size:3rem;rotate:18deg;animation:bob 3s ease-in-out infinite}
.santa-photo .photo-edit{position:absolute;top:10px;left:10px;z-index:6;border:0;cursor:pointer;
  background:rgba(200,16,46,.92);color:#fff;font-weight:700;font-family:var(--font);font-size:.78rem;
  padding:7px 12px;border-radius:99px;box-shadow:0 4px 12px rgba(0,0,0,.35);opacity:.92;transition:.15s}
.santa-photo .photo-edit:hover{opacity:1;transform:translateY(-1px)}
.np-frame .photo-edit{display:none}  /* keep the tiny tree frame clean */
.photo-glow{position:absolute;inset:-30px;background:radial-gradient(circle,rgba(244,197,66,.35),transparent 70%);z-index:1;filter:blur(10px)}
@media(max-width:980px){.hero-split{grid-template-columns:1fr;text-align:center}.santa-photo{max-width:380px;margin:0 auto;rotate:0deg}}

/* ===== Countdown ===== */
.countdown{display:flex;gap:18px;justify-content:center;margin:34px 0 6px;flex-wrap:wrap}
/* each unit is a wrapped red gift box with a bow */
.cd-box{position:relative;background:linear-gradient(180deg,#e8455c,#c8102e);border:0;border-radius:10px;
  padding:32px 18px 16px;min-width:96px;box-shadow:0 10px 22px rgba(200,16,46,.5);overflow:visible;
  display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center}
.cd-box::before{content:"";position:absolute;left:0;right:0;top:0;height:20px;
  background:repeating-linear-gradient(90deg,#fff 0 16px,#ffe6ea 16px 18px);border-radius:10px 10px 0 0}
.cd-box::after{content:"🎀";position:absolute;top:-15px;left:50%;transform:translateX(-50%);font-size:1.5rem;
  filter:drop-shadow(0 2px 2px rgba(0,0,0,.35))}
.cd-box .n{position:relative;z-index:1;font-family:var(--serif);font-size:2.5rem;color:#fff;line-height:1;
  text-shadow:0 2px 5px rgba(0,0,0,.3)}
.cd-box .l{position:relative;z-index:1;font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:#ffe2e6;margin-top:4px}
/* a vertical ribbon down the box */
.countdown .cd-box{background-image:linear-gradient(180deg,#e8455c,#c8102e),linear-gradient(#fff,#fff);
  background-size:100% 100%, 12px 100%;background-position:center, center;background-repeat:no-repeat}
.cd-box .n, .cd-box .l{padding:0 2px;background:rgba(200,16,46,.0)}
.cd-title{font-family:var(--script);color:#fff;font-size:1.3rem;margin-bottom:4px}
/* keep hero countdown aligned with the left-aligned hero copy */
.hero-split .countdown{justify-content:flex-start}

/* ===== North Pole festive scene ===== */
.np-scene{background:linear-gradient(180deg,#0a3d27,#06121f);text-align:center;padding:46px 0 0;position:relative;overflow:hidden}
.np-sign{display:inline-block;font-family:var(--serif);font-size:1.7rem;letter-spacing:.08em;color:#fff;
  background:repeating-linear-gradient(45deg,var(--red) 0 14px,#fff 14px 28px);
  -webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:6px}
.np-pole-label{color:var(--gold-2);font-family:var(--script);font-size:1.2rem;margin-bottom:18px}
.np-row{display:flex;justify-content:center;gap:26px;font-size:3.4rem;flex-wrap:wrap;align-items:flex-end;line-height:1}
.np-row span{animation:bob 3.4s ease-in-out infinite;cursor:default}
.np-row span:nth-child(2n){animation-delay:.5s}
.np-row span:nth-child(3n){animation-delay:1s}
@media(max-width:600px){.np-row{font-size:2.4rem;gap:16px}}

/* ===== Animated North Pole snow scene ===== */
.snow-scene{position:relative;height:350px;overflow:hidden;margin-top:18px;
  background:linear-gradient(180deg,#07261a 0%,#0c4730 62%)}
.snow-scene .moon2{position:absolute;top:26px;right:14%;width:54px;height:54px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%,#fff,#ffe9b0 60%,#e9c97a);box-shadow:0 0 40px rgba(255,225,150,.55)}
.snow-scene .ground{position:absolute;left:-5%;right:-5%;bottom:0;height:120px;
  background:linear-gradient(180deg,#ffffff,#dceaf2);border-radius:50% 50% 0 0 / 70px 70px 0 0;
  box-shadow:0 -4px 30px rgba(173,216,230,.45)}
.snow-scene .hill{position:absolute;bottom:0;width:240px;height:80px;background:#eef5fa;border-radius:50% 50% 0 0;opacity:.8}
.snow-scene .hill.h1{left:-40px}.snow-scene .hill.h2{right:-50px;width:300px;height:96px}

/* SVG Christmas tree (branches + wrapped lights) */
.np-tree{position:absolute;bottom:84px;left:7%;width:165px;height:auto;z-index:2;filter:drop-shadow(0 8px 10px rgba(0,0,0,.35))}
.np-signpost{display:block;margin:0 auto 6px;height:240px;width:auto;filter:drop-shadow(0 10px 14px rgba(0,0,0,.45))}
@media(max-width:600px){.np-signpost{height:180px}}
.hero-sign{position:absolute;bottom:-6px;left:47%;transform:translateX(calc(-50% - 700px));height:172px;width:auto;z-index:4;
  filter:drop-shadow(0 10px 14px rgba(0,0,0,.5))}
@media(max-width:920px){.hero-sign{display:none}}
.hero-tree{position:absolute;bottom:-6px;width:130px;height:auto;z-index:4;opacity:.97;filter:drop-shadow(0 8px 12px rgba(0,0,0,.45))}
.hero-tree.left{left:2%}
.hero-tree.right{right:2%}
@media(max-width:900px){.hero-tree{display:none}}

/* legacy CSS tree (unused) */
.xtree{position:absolute;bottom:96px;left:8%;width:140px;height:172px;z-index:2}
.xtree .star{position:absolute;top:-10px;left:50%;transform:translateX(-50%);color:var(--gold-2);font-size:1.5rem;animation:blink 1.5s infinite}
.xtree .tl{position:absolute;left:50%;transform:translateX(-50%);width:0;height:0;border-style:solid;border-color:transparent;filter:drop-shadow(0 3px 3px rgba(0,0,0,.25))}
.xtree .t1{top:8px;border-width:0 34px 48px 34px;border-bottom-color:#23944f}
.xtree .t2{top:42px;border-width:0 48px 56px 48px;border-bottom-color:#1c7d41}
.xtree .t3{top:86px;border-width:0 62px 62px 62px;border-bottom-color:#146536}
.xtree .trunk{position:absolute;bottom:-8px;left:50%;transform:translateX(-50%);width:18px;height:22px;background:#6b3f1d;border-radius:3px}
.xtree .tlight{position:absolute;width:7px;height:7px;border-radius:50%;animation:blink 1.3s infinite;z-index:3}
.tlight.r{background:#ff4d4d;box-shadow:0 0 6px #ff4d4d}
.tlight.y{background:#ffe14d;box-shadow:0 0 6px #ffe14d}
.tlight.b{background:#5db8ff;box-shadow:0 0 6px #5db8ff}
.tlight.p{background:#ff7be0;box-shadow:0 0 6px #ff7be0}

/* actors */
.snow-scene .actor{position:absolute;font-size:2rem;line-height:1;z-index:4;
  filter:drop-shadow(0 4px 4px rgba(0,0,0,.3))}
/* Elf rolling a growing snowball -> becomes a snowman */
.elfBuild{bottom:104px;animation:elfWalk 9s ease-in-out infinite}
.ballBuild{bottom:100px;width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#dfeaf2);
  box-shadow:0 2px 5px rgba(0,0,0,.25);animation:ballRoll 9s ease-in-out infinite}
.snowmanBuild{bottom:104px;left:45%;font-size:2.4rem;opacity:0;transform-origin:bottom center;animation:snowmanPop 9s ease-in-out infinite}
@keyframes elfWalk{0%{left:24%}44%{left:40%}52%{left:35%}80%{left:35%}100%{left:24%}}
@keyframes ballRoll{0%{left:30%;transform:scale(.5) rotate(0)}44%{left:45%;transform:scale(1.4) rotate(540deg)}49%{opacity:1}50%{opacity:0}100%{left:45%;opacity:0;transform:scale(1.4)}}
@keyframes snowmanPop{0%,47%{opacity:0;transform:scale(.5)}55%{opacity:1;transform:scale(1)}94%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1)}}

/* Two elves throwing snowballs */
.elfThrowL{bottom:108px;left:62%;animation:recoilL 2.6s ease-in-out infinite}
.elfThrowR{bottom:108px;left:86%;transform:scaleX(-1);animation:recoilR 2.6s ease-in-out infinite}
.tossball{position:absolute;bottom:120px;width:12px;height:12px;border-radius:50%;z-index:5;
  background:radial-gradient(circle at 35% 30%,#fff,#dfeaf2);box-shadow:0 2px 4px rgba(0,0,0,.25);animation:toss 2.6s linear infinite}
@keyframes toss{0%{left:65%;bottom:118px}24%{bottom:158px}49%{left:85%;bottom:118px}51%{left:85%;bottom:118px}74%{bottom:158px}100%{left:65%;bottom:118px}}
@keyframes recoilL{0%,45%{transform:rotate(0)}50%{transform:rotate(-12deg)}60%{transform:rotate(0)}}
@keyframes recoilR{0%,95%{transform:scaleX(-1) rotate(0)}100%{transform:scaleX(-1) rotate(-12deg)} 50%{transform:scaleX(-1) rotate(0)}}
/* Santa photo by the tree — uses the SAME frame as the hero, scaled down */
.np-frame{position:absolute;bottom:108px;left:48%;width:100px;z-index:4;animation:bob 4s ease-in-out infinite}
.np-frame .santa-photo{border-width:4px;rotate:-5deg}
.np-frame .ribbon{font-size:.6rem;padding:4px;bottom:8px;left:-4px;right:-4px}
@media(max-width:600px){.snow-scene{height:300px}.np-tree{width:120px;bottom:64px}.xtree{transform:scale(.8);left:2%}.snow-scene .actor{font-size:1.6rem}.np-frame{display:none}}

/* About page story photo — same hero frame, floated */
.story-frame{float:right;width:250px;margin:0 0 18px 26px}
.story-frame.santa-photo{rotate:1.5deg}
@media(max-width:600px){.story-frame{float:none;width:100%;max-width:360px;margin:0 auto 18px}}

/* ===== Sections ===== */
section{padding:64px 0;position:relative}
.section-head{text-align:center;max-width:680px;margin:0 auto 42px}
.section-head h2{font-size:clamp(2rem,4vw,3rem);color:#fff}
.section-head h2::after{content:"";display:block;width:90px;height:4px;margin:14px auto 0;border-radius:4px;
  background:linear-gradient(90deg,var(--red),var(--gold),var(--red))}
.band-cream .section-head h2::after{background:linear-gradient(90deg,var(--red),var(--green-2),var(--red))}
.section-head .eyebrow{font-family:var(--script);color:var(--gold-2);font-size:1.3rem}
.section-head p{color:#cfe3df}
.band-cream{background:linear-gradient(180deg,#fff7ec,#ffeccf);color:var(--ink)}
.band-cream h2,.band-cream h3{color:var(--green)}
.band-cream .muted{color:#6b5b48}
.band-red{background:linear-gradient(135deg,var(--red),#9c0c23);}
.band-green{background:linear-gradient(135deg,var(--green-2),var(--green-deep))}

/* ===== Cards ===== */
.grid{display:grid;gap:24px}
.cols-3{grid-template-columns:repeat(3,1fr)}
.cols-2{grid-template-columns:repeat(2,1fr)}
.card{background:rgba(255,255,255,.07);border:1px solid var(--line);border-radius:var(--radius);padding:26px;
  transition:.2s;backdrop-filter:blur(4px);display:flex;flex-direction:column;align-items:flex-start}
.card .price-tag{margin-top:auto}
a.card{text-decoration:none;color:inherit}
.card:hover{transform:translateY(-5px);border-color:var(--gold);box-shadow:var(--shadow)}
.card .ic{font-size:2.6rem;display:block;margin-bottom:10px}
.card h3{color:#fff;font-size:1.4rem}
.card.light{background:#fff;border:1px solid #f0ddc0;color:var(--ink)}
.card.light h3{color:var(--green)}
.card.light .muted{color:#6b5b48}
/* festive card variant — alternating green/red with a candy-cane top */
.card.xmas{position:relative;overflow:hidden;color:#fff;border:2px solid var(--gold);
  background:linear-gradient(160deg,#0f5132,#0a3d27);box-shadow:var(--shadow);padding-top:30px}
.card.xmas:nth-child(even){background:linear-gradient(160deg,#c8102e,#8e0c20)}
.card.xmas h3{color:#fff}
.card.xmas .muted{color:#f3e7cf}
.card.xmas::before{content:"";position:absolute;top:0;left:0;right:0;height:7px;
  background:repeating-linear-gradient(45deg,#cf1828 0 10px,#fff 10px 20px)}
.card.xmas:nth-child(even)::before{background:repeating-linear-gradient(45deg,#0f5132 0 10px,#fff 10px 20px)}
.card.xmas:hover{transform:translateY(-5px);border-color:#fff}
.price-tag{display:inline-block;background:var(--gold);color:#5b3d00;font-weight:800;padding:5px 14px;border-radius:99px;margin-top:8px}

/* ===== Portfolio gallery ===== */
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.gallery-item{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:1;border:4px solid #fff;box-shadow:var(--shadow);cursor:pointer}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:.4s}
.gallery-item:hover img{transform:scale(1.08)}
.gallery-item .cap{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(157,12,35,.92));
  color:#fff;font-size:.82rem;font-weight:600;padding:24px 12px 10px;opacity:0;transition:.3s}
.gallery-item:hover .cap{opacity:1}
.gallery-item:nth-child(5),.gallery-item:nth-child(6){grid-column:span 1}
.gallery-item.noimg{background:linear-gradient(135deg,#c8102e 0%,#9c0c23 50%,#0f5132 100%)}
.gallery-item.noimg .cap{opacity:1;background:none;font-size:1rem;display:flex;align-items:center;justify-content:center;inset:0;padding:10px}
.gallery-item .photo-edit{font-size:.66rem;padding:5px 9px;top:8px;left:8px}
@media(max-width:780px){.gallery-grid{grid-template-columns:1fr 1fr}}

/* ===== Reviews ===== */
.reviews-strip{background:linear-gradient(135deg,var(--green-2),var(--green-deep))}
.review-card{background:#fff;color:var(--ink);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);position:relative}
.review-card .stars{color:var(--gold);font-size:1.1rem;letter-spacing:2px}
.review-card .txt{font-style:italic;margin:10px 0 14px;color:#3a3326}
.review-card .who{font-weight:700;color:var(--green)}
.review-card .where{font-size:.84rem;color:#8a7a64}
.review-card .badge{position:absolute;top:-12px;right:18px;background:var(--red);color:#fff;font-size:.7rem;
  text-transform:uppercase;letter-spacing:.06em;padding:4px 10px;border-radius:99px;font-weight:700}
.rev-carousel{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;padding:14px 4px 22px}
.rev-carousel .review-card{min-width:330px;scroll-snap-align:center}
.rev-carousel::-webkit-scrollbar{height:8px}
.rev-carousel::-webkit-scrollbar-thumb{background:rgba(255,255,255,.4);border-radius:99px}

/* ===== Forms ===== */
.form-wrap{background:#fff;color:var(--ink);border-radius:var(--radius);padding:30px;box-shadow:var(--shadow);max-width:720px;margin:0 auto}
.form-wrap h3{color:var(--green)}
.frow{margin-bottom:16px}
.frow label{display:block;font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--green);margin-bottom:6px}
.frow input,.frow select,.frow textarea{width:100%;background:#fbf6ec;border:2px solid #ecd9b8;color:var(--ink);
  padding:13px;border-radius:12px;font-family:var(--font);font-size:.98rem}
.frow input:focus,.frow select:focus,.frow textarea:focus{outline:0;border-color:var(--red-2)}
.frow .err{color:var(--red);font-size:.8rem;margin-top:4px;display:none}
.frow.bad .err{display:block}
.frow.bad input,.frow.bad textarea,.frow.bad select{border-color:var(--red)}
.form-ok{display:none;background:#e8f7ee;border:2px solid var(--green-2);color:var(--green);padding:18px;border-radius:12px;margin-bottom:16px;font-weight:600}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}

/* ===== Steps / journey ===== */
.journey{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;counter-reset:step}
.step{background:rgba(255,255,255,.07);border:1px solid var(--line);border-radius:var(--radius);padding:24px;text-align:center;position:relative}
.step .num{width:44px;height:44px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;
  font-family:var(--serif);font-size:1.4rem;margin:0 auto 12px;box-shadow:0 0 0 4px rgba(244,197,66,.3)}
.step h3{color:#fff;font-size:1.2rem}

/* ===== Events ===== */
.event-row{display:flex;gap:18px;align-items:center;background:rgba(255,255,255,.07);border:1px solid var(--line);
  border-radius:var(--radius);padding:18px 22px;margin-bottom:16px;flex-wrap:wrap}
.event-date{background:var(--red);color:#fff;border-radius:14px;padding:10px 16px;text-align:center;min-width:78px}
.event-date .d{font-family:var(--serif);font-size:1.8rem;line-height:1}
.event-date .m{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em}
.event-info{flex:1;min-width:200px}
.event-info h3{color:#fff;margin:0 0 2px;font-size:1.25rem}
.event-info .meta{color:#cfe3df;font-size:.9rem}
.event-tag{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;background:rgba(244,197,66,.2);color:var(--gold-2);padding:4px 12px;border-radius:99px;border:1px solid var(--line)}

/* ===== CTA band ===== */
.cta{ text-align:center}
.band-red.cta{position:relative;overflow:hidden}
.band-logo{position:absolute;left:4%;top:50%;transform:translateY(-50%);height:200px;width:auto;
  border-radius:0;object-fit:contain;filter:none}
@media(max-width:820px){.band-logo{display:none}}
.foot-logo{height:96px;width:auto;border-radius:0;object-fit:contain;display:block;margin-bottom:14px;
  filter:drop-shadow(0 4px 12px rgba(0,0,0,.45))}
.foot-brand{display:flex;gap:18px;align-items:flex-start}
.foot-brand .foot-logo{margin-bottom:0;flex:none;height:104px}
.foot-brand>div{min-width:0}
.foot-brand h5{margin-top:4px;white-space:nowrap;font-size:1.1rem}
.foot-brand a[href^="mailto:"],.foot-brand a[href^="tel:"]{white-space:nowrap}
.cta h2{color:#fff;font-size:clamp(2rem,4vw,3rem)}

/* ===== Footer ===== */
footer{background:#06121f;border-top:1px solid var(--line);padding:48px 0 26px;color:#bcd3c6;font-size:.92rem}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:30px;margin-bottom:26px}
footer h5{color:#fff;font-family:var(--serif);font-size:1.2rem;margin:0 0 12px}
footer a{display:block;color:#bcd3c6;padding:4px 0}
footer a:hover{color:var(--gold-2)}
.foot-bottom{border-top:1px solid var(--line);padding-top:16px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 20px;font-size:.82rem}
.foot-bottom span{white-space:nowrap}
.foot-bottom a{display:inline}
.disclaimer{font-size:.76rem;color:#7d9488;margin-top:12px}
.news-row{display:flex;gap:8px}
.news-form input{flex:1;min-width:0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#0b1d2b;color:#fff;font-family:var(--font);font-size:.9rem}
.news-form .btn{padding:10px 16px}
.news-ok{display:none;margin-top:8px;color:var(--gold-2);font-weight:600;font-size:.85rem}
/* ===== Cookie consent banner (desktop + mobile) ===== */
.cookie-bar{position:fixed;left:0;right:0;bottom:0;z-index:1200;overflow:hidden;
  background:radial-gradient(120% 140% at 50% 0,#13653f,#0a3d27 70%);
  box-shadow:0 -8px 26px rgba(0,0,0,.5);padding:20px 16px 15px;transition:transform .32s ease,opacity .32s ease}
/* candy-cane stripe across the very top */
.cookie-bar::before{content:"";position:absolute;top:0;left:0;right:0;height:8px;
  background:repeating-linear-gradient(45deg,#cf1828 0 12px,#fff 12px 24px)}
/* tiny twinkling lights under the stripe */
.cookie-bar::after{content:"";position:absolute;top:12px;left:0;right:0;height:8px;pointer-events:none;
  background:radial-gradient(circle 3px at 12px 4px,#ff3b3b 60%,transparent 62%),
    radial-gradient(circle 3px at 30px 4px,#ffd633 60%,transparent 62%),
    radial-gradient(circle 3px at 48px 4px,#34e079 60%,transparent 62%),
    radial-gradient(circle 3px at 66px 4px,#36b6ff 60%,transparent 62%);
  background-repeat:repeat-x;background-size:78px 8px;opacity:.85;animation:twinkle 1.2s steps(1,end) infinite}
.cookie-bar.hide{transform:translateY(120%);opacity:0}
.cookie-inner{max-width:var(--max);margin:0 auto;display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:center}
.cookie-txt{color:#eafff2;font-size:.9rem;flex:1;min-width:240px;line-height:1.45}
.cookie-txt a{color:var(--gold-2);text-decoration:underline}
.cookie-actions{display:flex;gap:10px;align-items:center;flex:none}
.cookie-ok{padding:10px 22px}
.cookie-decline{background:none;border:1px solid var(--line);color:#cfe0d8;border-radius:99px;padding:9px 16px;cursor:pointer;font-family:var(--font);font-weight:600}
.cookie-decline:hover{border-color:var(--gold);color:var(--gold-2)}
@keyframes twinkle{0%,100%{opacity:.85}50%{opacity:.3}}
/* Portfolio click-to-enlarge lightbox (home page) */
.plb{position:fixed;inset:0;background:rgba(10,5,5,.92);display:none;align-items:center;justify-content:center;z-index:3000;padding:30px}
.plb.open{display:flex}
.plb img{max-width:92vw;max-height:85vh;border-radius:14px;border:6px solid #fff;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.plb .plb-x{position:absolute;top:18px;right:24px;background:var(--red);color:#fff;border:none;width:48px;height:48px;border-radius:50%;font-size:1.6rem;cursor:pointer;box-shadow:0 6px 16px rgba(0,0,0,.5)}

/* ===== Accessibility (ADA) widget ===== */
.a11y-btn{position:fixed;right:16px;bottom:16px;z-index:1300;width:44px;height:44px;border-radius:50%;border:2px solid #fff;
  background:#1a56db;color:#fff;font-size:1.35rem;cursor:pointer;box-shadow:0 6px 16px rgba(0,0,0,.4);
  display:flex;align-items:center;justify-content:center}
.a11y-btn:hover{filter:brightness(1.12)}
.a11y-btn:focus-visible{outline:3px solid var(--gold-2);outline-offset:3px}
.a11y-panel{position:fixed;right:16px;bottom:68px;z-index:1300;width:310px;max-width:calc(100vw - 32px);
  background:#fff;color:#1a1a1a;border-radius:16px;box-shadow:0 22px 54px rgba(0,0,0,.55);padding:16px 18px;display:none;font-family:var(--font)}
.a11y-panel.open{display:block}
.a11y-head{display:flex;justify-content:space-between;align-items:center;font-weight:800;font-size:1.08rem;color:#111;margin-bottom:6px}
.a11y-x{background:none;border:none;font-size:1.5rem;line-height:1;cursor:pointer;color:#777}
.a11y-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-top:1px solid #eee;cursor:pointer}
.a11y-row span b{display:block;color:#111;font-size:.96rem}
.a11y-row span small{color:#666;font-size:.78rem}
.a11y-row select{padding:8px 10px;border:1px solid #ccc;border-radius:8px;font-family:var(--font);font-size:.9rem;background:#fff;color:#111}
.a11y-row .sw{position:relative;width:48px;height:27px;flex:none}
.a11y-row .sw input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;z-index:2}
.a11y-row .sw i{position:absolute;inset:0;background:#cfcfcf;border-radius:99px;transition:.2s}
.a11y-row .sw i::after{content:"";position:absolute;top:3px;left:3px;width:21px;height:21px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.a11y-row .sw input:checked + i{background:#1a56db}
.a11y-row .sw input:checked + i::after{transform:translateX(21px)}
.a11y-reset{margin-top:12px;background:none;border:1px solid #ccc;border-radius:8px;padding:8px 14px;cursor:pointer;font-family:var(--font);color:#333;font-weight:600}
.a11y-note{font-size:.74rem;color:#888;margin:10px 0 0}

/* ===== Accessibility modes (applied to <html>) ===== */
html.a11y-reduce *,html.a11y-reduce *::before,html.a11y-reduce *::after{animation:none !important;transition:none !important;scroll-behavior:auto !important}
html.a11y-lg{font-size:112%}
html.a11y-xl{font-size:125%}
html.a11y-contrast body{background:#000 !important;color:#fff !important}
html.a11y-contrast .topbar,html.a11y-contrast .nav,html.a11y-contrast footer,html.a11y-contrast .band-cream,html.a11y-contrast .band-green,html.a11y-contrast .band-red,html.a11y-contrast .np-scene,html.a11y-contrast .reviews-strip{background:#000 !important;border-color:#fff !important}
html.a11y-contrast .card,html.a11y-contrast .form-wrap,html.a11y-contrast .review-card,html.a11y-contrast .pcard,html.a11y-contrast .panel,html.a11y-contrast .faq,html.a11y-contrast .stat,html.a11y-contrast .area,html.a11y-contrast .addon{background:#0a0a0a !important;color:#fff !important;border:2px solid #fff !important}
html.a11y-contrast h1,html.a11y-contrast h2,html.a11y-contrast h3,html.a11y-contrast h4,html.a11y-contrast h5,html.a11y-contrast p,html.a11y-contrast li,html.a11y-contrast label,html.a11y-contrast span,html.a11y-contrast .muted,html.a11y-contrast .sub{color:#fff !important}
html.a11y-contrast a:not(.btn):not(.nav-cta){color:#ffe14d !important;text-decoration:underline}
html.a11y-contrast .btn,html.a11y-contrast .nav-cta,html.a11y-contrast .price-tag{background:#ffe14d !important;color:#000 !important;border:2px solid #000 !important;box-shadow:none !important}
html.a11y-contrast input,html.a11y-contrast select,html.a11y-contrast textarea{background:#000 !important;color:#fff !important;border:2px solid #fff !important}
@media(prefers-reduced-motion:reduce){.cookie-bar::after{animation:none}}
@media(max-width:560px){.cookie-inner{flex-direction:column;text-align:center}.cookie-txt{min-width:0}.cookie-actions{width:100%;justify-content:center}}
/* ===== Mobile footer (renders for phones / -mobile pages) ===== */
.mf{text-align:center;padding:6px 0 2px}
.mf-top{display:flex;flex-direction:column;align-items:center;margin-bottom:20px}
.mf-logo{height:96px;width:auto;margin:0 auto 10px;display:block}
.mf-name{font-family:var(--serif);color:#fff;font-size:calc(1.7rem + 30px);line-height:1.05;overflow-wrap:break-word;max-width:100%}
.mf-sub{color:var(--gold-2);font-size:calc(.72rem + 14px);letter-spacing:.05em;text-transform:uppercase;margin-top:8px;line-height:1.25;overflow-wrap:break-word;max-width:100%}
.mf-top{max-width:100%}
.mf-contact{display:flex;flex-direction:column;gap:5px;margin-top:14px}
.mf-contact a{color:#cde3d6;font-size:.98rem;white-space:nowrap}
.mf-book{display:inline-block !important;margin:0 auto 24px;width:auto;font-size:1.05rem}
.mf-cols{display:grid;grid-template-columns:1fr 1fr;gap:20px 16px;text-align:left;max-width:380px;margin:0 auto 22px}
.mf-group h6{color:var(--gold-2);font-family:var(--serif);font-size:1.05rem;margin:0 0 8px;font-weight:700}
.mf-group a{display:block;color:#eafff2;font-size:.92rem;padding:5px 0}
.mf-group a:hover{color:var(--gold-2)}
.mf-news{width:100%;max-width:340px;margin:0 auto 20px}
.mf-news-title{font-family:var(--serif);color:#fff;font-size:1.05rem;margin-bottom:8px}
.mf-news .news-row{display:flex;gap:8px}
.mf-news input{flex:1;min-width:0}
.mf-bottom{border-top:1px solid var(--line);padding-top:16px;width:100%;max-width:360px;margin:0 auto;
  display:flex;flex-direction:column;align-items:center;gap:6px;color:#9db3a8;font-size:.78rem;line-height:1.5}
.mf-bottom a{color:#cfe0d8;display:inline}
/* Events & Refer-a-Friend links hidden site-wide (pages kept, just unlinked) */
.links a[href="events.html"],#site-footer a[href="events.html"],
.links a[href="referral.html"],#site-footer a[href="referral.html"]{display:none}

/* ===== Decorative ===== */
.divider-snow{height:40px;background:radial-gradient(14px 14px at 14px 0, #fff 60%, transparent 61%) repeat-x;background-size:42px 20px;opacity:.9}
.pill{display:inline-block;background:rgba(244,197,66,.18);border:1px solid var(--line);color:var(--gold-2);
  padding:6px 16px;border-radius:99px;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}

/* ===== Responsive ===== */
/* keep all images & embeds inside their container on every screen */
img,svg,iframe,video{max-width:100%}
@media(max-width:1040px){
  nav.links{display:none}
  .burger{display:block}
  nav.links.open{display:flex;position:absolute;top:76px;left:0;right:0;flex-direction:column;background:#0a3d27;padding:18px 22px;gap:16px;border-bottom:1px solid var(--line);z-index:50;max-height:calc(100vh - 76px);overflow:auto}
  nav.links.open a.active::after{display:none}
  .cols-3,.cols-2,.journey{grid-template-columns:1fr 1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .cols-3,.cols-2,.journey,.two,.foot-grid{grid-template-columns:1fr}
  .cd-box{min-width:70px;padding:30px 12px 12px}
  .cd-box .n{font-size:1.8rem}
  /* center the whole hero on phones */
  .hero-split{text-align:center}
  .hero-split .countdown{justify-content:center}
  .hero-split>div>div[style*="display:flex"]{justify-content:center}
  .hero-split .btn{width:100%}
  .story-frame{margin-left:auto !important;margin-right:auto !important}
  .band-cream h2,.band-cream h3{text-align:center}
}
/* ---- Small-phone polish (full-width, edge-to-edge feel) ---- */
@media(max-width:560px){
  .container{padding:0 14px}
  .topbar{font-size:.74rem;padding:7px 12px;line-height:1.3}
  .nav-inner{height:auto;min-height:64px;padding:8px 0}
  nav.links.open{top:100%}
  /* bigger logo on phones, smaller subtitle under it */
  .brand{flex:1;min-width:0}
  .brand .logo{height:46px;min-width:46px}
  .brand b{font-size:2.05rem;white-space:normal;line-height:1.02}
  .brand small{display:block;color:var(--gold-2);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;margin-top:3px}
  .btn{padding:13px 18px;font-size:.96rem}
  .countdown{gap:10px;margin-top:24px}
  .foot-bottom{flex-direction:column;text-align:center;gap:4px}
  #rev-search{width:100%}
  /* cards & forms go essentially full-width on phones */
  .form-wrap,.panelcard,.parchment,.mailbox,.booking-form{max-width:none;width:100%;padding:20px 16px;border-radius:16px}
  .card,.review-card,.pcard,.addon,.stat{padding:18px 16px}
  .parchment{padding-top:32px;padding-bottom:44px}
  .hero{padding-left:0;padding-right:0}
  section{padding-top:34px;padding-bottom:34px}
  .section-head h2{font-size:1.7rem}
  /* ONE bigger review at a time — swipe for more */
  .rev-carousel{margin:0 -14px;padding:14px 14px 22px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
  .rev-carousel .review-card{min-width:86vw;max-width:86vw;scroll-snap-align:center}
  .rev-carousel .review-card .txt{font-size:1.18rem;line-height:1.5}
  .rev-carousel .review-card .stars{font-size:1.3rem}
}
@media(max-width:380px){
  .hero h1{font-size:2.2rem}
  .cd-box{min-width:62px;padding:9px 9px}
  .cd-box .n{font-size:1.5rem}
}
