/* Celebrate (an occasions annual): the site's own layouts. The system is in
   system/system.css, copied unchanged from the hub; everything here is local. */

/* The site's family tokens, re-pointed at Celebrate's paper so shared parts
   (sheet, buttons, price blocks) sit on candlelit paper, not newsprint grey. */
.site-celebrate {
  --paper: var(--s-paper);
  --ink: var(--s-ink);
  --ink-2: var(--s-ink-2);
  --raised: light-dark(#FFFBF2, #2A1424);
  --sunk: light-dark(#F4E7CB, #12060F);
  --hair: light-dark(#E2D1B0, #3D2537);
  --rule: light-dark(#86695C, #957A8B);
  --plum: light-dark(#6B2457, #F4C04F);
  --gold: #F4C04F;
  --wine: #3A1630;
}
.site-celebrate :focus-visible { outline-color: var(--s-ink); }

/* Headlines in Yeseva One: festive, sturdy, readable at size. */
.site-celebrate .h-1, .site-celebrate .h-house, .site-celebrate .h-2, .c-head {
  font-family: var(--f-celebrate); font-weight: 400; font-stretch: normal; letter-spacing: -.005em;
}
.site-celebrate .h-1 { font-size: clamp(1.75rem, 1rem + 2.4vw, 3.05rem); line-height: 1.07; }
.site-celebrate .h-house { font-size: clamp(2.2rem, 1.1rem + 4vw, 4.6rem); line-height: 1.02; }
.site-celebrate .h-2 { font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.35rem); line-height: 1.1; }
.site-celebrate .continued .continued__t { font-family: var(--f-celebrate); font-weight: 400; font-stretch: normal; }

/* The masthead in the bar shows on the phone too: the site's name in small. */
.bar__title.t-celebrate { color: var(--plum); }
@media (max-width: 899px) {
  .bar__title { display: inline-flex; padding-left: .6rem; margin-left: .1rem; }
  .bar__title .wm { height: 17px; width: calc(17px * var(--wm-r)); }
}
@media (max-width: 599px) { .imprint-link .imprint-caps { display: none; } }

.sc-imprint { display: flex; align-items: center; gap: .55rem; margin: 0 0 .8rem; }
.sc-imprint svg { width: 22px; height: 22px; flex: none; }
.sc-folio { margin-left: auto; font: 600 .8rem/1 var(--f-app); letter-spacing: .04em; color: var(--s-ink-2); }
.page-end { display: grid; gap: 1rem; padding-top: clamp(1.5rem, 3vw, 2.5rem); }
.boundary { margin: 0; padding: .8rem 1rem; border-radius: 8px; background: var(--sunk); font: 400 1rem/1.45 var(--f-read); }
.boundary b { font-family: var(--f-app); }
.price-block p { margin: 0; }
.price-block .label { margin: 0; color: var(--ink-2); }
.price-block .small { color: var(--ink-2); }
.travel-line { font: 500 .8125rem/1.45 var(--f-app); color: var(--ink-2); margin: 0; }
a.cancel-line { display: block; }

/* ---------------------------------------------------------------------
   Front page: the cover. Masthead across the top, the hall in its frame,
   the cover lines beside it, and the run sheet as a strip beneath.
   --------------------------------------------------------------------- */
.c-cover { position: relative; isolation: isolate; background: var(--c-ground); color: var(--c-ink); padding: clamp(.9rem, 2vw, 1.6rem) 0 0; overflow: hidden; }
.c-cover > .pat { position: absolute; inset: 0; z-index: -1; background: var(--c-ink); opacity: .06; -webkit-mask-size: var(--pat-s) auto; mask-size: var(--pat-s) auto; -webkit-mask-repeat: repeat; mask-repeat: repeat; }
.c-cover__in { display: grid; gap: 1rem clamp(1.5rem, 3vw, 3rem); grid-template-columns: minmax(0, 1fr); grid-template-areas: "hall" "words"; padding-bottom: 1.4rem; }
.c-top { display: none; }
@media (min-width: 1000px) {
  .c-top { display: flex; align-items: end; gap: 1.2rem; padding-bottom: .7rem; margin-bottom: 1rem; border-bottom: 2px solid currentColor; }
  .c-top .wm { height: clamp(44px, 3.6vw, 64px); width: calc(clamp(44px, 3.6vw, 64px) * var(--wm-r)); }
  .c-top .press-mast { position: relative; }
  .c-top .wm--plate { position: absolute; left: 0; bottom: 0; color: var(--c-plate); }
  .c-top .wm--ink { position: relative; }
  .c-top__shelf { margin: 0 0 .4rem auto; text-align: right; }
  .c-cover__in { grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); grid-template-areas: "hall words"; align-items: start; }
}
.c-words { grid-area: words; display: grid; gap: .85rem; align-content: start; }
.c-words .h-1 { color: var(--c-ink); max-width: 19ch; }
.c-words .stand { color: var(--c-ink); max-width: 34ch; }
.c-words .price-block { background: var(--raised); color: var(--ink); max-width: 31rem; box-shadow: var(--sh-1); }
.c-words .price-block .price { font-size: 1.1rem; }
.c-words .btn-call { justify-self: start; }
.c-kick { margin: 0; font: italic 400 1.02rem/1.4 var(--f-read); }

/* The hall: three photographs of one doorway, laid over each other. */
.hall { grid-area: hall; margin: 0; position: relative; }
.hall__frame { position: relative; padding: 10px; background: var(--c-band); border-radius: 4px; box-shadow: var(--sh-2); }
.hall__stage { position: relative; aspect-ratio: 4 / 3.15; overflow: hidden; border-radius: 2px; background: color-mix(in srgb, var(--c-ink) 22%, var(--c-ground)); }
@media (min-width: 1000px) { .hall__stage { aspect-ratio: 4 / 3.6; } }
@media (min-width: 1000px) and (max-height: 960px) { .hall__stage { aspect-ratio: 4 / 2.85; } .hall__kick { display: none; } .c-words .price-block .small { display: none; } }
.hall__layer { position: absolute; inset: 0; transition: opacity 600ms var(--ease-place); }
.hall__layer picture, .hall__layer img { width: 100%; height: 100%; }
.hall__layer img { object-fit: cover; object-position: 50% 62%; }
.hall__l2 { visibility: hidden; }
html[data-theme="dark"] .hall__l2 { visibility: visible; }
@media (prefers-color-scheme: dark) { html:not([data-theme="light"]) .hall__l2 { visibility: visible; } }
.hall[data-frame="0"] .hall__l1, .hall[data-frame="0"] .hall__l2, .hall[data-frame="1"] .hall__l2 { opacity: 0; }
.hall__seal { position: absolute; top: -18px; right: 16px; z-index: 2; width: clamp(54px, 7vw, 82px); height: auto; aspect-ratio: 1; color: var(--c-ink); background: var(--c-ground); border-radius: 50%; padding: 4px; transform: rotate(-9deg); }
.hall__times { display: flex; flex-wrap: wrap; gap: .4rem; padding: .7rem 0 0; }
.hall__times button { display: inline-grid; grid-template-columns: auto; justify-items: start; gap: .1rem; min-height: 48px; padding: .45rem .8rem; border-radius: 8px; border: 1.5px solid color-mix(in srgb, var(--c-band-ink) 55%, transparent); background: transparent; color: var(--c-band-ink); cursor: pointer; text-align: left; }
.hall__times b { font: 700 .95rem/1.1 var(--f-app); }
.hall__times span { font: 500 .75rem/1.15 var(--f-app); }
.hall__times button[aria-pressed="true"] { background: var(--c-band-ink); color: var(--c-band); border-color: var(--c-band-ink); }
.hall__times .hall__replay { margin-left: auto; grid-auto-flow: column; align-items: center; gap: .4rem; border-style: dashed; }
.hall__replay svg { width: 18px; height: 18px; }
.hall__dusk { display: none !important; }
html[data-theme="dark"] .hall__dusk { display: inline-grid !important; }
@media (prefers-color-scheme: dark) { html:not([data-theme="light"]) .hall__dusk { display: inline-grid !important; } }
html:not(.lt-js) .hall__times { display: none; }
.hall__kick { margin: 0; padding: .7rem .2rem .1rem; font: italic 400 clamp(1rem, .95rem + .35vw, 1.2rem)/1.35 var(--f-read); color: var(--c-band-ink); }
.hall__cap { padding: .55rem .1rem 0; color: var(--c-ink); }
@media (hover: hover) and (pointer: fine) { .hall__times button:hover { border-color: var(--c-band-ink); } }
.hall__times button:active { transform: scale(.97); }

/* Before the doors open: played once from the first paint, then held. */
@media (prefers-reduced-motion: no-preference) {
  .lt-ready .hall:not(.is-driven) .hall__l1 { animation: hall-in 620ms var(--ease-place) 260ms both; }
  .lt-ready .hall:not(.is-driven) .hall__l2 { animation: hall-in 620ms var(--ease-place) 1000ms both; }
  .lt-ready .hall.again:not(.is-driven) .hall__l1 { animation-name: hall-in-2; }
  .lt-ready .hall.again:not(.is-driven) .hall__l2 { animation-name: hall-in-2; }
}
@keyframes hall-in { from { opacity: 0; } }
@keyframes hall-in-2 { from { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .hall__layer { transition-duration: var(--t-reduced); } }

/* The run sheet strip, beneath the cover: the afternoon, and what each package covers. */
.strip { background: var(--c-band); color: var(--c-band-ink); padding: 1rem 0 1.15rem; }
.strip__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .3rem 1rem; margin-bottom: .6rem; }
.strip__head .label { margin: 0; }
.strip__head a { color: inherit; font: 650 .9rem/1.2 var(--f-app); min-height: 44px; display: inline-flex; align-items: center; gap: .35rem; }
.strip__head a svg { width: 16px; height: 16px; }
.sheetgrid { display: grid; grid-template-columns: minmax(3.2rem, 1.3fr) repeat(10, minmax(0, 1fr)); row-gap: 5px; list-style: none; margin: 0; padding: 0; }
.sheetgrid > * { min-width: 0; }
.sg-h { font: 650 .75rem/1 var(--f-app); padding: 0 0 .35rem; border-left: 1px solid color-mix(in srgb, var(--c-band-ink) 35%, transparent); padding-left: .3rem; }
.sg-h:first-child { border-left: 0; padding-left: 0; }
.sg-h.sg-half { visibility: hidden; }
.sg-ev { grid-row: 2; display: grid; align-content: center; min-height: 40px; padding: .3rem .45rem; border-radius: 4px; background: color-mix(in srgb, var(--c-band-ink) 14%, transparent); font: 600 .8125rem/1.15 var(--f-app); overflow-wrap: anywhere; }
.sg-ev small { font: 500 .75rem/1.15 var(--f-app); opacity: .92; }
.sg-bar { display: flex; align-items: center; gap: .4rem; min-height: 34px; padding: 0 .55rem; border-radius: 999px; font: 700 .8125rem/1.1 var(--f-app); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transform-origin: 0 50%; }
.sg-plan { grid-column: 1 / 2; border: 1.5px dashed var(--c-band-ink); }
.sg-set { grid-column: 1 / 6; background: var(--gold); color: var(--wine); }
.sg-day { grid-column: 1 / 12; background: var(--c-band-ink); color: var(--c-band); }
.r3 { grid-row: 3; } .r4 { grid-row: 4; } .r5 { grid-row: 5; }
.c-before { grid-column: 1; } .c-setup { grid-column: 2 / 6; } .c-party { grid-column: 6 / 10; } .c-pack { grid-column: 10 / 12; }
@media (prefers-reduced-motion: no-preference) {
  .lt-ready .sheetgrid[data-first] .sg-bar { animation: bar-in 520ms var(--ease-place) both; }
  .lt-ready .sheetgrid[data-first] .sg-set { animation-delay: 120ms; }
  .lt-ready .sheetgrid[data-first] .sg-day { animation-delay: 240ms; }
}
@keyframes bar-in { from { transform: scaleX(.12); opacity: .4; } }
@media (max-width: 599px) {
  .sheetgrid { grid-template-columns: 2.6rem repeat(10, minmax(0, 1fr)); }
  .sg-ev { font-size: .75rem; padding: .3rem .3rem; }
  .sg-ev small { display: none; }
  .sg-h { font-size: .7rem; padding-left: .15rem; }
  .sg-bar { font-size: .75rem; padding: 0 .4rem; }
}
html[data-theme="dark"] .sg-set { background: light-dark(#F4C04F, #B3427E); color: #FFFFFF; }
@media (prefers-color-scheme: dark) { html:not([data-theme="light"]) .sg-set { background: #B3427E; color: #FFFFFF; } }

/* Phone: the hall takes the top two fifths, the words come next, prices above the dock. */
@media (max-width: 999px) {
  .c-cover { padding-top: .6rem; }
  .c-cover__in { gap: .9rem; padding-bottom: 1rem; }
  .hall__frame { padding: 6px; }
  .hall__seal { width: 50px; top: -12px; right: 10px; }
  .hall__kick { display: none; }
  .c-words { gap: .65rem; }
  .c-words .stand { font-size: 1.05rem; }
  .c-words .price-block { padding: .8rem .9rem; gap: .4rem; }
}
@media (max-width: 999px) and (max-height: 760px) { .hall__stage { aspect-ratio: 4 / 2.7; } }
@media (max-width: 999px) {
  .hall__stage { aspect-ratio: 4 / 2.75; }
  .hall__times { flex-wrap: nowrap; gap: .3rem; padding-top: .45rem; }
  .hall__times button { min-height: 44px; padding: .35rem .6rem; }
  .hall__times span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .hall__times .hall__replay b { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .hall__times .hall__replay { min-width: 48px; justify-items: center; }
  .hall__times b::after { content: ""; }
  .c-words .price-block .small { display: none; }
  .c-words .stand { margin-bottom: 0; }
}

/* After the cover: the three ways to be at your own party. */
.ways { padding: clamp(1.8rem, 4vw, 3rem) 0; }
.ways__in { display: grid; gap: 1.2rem; }
.ways .h-2 { max-width: 24ch; }
.tickets { display: grid; gap: .9rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); list-style: none; margin: 0; padding: 0; }
.ticket { position: relative; display: grid; gap: .45rem; align-content: start; padding: 1.1rem 1.15rem 1.2rem; min-height: 100%; background: var(--raised); border: 1px solid var(--hair); border-radius: 10px; text-decoration: none; box-shadow: var(--sh-1); transition: transform var(--t-hover) var(--ease-place), box-shadow var(--t-hover) var(--ease-place); }
.ticket::before, .ticket::after { content: ""; position: absolute; top: 50%; width: 18px; height: 18px; margin-top: -9px; border-radius: 50%; background: var(--s-paper); border: 1px solid var(--hair); }
.ticket::before { left: -10px; } .ticket::after { right: -10px; }
.ticket__k { font: 650 .75rem/1.2 var(--f-app); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-2); margin: 0; }
.ticket__q { margin: 0; font: 400 1.35rem/1.15 var(--f-celebrate); color: var(--plum); }
.ticket__a { margin: 0; color: var(--ink-2); }
.ticket .price-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: .1rem .6rem; margin: .2rem 0 0; }
.ticket .quiet-line, .ticket .cancel-line, .ticket .travel-line { font-size: .75rem; }
.ticket__go { display: inline-flex; align-items: center; gap: .3rem; font: 700 .9rem/1 var(--f-app); margin-top: .2rem; }
.ticket__go svg { width: 16px; height: 16px; transition: transform var(--t-hover) var(--ease-place); }
@media (hover: hover) and (pointer: fine) { .ticket:hover { transform: translateY(-4px); box-shadow: var(--sh-2); } .ticket:hover .ticket__go svg { transform: translateX(4px); } }
.ticket:active { transform: scale(.985); }

/* House adverts (the hub's cover anatomy at small size). */
.also { padding: clamp(1.8rem, 4vw, 3rem) 0; background: var(--sunk); border-top: 1px solid var(--hair); }
.also .h-2 { margin-bottom: 1.2rem; }
.adverts { grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); }
@media (min-width: 900px) { .adverts { grid-template-columns: repeat(2, minmax(0, 340px)) minmax(0, 260px); } }
.slot { container: slot / inline-size; min-width: 0; display: flex; flex-direction: column; }
.slot > .cover { flex: 1; }
.advert-slot .cover__mast { --mh: 46px; }
.advert-all .label { color: var(--ink-2); }
.advert-all svg { width: 22px; height: 22px; justify-self: center; }
.cover__band .cancel-line { font-size: .75rem; line-height: 1.4; color: var(--c-band-2); }
.inside__k { margin: 0 0 .35rem; color: var(--s-ink-2, var(--ink-2)); }
.inside .quiet-line, .inside .cancel-line { margin-top: .45rem; max-width: 44ch; }
@container slot (max-width: 260px) {
  .cover__photo, .cover__caption, .cover__imprint .cover__shelf { display: none; }
  .cover__seal-type { display: block; }
  .cover__mast { --mh: 30px; padding-bottom: .9rem; }
}
.foot-theme { display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; padding: 0; border: 0; background: none; color: inherit; font: 500 .95rem/1.2 var(--f-app); text-decoration: underline; text-underline-offset: .2em; cursor: pointer; }
.foot-theme svg { display: none; width: 16px; height: 16px; flex: none; }
.foot-theme[aria-pressed="true"] svg { display: block; }
.imprint-footer { background: var(--sunk); }
.imprint-footer .seal-foot { color: var(--plum); }

/* ---------------------------------------------------------------------
   Inner spreads: a short title band in the title's colours.
   --------------------------------------------------------------------- */
.spread-head { position: relative; isolation: isolate; background: var(--c-ground); color: var(--c-ink); padding: clamp(1.1rem, 3vw, 2.4rem) 0 clamp(1.2rem, 3vw, 2.2rem); }
.spread-head > .pat { position: absolute; inset: 0; z-index: -1; background: var(--c-ink); opacity: .06; -webkit-mask-size: var(--pat-s) auto; mask-size: var(--pat-s) auto; }
.spread-head .h-1 { max-width: 22ch; margin: .2rem 0 .7rem; }
.spread-head .stand { max-width: 44ch; }
.spread-head .sc-folio { color: var(--c-ink); }

/* ---------------------------------------------------------------------
   The packages: two growing stacks, with the guest question as the way in.
   --------------------------------------------------------------------- */
.guestq { display: grid; gap: .6rem; margin-top: 1.3rem; }
.guestq .label { margin: 0; }
.guestq .seg { background: var(--raised); border-color: var(--c-ink); }
.guestq .seg button { min-height: 44px; color: var(--ink); }
.guestq .seg button[aria-pressed="true"] { background: var(--wine); color: #F9E3AE; }
html:not(.lt-js) .guestq, html:not(.lt-js) .pkg__choose { display: none; }
.stacks { padding: clamp(1.6rem, 3.5vw, 2.8rem) 0; }
.stacks__in { display: grid; gap: 2rem clamp(1.4rem, 3vw, 2.8rem); align-items: start; }
@media (min-width: 1000px) { .stacks__in { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); } }
.stack__h { margin: 0 0 .3rem; }
.stack__sub { margin: 0 0 1.2rem; color: var(--ink-2); font: 500 .95rem/1.35 var(--f-app); }
.stack__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.6rem; }
.pkg { position: relative; display: grid; gap: .5rem; padding: 1.1rem 1.15rem 1.15rem; background: var(--raised); border: 1px solid var(--hair); border-radius: 6px 12px 12px 6px; box-shadow: var(--sh-1); transition: transform var(--t-turn) var(--ease-place), box-shadow var(--t-turn) var(--ease-place), opacity var(--t-turn) var(--ease-place), background-color var(--t-turn) var(--ease-place); }
.pkg__layers { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.pkg__layers i { position: absolute; inset: 0; border-radius: inherit; background: var(--sunk); border: 1px solid var(--hair); transition: transform var(--t-turn) var(--ease-place); }
.pkg { isolation: isolate; }
.pkg__layers i:nth-child(1) { transform: translate(5px, -7px) rotate(.7deg); }
.pkg__layers i:nth-child(2) { transform: translate(10px, -14px) rotate(1.4deg); }
.pkg__layers i:nth-child(3) { transform: translate(15px, -21px) rotate(2deg); }
.pkg__step { margin: 0; font: 650 .75rem/1.2 var(--f-app); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-2); }
.pkg__t { margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: .15rem .7rem; }
.pkg__t .price { font: 400 clamp(1.35rem, 1.1rem + .9vw, 1.75rem)/1.15 var(--f-celebrate); color: var(--plum); }
.pkg__for { margin: 0; font: 500 .95rem/1.4 var(--f-app); color: var(--ink-2); }
.pkg__adds { margin: .1rem 0 0; padding: 0; list-style: none; display: grid; gap: .3rem; }
.pkg__adds li { display: grid; grid-template-columns: 18px 1fr; gap: .5rem; align-items: start; font: 400 1rem/1.45 var(--f-read); }
.pkg__adds svg { width: 18px; height: 18px; margin-top: .2rem; color: var(--plum); }
.pkg__adds .inc { font-family: var(--f-app); font-weight: 650; }
.pkg__when { margin: 0; font: 500 .875rem/1.4 var(--f-app); }
.pkg__lines { display: grid; gap: .25rem; padding-top: .5rem; border-top: 1px dashed var(--hair); }
.pkg__choose { justify-self: start; margin-top: .2rem; }
.pkg__choose[aria-pressed="true"] { background: var(--s-ink); color: var(--s-paper); }
.pkg__tag { display: none; position: absolute; top: -.8rem; right: 1rem; padding: .3rem .6rem; border-radius: 4px; font: 700 .75rem/1 var(--f-app); letter-spacing: .06em; text-transform: uppercase; }
.stacks.has-choice .pkg.is-chosen { transform: translateY(-6px); box-shadow: var(--sh-2); border-color: var(--plum); }
.stacks.has-choice .pkg.is-chosen .pkg__tag--you { display: block; background: var(--wine); color: #F9E3AE; }
.stacks.has-choice .pkg.is-chosen .pkg__layers i:nth-child(1) { transform: translate(8px, -10px) rotate(1.2deg); }
.stacks.has-choice .pkg.is-chosen .pkg__layers i:nth-child(2) { transform: translate(16px, -20px) rotate(2.4deg); }
.stacks.has-choice .pkg.is-chosen .pkg__layers i:nth-child(3) { transform: translate(24px, -30px) rotate(3.4deg); }
.stacks.has-choice .pkg.is-included { transform: translateY(-12px); background: light-dark(#FFF3D2, #34162C); }
.stacks.has-choice .pkg.is-included .pkg__tag--inc { display: block; background: var(--gold); color: var(--wine); }
.stacks.has-choice .pkg:not(.is-chosen):not(.is-included) { opacity: .62; }
@media (prefers-reduced-motion: reduce) { .pkg, .pkg__layers i { transition: background-color var(--t-reduced), opacity var(--t-reduced); } .stacks.has-choice .pkg.is-chosen, .stacks.has-choice .pkg.is-included { transform: none; } }
.stack__foot { margin-top: 1.4rem; display: grid; gap: .5rem; }
.pkg--bigger .pkg__t .price { font-size: 1.25rem; }
.addons { padding: clamp(1.6rem, 3.5vw, 2.6rem) 0; border-top: 1px solid var(--hair); }
.addons__in { display: grid; gap: 1.6rem clamp(1.4rem, 3vw, 2.8rem); align-items: start; }
@media (min-width: 1000px) { .addons__in { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); } }
.addons__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.yours { padding: 1.2rem 1.25rem; border-radius: 12px; border: 1.5px dashed var(--rule); background: var(--s-paper); }
.yours .h-3 { margin: 0 0 .6rem; }
.yours ul { margin: 0 0 .8rem; padding: 0; list-style: none; display: grid; gap: .35rem; }
.yours li { font: 400 1rem/1.45 var(--f-read); padding-left: 1.1rem; position: relative; }
.yours li::before { content: ""; position: absolute; left: 0; top: .6em; width: 7px; height: 7px; border-radius: 50%; background: var(--plum); }
.yours p { margin: 0 0 .5rem; }

/* ---------------------------------------------------------------------
   The day, hour by hour: one run sheet that re-times itself.
   --------------------------------------------------------------------- */
.day { padding: clamp(1.2rem, 3vw, 2.4rem) 0 clamp(1.6rem, 3.5vw, 2.8rem); }
.day__in { display: grid; gap: 1.6rem clamp(1.4rem, 3vw, 2.8rem); align-items: start; }
@media (min-width: 1000px) { .day__in { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); } .day__side { position: sticky; top: 84px; } }
.rs { position: relative; }
.rs > .example-tag { position: absolute; top: -.85rem; left: .9rem; background: var(--raised); color: var(--ink-2); z-index: 2; }
.rs__box { border: 1.5px dashed var(--rule); border-radius: 12px; background: var(--raised); padding: 1.1rem 1rem 1rem; }
.rs__controls { display: grid; gap: .8rem; padding: .3rem 0 1rem; border-bottom: 1px solid var(--hair); }
.rs__row { display: flex; flex-wrap: wrap; gap: .8rem 1.2rem; align-items: end; }
.rs__field { display: grid; gap: .35rem; font: 600 .875rem/1.2 var(--f-app); color: var(--ink-2); }
.rs__field select, .rs__num input { min-height: 48px; padding: 0 .8rem; border-radius: 8px; border: 1.5px solid var(--rule); background: var(--s-paper); color: var(--ink); font: 600 1.05rem/1 var(--f-app); }
.rs__num { display: flex; align-items: stretch; gap: .3rem; }
.rs__num input { width: 5.2rem; text-align: center; -moz-appearance: textfield; appearance: textfield; }
.rs__num input::-webkit-inner-spin-button, .rs__num input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.rs__step { min-width: 48px; min-height: 48px; border-radius: 8px; border: 1.5px solid var(--rule); background: var(--s-paper); color: var(--ink); font: 700 1.2rem/1 var(--f-app); cursor: pointer; display: grid; place-items: center; }
.rs__step svg { width: 18px; height: 18px; }
.rs__step:active { transform: scale(.95); }
.rs__pkgs .label { margin: 0 0 .35rem; color: var(--ink-2); }
.rs__pkgs .seg { background: var(--s-paper); }
.rs__pkgs .seg button[aria-pressed="true"] { background: var(--wine); color: #F9E3AE; }
.rs__marker { position: sticky; top: 0; z-index: 3; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .2rem .8rem; margin: 0 -1rem; padding: .7rem 1rem; background: var(--wine); color: #F9E3AE; font: 650 .95rem/1.3 var(--f-app); }
.rs__marker small { font: 500 .8125rem/1.3 var(--f-app); color: #E6CFA0; }
.rs__over { display: none; margin: .8rem 0 0; padding: .7rem .9rem; border-radius: 8px; background: light-dark(#FDE7C2, #3A1D10); border: 1.5px solid var(--plum); font: 600 .95rem/1.4 var(--f-app); }
.rs.is-over .rs__over { display: block; }
.rs__list { list-style: none; margin: 0; padding: 0; }
.rs__list li { display: grid; grid-template-columns: 4.6rem minmax(0, 1fr); gap: .1rem .9rem; padding: .75rem .4rem .75rem .6rem; border-bottom: 1px solid var(--hair); border-radius: 6px; transition: background-color 200ms ease-out; }
.rs__t { font: 700 1rem/1.3 var(--f-app); font-variant-numeric: tabular-nums; grid-row: 1 / 3; }
.rs__what { font: 400 1.02rem/1.4 var(--f-read); }
.rs__who { font: 600 .875rem/1.35 var(--f-app); color: var(--ink-2); display: flex; align-items: center; gap: .4rem; }
.rs__who::before { content: ""; flex: none; width: 10px; height: 10px; border-radius: 50%; border: 1.5px solid var(--rule); }
.rs__list li.is-laura { background: light-dark(#FCE7B4, #3B1A33); }
.rs__list li.is-laura .rs__who { color: var(--ink); }
.rs__list li.is-laura .rs__who::before { background: var(--plum); border-color: var(--plum); }
@media (prefers-reduced-motion: no-preference) {
  .rs__list li.is-laura { transition-delay: calc(var(--i, 0) * 40ms); }
  .rs__list li.flash .rs__t { animation: rs-flash 160ms ease-out; }
}
@keyframes rs-flash { from { opacity: .3; } }
.rs__list li:nth-child(1) { --i: 0; } .rs__list li:nth-child(2) { --i: 1; } .rs__list li:nth-child(3) { --i: 2; } .rs__list li:nth-child(4) { --i: 3; } .rs__list li:nth-child(5) { --i: 4; } .rs__list li:nth-child(6) { --i: 5; } .rs__list li:nth-child(7) { --i: 6; } .rs__list li:nth-child(8) { --i: 7; } .rs__list li:nth-child(9) { --i: 8; }
html:not(.lt-js) .rs__controls { display: none; }
.shop { padding: 1.1rem 1.15rem; background: var(--raised); border: 1px solid var(--hair); border-radius: 12px; }
.shop .h-3 { margin: .2rem 0 .5rem; }
.shop table { width: 100%; border-collapse: collapse; font: 500 .95rem/1.3 var(--f-app); }
.shop td { padding: .5rem 0; border-bottom: 1px solid var(--hair); }
.shop td.q { text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; padding-left: 1rem; }
.shop .small { color: var(--ink-2); margin: .7rem 0 0; }
.day__side { display: grid; gap: 1rem; }
.day__side .price-block .price { font-size: 1.05rem; }
@media (max-width: 999px) {
  .rs__marker { top: 0; }
  .rs__list li { grid-template-columns: 4rem minmax(0, 1fr); }
}

/* ---------------------------------------------------------------------
   Book the call: how far away is your day.
   --------------------------------------------------------------------- */
.book { padding: clamp(1.6rem, 3.5vw, 3rem) 0 clamp(2rem, 4vw, 3.5rem); }
.book__in { display: grid; gap: 2rem 3.5rem; }
@media (min-width: 1000px) { .book__in { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); grid-template-areas: "lead steps" "lead2 steps"; } .book__lead { grid-area: lead; } .book__steps { grid-area: steps; } .book__lead2 { grid-area: lead2; } }
.book__lead .stand { color: var(--ink-2); margin-top: 1rem; max-width: 34ch; }
.book__steps { padding: clamp(1.2rem, 3vw, 2rem); border-radius: 12px; background: var(--wine); color: #F9E3AE; --s-ink: #F9E3AE; --s-ink-2: #E2C9A6; }
.book__steps .label { margin: 0 0 1rem; color: var(--s-ink-2); }
.book__steps .steps li::before { border-color: #F9E3AE; }
.book__steps .steps span { color: var(--s-ink-2); }
.book__steps .call-note { color: var(--s-ink-2); }
.book__steps :focus-visible { outline-color: #F9E3AE; }
.book__go { margin: 1.4rem 0 0; }
.btn-call--big { min-height: 60px; font-size: 1.1rem; padding: 0 1.6rem; border-color: var(--call); }
.book__after .label { margin: 1.4rem 0 .5rem; color: #E2C9A6; }
.book__after p { margin: 0; max-width: 46ch; }
.routes__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.routes__list a { display: inline-flex; align-items: center; gap: .45rem; min-height: 48px; padding: 0 1rem; border-radius: 999px; border: 1.5px solid currentColor; font: 600 .95rem/1 var(--f-app); text-decoration: none; }
.routes__list svg { width: 16px; height: 16px; }
.lead { margin-top: 1.6rem; padding: 1.1rem 1.15rem; border-radius: 12px; background: var(--raised); border: 1px solid var(--hair); }
.lead .h-3 { margin: 0 0 .7rem; }
.lead .seg { margin-bottom: 1rem; background: var(--s-paper); }
.lead .seg button[aria-pressed="true"] { background: var(--wine); color: #F9E3AE; }
.lead__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; }
.lead__list li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .1rem 1rem; align-items: center; padding: .65rem .2rem; border-bottom: 1px solid var(--hair); transition: opacity var(--t-hover) var(--ease-place); }
.lead__n { font: 700 1rem/1.25 var(--f-app); }
.lead__w { font: 400 .95rem/1.35 var(--f-read); color: var(--ink-2); grid-column: 1; }
.lead__fit { grid-column: 2; grid-row: 1 / 3; display: none; align-items: center; gap: .3rem; padding: .3rem .6rem; border-radius: 999px; font: 700 .75rem/1 var(--f-app); letter-spacing: .04em; }
.lead__fit svg { width: 14px; height: 14px; }
.lead[data-state] .lead__fit { display: inline-flex; }
.lead__list li.is-fit .lead__fit--yes { background: var(--wine); color: #F9E3AE; }
.lead__list li.is-fit .lead__fit--no, .lead__list li:not(.is-fit) .lead__fit--yes { display: none; }
.lead__list li:not(.is-fit) .lead__fit--no { border: 1.5px solid var(--rule); color: var(--ink-2); }
.lead[data-state] .lead__list li:not(.is-fit) { opacity: .7; }
.lead__note { margin: .8rem 0 0; }
html:not(.lt-js) .lead .seg { display: none; }

/* 404. */
.lost { padding: clamp(1.6rem, 4vw, 3.5rem) 0; }
.lost__in { display: grid; gap: 2rem 3.5rem; align-items: start; }
@media (min-width: 1000px) { .lost__in { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.lost .stand { color: var(--ink-2); margin: 1rem 0 1.4rem; max-width: 34ch; }
.lost__go { display: flex; flex-wrap: wrap; gap: .6rem; }
.lost__plan { padding: 1rem 1.2rem; border-radius: 12px; background: var(--raised); border: 1px solid var(--hair); }
.lost__seal { width: 120px; height: 120px; color: var(--plum); transform: rotate(-8deg); margin-bottom: 1rem; }

/* The dock at 390: the shorter call keeps "Pages" whole (site-local override). */
@media (max-width: 419px) { .dock .call-long { display: none; } .dock .call-short { display: inline; } .dock .btn-call { padding: 0 1rem; } }
@media (max-width: 599px) {
  .rs__pkgs .seg { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-radius: 14px; }
  .rs__pkgs .seg button { min-height: 48px; padding: 0 .35rem; border-radius: 10px; font-size: .8125rem; line-height: 1.15; }
  .guestq .seg { border-radius: 14px; }
}
.sg-short { display: none; }
@media (max-width: 899px) { .sg-long { display: none; } .sg-short { display: inline; } }
