/* Gathering in a Box v1.1.0 "Tablescape": Caprasimo + Plus Jakarta Sans, colour-block bands, place cards, menu cards. */
@font-face{font-family:"Caprasimo";src:url(/assets/fonts/caprasimo-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Jakarta";src:url(/assets/fonts/plus-jakarta-sans-latin-wght-normal.woff2) format("woff2");font-weight:200 800;font-style:normal;font-display:swap}
:root{
--plum:#2a1430;--plum2:#5b4459;--line:#e7dcd6;--paper:#fffaf6;--white:#fff;
--pom:#a8243a;--pom-d:#86182b;--butter:#ffe4a3;--butter-d:#f5c962;--blush:#f9dcd5;--pist:#d8e8c2;--pist-d:#9fc27a;--tomato:#ef6b3b;--teal:#2f6f73;
--err:#a3221b;--ok:#1d6b3a;
--disp:"Caprasimo",Georgia,"Times New Roman",serif;
--sans:"Jakarta",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
--mono:ui-monospace,Menlo,Consolas,monospace;
--r-pill:999px;--r-card:18px;
--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:72px;--s9:104px;
--gut:clamp(20px,5vw,72px)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--white);color:var(--plum);font:400 17px/1.65 var(--sans);font-feature-settings:"ss01"}
img,svg{max-width:100%}
a{color:var(--pom);text-decoration-thickness:1.5px;text-underline-offset:3px}
a:hover{color:var(--pom-d);text-decoration-thickness:2.5px}
h1,h2,h3{color:inherit;margin:0}
h1,.display-h{font-family:var(--disp);font-weight:400;letter-spacing:-.005em;line-height:1.05}
h2{font:700 1.45rem/1.25 var(--sans);letter-spacing:-.015em;margin:var(--s7) 0 var(--s3)}
h3{font:700 1.12rem/1.3 var(--sans);margin:var(--s5) 0 var(--s2)}
p{margin:0 0 var(--s4)}
:focus-visible{outline:3px solid var(--plum);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:-999px;top:0}.skip:focus{left:12px;top:12px;background:var(--white);color:var(--plum);padding:10px 14px;z-index:20;border-radius:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.small{font-size:.9rem;color:var(--plum2)}
.eyebrow{font:700 .78rem/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;margin:0 0 var(--s4);color:var(--butter)}
.eyebrow-dark{color:var(--pom)}

/* header: white, wordmark left, text nav right with a pill for the Box */
.hd{background:var(--white);border-bottom:1px solid var(--line);position:relative;z-index:2}
.hd-in{display:flex;align-items:center;justify-content:space-between;gap:var(--s3) var(--s5);flex-wrap:wrap;padding:14px var(--gut);min-height:76px}
.logo{display:flex;align-items:center;gap:12px;color:var(--plum);text-decoration:none}
.logo:hover{color:var(--plum)}
.logo-mk{width:40px;height:40px;flex:none}
.logo-mk .p1{fill:var(--pom)}.logo-mk .p2{fill:none;stroke:#fff;stroke-width:2}.logo-mk .p3{fill:var(--butter)}.logo-mk .cf{stroke:var(--tomato);stroke-width:2.4;stroke-linecap:round;fill:none}
.logo-t{font:400 1.5rem/1 var(--disp);letter-spacing:-.01em;white-space:nowrap}
.logo-t span{color:var(--pom)}
.mnav{display:flex;align-items:center;gap:var(--s2) var(--s5);flex-wrap:wrap}
.mnav a{color:var(--plum);text-decoration:none;font-weight:700;font-size:.95rem;padding:8px 2px;border-bottom:2px solid transparent}
.mnav a:hover{color:var(--pom);border-bottom-color:var(--pom)}
.mnav .mnav-box{background:var(--plum);color:#fff;border:0;border-radius:var(--r-pill);padding:10px 20px}
.mnav .mnav-box:hover{background:var(--pom);color:#fff}

/* preview: a ticket stub, not a bar */
.stub-row{display:flex;justify-content:center;padding:14px var(--gut) 0;background:var(--white)}
.stub{display:flex;align-items:stretch;margin:0;max-width:880px;font-size:.88rem;line-height:1.45;background:var(--butter);border-radius:10px;overflow:hidden;
 -webkit-mask:radial-gradient(circle 7px at 0 50%,#0000 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 7px at 100% 50%,#0000 98%,#000) right/51% 100% no-repeat;
 mask:radial-gradient(circle 7px at 0 50%,#0000 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 7px at 100% 50%,#0000 98%,#000) right/51% 100% no-repeat}
.stub-k{display:flex;align-items:center;padding:8px 14px 8px 18px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;border-right:2px dashed rgba(42,20,48,.35);color:var(--plum)}
.stub-t{padding:8px 18px 8px 14px}
.stub a{color:var(--plum);font-weight:700}

/* buttons: pills */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 26px;border-radius:var(--r-pill);border:2px solid var(--plum);background:transparent;color:var(--plum);font:700 1rem/1.2 var(--sans);text-decoration:none;cursor:pointer;transition:transform .15s ease,background-color .15s ease}
.btn:hover{transform:translateY(-1px);color:var(--plum);background:rgba(42,20,48,.06)}
.btn-main{background:var(--pom);border-color:var(--pom);color:#fff}
.btn-main:hover{background:var(--pom-d);border-color:var(--pom-d);color:#fff}
.btn-onred{background:var(--butter);border-color:var(--butter);color:var(--plum)}
.btn-onred:hover{background:#fff;border-color:#fff;color:var(--plum)}
.btn-line-light{border-color:#fff;color:#fff}
.btn-line-light:hover{background:rgba(255,255,255,.14);color:#fff}
.btn-dark{background:var(--plum);border-color:var(--plum);color:#fff}
.btn-dark:hover{background:var(--pom);border-color:var(--pom);color:#fff}
.btn-ghost{border-color:transparent;text-decoration:underline;text-underline-offset:3px}
.btn.danger{background:var(--err);border-color:var(--err);color:#fff}
.linkish{background:none;border:0;padding:0;font:inherit;color:var(--pom);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.danger{color:var(--err)}
.cta{display:flex;flex-wrap:wrap;gap:var(--s3);margin:var(--s6) 0 var(--s5)}

/* price chip */
.price-line{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin:var(--s3) 0;padding:8px 16px 8px 8px;border-radius:var(--r-pill);background:var(--white);border:1.5px solid var(--line);font-size:.92rem;line-height:1.4;color:var(--plum)}
.tag{display:inline-block;background:var(--plum);color:#fff;font-weight:800;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;padding:5px 10px;border-radius:var(--r-pill)}
.free{font-weight:700;color:var(--ok)}
.hero .price-line{border-radius:16px;background:transparent;border-color:rgba(255,255,255,.35);color:#fff}
.hero .price-line a{color:#fff}.hero .tag{background:var(--butter);color:var(--plum)}.hero .free{color:var(--butter)}

/* colour-block split bands (full bleed, 50/50) */
.split{display:grid;grid-template-columns:1fr 1fr}
.split-a,.split-b{padding:var(--s9) var(--gut);display:flex;flex-direction:column;justify-content:center}
.split-rev .split-a{order:0}
.hero-a{background:var(--pom);color:#fff}
.hero-a :focus-visible{outline-color:#fff}
.hero-copy{max-width:600px;margin-left:auto;width:100%}
.hero h1{font-size:clamp(2.7rem,6.2vw,5.4rem);margin:0 0 var(--s5);max-width:11ch}
.hero-lede{font-size:1.1rem;line-height:1.7;color:#fde9e6;max-width:56ch}
.hero-b{background:var(--butter);position:relative;align-items:flex-start;overflow:hidden}
.table-art{width:min(100%,520px);height:auto;display:block}
.t-top{fill:#f3c56a}.t-edge{fill:none;stroke:#d9a347;stroke-width:6}
.t-plate circle{fill:#fff;stroke:#e8d6b0;stroke-width:2}.t-plate .in{fill:#fdf6ea;stroke:#ead9b8}
.t-glass circle{fill:#cfe7e5;stroke:var(--teal);stroke-width:2}
.t-bowl>circle:first-child{fill:#fff;stroke:#e2c38a;stroke-width:3}.t-bowl .f1{fill:var(--tomato)}.t-bowl .f2{fill:var(--pist-d)}.t-bowl .f3{fill:var(--pom)}
.t-conf *{fill:var(--pom)}.t-conf .c2{fill:var(--teal)}.t-conf .c3{fill:var(--tomato)}
.menucard{position:absolute;right:var(--gut);bottom:var(--s7);width:min(360px,calc(100% - 2*var(--gut)));background:var(--white);border-radius:6px;padding:26px 26px 20px;text-align:center;box-shadow:0 2px 0 var(--butter-d),0 24px 48px -18px rgba(42,20,48,.35);transform:rotate(1.5deg)}
.menucard::before{content:"";position:absolute;inset:8px;border:1px solid #ead7bf;border-radius:3px;pointer-events:none}
.mc-k{font:400 1.45rem/1.1 var(--disp);color:var(--pom);margin:0 0 6px}
.mc-msg{font-size:.84rem;color:var(--plum2);margin:0 0 12px;line-height:1.45}
.mc-list{list-style:none;margin:0 0 10px;padding:0;font-size:.88rem;line-height:1.45}
.mc-list li{padding:5px 0;border-top:1px dotted #d8c6b2}
.mc-list strong{color:var(--plum)}
.mc-foot{font-size:.78rem;color:var(--plum2);margin:0}

/* the three "courses": a printed menu, no boxes */
.courses{padding:var(--s9) var(--gut);text-align:center;background:var(--paper)}
.courses .display-h,.pricing-band .display-h{font-size:clamp(2rem,4.2vw,3.2rem);margin:0 auto var(--s7);max-width:18ch}
.course-list{list-style:none;margin:0 auto;padding:0;display:grid;grid-template-columns:repeat(3,1fr);max-width:1180px}
.course{padding:0 var(--s6);border-left:1px solid var(--line)}
.course:first-child{border-left:0}
.course-n{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--white);border:2px solid var(--pom);font:400 1.8rem/1 var(--disp);color:var(--pom);margin-bottom:var(--s4)}
.course:nth-child(2) .course-n{border-color:var(--teal);color:var(--teal)}
.course:nth-child(3) .course-n{border-color:var(--tomato);color:#b2431a}
.course h3{font:400 1.6rem/1.15 var(--disp);margin:0 0 var(--s3)}
.course p{color:var(--plum2);max-width:36ch;margin:0 auto}
.courses-cta{margin:var(--s7) 0 0}

/* Gathering Box band */
.boxband-art{background:var(--blush);align-items:center}
.box-art{width:min(100%,420px);height:auto}
.bx-front{fill:var(--pom)}.bx-lid{fill:var(--pom-d)}.bx-ribbon{fill:var(--butter)}.bx-bow{fill:var(--butter);stroke:var(--butter-d);stroke-width:2}
.bx-card rect{fill:#fff;stroke:#e8cfc8;stroke-width:2}.bx-card .ln{stroke:var(--plum2);stroke-width:4;stroke-linecap:round;opacity:.45}
.bx-card2 rect{fill:var(--pist)}
.boxband-copy{background:var(--pist)}
.boxband-copy>*{max-width:560px}
.boxband-copy .display-h{font-size:clamp(2rem,4vw,3rem);margin:0 0 var(--s5)}
.boxband-copy p{font-size:1.06rem}

/* pricing: place cards (tent cards with a fold) */
.pricing-band{padding:var(--s9) var(--gut);text-align:center}
.pb-note{font-size:.92rem;color:var(--plum2);max-width:60ch;margin:var(--s6) auto 0}
.plans{display:grid;grid-template-columns:repeat(2,minmax(0,400px));justify-content:center;gap:var(--s6);margin:var(--s5) 0;text-align:left}
.plan{background:var(--white);border-radius:var(--r-card);box-shadow:0 1px 0 var(--line),0 18px 40px -24px rgba(42,20,48,.4);border:1px solid var(--line);overflow:hidden;display:flex;flex-direction:column}
.plan-fold{background:var(--paper);padding:22px 26px 18px;border-bottom:2px dashed var(--line);text-align:center}
.plan-fold h3{font:400 1.7rem/1.1 var(--disp);margin:0}
.plan-body{padding:22px 26px 26px}
.plan-plus{border:0;box-shadow:0 18px 40px -20px rgba(168,36,58,.55)}
.plan-plus .plan-fold{background:var(--pom);color:#fff;border-bottom-color:rgba(255,255,255,.45)}
.amount{font:800 2.4rem/1.1 var(--sans);letter-spacing:-.02em;margin:0 0 4px;font-variant-numeric:tabular-nums}
.amount span{font-size:1rem;font-weight:500;color:var(--plum2);letter-spacing:0}
.alt{margin:0 0 var(--s3);color:var(--plum2)}
.plan ul{list-style:none;padding:0;margin:var(--s3) 0}
.plan li{position:relative;padding:6px 0 6px 28px;border-top:1px solid #f1e8e3;font-size:.95rem}
.plan li::before{content:"";position:absolute;left:2px;top:13px;width:14px;height:14px;border-radius:50%;background:var(--pist);box-shadow:inset 0 0 0 4px var(--pist-d)}
.plan-plus li::before{background:var(--blush);box-shadow:inset 0 0 0 4px var(--pom)}
.free-box{background:var(--butter);border-radius:12px;padding:10px 14px;font-weight:700;font-size:.92rem;margin:var(--s3) 0 0}

/* inner page header band + content column */
.phead{padding:var(--s8) var(--gut) var(--s7);position:relative}
.phead::after{content:"";position:absolute;left:0;right:0;bottom:-11px;height:12px;background:radial-gradient(circle at 12px 0,var(--hb) 11px,transparent 12px) 0 0/24px 12px repeat-x}
.phead-butter{background:var(--butter);--hb:var(--butter)}
.phead-pist{background:var(--pist);--hb:var(--pist)}
.phead-blush{background:var(--blush);--hb:var(--blush)}
.phead-in{max-width:880px;margin:0 auto}
.phead h1{font-size:clamp(2.3rem,5vw,3.8rem);margin:0 0 var(--s4);overflow-wrap:anywhere}
.lede{font-size:1.14rem;line-height:1.65;color:var(--plum);max-width:62ch}
.crumb{font-size:.9rem;font-weight:700;margin:0 0 var(--s4)}
.crumb a{color:var(--plum)}
.page{padding:var(--s7) var(--gut) var(--s8)}
.prose-col{max-width:880px;margin:0 auto;box-sizing:content-box}
.page .plans{margin-bottom:var(--s7)}
.prose{padding-left:1.2em}.prose li{margin:0 0 var(--s3);max-width:70ch}.prose li::marker{color:var(--pom)}
.note{border-radius:14px;padding:14px 18px;margin:var(--s4) 0;background:var(--paper);border:1px solid var(--line)}
.note-err{border-color:var(--err);color:var(--err);background:#fff4f2}
.note-main{background:var(--butter);border-color:var(--butter-d)}
.sources{padding-left:1.2em}.sources li{margin:var(--s3) 0;overflow-wrap:anywhere}

/* tables used on /how and in results: menu lines */
.qty{width:100%;border-collapse:collapse;margin:var(--s2) 0 var(--s5)}
.qty th,.qty td{padding:12px 10px;border-bottom:1px dotted #cdb9ad;text-align:left;vertical-align:top}
.qty th{font-weight:700;width:36%}
.qty .q{font-weight:800;font-variant-numeric:tabular-nums;width:24%;color:var(--pom)}
.qty .why{color:var(--plum2);font-size:.9rem}

/* forms */
fieldset{border:0;padding:0;margin:0;min-width:0}
legend{font:400 1.5rem/1.2 var(--disp);padding:0;margin:0 0 var(--s4)}
label{display:block;font-weight:700;font-size:.9rem;min-width:0}
input,select,textarea{display:block;width:100%;min-width:0;margin-top:6px;font:500 1rem/1.3 var(--sans);color:var(--plum);background:var(--white);border:1.5px solid #c9b8b0;border-radius:12px;padding:12px 14px;min-height:48px}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--plum) 50%),linear-gradient(135deg,var(--plum) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:36px}
input:focus,select:focus,textarea:focus{outline:3px solid var(--pom);outline-offset:1px;border-color:var(--pom)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(200px,100%),1fr));gap:var(--s4) var(--s5)}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3);margin:var(--s5) 0 0}
.inline{display:inline}
.check{display:flex;gap:10px;align-items:flex-start;font-weight:500;margin:var(--s3) 0}
.check input{width:auto;min-height:0;margin-top:4px;flex:none}
.checkform,.addguest,.addsink,.editsink{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s6);margin:var(--s5) 0}
.addsink>label,.editsink>label{max-width:440px;margin-bottom:var(--s5)}

/* planner: form beside the result on wide screens */
.planner{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr);gap:0 var(--s7)}
.planner-in{max-width:880px;width:100%;margin:0 auto}
.planner-err{max-width:880px;width:100%;margin:0 auto var(--s4)}
.planner.has-result{grid-template-columns:minmax(0,440px) minmax(0,1fr);align-items:start}
.planner.has-result .planner-in{grid-column:1;grid-row:1;position:sticky;top:16px}
.planner.has-result .planner-out{grid-column:2;grid-row:1}
.planner.has-result .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.planner.has-result .checkform{padding:var(--s5);margin-top:0}

/* result: printed like a menu */
.result{margin:0 0 var(--s5)}
#result:focus{outline:none}
.verdict{font:400 clamp(1.5rem,3vw,2.1rem)/1.15 var(--disp);margin:0 0 var(--s4);padding:0 0 var(--s4);border-bottom:3px double var(--pom)}
.grp{font:800 .78rem/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--pom);margin:var(--s6) 0 var(--s2);display:flex;align-items:center;gap:12px}
.grp::after{content:"";flex:1;height:1px;background:var(--line)}
.timeline{list-style:none;margin:var(--s3) 0;padding:0 0 0 26px;border-left:3px solid var(--pist)}
.timeline li{position:relative;margin:0 0 var(--s4)}
.timeline li::before{content:"";position:absolute;left:-34px;top:6px;width:13px;height:13px;border-radius:50%;background:var(--white);border:3px solid var(--pom)}
.timeline strong{display:block;font-variant-numeric:tabular-nums}
.findings{list-style:none;margin:var(--s3) 0;padding:0;display:grid;gap:var(--s3)}
.fd{background:var(--paper);border-radius:14px;padding:14px 18px 14px 56px;position:relative;overflow-wrap:anywhere;border:1px solid var(--line)}
.fd::before{content:"!";position:absolute;left:16px;top:14px;width:26px;height:26px;border-radius:50%;background:var(--tomato);color:#fff;font:800 .95rem/26px var(--sans);text-align:center}
.src{display:block;font-size:.84rem;color:var(--plum2);margin-top:4px}

/* Gathering Box */
.linkbox{background:var(--butter);border-radius:var(--r-card);padding:var(--s5);margin:var(--s4) 0}
.linkbox .row{display:flex;gap:var(--s2);margin-top:var(--s2)}
.linkbox input{margin:0;font-family:var(--mono);font-size:.85rem}
.sinkrow{background:var(--white);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s4) var(--s5);margin:var(--s3) 0;box-shadow:0 12px 28px -22px rgba(42,20,48,.5);border-top:6px solid var(--pom)}
.sinkrow h3{margin:0 0 4px;font:400 1.35rem/1.2 var(--disp)}
.sinkrow h3 .small{font-family:var(--sans)}
.sinkrow p{margin:4px 0}
.tablewrap{overflow-x:auto;margin:var(--s3) 0}
.guests{width:100%;border-collapse:collapse;font-size:.95rem}
.guests th,.guests td{padding:10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.guests thead th{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--plum2)}
.ticklist{list-style:none;padding:0;margin:var(--s2) 0;columns:2;column-gap:var(--s6)}
.ticklist li{break-inside:avoid;margin:0 0 6px}
.sum{width:100%;border-collapse:collapse;margin:var(--s3) 0}
.sum th,.sum td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.printcard{max-width:960px;margin:0 auto}
.printcard h1{font:400 clamp(2rem,4vw,3rem)/1.1 var(--disp);margin:var(--s4) 0}
.noprint{display:flex;gap:var(--s4);align-items:center;flex-wrap:wrap}

/* footer: plum tablecloth with a scalloped hem */
.ft{background:var(--plum);color:#eadde8;margin-top:var(--s8);position:relative}
.ft-scallop{position:absolute;left:0;right:0;top:-14px;height:14px;background:radial-gradient(circle at 14px 14px,var(--plum) 13px,transparent 14px) 0 0/28px 14px repeat-x}
.ft-in{display:grid;grid-template-columns:1.1fr 1fr 1.6fr;gap:var(--s6) var(--s7);padding:var(--s8) var(--gut) var(--s6);max-width:1400px;margin:0 auto}
.ft a{color:#fff}
.ft a:hover{color:var(--butter)}
.ft :focus-visible{outline-color:var(--butter)}
.ft-name{font:400 1.8rem/1.1 var(--disp);color:#fff;margin:0 0 6px}
.ft-name span{color:var(--butter)}
.ft-tag{color:#cdb9cb;margin:0}
.ft-links{display:flex;gap:var(--s7)}
.ft-links ul{list-style:none;margin:0;padding:0}
.ft-links li{margin:0 0 8px}
.ft-links a{text-decoration:none;font-weight:600}
.ft-links a:hover{text-decoration:underline}
.ft-fine{font-size:.86rem;line-height:1.6;color:#d8c8d6;margin:0}
.ft-pw{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.18);padding-top:var(--s5);margin:0;font-weight:700;font-size:.92rem}
.ft-dot{opacity:.6;font-weight:400}

/* responsive */
@media (max-width:1100px){
.split{grid-template-columns:1fr}
.split-a,.split-b{padding:var(--s8) var(--gut)}
.hero-copy{margin:0;max-width:680px}
.hero-b{padding-bottom:var(--s5)}
.menucard{position:relative;right:auto;bottom:auto;margin:-140px auto 0;transform:rotate(1deg)}
.table-art{width:min(100%,460px)}
.ft-in{grid-template-columns:1fr 1fr}.ft-fine{grid-column:1/-1}
.planner.has-result{grid-template-columns:minmax(0,1fr)}
.planner.has-result .planner-in{grid-row:2;grid-column:1;position:static}
.planner.has-result .planner-out{grid-row:1;grid-column:1}
}
@media (max-width:860px){
.course-list{grid-template-columns:1fr;gap:var(--s6);max-width:520px}
.course{border-left:0;border-top:1px solid var(--line);padding:var(--s6) 0 0}
.course:first-child{border-top:0;padding-top:0}
.plans{grid-template-columns:minmax(0,440px)}
}
@media (max-width:640px){
body{font-size:16px}
.hd-in{padding:12px 20px;min-height:0;gap:10px}
.logo-t{font-size:1.3rem}.logo-mk{width:34px;height:34px}
.mnav{width:100%;justify-content:space-between;gap:4px}
.mnav a{font-size:.88rem;padding:6px 0}
.mnav .mnav-box{padding:8px 14px}
.mnav-your{display:none}
.stub{flex-direction:column;-webkit-mask:none;mask:none}
.stub-k{border-right:0;border-bottom:2px dashed rgba(42,20,48,.35);padding:6px 14px}
.stub-t{padding:8px 14px}
.split-a,.split-b{padding:var(--s7) 20px}
.hero h1{font-size:2.6rem}
.cta .btn{flex:1 1 auto}
.menucard{margin-top:-90px;padding:22px 18px 16px}
.courses,.pricing-band{padding:var(--s8) 20px}
.phead{padding:var(--s7) 20px var(--s6)}
.page{padding:var(--s6) 20px var(--s7)}
.checkform,.addguest,.addsink,.editsink{padding:var(--s5) var(--s4)}
.grid,.planner.has-result .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}
.linkbox .row{flex-wrap:wrap}
.ticklist{columns:1}
.ft-in{grid-template-columns:1fr;padding:var(--s7) 20px var(--s5)}
.ft-links{gap:var(--s6)}
.qty th,.qty td{display:block;width:auto;border:0;padding:2px 0}
.qty tr{display:block;border-bottom:1px dotted #cdb9ad;padding:10px 0}
.guests thead{display:none}.guests,.guests tbody,.guests tr{display:block;width:100%}
.guests tr{border-bottom:1px solid var(--line);padding:8px 0}
.guests td{display:inline-block;border:0;padding:1px 10px 1px 0;width:auto}
.guests td:first-child{display:block;font-weight:700}
.guests td[data-label]::before{content:attr(data-label) ": ";color:var(--plum2);font-size:.85rem}
.guests td[data-label="Bringing"]:empty{display:none}
}
@media (max-width:380px){.grid,.planner.has-result .grid{grid-template-columns:1fr}.mnav a{font-size:.82rem}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
@media print{
.hd,.ft,.stub-row,.noprint,.skip,.price-line,.actions,.phead::after{display:none!important}
body{background:#fff;color:#000;font-size:12pt}
.page,.phead{padding:0}.printcard{max-width:none}
a{color:#000;text-decoration:none}
.ticklist{columns:2}
.ticklist li{font-family:var(--mono);font-size:10pt}
}
/* ---------- v1.2.0: AdEngine banner (adengine.us) ----------
   One labelled slot between the main content and the footer, on public pages only (the controllers opt in). The label and
   the reserved height are on the <ins>, so when tag.js (or ae-size.js) hides a slot it cannot fill, the label and the space
   go with it. 110px = 16px label + 4px gap + 90px banner; 270px on phones (300x250). Pages already end with 72px or more of
   padding and the footer keeps its own 72px margin (its scallop sits inside it), so the slot adds no vertical margin of its
   own. display stays in this file and is never !important: tag.js hides a slot with style.display='none'. */
.ae-slot{padding:0 var(--gut)}
.ae-slot:has(> ins.adengine[style*="none"]){display:none}
.ae-slot ins.adengine{display:block;max-width:728px;min-height:110px;margin:0 auto;text-align:center;text-decoration:none}
.ae-slot ins.adengine::before{content:"Advertisement";display:block;margin-bottom:4px;font:700 11px/16px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--plum2)}
.ae-slot ins.adengine a{display:inline-block;vertical-align:top}
@media (max-width:767px){.ae-slot ins.adengine{max-width:300px;min-height:270px}}
@media (max-width:640px){.ae-slot{padding:0 20px}}
@media print{.ae-slot{display:none}}
