/* ============================================================
   THE SITE — shared by the front page (below the glass countdown
   hero) and /trip. Kaylee's brief (2026-09-04): the bones of a
   classic stacked wedding site (photo header, flat blocks of
   centred serif copy, clean cards), with more drama and lace in
   the Pride & Prejudice register and a gothic, Edinburgh mood:
   dark stone, ivy, candlelight veils on the photographs, lace
   from the ornament library, copperplate script for the titles.
   Lavender leads; plum is the ink and the dark. No em dashes in
   the copy (Kaylee). Everything is scoped under `.site` so it
   cannot collide with the hero's own tokens.
   Load order: glass.css → ornaments.css → wedding.css.
   ============================================================ */
.site {
  --serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --sans: 'Hanken Grotesk', system-ui, -apple-system, sans-serif;
  --script: 'Pinyon Script', 'Cormorant Garamond', cursive;
  --accent: #cbb1ec;
  --accent-deep: #6f52a8;
  --plum: #241a2e;
  --ink: #241a2e;
  --ink-soft: #4a3d58;
  --ink-faint: #6e6180;
  --paper: #faf7fd;
  --paper-2: #f3edf9;
  --stone: #1b1424;                 /* the dark: castle stone at dusk */
  --card: #ffffff;
  --line: rgba(36,26,46,0.12);
  --on-dark: #fdfbff;
  --on-dark-soft: rgba(253,251,255,0.88);
  --ease: cubic-bezier(.22,.61,.36,1);
  --maxw: 720px;
  --col: clamp(18px, 5vw, 28px);
  --nav-h: calc(46px + env(safe-area-inset-top, 0px));   /* phones: overridden below, the nav wraps to two rows */
  /* the florals (Kaylee's references, 2026-09-04, "lean into the purples and blues"): delphinium and
     dusty blue, pale sky, lilac sweet pea and lavender, orchid magenta, wine and aubergine, white
     ranunculus cream. No warm or yellow tones anywhere (Kaylee: "remove the orange"); the coral, peach,
     butter and chartreuse values stay defined only so nothing references an undefined token. Lavender
     leads; plum is the ink. --orchid-ink is the purple dark enough for small text on paper. */
  --sky: #c7d6f5; --periwinkle: #9fb0e8; --dusty-blue: #7f95d1; --delphinium: #5b6fc4;
  --lilac: #c9a2e6; --lilac-pale: #dcc9f2; --orchid: #b45fa8; --orchid-ink: #8b3f8e; --wine: #6a2a4c;
  --coral: #ef7d63; --coral-ink: #b9462d; --peach: #f6a98c; --pink: #ef8fb0; --butter: #f2c27e; --blush: #f7c9cf;
  --sage: #9fb59a; --chartreuse: #c9d88a; --cream: #f8f1e6;
  /* the bouquet, in order: pale sky, dusty blue, lilac, lavender, orchid, wine */
  --bouquet: linear-gradient(90deg, #c7d6f5 0%, #9fb0e8 20%, #c9a2e6 42%, #cbb1ec 58%, #b45fa8 80%, #6a2a4c 100%);
  --bouquet-bright: linear-gradient(90deg, #c7d6f5 0%, #b9c4f0 25%, #dcc9f2 50%, #d98fd0 78%, #b45fa8 100%);
  --bouquet-soft: linear-gradient(90deg, #c7d6f5, #9fb0e8, #c9a2e6, #dcc9f2, #b45fa8, #6a2a4c);

  font-family: var(--sans); color: var(--ink); line-height: 1.6;
  -webkit-font-smoothing: antialiased; position: relative; z-index: 1;
}
.site *, .site *::before, .site *::after { box-sizing: border-box; }
.site img { max-width: 100%; display: block; }
.site a { color: var(--accent-deep); }
.site p { margin: 0 0 14px; }
.site p:last-child { margin-bottom: 0; }
.site strong { font-weight: 600; }
.site h1, .site h2, .site h3 { margin: 0; font-weight: 400; }

/* ---------- type ---------- */
.site .script { font-family: var(--script); font-weight: 400; letter-spacing: 0; }
.site .eyebrow {
  font-family: var(--serif); text-transform: uppercase; letter-spacing: .32em; font-weight: 600;
  font-size: clamp(12px, 3.2vw, 14px); color: var(--orchid-ink); margin: 0 0 14px;
}
.site .block h2.script, .site .page-head h2.script { font-size: clamp(48px, 11.5vw, 80px); line-height: 1.05; color: var(--plum); margin: 0 0 6px; }
.site .prose { font-family: var(--serif); font-weight: 500; font-size: clamp(19px, 5vw, 22px); line-height: 1.62; color: var(--ink); }
.site .prose p { margin: 0 0 16px; }
.site .prose p:last-child { margin: 0; }
.site .lede { font-family: var(--serif); font-weight: 500; font-size: clamp(20px, 5.2vw, 23px); line-height: 1.55; color: var(--ink); max-width: 34em; margin: 0 auto; }
.site .fine { font-family: var(--sans); font-size: 13.5px; line-height: 1.55; color: var(--ink-faint); }

/* the calligraphic underline (ornaments.js draws it into svg.orn-swash) */
.site svg.orn-swash { width: min(200px, 60%); margin: 4px auto 22px; }
.site .on-paper svg.orn-swash { filter: drop-shadow(0 1px 1px rgba(36,26,46,0.25)) saturate(1.4); }

/* ---------- blocks ---------- */
.site .block { padding: clamp(60px, 12vh, 112px) var(--col); text-align: center; }
.site .block > .inner { max-width: var(--maxw); margin: 0 auto; }
.site .block--paper { background: var(--paper); }
.site .block--paper2 { background: var(--paper-2); }
.site .block--stone { background:
    radial-gradient(80% 60% at 6% 0%, rgba(120,40,100,0.46), transparent 58%),
    radial-gradient(70% 55% at 100% 100%, rgba(70,90,190,0.42), transparent 60%),
    var(--stone); color: var(--on-dark); }
.site .block--stone h2.script { color: var(--lilac-pale); background: var(--bouquet-bright); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; display: inline-block; padding: .12em .45em .42em; margin: -.12em -.45em calc(6px - .42em); }
.site .block--stone .eyebrow { color: var(--lilac); }
.site .block--stone .prose, .site .block--stone .lede { color: var(--on-dark-soft); }
.site .block--stone .fine { color: var(--on-dark-soft); }

/* thistle divider: crisp lavender ink on a hairline (Scotland, in one gesture) */
.site .divider { display: flex; align-items: center; justify-content: center; gap: 16px; margin: 30px auto; max-width: 320px; }
.site .divider::before, .site .divider::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, transparent, var(--dusty-blue)); }
.site .divider::after { background: linear-gradient(90deg, var(--lilac), transparent); }
.site .divider svg { width: 30px; height: 40px; flex: 0 0 auto; }
.site .block--stone .divider::before { background: linear-gradient(90deg, transparent, var(--periwinkle)); }
.site .block--stone .divider::after { background: linear-gradient(90deg, var(--lilac), transparent); }
.site .divider svg { stroke: var(--orchid); }
.site .block--stone .divider svg { stroke: var(--lilac); }

/* ---------- invitation ---------- */
.site .invite { position: relative; overflow: hidden; }
.site .invite .prose { max-width: 32em; margin: 0 auto; }
.site .invite .sign-off { margin-top: 26px; font-family: var(--serif); font-style: italic; font-size: 19px; color: var(--ink-soft); }
.site .invite .signature { font-family: var(--script); font-size: clamp(42px, 9.5vw, 60px); line-height: 1.1; color: var(--plum); margin-top: 4px; }
.site .invite .sprig { position: absolute; right: -28px; bottom: -22px; width: clamp(150px, 26vw, 250px); opacity: .85; pointer-events: none; }
@media (max-width: 640px) { .site .invite { padding-bottom: 150px; } .site .invite .sprig { right: -12px; bottom: -14px; } }

/* ---------- photo bands (drama: heavier veils, a vignette, cooler colour) ---------- */
.site .photo-band { position: relative; min-height: clamp(480px, 78vh, 760px); display: flex; align-items: flex-end; overflow: hidden; background: var(--stone); }
.site .photo-band > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.82) contrast(1.04); }
.site .photo-band .veil {
  position: absolute; inset: 0;
  background:
    radial-gradient(120% 90% at 50% 40%, transparent 45%, rgba(20,12,30,0.55) 100%),
    linear-gradient(180deg, rgba(20,12,30,0.22), rgba(20,12,30,0.06) 36%, rgba(52,28,80,0.62) 78%, rgba(40,20,64,0.84));
}
.site .photo-band .cap { position: relative; width: 100%; max-width: var(--maxw); margin: 0 auto; padding: 40px var(--col) clamp(44px, 8vh, 72px); text-align: center; color: #fff; }
.site .photo-band .cap .eyebrow { color: #fff; text-shadow: 0 1px 12px rgba(12,6,22,0.65); margin-bottom: 10px; }
.site .photo-band .cap .eyebrow .amp { font-family: "Playfair Display", var(--serif); text-transform: none; font-style: italic; letter-spacing: 0; color: var(--sky); font-size: 1.35em; line-height: 0; vertical-align: -.04em; margin: 0 .1em; }
.site .photo-band .cap h2 { font-family: var(--script); font-size: clamp(50px, 12vw, 84px); line-height: 1.05; color: #fff; text-shadow: 0 2px 26px rgba(8,4,18,0.6); margin: 0 0 10px; }
.site .photo-band .cap p { font-family: var(--serif); font-size: clamp(18px, 4.8vw, 21px); color: rgba(255,255,255,0.92); text-shadow: 0 1px 14px rgba(10,5,20,0.75); max-width: 30em; margin: 0 auto; }
.site .photo-band--tall { min-height: clamp(580px, 94svh, 940px); }
.site .photo-band--tall .cap h2 { font-size: clamp(58px, 13.5vw, 100px); margin-bottom: 4px; }
.site .photo-band--centre { align-items: center; }
.site .photo-band--centre .cap { padding-top: clamp(70px, 12vh, 110px); padding-bottom: clamp(70px, 12vh, 110px); }

/* ---------- the day: dark glass fact card, dressed in lace (ornaments.js) ---------- */
.site .fact-wrap { max-width: 560px; margin: 0 auto; }
.site .factblock { text-align: center; }   /* --glass-pad comes from ornaments.css (.factblock.orn-dressed): room for the lace band */
.site .factblock .big { font-family: var(--serif); font-size: clamp(30px, 8.2vw, 44px); font-weight: 600; line-height: 1.1; color: #fff; margin: 0 0 6px; font-variant-numeric: lining-nums; font-feature-settings: "lnum"; }
.site .factblock .fb-time { font-family: var(--sans); font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: var(--accent); margin: 0 0 10px; }
.site .factblock.orn-dressed .fb-time { font-size: 11px; letter-spacing: .24em; }   /* over ornaments.css: keep the label quieter than the date */
.site .factblock .fb-venue { font-family: var(--serif); font-size: clamp(18px, 4.8vw, 22px); color: #e9e0f5; margin: 0; line-height: 1.4; }
.site .factblock .fb-venue strong { color: #fff; font-weight: 600; }
.site .factblock .hair--full { height: 1px; width: 100%; margin: 26px auto; border: 0; background: rgba(203,177,236,0.24); }
.site .factblock .fb-actions { display: flex; flex-direction: column; align-items: center; gap: 12px; margin: 24px 0 2px; }
.site .factblock .fb-cal {
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--sans); font-size: 12.5px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase;
  color: #fff; text-decoration: none; padding: 13px 26px; border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.42); background: rgba(255,255,255,0.07);
  transition: background .18s var(--ease), border-color .18s var(--ease), transform .12s var(--ease);
}
.site .factblock .fb-cal:hover { background: rgba(255,255,255,0.15); border-color: rgba(255,255,255,0.66); transform: translateY(-1px); }
.site .factblock .fb-cal--fill { background: var(--accent); color: var(--plum); border-color: transparent; }
.site .factblock .fb-cal--fill:hover { background: #dccbf3; color: var(--plum); }
.site .factblock .fb-cal-alt { font-family: var(--sans); font-size: 12.5px; letter-spacing: 0.02em; color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.site .factblock .fine { font-family: var(--sans); color: #cdbce2; font-size: 13px; line-height: 1.55; margin: 0 auto; max-width: 48ch; }
.site .factblock .fine strong { color: #fff; font-weight: 600; }

/* ---------- details grid (what to wear · the day · the mood · the castle · gifts) ---------- */
.site .details { text-align: left; }
.site .details > .inner { max-width: 860px; }
.site .details .head { text-align: center; margin-bottom: clamp(26px, 5vh, 44px); }
.site .dl { display: grid; gap: 18px; grid-template-columns: 1fr; }
@media (min-width: 720px) { .site .dl { grid-template-columns: 1fr 1fr; } .site .dl .wide { grid-column: 1 / -1; } }
.site .d { position: relative; overflow: hidden; padding: clamp(22px, 5vw, 30px); border-radius: 16px; background: rgba(255,255,255,0.045); border: 1px solid rgba(203,177,236,0.16); box-shadow: inset 0 1px 0 rgba(255,255,255,0.06); }
.site .d::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--bouquet); opacity: .9; }
.site .d h3 { font-family: var(--script); font-size: clamp(34px, 8vw, 42px); line-height: 1.05; color: var(--lilac-pale); margin: 0 0 10px; }
.site .d p { font-family: var(--serif); font-weight: 500; font-size: clamp(18px, 4.7vw, 20px); line-height: 1.65; color: var(--on-dark-soft); margin: 0 0 10px; }
.site .d p strong { color: var(--on-dark); font-weight: 600; }
.site .d p:last-child { margin: 0; }
.site .d a { color: var(--accent); text-decoration: none; border-bottom: 1px solid rgba(203,177,236,0.45); }
.site .d a:hover { color: #fff; border-bottom-color: #fff; }
.site .d .soon { display: inline-block; margin-bottom: 8px; font-family: var(--sans); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; font-weight: 600; color: var(--orchid-ink); background: rgba(201,162,230,0.24); padding: 5px 10px; border-radius: 999px; }
.site .block--stone .d .soon { color: var(--sky); }

/* ---------- polaroids: a grid (nothing cut off at the edges), gently tilted ---------- */
.site .polas {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(14px, 4vw, 22px);
  max-width: 1120px; margin: 18px auto 0; padding: 10px var(--col) 8px;
}
.site .pola {
  margin: 0; background: #fff; padding: 9px 9px 14px; border-radius: 4px;
  box-shadow: 0 20px 44px -22px rgba(36,26,46,0.45); transform: rotate(var(--rot, 0deg));
}
.site .pola:nth-child(odd) { --rot: -1.8deg; }
.site .pola:nth-child(even) { --rot: 1.6deg; }
.site .pola:last-child:nth-child(odd) { grid-column: 1 / -1; max-width: 50%; margin: 0 auto; --rot: -1.2deg; }
.site .pola img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 2px; }
@media (min-width: 720px) {
  .site .polas { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; }
  .site .pola:last-child:nth-child(odd) { grid-column: auto; max-width: none; margin: 0; }
}

/* ---------- buttons ---------- */
.site .btn-line {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--sans); font-size: 12.5px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase;
  color: var(--plum); text-decoration: none; padding: 13px 26px; border-radius: 999px;
  border: 1px solid rgba(36,26,46,0.32); background: transparent;
  transition: background .18s var(--ease), border-color .18s var(--ease), transform .12s var(--ease);
}
.site .btn-line:hover { background: rgba(203,177,236,0.22); border-color: var(--accent-deep); transform: translateY(-1px); }
.site .btn-fill { background: linear-gradient(135deg, var(--orchid), var(--delphinium)); color: #fff; border-color: transparent; box-shadow: 0 12px 28px -14px rgba(91,111,196,0.8); }
.site .btn-fill:hover { background: linear-gradient(135deg, #a3509a, #4f62b8); border-color: transparent; }

/* ---------- page heads (/trip) ---------- */
.site .view--tab { padding-top: var(--nav-h); }
@media (max-width: 640px) { .site { --nav-h: calc(78px + env(safe-area-inset-top, 0px)); } }
.site .page-head { padding: clamp(46px, 9vh, 84px) var(--col) clamp(30px, 6vh, 48px); text-align: center; background:
    radial-gradient(90% 70% at 8% 0%, rgba(159,176,232,0.46), transparent 58%),
    radial-gradient(80% 60% at 96% 100%, rgba(201,162,230,0.44), transparent 58%),
    radial-gradient(60% 50% at 60% 30%, rgba(180,95,168,0.14), transparent 60%),
    var(--paper); }
.site .page-head > .inner { max-width: var(--maxw); margin: 0 auto; }

/* ---------- cards ---------- */
.site .cards { background: linear-gradient(180deg, #f1edf9, #edf0fa 55%, #f2ecf8); padding: clamp(28px, 5vh, 48px) var(--col) clamp(56px, 10vh, 96px); }
.site .cards > .inner { max-width: var(--maxw); margin: 0 auto; display: grid; gap: 18px; }
.site .card { position: relative; overflow: hidden; background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: clamp(22px, 5.5vw, 34px); box-shadow: 0 18px 44px -30px rgba(36,26,46,0.35); }
.site .card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: var(--bouquet); }
.site .card:nth-child(2n)::before { background: linear-gradient(90deg, #6a2a4c, #b45fa8, #c9a2e6, #c7d6f5); }
.site .card:nth-child(3n)::before { background: linear-gradient(90deg, #dcc9f2, #c9a2e6, #7f95d1, #5b6fc4); }
.site .kicker-ink { display: inline-flex; align-items: center; gap: 9px; margin: 0 0 12px; font-family: var(--sans); text-transform: uppercase; letter-spacing: .22em; font-size: 12px; font-weight: 600; color: var(--accent-deep); }
.site .kicker-ink::before { content: ""; width: 22px; height: 3px; border-radius: 2px; background: var(--bouquet-bright); }
.site .kicker-ink.peri::before { background: var(--periwinkle); }
.site .kicker-ink.lilac::before { background: var(--lilac); }
.site .kicker-ink.butter::before { background: var(--sky); }
.site .kicker-ink.coral::before { background: var(--orchid); }
.site .places { list-style: none; margin: 0; padding: 0; }
.site .place { padding: 18px 0; border-top: 1px solid var(--line); }
.site .place:first-child { border-top: 0; padding-top: 0; }
.site .place:last-child { padding-bottom: 0; }
.site .place-name { font-family: var(--serif); font-weight: 600; font-size: clamp(21px, 5.2vw, 24px); line-height: 1.15; color: var(--plum); }
.site .place--featured .place-name { font-size: clamp(26px, 6.6vw, 31px); }
.site .place-meta { font-family: var(--sans); font-size: 12.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--orchid-ink); margin: 5px 0 0; }
.site .place-note { margin: 7px 0 0; color: var(--ink-soft); font-size: 16px; line-height: 1.6; }
.site .place-link { display: inline-block; margin-top: 9px; font-family: var(--sans); font-size: 13.5px; font-weight: 600; color: var(--accent-deep); text-decoration: none; border-bottom: 1px solid rgba(111,82,168,0.35); padding-bottom: 1px; }
.site .place-link:hover { color: var(--plum); border-bottom-color: var(--plum); }
.site .guide-prose { margin: 0; color: var(--ink); font-size: 16.5px; line-height: 1.65; }
.site .guide-fine { margin: 16px 0 0; font-size: 13.5px; color: var(--ink-faint); line-height: 1.55; }
.site .card .btn-fill { margin-top: 14px; }
.site .map { margin: 18px 0 0; }
.site .map img { width: 100%; border-radius: 12px; border: 1px solid var(--line); background: #fff; }
.site .map figcaption { margin-top: 10px; font-size: 13.5px; color: var(--ink-faint); line-height: 1.55; text-align: center; }
.site .map figcaption a { color: var(--accent-deep); }
.site .map--live iframe { display: block; width: 100%; aspect-ratio: 4 / 3; border: 1px solid var(--line); border-radius: 12px; background: var(--paper-2); }
.site .cal-links { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }
.site .d .cal-links .btn-line { color: #fff; border-color: rgba(255,255,255,0.45); }
.site .d .cal-links .btn-fill { border-color: transparent; }

/* ---------- the form (RSVP) ---------- */
.site .form-card { text-align: left; }
.site .form-card figure { margin: 0 0 22px; border-radius: 12px; overflow: hidden; }
.site .field { margin: 0 0 20px; }
.site .field > label, .site legend { display: block; font-family: var(--sans); font-size: 15px; font-weight: 600; color: var(--ink); margin: 0 0 8px; }
.site .field .hint { font-weight: 400; color: var(--ink-faint); }
.site fieldset { border: 0; padding: 0; margin: 0 0 20px; min-width: 0; }
.site input[type="text"], .site input[type="email"], .site input[type="number"] {
  width: 100%; font: 500 16px/1.3 var(--sans); color: var(--ink);
  padding: 14px 16px; border-radius: 12px; border: 1px solid rgba(36,26,46,0.18); background: #fff;
  outline: none; transition: border-color .18s var(--ease), box-shadow .18s var(--ease);
}
.site input:focus, .site select:focus { border-color: var(--delphinium); box-shadow: 0 0 0 3px rgba(159,176,232,0.4); }
.site select, .site input[type="date"] {
  width: 100%; font: 500 16px/1.3 var(--sans); color: var(--ink); -webkit-appearance: none; appearance: none;
  padding: 13px 16px; border-radius: 12px; border: 1px solid rgba(36,26,46,0.18); background: #fff; outline: none; min-height: 50px;
}
.site select { background-image: linear-gradient(45deg, transparent 50%, var(--accent-deep) 50%), linear-gradient(135deg, var(--accent-deep) 50%, transparent 50%); background-position: calc(100% - 20px) 55%, calc(100% - 14px) 55%; background-size: 6px 6px; background-repeat: no-repeat; padding-right: 40px; }
.site .search { margin-top: 16px; }
.site .search .field-row { margin-bottom: 4px; }
@media (max-width: 480px) { .site .search .field-row { grid-template-columns: 1fr; gap: 0; } .site .search .field-row .field { margin: 0 0 16px; } }
.site input[type="date"] { min-width: 0; }
.site .search .btn-fill { margin-top: 14px; }
.site input::placeholder { color: #a99bb6; }
.site .radio-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.site .radio-pill { position: relative; display: flex; align-items: center; justify-content: center; padding: 13px 8px; border-radius: 12px; border: 1px solid rgba(36,26,46,0.18); background: #fff; cursor: pointer; transition: border-color .18s var(--ease), background .18s var(--ease); }
.site .radio-pill:hover { border-color: var(--accent); }
.site .radio-pill .txt { font-size: 14px; font-weight: 600; color: var(--ink); }
.site .radio-pill input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.site .radio-pill:has(input:checked) { background: rgba(201,162,230,0.32); border-color: var(--orchid); }
.site .radio-pill:has(input:focus-visible) { outline: 2px solid var(--accent-deep); outline-offset: 2px; }
.site .field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.site .field-row .field { margin: 0; }
.site .consent { font-size: 14px; color: var(--ink-soft); line-height: 1.55; margin: 10px 0 0; padding: 13px 15px; background: rgba(203,177,236,0.16); border-radius: 12px; }
.site .cf-turnstile { margin: 4px 0 0; }
.site .btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  width: 100%; margin-top: 22px; font-family: var(--sans); font-size: 16px; font-weight: 600; letter-spacing: .01em;
  color: #fff; cursor: pointer; padding: 16px 22px; border-radius: 14px; border: 0;
  background: linear-gradient(135deg, var(--orchid), var(--delphinium) 70%, var(--dusty-blue));
  box-shadow: 0 16px 34px -14px rgba(91,111,196,0.75), inset 0 1px 0 rgba(255,255,255,0.28);
  transition: transform .12s var(--ease), box-shadow .18s var(--ease);
}
.site .btn:hover { transform: translateY(-1px); }
.site .btn:active { transform: translateY(0); }
.site .btn:focus-visible { outline: 2px solid var(--accent-deep); outline-offset: 3px; }
.site .btn[disabled] { opacity: .7; cursor: default; }
.site .form-status { margin: 14px 0 0; min-height: 1.2em; font-size: 14.5px; color: var(--ink-soft); text-align: center; }
.site .form-status.ok { color: #4b7c56; font-weight: 600; }
.site .form-status.err { color: #b3432f; font-weight: 600; }
.site .form-hint { margin: 12px 0 0; text-align: center; font-size: 13.5px; color: var(--ink-faint); }
.site .honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.site .est-reveal { margin-top: 20px; padding: 22px; border-radius: 14px; background: var(--paper-2); border: 1px solid var(--line); }
.site .est-reveal .est-kicker { font-family: var(--sans); text-transform: uppercase; letter-spacing: .2em; font-size: 12px; font-weight: 700; color: var(--accent-deep); margin: 0 0 4px; }
.site .est-reveal h3 { font-family: var(--serif); font-weight: 600; font-size: clamp(20px, 5vw, 24px); margin: 0 0 14px; }
.site .est-lines { display: grid; gap: 12px; }
.site .est-line { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.site .est-line:last-of-type { border-bottom: 0; padding-bottom: 0; }
.site .est-line .k { font-weight: 600; color: var(--ink); font-size: 15px; }
.site .est-line .k small { display: block; font-weight: 400; color: var(--ink-faint); font-size: 12.5px; }
.site .est-line .v { font-family: var(--serif); font-weight: 600; font-size: clamp(19px, 5vw, 23px); color: var(--plum); white-space: nowrap; font-variant-numeric: lining-nums; font-feature-settings: "lnum"; }
.site .est-generic { font-size: 16px; color: var(--ink-soft); margin: 0; }
.site .est-fine { margin: 16px 0 0; font-size: 13.5px; color: var(--ink-faint); line-height: 1.55; }

/* ---------- footer ---------- */
.site .site-foot { background:
    radial-gradient(70% 70% at 0% 100%, rgba(120,40,100,0.40), transparent 60%),
    radial-gradient(70% 70% at 100% 0%, rgba(70,90,190,0.38), transparent 60%),
    var(--stone); color: var(--on-dark); text-align: center; padding: clamp(48px, 9vh, 84px) var(--col); position: relative; }
.site .site-foot::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--bouquet-soft); }
.site .site-foot .names { font-family: var(--script); font-size: clamp(44px, 10vw, 64px); line-height: 1.05; color: var(--lilac-pale); background: var(--bouquet-bright); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; display: inline-block; padding: .12em .45em .42em; margin: -.12em -.45em calc(8px - .42em); }
.site .site-foot .names .amp { -webkit-text-fill-color: currentColor; color: var(--sky); font-family: "Playfair Display", var(--serif); font-style: italic; font-size: .62em; vertical-align: .1em; }
.site .site-foot .fine { color: var(--on-dark-soft); }
.site .site-foot .fine span { display: block; }

.site a:focus-visible, .site button:focus-visible, .site [tabindex]:focus-visible { outline: 2px solid var(--accent-deep); outline-offset: 3px; }

/* ---------- gentle reveal (site.js; never on an ancestor of a glass panel) ---------- */
.site .reveal { opacity: 0; transform: translateY(16px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.site .reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .site .reveal { opacity: 1; transform: none; transition: none; } }
@media (max-width: 360px) { .site .radio-pill { padding: 12px 6px; } }
