/* JCI Macajalar 24K — shared styles for index.html and rsvp.html */
:root{
  --night:#070D22; --night2:#0D1330; --ink:#F3EEE1; --muted:#D3CDBE; --dim:#BDB7A8;
  --gold:#E9CD86; --gold2:#F6E3AE; --gold-deep:#C9A75C;
  --glass:rgba(255,255,255,.055); --glass-b:rgba(255,255,255,.13);
  --serif:'Bodoni Moda','Bodoni 72',Didot,Georgia,serif; --sans:'Hanken Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--night);color:var(--ink);font-family:var(--sans);font-size:20px;font-size-adjust:.42;line-height:1.5;overflow-x:hidden}
h1,h2,h3,.q,.big,.rsvp-word,.n42,.cer b,.tagline,.tel .num,.intro-title,.page-head h1,.seal span{font-family:var(--serif);font-optical-sizing:auto}
.n42 sup{font-size:.42em;vertical-align:top;position:relative;top:.32em;margin-left:.04em;letter-spacing:.02em}
a{color:var(--gold)}a:hover{color:var(--gold2)}
img{max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:6px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.label{font-family:var(--sans);font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}
.glass{background:var(--glass);-webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%);border:1px solid var(--glass-b);box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 30px 70px -40px rgba(0,0,0,.85)}
.glass-strong{background:rgba(20,30,66,.58);-webkit-backdrop-filter:blur(24px) saturate(160%);backdrop-filter:blur(24px) saturate(160%);border:1px solid rgba(255,255,255,.16);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 30px 80px -40px rgba(0,0,0,.9)}
.lift{transition:transform .35s ease,border-color .35s ease,background .35s ease}
.lift:hover{transform:translateY(-4px);border-color:rgba(233,205,134,.55);background:rgba(255,255,255,.085)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 28px;border-radius:999px;font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;cursor:pointer;border:0;transition:transform .25s ease,box-shadow .25s ease,background .25s ease}
.btn-gold{background:var(--gold);color:var(--night2)}
.btn-gold:hover{color:var(--night2);transform:translateY(-2px);box-shadow:0 12px 34px -10px rgba(233,205,134,.7)}
.btn-glass{color:var(--ink);font-weight:500}
.btn-glass:hover{color:var(--ink);background:rgba(255,255,255,.12)}
.btn[disabled]{opacity:.55;cursor:wait}

/* ============ SKY ============ */
#sky{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.neb{position:absolute;border-radius:50%;filter:blur(24px)}
.neb.a{left:-12%;top:-15%;width:72vmax;height:72vmax;background:radial-gradient(circle,rgba(88,64,180,.16),rgba(88,64,180,0) 64%);animation:drift 26s ease-in-out infinite}
.neb.b{right:-18%;top:22%;width:62vmax;height:62vmax;background:radial-gradient(circle,rgba(40,86,190,.12),rgba(40,86,190,0) 64%);animation:drift2 32s ease-in-out infinite}
.neb.c{left:18%;bottom:-30%;width:56vmax;height:56vmax;background:radial-gradient(circle,rgba(201,160,90,.06),rgba(201,160,90,0) 64%);animation:drift 36s ease-in-out infinite}
.star{position:absolute;border-radius:50%;background:#fff;animation:twinkle ease-in-out infinite}
.shoot{position:absolute;right:-220px;height:2px;width:180px;border-radius:2px;background:linear-gradient(90deg,#fff,rgba(190,180,255,.5) 30%,rgba(190,180,255,0));animation:shoot 11s linear infinite;opacity:0}
@keyframes twinkle{0%,100%{opacity:.15;transform:scale(.7)}50%{opacity:1;transform:scale(1)}}
@keyframes shoot{0%{transform:rotate(-24deg) translateX(0);opacity:0}3%{opacity:1}14%{transform:rotate(-24deg) translateX(-1200px);opacity:0}100%{transform:rotate(-24deg) translateX(-1200px);opacity:0}}
@keyframes drift{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(40px,-30px) scale(1.08)}}
@keyframes drift2{0%,100%{transform:translate(0,0) scale(1.05)}50%{transform:translate(-50px,30px) scale(.95)}}
main,header,footer,section{position:relative;z-index:1}

/* ============ INTRO ============ */
#intro{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(7,13,34,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:opacity 1s ease,visibility 1s}
#intro.gone{opacity:0;visibility:hidden}
#intro .card{width:100%;max-width:600px;border-radius:32px;padding:52px 36px 46px;text-align:center;animation:floaty 6s ease-in-out infinite;transition:transform 1s cubic-bezier(.7,0,.2,1)}
#intro.gone .card{transform:translateY(-60px) scale(.94)}
.seal{position:relative;margin:38px auto 0;width:130px;height:130px;border-radius:50%;border:0;cursor:pointer;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 35% 30%,#F7E3AA,#D9B566 55%,#A9853F);color:#1A1630;animation:pulseRing 2.2s ease-out infinite;transition:transform .3s}
.seal:hover{transform:scale(1.05)}
.seal .ring{position:absolute;inset:9px;border-radius:50%;border:1px dashed rgba(26,22,48,.45);animation:spin 26s linear infinite}
.seal span{display:flex;flex-direction:column;align-items:center;gap:4px;font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.24em}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulseRing{0%{box-shadow:0 0 0 0 rgba(233,205,134,.55)}100%{box-shadow:0 0 0 28px rgba(233,205,134,0)}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.skip{margin-top:18px;background:none;border:0;cursor:pointer;font-family:var(--sans);font-size:12px;letter-spacing:.24em;color:var(--dim);padding:12px}

/* entrance */
.js .rise{opacity:0}
body.open .rise{animation:rise 1.2s cubic-bezier(.2,.7,.2,1) both}
body.open .d1{animation-delay:.15s}body.open .d2{animation-delay:.35s}body.open .d3{animation-delay:.55s}body.open .d4{animation-delay:.75s}body.open .d5{animation-delay:.95s}body.open .d6{animation-delay:1.15s}
@keyframes rise{from{opacity:0;transform:translateY(34px);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
.js .reveal{opacity:0;transform:translateY(40px);transition:opacity 1s ease,transform 1s cubic-bezier(.2,.7,.2,1)}
.js .reveal.in{opacity:1;transform:none}

/* ============ NAV ============ */
.navbar{position:sticky;top:14px;z-index:40;padding:0 16px}
.navbar .glass{max-width:1180px;margin:14px auto 0;border-radius:999px;padding:8px 8px 8px 22px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.navbar nav{display:flex;gap:4px;font-family:var(--sans);font-size:12.5px;font-weight:500;letter-spacing:.16em}
.navbar nav a{padding:12px 15px;border-radius:999px;color:#E4DFD2;text-decoration:none}
.navbar nav a:hover{background:rgba(255,255,255,.1)}

/* ============ HERO ============ */
.hero{padding:100px 20px 110px;text-align:center}
.hero .n42{margin:0 0 -18px;font-weight:500;letter-spacing:-.02em;font-size:150px;line-height:1;color:var(--gold);text-align:left;padding-left:5%;text-shadow:0 0 40px rgba(233,205,134,.35)}
.hero h1{margin:0;font-weight:400;line-height:.9;font-size:146px;letter-spacing:.015em;color:#F6F1E4;text-shadow:0 0 50px rgba(200,190,255,.25)}
.hero h1 span{display:block}
.cer{display:flex;align-items:center;gap:24px;margin-top:26px}
.cer i{flex:1;height:1px}
.cer b{font-size:42px;font-weight:700;letter-spacing:.5em;margin-right:-.5em;color:var(--gold)}
.tagline{margin:30px 0 0;font-size:40px;letter-spacing:.04em}
.count{display:flex;justify-content:center;gap:14px;margin:52px auto 0;max-width:560px}
.count div{min-width:110px;padding:18px 10px;border-radius:20px}
.count b{display:block;font-size:50px;font-weight:500;line-height:1}
.count small{font-family:var(--sans);font-size:11px;letter-spacing:.3em;color:var(--muted)}

/* ============ SECTIONS ============ */
.sec{padding-top:110px;padding-bottom:30px}
.h2{margin:8px 0 0;font-size:66px;font-weight:500;line-height:1}
.h2 .s{font-weight:400;color:var(--gold)}
.details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;text-align:center}
.details>div{border-radius:26px;padding:38px 22px}
.details .big{margin:0;font-size:31px;font-weight:500}
.details .sub{margin:4px 0 0;font-size:21px;color:var(--muted)}
.ico{width:36px;height:36px;fill:none;stroke:var(--gold);stroke-width:1.5}

/* ============ RSVP WIZARD ============ */
.rsvp{border-radius:36px;padding:56px 48px}
.rsvp-head{text-align:center}
.rsvp-word{margin:0;font-size:132px;font-weight:500;line-height:.85;letter-spacing:.05em;color:var(--gold);text-shadow:0 0 40px rgba(233,205,134,.3)}
.progress{display:flex;gap:6px;margin:34px auto 0;max-width:520px}
.progress i{flex:1;height:4px;border-radius:4px;background:rgba(255,255,255,.14);transition:background .4s}
.progress i.on{background:var(--gold)}
.stepname{margin-top:12px;text-align:center}
form{max-width:720px;margin:28px auto 0}
.step{display:none;animation:stepIn .5s ease both}
.step.active{display:block}
@keyframes stepIn{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
.q{margin:0 0 6px;font-size:32px;font-weight:500;line-height:1.15}
.hint{margin:0 0 18px;font-size:19px;color:var(--muted)}
.field{display:block;margin-top:18px}
.field>span{display:block;font-family:var(--sans);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.field>span em{font-style:normal;color:var(--gold)}
.field small{display:block;margin-top:6px;font-size:16px;color:var(--dim)}
.inp{width:100%;min-height:54px;padding:14px 18px;border-radius:16px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.18);font-family:var(--sans);font-size:16px;color:var(--ink);transition:border-color .25s,background .25s}
.inp::placeholder{color:#9C978A}
.inp:focus{outline:none;border-color:var(--gold);background:rgba(255,255,255,.1)}
textarea.inp{min-height:110px;resize:vertical}
.inp.bad{border-color:#FF9F8A}
.err{display:none;margin-top:6px;font-family:var(--sans);font-size:13px;color:#FFB4A3}
.err.show{display:block}
.choices{display:grid;gap:10px}
.choices.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.choice{position:relative;display:flex;align-items:center;gap:14px;min-height:60px;padding:14px 18px;border-radius:18px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);cursor:pointer;transition:border-color .25s,background .25s;font-size:21px}
.choice:hover{border-color:rgba(233,205,134,.5)}
.choice input{position:absolute;opacity:0;pointer-events:none}
.choice .dot{flex:0 0 22px;height:22px;border-radius:50%;border:1.5px solid var(--gold);display:inline-flex;align-items:center;justify-content:center}
.choice .dot.sq{border-radius:6px}
.choice input:checked~.dot{background:var(--gold)}
.choice input:checked~.dot::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--night2)}
.choice input:checked~.dot.sq::after{width:10px;height:6px;border-radius:0;background:none;border-left:2px solid var(--night2);border-bottom:2px solid var(--night2);transform:rotate(-45deg) translate(1px,-1px)}
.choice:has(input:checked){border-color:var(--gold);background:rgba(233,205,134,.12)}
.choice:has(input:focus-visible){outline:2px solid var(--gold);outline-offset:2px}
.choice .sub{display:block;font-size:16px;color:var(--muted)}
.note{margin-top:18px;padding:18px 20px;border-radius:18px;background:rgba(233,205,134,.1);border:1px solid rgba(233,205,134,.35);font-size:19px;line-height:1.45}
.reveal-if{display:none}
.reveal-if.show{display:block;animation:stepIn .4s ease both}
.nav-btns{display:flex;justify-content:space-between;gap:12px;margin-top:34px;flex-wrap:wrap}
.nav-btns .btn{min-width:150px}
.review{display:grid;gap:2px;border-radius:20px;overflow:hidden}
.review div{display:flex;justify-content:space-between;gap:18px;padding:13px 18px;background:rgba(255,255,255,.05);font-size:19px}
.review dt{font-family:var(--sans);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);padding-top:4px;flex:0 0 38%}
.review dd{margin:0;text-align:right;word-break:break-word}
.done{text-align:center;padding:10px 0}
.done .tick{width:84px;height:84px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--gold);animation:pop .6s cubic-bezier(.2,1.6,.4,1) both}
@keyframes pop{from{transform:scale(0)}to{transform:scale(1)}}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.alt{margin-top:30px;text-align:center;font-size:19px;color:var(--muted)}

/* ============ MAP ============ */
.maprow{display:flex;gap:26px;margin-top:40px;align-items:flex-start}
.steps{flex:0 0 400px;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.steps button{width:100%;display:flex;gap:16px;align-items:flex-start;text-align:left;padding:14px 16px;border-radius:18px;cursor:pointer;font-size:19px;line-height:1.35;transition:background .3s,border-color .3s}
.steps button[aria-pressed=true]{background:rgba(233,205,134,.14);border-color:var(--gold)}
.steps .num{flex:0 0 32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-family:var(--sans);font-size:13px;font-weight:600;border:1px solid var(--gold);color:var(--gold);background:var(--night2)}
.steps button[aria-pressed=true] .num{background:var(--gold);color:var(--night2)}
.mapcard{flex:1 1 auto;min-width:0;border-radius:26px;padding:12px}
#map{height:520px;border-radius:16px;background:#0b1229}
.maptools{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:12px 6px 4px}
.seg{display:inline-flex;padding:4px;border-radius:999px;gap:4px}
.seg button{min-height:44px;padding:0 16px;border-radius:999px;border:0;background:none;cursor:pointer;font-family:var(--sans);font-size:12px;font-weight:500;letter-spacing:.14em;color:var(--muted)}
.seg button[aria-pressed=true]{background:var(--gold);color:var(--night2)}
.routeinfo{font-size:18px;color:var(--muted);padding:2px 6px 6px}
.leaflet-container{font-family:var(--sans)}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#121B3E;color:var(--ink);border:1px solid rgba(233,205,134,.4)}
.leaflet-popup-content{font-size:14px;margin:12px 14px}
.leaflet-control-attribution{background:rgba(7,13,34,.75)!important;color:#aaa!important}
.leaflet-control-attribution a{color:#ccc!important}
.leaflet-bar a{background:#121B3E!important;color:var(--gold)!important;border-color:rgba(255,255,255,.15)!important}
.pin{width:22px;height:22px;border-radius:50%;background:var(--gold);border:3px solid #fff;box-shadow:0 0 0 6px rgba(233,205,134,.35);animation:pinPulse 1.8s ease-out infinite}
.pin.small{width:14px;height:14px;border-width:2px;background:#fff;box-shadow:none;animation:none}
.pin.num{width:26px;height:26px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--night2);border:2px solid var(--gold);background:#F6E3AE;animation:none;box-shadow:none}
@keyframes pinPulse{0%{box-shadow:0 0 0 0 rgba(233,205,134,.7)}100%{box-shadow:0 0 0 20px rgba(233,205,134,0)}}
.navqr{display:flex;gap:22px;flex-wrap:wrap;align-items:center;border-radius:26px;padding:20px;margin-top:18px}
.navqr a.qr{flex:0 0 auto;display:block;padding:10px;border-radius:16px;background:#15223E;border:1px solid rgba(233,205,134,.35)}

/* ============ FARE / HELP ============ */
.pair{display:flex;gap:18px;align-items:stretch}
.pair>div{flex:1 1 0;min-width:0;border-radius:26px;padding:34px 32px}
dl.fare{margin:18px 0 0}
dl.fare div{display:flex;justify-content:space-between;gap:16px;padding:15px 0;border-bottom:1px solid rgba(255,255,255,.12)}
dl.fare div:last-child{border-bottom:0}
dl.fare dt{font-size:23px}dl.fare dd{margin:0;font-size:25px;font-weight:600;color:var(--gold)}
.tel{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;padding:22px 28px;border-radius:22px;text-decoration:none;color:var(--ink)}
.tel:hover{color:var(--ink)}
.tel .num{font-size:32px;font-weight:600;letter-spacing:.05em;color:var(--gold)}

/* floating */
.float-rsvp{position:fixed;right:18px;bottom:18px;z-index:50;display:inline-flex;align-items:center;gap:10px;min-height:54px;padding:0 22px 0 14px;border-radius:999px;color:var(--ink);text-decoration:none;font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.2em;transition:transform .3s,opacity .3s}
.float-rsvp:hover{color:var(--ink);transform:translateY(-3px)}
.float-rsvp.hide{opacity:0;pointer-events:none;transform:translateY(20px)}
.float-rsvp i{width:30px;height:30px;border-radius:50%;background:var(--gold);display:inline-flex;align-items:center;justify-content:center}

footer{padding:80px 20px 120px;text-align:center}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rise,.reveal{opacity:1!important;transform:none!important}
}
@media (max-width:1000px){
  .maprow,.pair{flex-direction:column}
  .steps{flex:none;width:100%}
  .mapcard,.pair>div{width:100%}
  .navbar nav{display:none}
}
@media (max-width:760px){
  body{font-size:18px}
  .hero{padding:70px 16px 80px}
  .hero h1{font-size:54px}
  .hero .n42{font-size:88px;margin-bottom:-20px}
  .cer b{font-size:19px;letter-spacing:.3em;margin-right:-.3em}
  .cer{gap:12px}
  .tagline{font-size:25px}
  .count{gap:8px}.count div{min-width:0;flex:1 1 0;padding:12px 4px}.count b{font-size:30px}
  .details{grid-template-columns:minmax(0,1fr)}
  .wrap{padding:0 16px}
  .sec{padding-top:72px;padding-bottom:20px}
  .h2{font-size:42px}
  .rsvp{padding:36px 18px;border-radius:28px}
  .rsvp-word{font-size:86px}
  .q{font-size:27px}
  .choices.two{grid-template-columns:minmax(0,1fr)}
  .nav-btns .btn{flex:1 1 0;min-width:0;padding:0 14px}
  .review div{flex-direction:column;gap:2px}.review dd{text-align:left}
  #map{height:380px}
  .tel{padding:18px 20px}.tel .num{font-size:25px}
  .pair>div{padding:26px 22px}
  #intro .card{padding:40px 22px 34px}
  .intro-title{font-size:34px!important}
}

/* ============ ADDED: accessibility + RSVP page ============ */
.skip{position:absolute;left:16px;top:-80px;z-index:200;padding:12px 18px;border-radius:12px;background:var(--gold);color:var(--night2);font-family:var(--sans);font-weight:600;text-decoration:none;transition:top .2s}
.skip:focus{top:16px;color:var(--night2)}
.q:focus{outline:none}
.q:focus-visible{outline:2px solid var(--gold);outline-offset:6px}
fieldset.group{border:0;padding:0;margin:18px 0 0;min-width:0}
fieldset.group>legend{padding:0;font-family:var(--sans);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
fieldset.group>legend em{font-style:normal;color:var(--gold)}
.navbar nav a[aria-current=page]{background:rgba(233,205,134,.16);color:var(--gold)}
.page-head{padding:80px 20px 10px;text-align:center}
.page-head h1{margin:0;font-size:120px;font-weight:500;line-height:.85;letter-spacing:.05em;color:var(--gold);text-shadow:0 0 40px rgba(233,205,134,.3)}
.facts{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin:26px auto 0;max-width:900px}
.facts span{border-radius:999px;padding:10px 18px;font-size:18px}
.cta{border-radius:36px;padding:56px 48px;display:flex;gap:40px;align-items:center;flex-wrap:wrap;justify-content:space-between}
.cta ul{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:8px;font-size:20px}
.cta li{display:flex;gap:10px;align-items:baseline}
.cta li::before{content:"";flex:0 0 7px;height:7px;transform:rotate(45deg) translateY(-2px);background:var(--gold)}
@media (max-width:760px){
  .page-head{padding:56px 16px 0}
  .page-head h1{font-size:80px}
  .cta{padding:34px 22px;border-radius:28px}
}
#intro[hidden]{display:none}
[hidden]{display:none!important}
.field>label{display:block}
.field>label>span{display:block;font-family:var(--sans);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.field>label>span em{font-style:normal;color:var(--gold)}
.field>small{display:block;margin-top:6px;font-size:16px;color:var(--dim)}
.facts li{display:block}
/* stepper, contact chips, hotel note */
.stepper{display:flex;align-items:center;gap:10px;max-width:260px}
.stepper button{flex:0 0 54px;height:54px;border-radius:16px;cursor:pointer;font-size:26px;line-height:1;color:var(--gold)}
.stepper button:hover{background:rgba(255,255,255,.12)}
.stepper .inp{text-align:center;font-size:20px;-moz-appearance:textfield}
.stepper .inp::-webkit-outer-spin-button,.stepper .inp::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.callrow{display:flex;flex-direction:column;gap:8px}
.callrow.two-up{flex-direction:row;flex-wrap:wrap;justify-content:center;margin-top:12px}
.callrow.two-up .tel-mini{flex:1 1 260px;max-width:340px}
.tel-mini{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:10px 18px;border-radius:16px;text-decoration:none;color:var(--ink);font-style:normal;font-size:17px}
.tel-mini:hover{color:var(--ink);border-color:rgba(233,205,134,.55)}
.tel-mini b{font-family:var(--sans);font-size:15px;font-weight:600;letter-spacing:.06em;color:var(--gold);white-space:nowrap}
.alt .tel-mini span{text-align:left}
footer{padding:56px 20px 96px}
.deadline{margin:22px 0 0;text-align:center;font-family:var(--sans);font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.deadline b{color:var(--gold);font-weight:600}
.note.late{margin:0 0 26px}
main:focus{outline:none}
.hint,.note,p{text-wrap:pretty}
.credit{margin:22px 0 0;font-family:var(--sans);font-size:14px;letter-spacing:.06em;color:var(--dim)}
.credit a{color:var(--gold);font-weight:600;text-decoration:none;border-bottom:1px solid rgba(233,205,134,.45)}
.credit a:hover{color:var(--gold2);border-bottom-color:var(--gold2)}

/* companions list + roomier form */
.flabel{margin:0 0 8px;font-family:var(--sans);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.flabel em{font-style:normal;color:var(--gold)}
.comp-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.comp-row{display:grid;grid-template-columns:88px minmax(0,1fr) 54px;gap:10px;align-items:center}
.comp-num{font-family:var(--sans);font-size:14px;font-weight:600;color:var(--gold)}
.comp-row .rm{height:54px;border-radius:16px;cursor:pointer;font-size:24px;line-height:1;color:var(--muted)}
.comp-row .rm:hover{color:var(--ink);background:rgba(255,255,255,.12)}
.add-btn{margin-top:14px;min-height:50px;padding:0 22px;font-size:12px}
.field{margin-top:28px}
fieldset.group{margin-top:32px}
.choices{gap:12px}
.reveal-if.show{margin-top:4px}
.step .hint{margin-bottom:22px}
.note{margin-top:24px}
@media (max-width:760px){.comp-row{grid-template-columns:70px minmax(0,1fr) 50px}}
