/* The Eastern Pavilion Matchmaker
   Skin matched on 21 Oct 2026 to the venue's new website (project1-5xetjzkahe.live-website.com):
   Iowan Old Style / Palatino for headlines and the system sans for everything else (the fonts
   that site actually renders), its palette (ink #171411, gold #c5a15d, dark gold #8a642b,
   champagne #e8d6b5, cream #fffcf7, burgundy accent #803f43), square corners, small bold uppercase
   buttons and eyebrows. Previously Cormorant Upright and Alegreya from the old site. Mobile first. */

:root{
  /* Every value below is a colour the venue's new website renders (read 21 Oct 2026). */
  --ink:#1d1916;            /* body text */
  --heading:#171411;        /* headings, primary buttons, dark sections */
  --ink-2:#2b2521;
  --ink-70:#625a51;         /* secondary paragraphs */
  --muted:#6f665b;          /* small print, labels */
  --ink-45:#948b80;         /* faintest text: placeholders, struck-through prices */
  --paper:#fffcf7;          /* page and input background */
  --card:#fffdf9;           /* cards and panels */
  --off:#f8f1e5;            /* soft panels, selected states */
  --cream:#f6eddf;          /* photo frames, progress track */
  --sand:#e8d6b5;           /* champagne: button hover, light buttons */
  --hover:#f4ead9;          /* outline button hover */
  --gold:#c5a15d;
  --gold-deep:#8a642b;      /* eyebrows and labels */
  --gold-soft:#f8f1e5;
  --on-dark:#f0cf94;        /* gold accent on dark sections */
  --on-dark-text:rgba(255,255,255,.78);
  --blush:#e8d6b5;
  --white:#ffffff;
  --burgundy:#803f43;       /* header Book a private viewing button */
  --green:#803f43;          /* "free" and saving highlights use the burgundy */
  --line:rgba(23,20,17,.16);
  --line-soft:rgba(23,20,17,.16);
  --card-border:rgba(197,161,93,.34);
  --input-border:#cdb7b0;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --body:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --track:.12em;
  --wrap:900px;
  --r:0;
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--body);font-size:16px;line-height:1.65;font-weight:400;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;}
button{font:inherit;color:inherit;}
h1,h2,h3{font-family:var(--serif);font-weight:400;margin:0;line-height:1.1;letter-spacing:-.02em;color:var(--heading);}
p{margin:0;}
s{text-decoration:line-through;color:var(--ink-45);}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px;}
.eyebrow{
  font-family:var(--body);font-size:11px;font-weight:700;letter-spacing:.2em;line-height:1.3;text-transform:uppercase;
  color:var(--gold-deep);margin:0 0 12px;
}
.eyebrow::before{content:"";display:inline-block;width:34px;height:1px;margin:0 12px 4px 0;background:currentColor;vertical-align:middle;}
.h3{font-size:22px;}
.fine{font-size:13px;color:var(--muted);line-height:1.5;}
[hidden]{display:none !important;}

/* ---------- header ---------- */
.site-header{
  position:sticky;top:0;z-index:60;background:var(--paper);
  border-bottom:1px solid var(--line-soft);
}
.site-header__in{
  max-width:var(--wrap);margin:0 auto;padding:12px 20px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
}
.brand{display:inline-flex;align-items:center;text-decoration:none;}
.brand img{width:226px;height:auto;display:block;}   /* the new website's wordmark (SVG), client review 3 Nov 2026 */
.brand__word{font-family:var(--serif);font-size:20px;letter-spacing:.08em;text-transform:uppercase;}
.header-link{
  font-size:12px;letter-spacing:var(--track);text-transform:uppercase;text-decoration:none;
  color:var(--ink);border-bottom:1px solid var(--gold);padding-bottom:2px;white-space:nowrap;
}

/* ---------- gate ---------- */
.gate{padding:56px 0 72px;text-align:center;}
.gate .h2{font-size:34px;}
.gate .lede{margin:14px auto 0;max-width:54ch;}

/* ---------- intro / hero ----------
   Phones and tablets: photo edge to edge on top, then the headline and button.
   Desktop (900px+): headline, promise and button on the left, photo on the right, the whole
   hero sized to the screen so the button is always visible without scrolling. */
.intro{padding:0 0 22px;text-align:center;}
.intro__in{display:flex;flex-direction:column;}
.intro__text{max-width:var(--wrap);margin:0 auto;padding:0 20px;}
.hero{order:-1;width:100%;margin:0 0 28px;aspect-ratio:2/1;overflow:hidden;background:var(--cream);}
.hero img{width:100%;height:100%;object-fit:cover;object-position:48% 38%;}
@media (min-width:700px){.hero{aspect-ratio:5/2;}}
.intro h1{font-size:34px;letter-spacing:-.02em;max-width:22ch;margin:0 auto;}
.intro__actions{margin-top:24px;}
.intro__note{margin-top:10px;font-size:14px;color:var(--ink-70);}
@media (min-width:900px){
  .intro{padding:36px 0 44px;text-align:left;}
  .intro__in{
    display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:44px;align-items:center;
    max-width:1200px;margin:0 auto;padding:0 32px;
  }
  .intro__text{padding:0;margin:0;max-width:none;}
  .intro h1{font-size:clamp(30px,2.9vw,40px);max-width:none;margin:0;}
  .intro .lede{margin:16px 0 0;}
  .intro .facts{justify-content:flex-start;margin:28px 0 0;}
  .intro__cta{margin-top:0;}
  /* 2:1 is the narrowest frame that keeps all three faces of the wide hero photo fully in shot. */
  .hero{order:0;margin:0;aspect-ratio:2/1;height:auto;border-radius:var(--r);}
  .hero img{object-position:48% 35%;}
}
.lede{font-size:17px;color:var(--ink-70);margin:14px auto 0;max-width:56ch;}
.facts{
  list-style:none;margin:24px auto 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 18px;
  font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-70);
}
.facts li{padding-left:14px;position:relative;}
.facts li::before{content:"";position:absolute;left:0;top:.55em;width:6px;height:6px;border-radius:50%;background:var(--gold);}
body.flow-started .lp-after{display:none;}
body:not(.flow-live) .lp-only{display:none;}

/* ---------- calculator shell ---------- */
/* At least a screen tall, so the Start button can always bring the calculator to the top. */
#calculator{padding-bottom:64px;min-height:calc(100vh - var(--header-h,80px));}
.progress{position:sticky;top:var(--header-h,54px);z-index:55;background:var(--paper);}
.progress__track{height:3px;background:var(--cream);}
.progress__bar{height:3px;background:var(--gold);width:0;transition:width .4s cubic-bezier(.4,0,.2,1);}
.progress__meta{
  max-width:var(--wrap);margin:0 auto;padding:18px 20px 14px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  font-size:12px;letter-spacing:var(--track);text-transform:uppercase;color:var(--ink-70);
}
.backlink{
  background:none;border:0;padding:0;cursor:pointer;display:inline-flex;align-items:center;gap:6px;
  font-size:12px;letter-spacing:var(--track);text-transform:uppercase;color:var(--ink);
}
.backlink::before{content:"\2039";font-size:18px;line-height:1;margin-top:-3px;}

/* ---------- steps ---------- */
.step{padding:34px 0 0;max-width:640px;margin:0 auto;}
@media (min-width:900px){.step{padding-top:44px;}}
.step__title{font-size:28px;}
.step__lede{margin-top:10px;color:var(--ink-70);}
.opts{display:grid;gap:10px;margin-top:22px;}
.opt{
  width:100%;text-align:left;cursor:pointer;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:16px 18px;transition:border-color .15s,background .15s;
}
.opt:hover{border-color:var(--ink);}
.opt.is-on{background:var(--off);border-color:var(--gold);box-shadow:inset 3px 0 0 var(--gold);}
.opt__t{font-size:16px;display:block;}
.opt.is-on .opt__t{font-weight:500;}

.field{display:block;margin-top:18px;}
.field__label{display:block;font-size:12px;letter-spacing:var(--track);text-transform:uppercase;color:var(--ink-70);margin-bottom:7px;}
.field__hint{display:block;font-size:13px;color:var(--ink-45);margin-top:6px;}
.input{
  width:100%;font-family:var(--body);font-size:16px;color:var(--ink);
  background:var(--paper);border:1px solid var(--input-border);border-radius:var(--r);
  padding:14px 14px;min-height:50px;appearance:none;-webkit-appearance:none;
}
.input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 4px rgba(197,161,93,.15);}
select.input{
  background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);
  background-position:calc(100% - 20px) 55%,calc(100% - 14px) 55%;background-size:6px 6px;background-repeat:no-repeat;
  padding-right:40px;
}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.two .field{margin-top:18px;}

/* date input, iOS blank fix */
.date-wrap{position:relative;}
.input--date{min-height:50px;text-align:left;line-height:1.3;}
.input--date::-webkit-date-and-time-value{text-align:left;}
.date-wrap__ph{
  position:absolute;left:14px;top:50%;transform:translateY(-50%);pointer-events:none;
  font-size:16px;color:var(--ink-45);
}
.date-wrap.has-value .date-wrap__ph{display:none;}
/* Desktop browsers print their own mm/dd/yyyy hint inside an empty date input. It is
   hidden behind our placeholder until the input has a value or is focused. */
.date-wrap:not(.has-value) .input--date:not(:focus){color:transparent;}
.date-wrap .input--date:focus ~ .date-wrap__ph{display:none;}
.date-out{margin-top:10px;font-family:var(--serif);font-size:22px;min-height:1.2em;}
.date-detail{margin-top:6px;}

/* guests */
.guests{margin-top:18px;}
.guests__n{font-family:var(--serif);font-size:56px;line-height:1;text-align:center;}
.range{width:100%;margin:16px 0 2px;color:var(--ink);accent-color:var(--gold-deep);height:44px;font-size:16px;cursor:pointer;}
.range:disabled{opacity:.35;cursor:default;}
.range-ends{display:flex;justify-content:space-between;font-size:11.5px;color:var(--ink-45);letter-spacing:.04em;}
.guests__line{margin-top:12px;text-align:center;color:var(--ink-70);font-size:15px;min-height:1.5em;}
.guests__line.is-rounding{color:var(--gold-deep);font-weight:500;}
.check{display:flex;align-items:flex-start;gap:10px;margin-top:18px;font-size:15px;cursor:pointer;}
.check input{width:20px;height:20px;margin:1px 0 0;flex:0 0 auto;accent-color:var(--gold-deep);}
.check--consent{font-size:14px;color:var(--ink-70);}
.check--consent a{color:var(--ink);}

/* menus under the appetiser question */
.menus{display:grid;gap:12px;margin-top:22px;}
.menu-card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--r);padding:16px 18px;}
.menu-card__t{font-size:22px;}
.menu-card__tier{font-size:12px;letter-spacing:var(--track);text-transform:uppercase;color:var(--gold-deep);margin-top:4px;}
.menu-card__ph{
  margin-top:10px;font-size:14px;color:var(--ink-70);
  border:1px dashed var(--sand);border-radius:var(--r);padding:12px;background:var(--off);
}

/* buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;text-align:center;
  font-family:var(--body);font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;line-height:1.2;
  padding:13px 28px;
  background:#171411;color:#fffdf9;border:1px solid #171411;border-radius:0;
  text-decoration:none;cursor:pointer;min-height:50px;transition:background .15s,color .15s,border-color .15s;
}
.btn:hover{background:var(--sand);border-color:var(--gold);color:#171411;}
.btn--ghost{background:transparent;color:#171411;border-color:#171411;}
.btn--ghost:hover{background:var(--hover);border-color:var(--gold);color:var(--heading);}
.btn--full{width:100%;}
.btn[disabled]{opacity:.45;pointer-events:none;}
.btn.is-done{background:var(--burgundy);border-color:var(--burgundy);color:var(--white);}
.btn-row{display:grid;grid-template-columns:1fr;gap:10px;margin-top:26px;}
.btn-row--2{grid-template-columns:1fr 1fr;}
/* A two-button row with only one button (e.g. WhatsApp switched off) centres that button. */
.btn-row--2 > :only-child{grid-column:1 / -1;justify-self:center;width:min(420px,100%);}
.linkbtn{
  background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px;
  font-size:14px;color:var(--ink-70);
}
.linkbtn:hover{color:var(--ink);}
.form-error{margin-top:14px;color:var(--burgundy);font-size:14px;}

/* ---------- results ---------- */
.result{padding-top:26px;}
.result__title{font-size:27px;max-width:34ch;}
.result__intro{margin-top:14px;color:var(--ink-70);}
.result__body{margin-top:22px;display:grid;gap:18px;}
/* The repainting halves above and below the slider need the same spacing as the body itself. */
.result__pre,.result__pre2,.result__post{display:grid;gap:18px;min-width:0;}
.result__pre .result__intro{margin-top:4px;}
.diff{padding:2px 4px;line-height:1.6;}
.card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--r);padding:22px 20px;}
.card--notice{background:var(--off);border-color:var(--gold);}
.card--notice p{margin-top:8px;}

.halls{display:grid;gap:16px;}
.hall{background:var(--card);border:1px solid var(--card-border);border-radius:var(--r);overflow:hidden;transition:border-color .15s;}
.hall.is-on{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold);}
.hall__in{padding:18px 20px 20px;}
.hall__name{font-size:26px;}
.hall__blurb{margin-top:8px;color:var(--ink-70);font-size:15px;}
.hall__price{margin-top:14px;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;}
.hall__price strong{font-family:var(--serif);font-size:34px;font-weight:400;line-height:1;}
.hall__price span{color:var(--ink-70);font-size:14px;}
.hall__inc-t{font-family:var(--body);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep);margin-top:18px;}
.inc{list-style:none;margin:8px 0 0;padding:0;}
.inc li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line-soft);font-size:15px;}
.inc li:first-child{border-top:0;}
.inc__v{white-space:nowrap;color:var(--green);font-weight:500;}
.hall .btn{margin-top:16px;}
.diff{color:var(--ink-70);font-size:15px;padding:0 4px;}

.photo{margin:0;aspect-ratio:3/2;background:var(--cream);overflow:hidden;}
.photo img{width:100%;height:100%;object-fit:cover;}
.photo--missing{display:flex;align-items:center;justify-content:center;text-align:center;padding:20px;
  background:repeating-linear-gradient(135deg,var(--off) 0 12px,var(--cream) 12px 24px);}
.photo__ph{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-70);background:var(--paper);padding:8px 12px;border:1px dashed var(--sand);}

.bill{width:100%;border-collapse:collapse;margin-top:14px;font-size:15px;}
.bill td{padding:11px 0;border-top:1px solid var(--line-soft);vertical-align:top;}
.bill tr:first-child td{border-top:0;}
.bill__amt{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;}
.bill__sub{display:block;font-size:13px;color:var(--ink-70);margin-top:2px;}
.bill__sub-row td{color:var(--ink-70);}
.bill__saving td{color:var(--green);}
.bill__total td{border-top:2px solid var(--ink);font-family:var(--serif);font-size:30px;line-height:1.1;padding-top:14px;}
.bill__total td:first-child{font-family:var(--body);font-size:14px;letter-spacing:.06em;padding-top:22px;}
.free{color:var(--green);font-weight:500;}
.per-guest{margin-top:6px;text-align:right;}
.per-guest strong{font-family:var(--serif);font-size:30px;font-weight:400;line-height:1.1;}
.per-guest span{color:var(--ink-70);font-size:14px;margin-left:4px;}
.rounding{margin-top:16px;padding-top:14px;border-top:1px solid var(--line-soft);font-size:14px;color:var(--ink-70);}

.slider-card .guests{margin-top:10px;}
.slider-card .guests__n{font-size:44px;}

.saved__n{font-family:var(--serif);font-size:44px;line-height:1;margin-top:10px;color:var(--green);}
.saved__parts{list-style:none;margin:14px 0 0;padding:0;font-size:15px;}
.saved__parts li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--line-soft);}
.saved__amt{white-space:nowrap;font-variant-numeric:tabular-nums;}
.saved .fine{margin-top:12px;}

.other__p{margin-top:10px;}
.other__p strong{font-family:var(--serif);font-size:30px;font-weight:400;line-height:1.1;}
.other__p span{color:var(--ink-70);font-size:15px;}
.other .btn{margin-top:14px;}

.deadline{background:var(--heading);color:var(--white);border-color:var(--heading);}
.deadline .eyebrow{color:var(--on-dark);}
.deadline .h3{font-size:23px;}
.deadline__days{margin-top:8px;font-size:15px;color:var(--on-dark-text);}
.deadline__date{margin-top:10px;font-size:14px;color:var(--on-dark-text);border-top:1px solid rgba(255,255,255,.14);padding-top:10px;}

.actions{padding-top:6px;}
.actions__soft{margin-top:12px;text-align:center;font-size:15px;color:var(--ink-70);}
.actions__soft a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;}
.actions .btn-row{margin-top:18px;}
.actions__tools{display:flex;justify-content:center;gap:22px;margin-top:20px;}
.actions .fine{margin-top:22px;text-align:center;}

/* ---------- toast, badge, footer ---------- */
.toast{
  position:fixed;left:50%;bottom:24px;transform:translate(-50%,12px);z-index:80;
  background:var(--heading);color:var(--white);padding:12px 18px;border-radius:var(--r);
  font-size:14px;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;max-width:calc(100vw - 32px);text-align:center;
}
.toast.is-on{opacity:1;transform:translate(-50%,0);}
.preview-badge{
  position:fixed;left:0;right:0;bottom:0;z-index:90;background:var(--burgundy);color:#fff;text-align:center;
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;padding:5px 8px;line-height:1.4;
}
body.has-preview{padding-bottom:26px;}
body.has-preview .toast{bottom:44px;}
.site-footer{border-top:1px solid var(--line-soft);padding:26px 0 40px;}
.site-footer .fine{max-width:var(--wrap);margin:0 auto;padding:0 20px;text-align:center;}
.site-footer a{color:var(--ink);}
.site-credit{max-width:var(--wrap);margin:14px auto 0;padding:0 20px;text-align:center;font-size:12px;letter-spacing:.04em;color:var(--ink-45);}
.site-footer .site-credit a{color:var(--ink-70);text-decoration:none;border-bottom:1px solid var(--line);}
.site-footer .site-credit a:hover{color:var(--ink);border-color:var(--gold);}

/* ---------- wider screens ---------- */
@media (min-width:700px){
  body{font-size:17px;}
  .halls--2{grid-template-columns:1fr 1fr;align-items:start;}
  .menus{grid-template-columns:1fr 1fr;}
  .intro h1{font-size:38px;}
  .step__title{font-size:31px;}
  .result__title{font-size:32px;}
  .card{padding:26px 28px;}
}

/* ---------- narrow phones ---------- */
@media (max-width:520px){
  .wrap,.site-header__in,.progress__meta{padding-left:16px;padding-right:16px;}
  .btn-row--2{grid-template-columns:1fr;}
  .intro h1{font-size:28px;}
  .step__title{font-size:25px;}
  .result__title{font-size:22px;}
  .two{grid-template-columns:1fr;gap:0;}
}
@media (max-width:360px){
  .brand img{width:138px;}
  .header-link{font-size:11px;}
  .guests__n{font-size:46px;}
  .bill__total td{font-size:26px;}
  .saved__n{font-size:38px;}
}
@media (max-width:300px){
  .wrap,.site-header__in,.progress__meta{padding-left:12px;padding-right:12px;}
  .site-header__in{flex-wrap:wrap;justify-content:center;}
  .btn{padding:calc(14px + .16em) 12px calc(14px - .16em);font-size:11.5px;letter-spacing:.1em;}
  .actions__tools{flex-direction:column;align-items:center;gap:12px;}
  .hall__price strong{font-size:28px;}
}

/* ---------- intro CTA, hidden once scrolled past ---------- */
.intro__cta{min-width:min(280px,100%);}
body.intro-gone .intro{display:none;}
html{overflow-anchor:none;}

/* ---------- guest stepper ---------- */
.stepper{display:flex;align-items:center;justify-content:center;gap:14px;}
.stepper__btn{
  width:48px;height:48px;flex:0 0 48px;border-radius:50%;cursor:pointer;
  border:1px solid var(--gold-deep);background:var(--card);color:var(--heading);
  font-family:var(--body);font-size:26px;line-height:1;display:flex;align-items:center;justify-content:center;
  transition:background .15s,color .15s;
}
.stepper__btn:hover{background:var(--heading);border-color:var(--heading);color:var(--white);}
.stepper__btn:disabled{opacity:.3;cursor:default;background:var(--card);color:var(--heading);border-color:var(--line);}
.stepper__input{
  width:4.2ch;min-width:120px;text-align:center;font-family:var(--serif);font-size:52px;line-height:1.1;color:var(--ink);
  background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:2px 0;
  -moz-appearance:textfield;appearance:textfield;
}
.stepper__input::-webkit-outer-spin-button,.stepper__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.stepper__input:focus{outline:none;border-bottom:2px solid var(--gold-deep);}
.guests__over{display:none;font-family:var(--serif);font-size:34px;line-height:1.2;text-align:center;}
.guests.is-over .stepper__input{display:none;}
.guests.is-over .guests__over{display:block;}
.slider-card .stepper__input{font-size:42px;}

/* ---------- reveal loader ---------- */
.loader{max-width:520px;margin:0 auto;padding:56px 0 40px;text-align:center;}
.loader__ring{
  width:56px;height:56px;margin:0 auto 24px;border-radius:50%;
  border:2px solid var(--cream);border-top-color:var(--gold-deep);animation:ep-spin 1s linear infinite;
}
@keyframes ep-spin{to{transform:rotate(360deg);}}
.loader__title{font-size:26px;}
.loader__steps{list-style:none;margin:26px auto 0;padding:0;display:inline-block;text-align:left;}
.loader__steps li{
  position:relative;padding:7px 0 7px 30px;color:var(--ink-45);opacity:0;transform:translateY(6px);
  transition:opacity .35s,transform .35s,color .35s;
}
.loader__steps li::before{
  content:"";position:absolute;left:0;top:50%;width:16px;height:16px;margin-top:-8px;border-radius:50%;
  border:1px solid var(--sand);transition:background .3s,border-color .3s;
}
.loader__steps li.is-on{opacity:1;transform:none;color:var(--ink);}
.loader__steps li.is-done::before{background:var(--gold);border-color:var(--gold);}
.loader__steps li.is-done::after{
  content:"";position:absolute;left:5px;top:50%;width:4px;height:8px;margin-top:-6px;
  border:solid var(--white);border-width:0 2px 2px 0;transform:rotate(45deg);
}
@media (prefers-reduced-motion:reduce){.loader__ring{animation-duration:3s;}.loader__steps li{transition:none;}}
@media (max-width:360px){.stepper{gap:8px;}.stepper__input{font-size:44px;min-width:96px;}.stepper__btn{width:44px;height:44px;flex-basis:44px;}}

/* ---------- line breaking (house rule, 25 Sep 2026) ----------
   Headlines: balanced lines, and sized so they run to two lines at most wherever the
   width allows. Body copy: never a single word alone on the last line. JS noOrphan()
   and &nbsp; in the HTML cover browsers without text-wrap support. */
h1,h2,h3,.eyebrow,.btn,.opt__t{text-wrap:balance;}
p,li,.opt__t,.field__label,.check span,.fine,td{text-wrap:pretty;}

/* Headlines scale with the screen below 420px (sizes set at 375px, capped at those sizes),
   so small phones keep the two-line maximum instead of wrapping to three. */
@media (max-width:420px){
  .intro h1{font-size:min(28px,7.4vw);}
  .step__title{font-size:min(25px,6.6vw);}
  .result__title{font-size:min(22px,5.8vw);}
  .loader__title{font-size:min(26px,6.8vw);}
  .h3{font-size:min(22px,5.8vw);}
  .deadline .h3{font-size:min(22px,5.6vw);}
  .hall__name{font-size:min(26px,6.8vw);}
}

@media (min-width:900px){.intro h1{font-size:clamp(30px,2.9vw,40px);}}

/* =====================================================================
   Motion. Short, eased, never blocking. Everything is switched off for
   prefers-reduced-motion at the bottom of this block.
   ===================================================================== */
@keyframes ep-rise{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:none;}}
@keyframes ep-fade{from{opacity:0;}to{opacity:1;}}
@keyframes ep-zoom{from{transform:scale(1.1);}to{transform:scale(1);}}
@keyframes ep-pop{0%{opacity:0;transform:scale(.6);}70%{opacity:1;transform:scale(1.12);}100%{transform:scale(1);}}
@keyframes ep-bump{0%{transform:scale(1);}40%{transform:scale(1.08);}100%{transform:scale(1);}}
@keyframes ep-tick{0%{transform:translateY(-35%);opacity:.2;}100%{transform:none;opacity:1;}}
@keyframes ep-sheen{0%,72%{transform:translateX(-120%) skewX(-20deg);}100%{transform:translateX(320%) skewX(-20deg);}}
@keyframes ep-glow{0%,100%{box-shadow:0 0 0 0 rgba(197,161,93,0);}50%{box-shadow:0 0 0 6px rgba(197,161,93,.18);}}
:root{--ease:cubic-bezier(.2,.7,.2,1);}

/* Hero: text rises in line by line, the photo settles from a slow zoom. */
.intro__text > *{animation:ep-rise .8s var(--ease) both;}
.intro__text > :nth-child(1){animation-delay:.05s;}
.intro__text > :nth-child(2){animation-delay:.15s;}
.intro__text > :nth-child(3){animation-delay:.28s;}
.intro__text > :nth-child(4){animation-delay:.4s;}
.intro__text > :nth-child(5){animation-delay:.52s;}
.hero{animation:ep-fade .9s ease both;}
.hero img{animation:ep-zoom 2.4s var(--ease) both;}
.intro__cta{animation:ep-glow 2.6s ease-in-out 1.4s 2;}

/* Questions: each step slides in, its options arrive one after another. */
.step > *{animation:ep-rise .5s var(--ease) both;}
.step > :nth-child(2){animation-delay:.06s;}
.step > :nth-child(3){animation-delay:.12s;}
.step > :nth-child(4){animation-delay:.18s;}
.step > :nth-child(5){animation-delay:.24s;}
.step > :nth-child(6){animation-delay:.3s;}
.opts .opt{animation:ep-rise .45s var(--ease) backwards;}
.opts .opt:nth-child(1){animation-delay:.12s;}
.opts .opt:nth-child(2){animation-delay:.19s;}
.opts .opt:nth-child(3){animation-delay:.26s;}
.opts .opt:nth-child(4){animation-delay:.33s;}
.opt{transition:border-color .2s,background .2s,transform .2s var(--ease),box-shadow .2s;}
.opt:hover{transform:translateY(-2px);box-shadow:0 8px 20px -12px rgba(23,20,17,.35);}
.opt:active{transform:translateY(0) scale(.99);}
.btn{transition:background .2s,color .2s,border-color .2s,transform .2s var(--ease),box-shadow .2s;}
.btn:hover{transform:translateY(-1px);box-shadow:0 10px 22px -14px rgba(23,20,17,.55);}
.btn:active{transform:none;}
.stepper__input.is-bump{animation:ep-bump .28s var(--ease);}
.stepper__btn:active{transform:scale(.92);}
.guests__line{transition:color .25s;}
.loader{animation:ep-fade .4s ease both;}

/* Results: sections rise in as they scroll into view (.rv hidden, .in shown). */
.rv{opacity:0;transform:translateY(24px);}
.rv.in{opacity:1;transform:none;animation:ep-rise .75s var(--ease) backwards;animation-delay:var(--d,0ms);}
.hall.in .photo img{animation:ep-zoom 1.8s var(--ease) both;}
.hall.in .inc li{animation:ep-rise .5s var(--ease) both;animation-delay:calc(var(--i,0) * 90ms + .35s);}
.hall.in .inc__v{display:inline-block;animation:ep-pop .5s var(--ease) both;animation-delay:calc(var(--i,0) * 90ms + .55s);}
.workings.in .bill tr{animation:ep-rise .5s var(--ease) both;}
.workings.in .bill tr:nth-child(1){animation-delay:.15s;}
.workings.in .bill tr:nth-child(2){animation-delay:.25s;}
.workings.in .bill tr:nth-child(3){animation-delay:.35s;}
.workings.in .bill tr:nth-child(4){animation-delay:.45s;}
.workings.in .bill tr:nth-child(5){animation-delay:.55s;}
.workings.in .bill tr:nth-child(6){animation-delay:.7s;}
.workings.in .bill .free{display:inline-block;animation:ep-pop .5s var(--ease) .6s both;}
.hall{transition:border-color .25s,box-shadow .25s,transform .25s var(--ease);}
.hall:not(.is-on):hover{transform:translateY(-3px);box-shadow:0 14px 30px -20px rgba(23,20,17,.45);}

/* The saving, split into its three parts. */
.savebar{display:flex;height:10px;margin-top:16px;border-radius:0;overflow:hidden;background:var(--cream);}
.savebar__seg{width:0;height:100%;transition:width 1.1s var(--ease);}
.savebar__seg--1{background:var(--gold);}
.savebar__seg--2{background:var(--gold-deep);transition-delay:.15s;}
.savebar__seg--3{background:var(--green);transition-delay:.3s;}
.saved__parts li{position:relative;padding-left:18px;}
.saved__parts li::before{content:"";position:absolute;left:0;top:1.05em;width:9px;height:9px;border-radius:50%;}
.saved__parts li:nth-child(1)::before{background:var(--gold);}
.saved__parts li:nth-child(2)::before{background:var(--gold-deep);}
.saved__parts li:nth-child(3)::before{background:var(--green);}

/* Live countdown on the offer card. */
.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:16px;max-width:360px;}
.countdown__cell{background:transparent;border:1px solid rgba(255,255,255,.14);border-radius:var(--r);padding:10px 4px 8px;text-align:center;overflow:hidden;}
.countdown__n{display:block;font-family:var(--serif);font-size:30px;line-height:1;color:var(--white);font-variant-numeric:tabular-nums;}
.countdown__n.is-tick{animation:ep-tick .35s var(--ease);}
.countdown__u{display:block;margin-top:4px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--on-dark);}

/* A slow sheen across the main call to action, now and then. */
.actions .btn--full{position:relative;overflow:hidden;}
.actions .btn--full::after{
  content:"";position:absolute;top:0;left:0;width:35%;height:100%;pointer-events:none;
  background:linear-gradient(90deg,rgba(255,255,255,0),rgba(197,161,93,.45),rgba(255,255,255,0));
  transform:translateX(-120%) skewX(-20deg);animation:ep-sheen 5s ease-in-out 1.5s infinite;
}

@media (prefers-reduced-motion:reduce){
  .intro__text > *,.hero,.hero img,.intro__cta,.step > *,.opts .opt,.rv,.rv.in,.hall.in .photo img,.hall.in .inc li,
  .hall.in .inc__v,.workings.in .bill tr,.workings.in .bill .free,.countdown__n.is-tick,.stepper__input.is-bump,.loader,
  .actions .btn--full::after{animation:none !important;opacity:1 !important;transform:none !important;}
  .actions .btn--full::after{display:none;}
  .savebar__seg{transition:none;}
  .opt:hover,.btn:hover,.hall:not(.is-on):hover{transform:none;}
}

/* Greeting shown above the question that follows the names step. */
.step__hello{margin:0 0 10px;}

/* Menus on the appetiser question, and the 360 tour line on the results page. */
.menu-card__list{list-style:none;margin:10px 0 0;padding:0;font-size:15px;}
.menu-card__list li{position:relative;padding:5px 0 5px 16px;border-top:1px solid var(--line-soft);}
.menu-card__list li:first-child{border-top:0;}
.menu-card__list li::before{content:"";position:absolute;left:0;top:.95em;width:6px;height:6px;border-radius:50%;background:var(--gold);}
.menu-incl{margin-top:14px;font-size:14px;color:var(--ink-70);}
.actions__tour{margin-top:16px;text-align:center;font-size:15px;color:var(--ink-70);}
.actions__tour a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;}

/* =====================================================================
   Question icons and the price-first results layout (5 Oct 2026)
   ===================================================================== */
.step__icon{
  width:58px;height:58px;margin:0 0 16px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  color:var(--gold-deep);background:var(--off);box-shadow:inset 0 0 0 1px var(--card-border);
}
.step > .step__icon{animation:ep-pop .55s var(--ease) both;}

/* Summary: the answer first. */
.summary{text-align:center;background:var(--card);border:1px solid var(--card-border);box-shadow:0 18px 40px -30px rgba(23,20,17,.45);}
.summary .eyebrow{margin-bottom:6px;}
.summary__fig{display:flex;align-items:baseline;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:4px;}
.summary__fig strong{font-family:var(--serif);font-weight:400;font-size:44px;line-height:1.05;}
.summary__fig span{font-size:14px;color:var(--ink-70);}
.chips{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px;}
.chips li{font-size:13px;letter-spacing:.04em;padding:6px 12px;border-radius:0;background:var(--off);border:1px solid var(--line-soft);color:var(--ink-70);}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:20px auto 0;max-width:440px;padding:5px;border-radius:0;background:var(--off);border:1px solid var(--line-soft);}
.seg__btn{
  display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 8px;border:0;border-radius:0;cursor:pointer;
  background:transparent;color:var(--ink-70);transition:background .25s,color .25s,box-shadow .25s;
}
.seg__btn.is-on{background:var(--heading);color:var(--white);box-shadow:0 8px 18px -12px rgba(23,20,17,.8);cursor:default;}
.seg__btn:not(.is-on):hover{background:var(--card);color:var(--heading);}
.seg__l{font-size:12px;letter-spacing:.12em;text-transform:uppercase;}
.seg__p{font-family:var(--serif);font-size:22px;line-height:1.1;}
.summary__save{margin-top:16px;font-size:15px;color:var(--green);font-weight:500;}

/* Suite tabs: phones only, where side by side would stack into one long column. */
.halltabs{display:none;}
@media (max-width:699px){
  .halltabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;border-radius:0;background:var(--off);border:1px solid var(--line-soft);}
  .halltabs__btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;border:0;border-radius:0;background:transparent;color:var(--ink-70);cursor:pointer;transition:background .25s,color .25s;}
  .halltabs__btn.is-on{background:var(--card);color:var(--heading);box-shadow:0 6px 16px -12px rgba(23,20,17,.7),inset 0 0 0 1px var(--gold);cursor:default;}
  .halltabs__n{font-size:12px;letter-spacing:.12em;text-transform:uppercase;}
  .halltabs__p{font-family:var(--serif);font-size:20px;line-height:1.1;}
  .halls--2 .hall:not(.is-on){display:none;}
  .halls--2 .hall__pick{display:none;}
  .summary__fig strong{font-size:min(44px,11vw);}
}

/* Sticky price bar on phones. */
.sticky{
  position:fixed;left:0;right:0;bottom:0;z-index:70;background:var(--paper);border-top:1px solid var(--line);
  box-shadow:0 -12px 30px -22px rgba(23,20,17,.5);transform:translateY(110%);transition:transform .35s var(--ease);
  padding:10px 16px calc(10px + env(safe-area-inset-bottom));
}
.sticky.is-on{transform:none;}
.sticky__in{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:var(--wrap);margin:0 auto;}
.sticky__t{display:block;font-family:var(--serif);font-weight:400;font-size:26px;line-height:1;}
.sticky__s{display:block;font-size:12px;color:var(--ink-70);margin-top:3px;}
.sticky__btn{min-height:44px;padding:calc(12px + .16em) 16px calc(12px - .16em);font-size:12px;white-space:nowrap;}
@media (min-width:700px){.sticky{display:none;}}
body.has-sticky{padding-bottom:74px;}
body.has-sticky .toast{bottom:90px;}
@media (prefers-reduced-motion:reduce){.sticky{transition:none;}.step > .step__icon{animation:none;}}

/* ---------- 360 tour: intro button, results card, full screen viewer ---------- */
.intro__btns{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;}
.intro__btns .btn{min-width:min(220px,100%);}
@media (min-width:900px){.intro__btns{justify-content:flex-start;}}
@media (max-width:520px){.intro__btns{flex-direction:column;align-items:stretch;}}
.tourcard{background:var(--card);border:1px solid var(--card-border);border-radius:var(--r);overflow:hidden;box-shadow:0 18px 40px -30px rgba(23,20,17,.45);}
.tourcard__head{padding:22px 20px 16px;text-align:center;}
.tourcard__p{margin-top:8px;color:var(--ink-70);}
.tourcard__stage{position:relative;aspect-ratio:16/10;background:var(--heading);}
.tourcard__poster{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;cursor:pointer;background:var(--cream);overflow:hidden;}
.tourcard__poster img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease);}
.tourcard__poster::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(23,20,17,0) 45%,rgba(23,20,17,.45));}
.tourcard__poster:hover img{transform:scale(1.04);}
.tourcard__badge{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);z-index:1;width:88px;height:88px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;background:rgba(255,252,247,.94);color:var(--heading);
  font-family:var(--serif);font-size:28px;box-shadow:0 0 0 8px rgba(255,252,247,.35);animation:ep-glow 2.6s ease-in-out infinite;}
.tourcard__tap{position:absolute;left:0;right:0;bottom:16px;z-index:1;text-align:center;color:#fff;font-size:12px;letter-spacing:.2em;text-transform:uppercase;}
.tourcard__frame{position:absolute;inset:0;width:100%;height:100%;border:0;}
.tourcard__bar{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:16px 20px 20px;}
.tourcard__bar .btn{width:100%;}
.tourcard__bar .btn:only-child{grid-column:1 / -1;justify-self:center;width:min(320px,100%);}
@media (min-width:700px){.tourcard__stage{aspect-ratio:16/8;}.tourcard__bar{max-width:520px;margin:0 auto;}}
.tourmodal{position:fixed;inset:0;z-index:100;background:rgba(23,20,17,.82);display:none;align-items:center;justify-content:center;padding:24px;}
.tourmodal.is-on{display:flex;animation:ep-fade .25s ease both;}
.tourmodal__box{width:min(1180px,100%);height:min(780px,100%);display:flex;flex-direction:column;background:var(--heading);border-radius:0;overflow:hidden;}
.tourmodal__bar{display:flex;align-items:center;gap:14px;padding:10px 12px 10px 18px;color:var(--paper);font-size:13px;letter-spacing:.12em;text-transform:uppercase;}
.tourmodal__bar span{flex:1;}
.tourmodal__ext{color:var(--gold);text-transform:none;letter-spacing:0;font-size:14px;}
.tourmodal__x{width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,252,247,.3);background:transparent;color:var(--paper);font-size:24px;line-height:1;cursor:pointer;}
.tourmodal__frame{flex:1;width:100%;border:0;background:#111;}
@media (max-width:699px){.tourmodal{padding:0;}.tourmodal__box{height:100%;border-radius:0;}}
body.tour-open{overflow:hidden;}
@media (prefers-reduced-motion:reduce){.tourcard__badge{animation:none;}.tourcard__poster:hover img{transform:none;}}

/* Header: logo, and the 360 tour link (call link removed 5 Oct 2026). */
.header-tour{display:inline-flex;align-items:center;gap:7px;font-size:12px;letter-spacing:var(--track);text-transform:uppercase;
  text-decoration:none;color:var(--ink);border:1px solid var(--gold);border-radius:0;padding:8px 14px 7px;white-space:nowrap;transition:background .2s,color .2s;}
.header-tour svg{color:var(--gold-deep);flex:0 0 auto;}
.header-tour:hover{background:var(--heading);color:var(--white);border-color:var(--heading);}
.header-tour:hover svg{color:var(--gold);}
@media (max-width:360px){.header-tour{padding:7px 10px 6px;font-size:11px;gap:5px;}}

/* ---------- Question photos (5 Oct 2026) ----------
   Phones: a shorter photo above the question, replacing the icon. Desktop (900px+): the photo
   sits beside the question in a tall 4:5 frame that stays in view. */
.step--photo{max-width:1000px;}
.step--photo .step__icon{display:none;}
.step__photo{margin:0 0 20px;aspect-ratio:16/10;border-radius:0;overflow:hidden;background:var(--cream);
  box-shadow:0 18px 40px -30px rgba(23,20,17,.55);animation:ep-fade .6s ease both;}
.step__photo img{width:100%;height:100%;object-fit:cover;animation:ep-zoom 1.8s var(--ease) both;}
.step__body > *{animation:ep-rise .5s var(--ease) both;}
.step__body > :nth-child(2){animation-delay:.06s;}
.step__body > :nth-child(3){animation-delay:.12s;}
.step__body > :nth-child(4){animation-delay:.18s;}
.step__body > :nth-child(5){animation-delay:.24s;}
.step__body > :nth-child(6){animation-delay:.3s;}
@media (min-width:900px){
  .step--photo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.82fr);gap:56px;align-items:start;}
  .step--photo .step__body{order:1;}
  .step--photo .step__photo{order:2;margin:0;aspect-ratio:4/5;position:sticky;top:calc(var(--header-h,80px) + 64px);}
  .step--photo .step__photo img{object-position:50% 50% !important;}
}
@media (prefers-reduced-motion:reduce){.step__photo,.step__photo img,.step__body > *{animation:none;}}

/* Beside a photo the question column is narrower, so the title steps down a size. */
@media (min-width:900px){.step--photo .step__title{font-size:28px;}}

.menu-card__note{margin-top:10px;font-size:13px;color:var(--muted);}

/* ---------- Client review, 3 Nov 2026 ---------- */
@media (max-width:699px){.brand img{width:168px;}}
/* Each suite carries its own complete price (comment 10). */
.hall__bill{margin:8px 0 0;display:grid;grid-template-columns:1fr auto;gap:0;font-size:14.5px;}
.hall__bill dt,.hall__bill dd{margin:0;padding:7px 0;border-top:1px solid var(--line-soft);}
.hall__bill dt:first-of-type,.hall__bill dd:first-of-type{border-top:0;}
.hall__bill dt{color:var(--ink-70);}
.hall__bill dd{text-align:right;white-space:nowrap;padding-left:12px;}
.hall__bill dd.is-free{color:var(--green);font-weight:500;}
.hall__bill dt.is-total,.hall__bill dd.is-total{border-top:1px solid var(--line);color:var(--ink);font-weight:500;}
.hall__bill dd.is-total{font-family:var(--serif);font-size:20px;}
/* The minimum chargeable guests explanation (comment 8). */
.hall__min,.summary__min{margin-top:10px;font-size:14px;line-height:1.55;color:var(--ink-70);}
.summary__min{max-width:520px;margin-left:auto;margin-right:auto;}
/* Save as PDF: the browser's print dialog (comment 10). Only the quote itself prints. */
.print-only{display:none;}
@media print{
  @page{margin:14mm;}
  html,body{background:#fff !important;color:#000;}
  .header-tour,.intro,.gate,.progress,.tourcard,.slider-card,.deadline,.sticky,.preview-badge,.site-credit,
  .actions .btn,.actions .btn-row,.actions__soft,.actions__tools,.halltabs,.hall__pick,.summary .seg,.result__intro,
  .photo,.hall .photo,#kmr-root,.kmr-fab,.kmr-panel,.kmr-pins,.toast{display:none !important;}
  .print-only{display:block;}
  .print-link{margin-top:14px;font-size:12px;word-break:break-all;color:#000;}
  .site-header{position:static;border:0;}
  .card,.hall,.summary,.workings,.saved{box-shadow:none !important;border:1px solid #bbb;break-inside:avoid;page-break-inside:avoid;}
  .halls--2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
  .hall{display:block !important;}
  .hall__bill{font-size:12.5px;}
  .hall__bill dd{white-space:normal;}
  .hall__price strong{font-size:26px;}
  .result__pre,.result__pre2,.result__post{display:block;}
  .result__pre > *,.result__pre2 > *,.result__post > *{margin-top:12px;}
  .rv,.rv.in,.hall.in .inc li,.workings.in .bill tr,.saved.in .savebar__seg{opacity:1 !important;transform:none !important;animation:none !important;}
  .savebar__seg{width:var(--w,0) !important;}
  a{text-decoration:none;color:inherit;}
}

/* ---------- Embedded by embed.js (TWM standard, delivery-pack.md section 2) ----------
   The frame grows to fit the tool, so nothing may be sized to the screen, and nothing sticky or
   fixed. The venue's own header and footer stand in for the tool's. Screen only, so Save as PDF
   prints as it does on the tool's own page. */
@media screen{
  html.is-embedded .site-header,html.is-embedded .site-footer,html.is-embedded .sticky{display:none;}
  html.is-embedded #calculator{min-height:0;}
  html.is-embedded body.has-sticky{padding-bottom:0;}
  /* Parked at the top until shown (toast() moves it beside the button pressed). */
  html.is-embedded body .toast{position:absolute;top:24px;bottom:auto;}
}
@media screen and (min-width:900px){
  html.is-embedded .step--photo .step__photo{position:relative;top:auto;}
}
