
/* Layout: a winter night outside a glowing cabin window — dark sky stage, warm candlelit panels for every step */
:root{
  --sky:#0a1830;        /* midnight sky */
  --sky-2:#132842;      /* deeper band */
  --pine:#1f5a3a;       /* evergreen */
  --ember:#e8c26a;      /* candle / window glow */
  --cranberry:#c8202f;  /* Santa red, used sparingly */
  --snow:#f7f3ec;       /* paper / snow */
  --ink:#1c2330;        /* text on paper */
  --muted:#9fb0c6;      /* text on sky */
  --paper-muted:#5d6676;
  --line:rgba(247,243,236,.14);
  --f-display:"Cinzel", "Trajan Pro", Georgia, serif;
  --f-body:"Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;
  --f-hand:"Great Vibes", "Snell Roundhand", cursive;
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{background:var(--sky);color:var(--snow)}
body{font-family:var(--f-body);font-size:17px;line-height:1.6;overflow-x:hidden}
#snow{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.wrap{position:relative;z-index:1;max-width:1120px;margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
h1,h2,h3{font-family:var(--f-display);font-weight:700;letter-spacing:.01em;line-height:1.1;text-wrap:balance;margin:0}
p{margin:0}
a{color:var(--ember)}
button{font:inherit;cursor:pointer}
:focus-visible{outline:3px solid var(--ember);outline-offset:3px;border-radius:8px}

/* header */
header.top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:22px}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--f-display);font-weight:900;font-size:1.15rem;letter-spacing:.03em;color:var(--snow);text-decoration:none;background:none;border:0;padding:0}
.brand svg{flex:none}
.top nav{display:flex;gap:22px;align-items:center}
.top nav a{color:var(--muted);text-decoration:none;font-weight:700;font-size:.95rem}
.top nav a:hover{color:var(--snow)}
@media (max-width:720px){.top nav a.hide-sm{display:none}}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:999px;padding:16px 28px;font-weight:800;font-size:1.05rem;letter-spacing:.01em;transition:transform .15s ease, box-shadow .15s ease, background .15s}
.btn-primary{background:var(--cranberry);color:var(--snow);box-shadow:0 8px 28px rgba(196,55,74,.45), inset 0 -3px 0 rgba(0,0,0,.18)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 34px rgba(196,55,74,.55), inset 0 -3px 0 rgba(0,0,0,.18)}
.btn-glow{background:var(--ember);color:var(--ink);box-shadow:0 8px 30px rgba(242,180,90,.4)}
.btn-glow:hover{transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--snow);border:1.5px solid var(--line)}
.btn-ghost:hover{border-color:var(--ember);color:var(--ember)}
.btn-sm{padding:10px 18px;font-size:.95rem}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}

/* hero */
.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;padding-block:36px 80px}
.eyebrow{font-family:var(--f-hand);font-size:2rem;color:var(--ember);line-height:1}
.hero h1{font-size:clamp(2.6rem,6vw,4.4rem);margin-top:12px}
.hero h1 em{font-style:normal;color:var(--ember)}
.hero .lede{color:var(--muted);font-size:1.18rem;max-width:34ch;margin-top:20px}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:32px}
.hero-note{color:var(--muted);font-size:.92rem}
.hero-note strong{color:var(--snow)}

/* the window */
.window{position:relative;aspect-ratio:4/5;max-width:100%;border-radius:200px 200px 22px 22px;background:linear-gradient(180deg,#3a2414,#2a190e);padding:18px;box-shadow:0 0 0 2px rgba(242,180,90,.25),0 40px 120px rgba(242,180,90,.25),0 30px 60px rgba(0,0,0,.5)}
.window-inner{position:relative;height:100%;border-radius:184px 184px 10px 10px;overflow:hidden;background:radial-gradient(120% 80% at 50% 85%,#ffcf7d 0%,#e88a3a 32%,#7a2f1e 70%,#2a1410 100%)}
.window-inner::before,.window-inner::after{content:"";position:absolute;background:#2a190e;z-index:3}
.window-inner::before{left:50%;top:0;bottom:0;width:12px;transform:translateX(-50%)}
.window-inner::after{top:46%;left:0;right:0;height:12px}
.window canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1}
.window .sill{position:absolute;left:-14px;right:-14px;bottom:-14px;height:34px;border-radius:10px;background:var(--snow);box-shadow:0 6px 0 #d9d2c6;z-index:4}
.window .tag{position:absolute;z-index:5;bottom:42px;left:50%;transform:translateX(-50%) rotate(-3deg);background:var(--snow);color:var(--ink);font-family:var(--f-hand);font-size:1.45rem;padding:6px 18px;border-radius:6px;box-shadow:0 8px 20px rgba(0,0,0,.35);white-space:nowrap}

/* trust strip */
.strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:20px;overflow:hidden}
.strip div{background:rgba(13,27,46,.85);padding:22px 24px;display:flex;gap:14px;align-items:flex-start}
.strip svg{flex:none;margin-top:3px}
.strip b{display:block;font-size:1.02rem}
.strip span{color:var(--muted);font-size:.93rem}

section.block{padding-block:96px 0}
.section-head{max-width:640px}
.section-head h2{font-size:clamp(2rem,4vw,2.9rem);margin-top:8px}
.section-head p{color:var(--muted);margin-top:14px;font-size:1.08rem}

/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:44px;counter-reset:s}
.step{position:relative;padding:26px 22px 24px;border-top:2px solid var(--ember)}
.step::before{counter-increment:s;content:counter(s);font-family:var(--f-display);font-size:2.4rem;font-weight:900;color:var(--ember);line-height:1}
.step h3{font-size:1.3rem;margin-top:14px}
.step p{color:var(--muted);font-size:.96rem;margin-top:8px}

/* promise: paper card */
.promise{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:44px;background:var(--snow);color:var(--ink);border-radius:26px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.35)}
.promise .col{padding:44px 40px}
.promise .col+.col{border-left:2px dashed rgba(28,35,48,.14)}
.promise h3{font-size:1.7rem;color:var(--ink)}
.promise .hand{font-family:var(--f-hand);font-size:2rem;color:var(--cranberry);line-height:1}
.promise ul{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:14px}
.promise li{display:flex;gap:12px;align-items:flex-start;color:#38404e}
.promise li svg{flex:none;margin-top:4px}

/* pricing */
.prices{display:grid;grid-template-columns:1.2fr 1fr;gap:22px;margin-top:44px;align-items:stretch}
.price{border-radius:24px;padding:36px;border:1.5px solid var(--line);background:rgba(19,40,66,.6);display:flex;flex-direction:column;gap:14px}
.price.main{background:linear-gradient(160deg,#1f5a3a,#0f2f22);border-color:rgba(242,180,90,.4)}
.price .amt{font-family:var(--f-display);font-size:3rem;line-height:1;color:var(--ember);font-variant-numeric:tabular-nums}
.price .amt small{font-family:var(--f-body);font-size:1rem;color:var(--muted);font-weight:600}
.price ul{margin:0;padding-left:20px;color:var(--muted)}
.price li{margin-top:6px}
.price .btn{align-self:flex-start;margin-top:auto}
.placeholder{display:inline-block;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;background:rgba(242,180,90,.15);color:var(--ember);padding:3px 8px;border-radius:6px;vertical-align:middle}

/* faq */
.faq{margin-top:36px;display:grid;gap:12px;max-width:820px}
.faq details{border:1.5px solid var(--line);border-radius:16px;padding:18px 22px;background:rgba(13,27,46,.7)}
.faq summary{cursor:pointer;font-weight:800;font-size:1.06rem;list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::after{content:"+";color:var(--ember);font-size:1.4rem;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq details p{color:var(--muted);margin-top:10px}

footer{padding-block:90px 50px;color:var(--muted);font-size:.9rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;border-top:1px solid var(--line);margin-top:100px}

/* ===== booking flow ===== */
.flow{padding-block:20px 80px}
.progress{display:flex;gap:8px;list-style:none;padding:0;margin:0 auto 34px;max-width:720px}
.progress li{flex:1;display:flex;flex-direction:column;gap:8px;font-size:.85rem;font-weight:700;color:var(--muted)}
.progress li::before{content:"";height:5px;border-radius:5px;background:var(--line)}
.progress li.done::before,.progress li.now::before{background:var(--ember)}
.progress li.now{color:var(--snow)}
@media (max-width:560px){.progress li span{display:none}}

.card{max-width:720px;margin:0 auto;background:var(--snow);color:var(--ink);border-radius:28px;padding:44px;box-shadow:0 40px 100px rgba(0,0,0,.45)}
.card h2{font-size:2.2rem;color:var(--ink)}
.card .sub{color:var(--paper-muted);margin-top:8px}
.card .hand{font-family:var(--f-hand);color:var(--cranberry);font-size:2rem;line-height:1}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px;margin-top:28px}
.fields .full{grid-column:1/-1}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field label,.legend{font-weight:800;font-size:.92rem}
.field .hint{font-size:.85rem;color:var(--paper-muted)}
.field input,.field select,.field textarea{font:inherit;color:var(--ink);background:#fff;border:1.5px solid #d8d1c4;border-radius:12px;padding:12px 14px;width:100%}
.field textarea{min-height:110px;resize:vertical;font-size:1.05rem;line-height:31px;background:repeating-linear-gradient(#fff 0 31px,#efe8dc 31px 32px);background-attachment:local}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ember);outline:3px solid rgba(242,180,90,.35);outline-offset:0}
.field.err input,.field.err select{border-color:var(--cranberry)}
.err-msg{color:var(--cranberry);font-size:.85rem;font-weight:700}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips label{position:relative}
.chips input{position:absolute;opacity:0;inset:0}
.chips span{display:inline-block;padding:10px 18px;border-radius:999px;border:1.5px solid #d8d1c4;background:#fff;font-weight:700;font-size:.95rem;cursor:pointer}
.chips input:checked+span{background:var(--pine);border-color:var(--pine);color:var(--snow)}
.chips input:focus-visible+span{outline:3px solid var(--ember);outline-offset:2px}
.section-label{margin-top:34px;padding-top:24px;border-top:2px dashed rgba(28,35,48,.12);font-family:var(--f-display);font-size:1.35rem}
.consents{display:grid;gap:12px;margin-top:16px}
.consent{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border-radius:14px;background:#fff;border:1.5px solid #e4ddd0;cursor:pointer}
.consent input{width:22px;height:22px;flex:none;margin-top:2px;accent-color:var(--pine)}
.consent b{display:block}
.consent span{color:var(--paper-muted);font-size:.93rem}
.consent.err{border-color:var(--cranberry)}
.actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;margin-top:32px}
.btn-back{background:none;border:0;color:var(--paper-muted);font-weight:700;padding:10px 0}
.btn-back:hover{color:var(--ink)}

.summary{margin-top:26px;border-radius:16px;background:#fff;border:1.5px solid #e4ddd0;overflow:hidden}
.summary .row{display:flex;justify-content:space-between;gap:16px;padding:16px 20px;font-variant-numeric:tabular-nums}
.summary .row+.row{border-top:1px solid #eee6d9}
.summary .total{font-weight:800;font-size:1.15rem;background:#fbf8f2}
.secure{display:flex;gap:10px;align-items:center;color:var(--paper-muted);font-size:.88rem;margin-top:16px}
.demo-note{margin-top:18px;font-size:.85rem;color:var(--paper-muted);background:#fbf3e1;border-radius:10px;padding:10px 14px}

/* call stage */
.stage-wrap{max-width:980px;margin:0 auto}
.stage-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px}
.stage-head h2{font-size:clamp(1.8rem,4vw,2.6rem)}
.stage-head p{color:var(--muted)}
.frame{position:relative;padding:16px;border-radius:30px;background:linear-gradient(160deg,#4a2c17,#2a190e);box-shadow:0 0 0 2px rgba(242,180,90,.3),0 40px 120px rgba(242,180,90,.22)}
.stage{position:relative;aspect-ratio:16/9;max-width:100%;border-radius:18px;overflow:hidden;background:radial-gradient(90% 90% at 50% 100%,#6b2a1a,#1a0f0c 75%)}
.stage .state{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;padding:24px}
.stage .state h3{font-size:clamp(1.4rem,3vw,2rem)}
.stage .state p{color:#e7c9a7;max-width:44ch}
.stage .live{position:absolute;top:16px;left:16px;display:flex;align-items:center;gap:8px;background:rgba(0,0,0,.45);padding:6px 12px;border-radius:999px;font-weight:800;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase}
.stage .live i{width:9px;height:9px;border-radius:50%;background:#ff4d5e;box-shadow:0 0 10px #ff4d5e;animation:blink 1.4s infinite}
.stage .hg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;border:2px dashed rgba(242,180,90,.35);border-radius:18px;margin:14px;color:#e7c9a7;font-weight:700;text-align:center;padding:20px}
.stage .hg code{font-size:.8rem;color:var(--ember);background:rgba(0,0,0,.35);padding:4px 8px;border-radius:6px}
@keyframes blink{50%{opacity:.35}}
.dots span{display:inline-block;width:10px;height:10px;margin:0 4px;border-radius:50%;background:var(--ember);animation:bounce 1s infinite}
.dots span:nth-child(2){animation-delay:.15s}.dots span:nth-child(3){animation-delay:.3s}
@keyframes bounce{50%{transform:translateY(-8px);opacity:.5}}

.controls{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;margin-top:22px}
.timer{display:flex;align-items:center;gap:14px}
.timer svg{flex:none}
.timer b{font-family:var(--f-display);font-size:2rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1}
.timer span{display:block;color:var(--muted);font-size:.85rem}
.tips{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:30px}
.tips div{border:1.5px solid var(--line);border-radius:16px;padding:18px;color:var(--muted);font-size:.93rem}
.tips b{display:block;color:var(--snow);margin-bottom:4px}

/* upsell */
.keepsake{display:grid;grid-template-columns:200px 1fr;gap:30px;align-items:center;margin-top:24px}
.reel{aspect-ratio:3/4;max-width:100%;border-radius:16px;border:5px solid #fff;background:url(/santa.jpg) center 30%/cover;position:relative;box-shadow:0 18px 40px rgba(0,0,0,.25);transform:rotate(-3deg)}
.reel::after{content:"";position:absolute;left:50%;top:50%;width:58px;height:58px;transform:translate(-50%,-50%);border-radius:50%;background:rgba(255,255,255,.92) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 7l9 5-9 5z' fill='%23c4374a'/%3E%3C/svg%3E") center/30px no-repeat}
.reel span{position:absolute;bottom:12px;left:12px;right:12px;font-family:var(--f-hand);font-size:1.6rem;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.4)}
.keepsake ul{margin:14px 0 0;padding-left:20px;color:#38404e}

.done-mark{width:84px;height:84px;border-radius:50%;background:var(--pine);display:flex;align-items:center;justify-content:center;margin-bottom:20px}


.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hero{display:block;padding-block:8px 70px}
.banner{border-radius:26px;overflow:hidden;box-shadow:0 0 0 3px rgba(232,194,106,.55),0 0 0 9px rgba(31,90,58,.55),0 40px 120px rgba(232,194,106,.25),0 30px 60px rgba(0,0,0,.5)}
.banner img{display:block;width:100%;height:auto}
.hero-row{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:end;margin-top:44px}
.hero-h{font-family:var(--f-display);font-weight:700;font-size:clamp(2rem,4.4vw,3.3rem);line-height:1.12;text-wrap:balance;margin-top:6px}
.hero-h em{font-style:normal;color:var(--ember)}
.hero .lede{max-width:52ch}
.hero-cta{flex-direction:column;align-items:flex-start;margin-top:0}
.every{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center}
.every-img{border-radius:24px;overflow:hidden;box-shadow:0 0 0 3px rgba(232,194,106,.5),0 30px 80px rgba(0,0,0,.45);transform:rotate(-1.5deg)}
.every-img img{display:block;width:100%;height:auto}
.every h2{font-size:clamp(2rem,4vw,2.9rem);margin-top:8px}
.every-lede{color:var(--muted);font-size:1.12rem;margin-top:14px;max-width:52ch}
.every-list{list-style:none;padding:0;margin:26px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:20px 26px}
.every-list li{border-left:3px solid var(--cranberry);padding-left:14px;color:var(--muted);font-size:.96rem}
.every-list b{display:block;color:var(--snow);font-size:1.04rem;margin-bottom:2px}
.brand-sm{color:var(--ember)}
#st-ready{background:linear-gradient(90deg,rgba(10,24,48,.92) 0%,rgba(10,24,48,.7) 45%,rgba(10,24,48,.05) 75%),url(/santa.jpg) right 30%/cover;align-items:flex-start;text-align:left;padding-left:6%}
#st-ready p{color:#dfe6f0;max-width:34ch}
@media (max-width:900px){.hero-row,.every{grid-template-columns:1fr;gap:30px}.every-img{max-width:440px}}
@media (max-width:640px){.every-list{grid-template-columns:1fr}.banner{border-radius:14px}#st-ready{background:linear-gradient(0deg,rgba(10,24,48,.95) 30%,rgba(10,24,48,.35)),url(/santa.jpg) center 25%/cover;padding-left:24px}#st-ready h3{font-size:1.2rem}#st-ready p{display:none}}
/* responsive */
@media (max-width:900px){
  .hero{grid-template-columns:1fr;gap:40px;padding-block:20px 60px}
  .window{max-width:400px;margin:0 auto;width:100%}
  .steps{grid-template-columns:1fr 1fr}
  .prices,.promise{grid-template-columns:1fr}
  .promise .col+.col{border-left:0;border-top:2px dashed rgba(28,35,48,.14)}
  .tips{grid-template-columns:1fr}
}
@media (max-width:640px){
  body{font-size:16px}
  .strip{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .card{padding:28px 20px;border-radius:22px}
  .fields{grid-template-columns:1fr}
  .promise .col,.price{padding:28px 22px}
  .keepsake{grid-template-columns:1fr}
  .reel{max-width:180px}
  .frame{padding:8px;border-radius:20px}
}

/* ===== festive layer: matches the brand art ===== */
:root{--gold-grad:linear-gradient(180deg,#fff3c4 0%,#f1cf6e 35%,#c8952e 70%,#f6dc8a 100%);--velvet:linear-gradient(160deg,#1f5a3a 0%,#123d27 60%,#0c2a1b 100%)}
body{background:radial-gradient(120% 60% at 50% 0%,#17346a 0%,#0a1830 55%,#071022 100%) fixed}
.hero{position:relative}
.banner{width:100vw;margin-left:calc(50% - 50vw);border-radius:0;box-shadow:none;position:relative}
.banner::after{content:"";position:absolute;inset:auto 0 0 0;height:30%;background:linear-gradient(transparent,var(--sky))}
.banner img{-webkit-mask-image:linear-gradient(#000 80%,transparent);mask-image:linear-gradient(#000 80%,transparent)}
.hero-row{margin-top:-10px;position:relative;z-index:2;background:var(--velvet);border-radius:26px;padding:38px 40px;border:3px solid #d9b35a;box-shadow:inset 0 0 0 6px #123d27,inset 0 0 0 8px rgba(232,194,106,.6),0 30px 80px rgba(0,0,0,.5)}
.hero-row::before,.hero-row::after,.promise::before,.card::before,.price.main::before{content:"";position:absolute;width:120px;height:80px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 80'%3E%3Cpath d='M60 44 C40 20 18 22 4 30 C12 34 10 40 16 42 C14 48 20 52 24 50 C26 56 34 56 36 52 C42 58 52 54 60 44Z' fill='%23236b3f' stroke='%23123d24' stroke-width='2'/%3E%3Cpath d='M60 44 C80 20 102 22 116 30 C108 34 110 40 104 42 C106 48 100 52 96 50 C94 56 86 56 84 52 C78 58 68 54 60 44Z' fill='%232c7a48' stroke='%23123d24' stroke-width='2'/%3E%3Cpath d='M60 44 C42 36 24 34 8 32 M60 44 C78 36 96 34 112 32' stroke='%23123d24' stroke-width='1.5' fill='none'/%3E%3Ccircle cx='52' cy='46' r='8' fill='%23d4202e'/%3E%3Ccircle cx='66' cy='44' r='8' fill='%23e02a38'/%3E%3Ccircle cx='59' cy='56' r='8' fill='%23c41a28'/%3E%3Ccircle cx='50' cy='43' r='2.5' fill='%23fff' opacity='.7'/%3E%3Ccircle cx='64' cy='41' r='2.5' fill='%23fff' opacity='.7'/%3E%3Ccircle cx='57' cy='53' r='2.5' fill='%23fff' opacity='.7'/%3E%3C/svg%3E") center/contain no-repeat;pointer-events:none;z-index:3}
.hero-row::before{top:-34px;left:-26px;transform:rotate(-18deg)}
.hero-row::after{bottom:-30px;right:-24px;transform:rotate(160deg)}
.hero-h,.hero-h em,.price .amt,.timer b{background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 0 rgba(90,40,10,.6))}
.hero-h{font-weight:900}
.hero-h em{font-family:var(--f-hand);font-weight:400;font-size:1.3em;letter-spacing:0}
.hero .lede{color:#d7e6dc}
.hero-note{color:#d7e6dc}

/* ribbon eyebrows + script headings, like the sign */
.eyebrow{display:inline-block;position:relative;font-family:var(--f-display);font-weight:900;font-size:.95rem;letter-spacing:.14em;text-transform:uppercase;line-height:1;padding:11px 26px;color:transparent;background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;z-index:0}
.eyebrow::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#e0303f,#a3121f);border-top:2px solid #e8c26a;border-bottom:2px solid #e8c26a;clip-path:polygon(0 0,100% 0,96% 50%,100% 100%,0 100%,4% 50%);box-shadow:0 6px 14px rgba(0,0,0,.35)}
.section-head{text-align:center;margin-inline:auto}
.section-head h2,.every h2{font-family:var(--f-hand);font-weight:400;font-size:clamp(3rem,7vw,4.8rem);line-height:1.05;letter-spacing:0;color:#fff;text-shadow:0 3px 0 #a3121f,0 6px 18px rgba(0,0,0,.5);margin-top:14px}
.section-head p{color:#c9d6ea}
.stage-head h2{font-family:var(--f-hand);font-weight:400;font-size:clamp(2.6rem,6vw,3.8rem);text-shadow:0 3px 0 #a3121f,0 6px 18px rgba(0,0,0,.5);margin-top:10px}

/* ornament buttons */
.btn-primary{background:linear-gradient(180deg,#ec3a48 0%,#c8202f 50%,#94101c 100%);border:2px solid #e8c26a;box-shadow:0 0 0 3px rgba(18,61,39,.9),0 10px 30px rgba(200,32,47,.5),inset 0 2px 0 rgba(255,255,255,.35);text-shadow:0 1px 0 rgba(0,0,0,.3)}
.btn-glow{background:var(--gold-grad);border:2px solid #fff3c4;color:#5a2a08}

/* velvet + gold panels */
.strip{background:transparent;border:0;gap:18px;border-radius:0;overflow:visible}
.strip div,.price,.faq details,.tips div{background:var(--velvet);border:2px solid #c8a24e;box-shadow:inset 0 0 0 4px #123d27,inset 0 0 0 5px rgba(232,194,106,.45),0 18px 40px rgba(0,0,0,.35);border-radius:18px}
.strip span,.price ul,.faq details p,.tips div{color:#d2e3d8}
.price.main{background:linear-gradient(160deg,#a3121f,#6e0b14);position:relative}
.price.main ul{color:#ffe1e1}
.price.main::before{top:-30px;right:-18px;transform:rotate(20deg)}
.steps{gap:26px}
.step{border-top:0;text-align:center;background:rgba(10,24,48,.55);border-radius:18px;padding-top:30px;border:1px solid rgba(232,194,106,.25)}
.step::before{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin:0 auto;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ff6b75,#c8202f 45%,#7a0c16);color:#fff3c4;font-size:1.7rem;border:3px solid #e8c26a;box-shadow:0 8px 20px rgba(0,0,0,.4)}
.every-list li{border-left-color:#e8c26a}
.every-img{border:6px solid #e8c26a;box-shadow:0 0 0 4px #123d27,0 0 0 7px #c8202f,0 30px 80px rgba(0,0,0,.5)}

/* parchment cards in gold frames */
.promise,.card{position:relative;overflow:visible;background:linear-gradient(180deg,#fffaf0,#f6ead2);border:3px solid #c8a24e;box-shadow:inset 0 0 0 6px #fffaf0,inset 0 0 0 8px #c8202f,0 40px 100px rgba(0,0,0,.5)}
.promise::before{top:-34px;left:-22px;transform:rotate(-15deg)}
.card::before{top:-36px;right:-22px;transform:rotate(15deg)}
.card h2,.promise h3{color:#7a0c16}
.frame{background:var(--gold-grad);padding:12px;box-shadow:0 0 0 5px #123d27,0 0 0 9px #c8202f,0 40px 120px rgba(232,194,106,.3)}
footer{border-top:2px solid rgba(232,194,106,.35)}
@media (max-width:640px){.hero-row{padding:28px 22px}.hero-row::before,.hero-row::after,.promise::before,.card::before,.price.main::before{width:84px;height:56px}.eyebrow{font-size:.78rem;padding:9px 20px}}

.banner video{display:block;width:100%;aspect-ratio:16/9;max-height:78vh;object-fit:cover;object-position:center 40%;-webkit-mask-image:linear-gradient(#000 82%,transparent);mask-image:linear-gradient(#000 82%,transparent)}
.every-img{transform:rotate(-1.2deg)}
.every-img video{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.every{grid-template-columns:1.1fr .9fr}
.village{position:relative;isolation:isolate;margin-top:96px;padding-block:110px 110px}
.village-bg{position:absolute;z-index:-1;top:0;bottom:0;left:calc(50% - 50vw);width:100vw;height:100%;object-fit:cover;-webkit-mask-image:linear-gradient(transparent,#000 14%,#000 86%,transparent);mask-image:linear-gradient(transparent,#000 14%,#000 86%,transparent);filter:brightness(.55) saturate(1.1)}
.village .step{background:rgba(8,20,40,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.eyebrow{color:#ffe7a3;-webkit-text-fill-color:#ffe7a3;background:none;text-shadow:0 1px 0 #6e0b14}
@media (max-width:900px){.every{grid-template-columns:1fr}}
.compare{font-size:.95rem;color:#ffe1e1;border-top:1px dashed rgba(232,194,106,.45);padding-top:12px}
.compare s{color:#f6dc8a;text-decoration-thickness:2px}
.meet{margin:0 0 24px;position:relative;max-width:300px;transform:rotate(1.5deg)}
.meet img{display:block;width:100%;height:auto;border:8px solid #fff;border-bottom-width:46px;box-shadow:0 14px 34px rgba(0,0,0,.25);border-radius:4px}
.meet figcaption{position:absolute;left:0;right:0;bottom:8px;text-align:center;font-family:var(--f-hand);font-size:1.6rem;line-height:1;color:#7a0c16}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

a.btn{text-decoration:none}
.banner img.hero-img{aspect-ratio:16/9;max-height:78vh;object-fit:cover;object-position:center 30%}
.every-img img{aspect-ratio:16/9;object-fit:cover;object-position:center 25%}

/* ===== booking pages ===== */
.book-flow{padding-block:10px 40px}
.card + .card{margin-top:40px}
.card .notice{margin-top:18px;padding:14px 18px;border-radius:12px;background:#fde8ea;color:#7a0c16;font-weight:700}
.daybar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:22px}
.daybar input{font:inherit;color:var(--ink);background:#fff;border:1.5px solid #d8d1c4;border-radius:12px;padding:10px 14px}
.daybar .daynav{background:#fff;border:1.5px solid #d8d1c4;border-radius:999px;padding:9px 16px;font-weight:700;color:var(--ink)}
.daybar .daynav:hover{border-color:var(--pine)}
.times{margin-top:18px;min-height:52px}
.times .empty{color:var(--paper-muted)}
.keep-opt{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border-radius:14px;background:#fff;border:1.5px solid #e4ddd0;cursor:pointer;margin-top:16px}
.keep-opt input{width:22px;height:22px;flex:none;margin-top:2px;accent-color:var(--pine)}
.keep-opt span{color:var(--paper-muted);font-size:.93rem;display:block}
.form-err{margin-top:16px}
.pay-box{margin-top:24px;background:#fff;border:1.5px solid #e4ddd0;border-radius:16px;padding:20px}
.pay-box [data-error]{color:var(--cranberry);font-weight:700;margin-top:10px;min-height:1em}
.pay-box .btn{margin-top:16px;width:100%}
.status-card{text-align:center;display:flex;flex-direction:column;align-items:center}
.status-card .sub{max-width:46ch}
.when-big{margin-top:18px;font-family:var(--f-display);font-size:1.35rem;color:#7a0c16}
footer.slim{margin-top:60px;padding-block:40px}
