/* Hallmark · genre: atmospheric · macrostructure: Photographic Fold (home) + Long Document + Field Guide · theme: custom (vibe: "black room, one cyan thread, real floor") · paper oklch(13% 0.009 265) · accent oklch(87% 0.12 210) cyan · Sora 800 + Sora 400 · nav: N9 · footer: Ft5 · design-system: design.md · designed-as-app */
/* Hallmark · pre-emit critique: P5 H4 E4 S5 R4 V4 · slop: 58/58 no · contrast: pass (40-41) · honest: pass (46) · chrome: pass (47) · tokens: pass (48) · responsive: pass (49) · icons: pass (30) · mobile: pass (34, 49, 50-57) */

/* djseanchi.com redesign stylesheet. Everything is scoped under .rd (on <body> or <main>).
   Nothing here targets #book, #hero-datecheck, #dj-cal, .djc-*, .dc-*, [data-leadform], .field,
   .flabel, .chip, or any EXCLUDE page. Mobile first. No external requests. Fonts are the
   site's existing self-hosted @font-face rules (fonts/fonts.css), not redeclared here. */

/* ============================================================
   1. TOKENS  (this block is the tokens.css fragment for D/tokens.css)
   Existing dist/tokens.css names are kept; --rd-* names are added.
   ============================================================ */
.rd{
  /* brand hex is canonical (dist/brand/_brand.css); OKLCH equivalents in design.md section 1 */
  --rd-paper:#06070a;
  --rd-paper-2:#0a0d12;
  --rd-paper-3:#10151d;
  --rd-ink:#f4f6fa;
  --rd-ink-2:rgba(244,246,250,0.78);
  --rd-ink-3:rgba(244,246,250,0.62);
  --rd-rule:rgba(244,246,250,0.12);
  --rd-accent:#67e8ff;
  --rd-accent-blue:#2b8bff;
  --rd-accent-deep:#1140d8;
  --rd-accent-ink:#06070a;
  --rd-focus:#67e8ff;
  --rd-grad:linear-gradient(135deg,#67e8ff,#2b8bff 50%,#1140d8);
  --rd-btn:linear-gradient(135deg,#67e8ff,#2b8bff);
  --rd-scrim:linear-gradient(to top,#06070a 0%,rgba(6,7,10,0.55) 30%,transparent 62%);
  --rd-bloom:radial-gradient(60% 50% at 70% 20%,rgba(17,64,216,0.22),transparent 70%);
  --rd-glow:0 0 0 1px rgba(103,232,255,0.35),0 0 24px rgba(43,139,255,0.35);
  --rd-contact:0 24px 48px -24px rgba(0,0,0,0.85);
  --rd-selection:rgba(43,139,255,0.32);

  --rd-font-display:'Sora',ui-sans-serif,system-ui,sans-serif;
  --rd-font-body:'Sora',ui-sans-serif,system-ui,sans-serif;
  --rd-font-outlier:'JetBrains Mono',ui-monospace,monospace;

  --rd-t-display:clamp(2.25rem,1.2rem + 4.4vw,4rem);      /* 36 to 64 */
  --rd-t-h2:clamp(1.75rem,1.1rem + 2.6vw,2.75rem);         /* 28 to 44 */
  --rd-t-h3:clamp(1.375rem,1.15rem + 0.9vw,1.75rem);       /* 22 to 28 */
  --rd-t-lede:clamp(1.1875rem,1.1rem + 0.4vw,1.375rem);    /* 19 to 22 */
  --rd-t-body:clamp(1.0625rem,1.03rem + 0.15vw,1.125rem);  /* 17 to 18 */
  --rd-t-meta:1rem;                                         /* 16 */
  --rd-t-price:clamp(1.75rem,1.4rem + 1.4vw,2.25rem);      /* 28 to 36 */
  --rd-t-btn:1rem;
  --rd-lh-display:1.0; --rd-lh-h2:1.05; --rd-lh-h3:1.15; --rd-lh-lede:1.4; --rd-lh-body:1.6; --rd-lh-meta:1.5;
  --rd-tr-display:-0.035em; --rd-tr-h2:-0.03em; --rd-tr-h3:-0.015em; --rd-tr-lede:-0.005em;
  --rd-measure:64ch;

  --rd-s-1:4px; --rd-s-2:8px; --rd-s-3:12px; --rd-s-4:16px; --rd-s-5:24px;
  --rd-s-6:32px; --rd-s-7:48px; --rd-s-8:64px; --rd-s-9:96px; --rd-s-10:128px;
  --rd-section:clamp(64px,4rem + 4vw,128px);
  --rd-gutter:16px;
  --rd-content:1200px;
  --rd-shell:1440px;
  --rd-nav-h:64px;

  --rd-ease-out:cubic-bezier(0.16,1,0.3,1);
  --rd-ease-in:cubic-bezier(0.7,0,0.84,0);
  --rd-ease-in-out:cubic-bezier(0.65,0,0.35,1);
  --rd-dur-micro:120ms; --rd-dur-short:220ms; --rd-dur-long:420ms; --rd-dur-max:600ms;

  --rd-r-btn:8px; --rd-r-input:8px; --rd-r-paper:4px;

  /* backward-compatible names from dist/tokens.css (venue guides keep working) */
  --color-paper:var(--rd-paper); --color-paper-2:var(--rd-paper-2); --color-paper-3:var(--rd-paper-3);
  --color-ink:var(--rd-ink); --color-muted:var(--rd-ink-2); --color-faint:var(--rd-ink-3);
  --color-rule:var(--rd-rule); --color-accent:var(--rd-accent); --color-accent-deep:var(--rd-accent-blue);
  --color-focus:var(--rd-focus);
  --font-display:var(--rd-font-display); --font-body:var(--rd-font-body); --font-outlier:var(--rd-font-outlier);
  --space-3xs:var(--rd-s-1); --space-2xs:var(--rd-s-2); --space-xs:var(--rd-s-3); --space-sm:var(--rd-s-4);
  --space-md:var(--rd-s-5); --space-lg:var(--rd-s-6); --space-xl:var(--rd-s-7); --space-2xl:var(--rd-s-8);
  --space-3xl:var(--rd-s-9); --space-4xl:var(--rd-s-10);
  --text-md:var(--rd-t-body); --text-lg:var(--rd-t-lede); --text-xl:var(--rd-t-h3); --text-2xl:var(--rd-t-h2);
  --text-display:var(--rd-t-display);
  --ease-out:var(--rd-ease-out); --ease-in:var(--rd-ease-in); --ease-in-out:var(--rd-ease-in-out);
  --dur-micro:var(--rd-dur-micro); --dur-short:var(--rd-dur-short); --dur-long:var(--rd-dur-long);
  --radius-sm:var(--rd-r-btn); --page-gutter:var(--rd-gutter); --content-max:var(--rd-content); --reading-max:var(--rd-measure);
}
@media (min-width:768px){ .rd{ --rd-gutter:24px; } }
@media (min-width:1024px){ .rd{ --rd-gutter:48px; } }

/* ============================================================
   2. BASE (scoped)
   ============================================================ */
html:has(> body.rd),body.rd{overflow-x:clip;}
.rd{background:var(--rd-paper);color:var(--rd-ink);font-family:var(--rd-font-body);font-size:var(--rd-t-body);line-height:var(--rd-lh-body);-webkit-font-smoothing:antialiased;}
.rd ::selection{background:var(--rd-selection);color:var(--rd-ink);}
/* box-sizing only on rd- classes, so no rule reaches the frozen booking markup */
.rd [class^="rd-"],.rd [class*=" rd-"],.rd [class^="rd-"]::before,.rd [class^="rd-"]::after{box-sizing:border-box;}
.rd main{display:block;}
.rd img,.rd video{display:block;max-width:100%;height:auto;}
.rd a{color:inherit;text-decoration-color:var(--rd-accent);text-decoration-thickness:2px;text-underline-offset:3px;transition:color var(--rd-dur-micro) var(--rd-ease-out);}
.rd a:hover{color:var(--rd-accent);}
.rd a:focus-visible,.rd button:focus-visible,.rd summary:focus-visible,.rd [tabindex]:focus-visible{outline:2px solid var(--rd-focus);outline-offset:3px;}

.rd h1,.rd h2,.rd h3{font-family:var(--rd-font-display);font-style:normal;margin:0;overflow-wrap:anywhere;min-width:0;text-wrap:balance;}
.rd h1,.rd .rd-display{font-size:var(--rd-t-display);font-weight:800;line-height:var(--rd-lh-display);letter-spacing:var(--rd-tr-display);}
.rd h2{font-size:var(--rd-t-h2);font-weight:800;line-height:var(--rd-lh-h2);letter-spacing:var(--rd-tr-h2);}
.rd h3{font-size:var(--rd-t-h3);font-weight:700;line-height:var(--rd-lh-h3);letter-spacing:var(--rd-tr-h3);}
.rd p{margin:0;max-width:var(--rd-measure);}
.rd p + p{margin-top:1em;}
.rd .rd-lede{font-size:var(--rd-t-lede);line-height:var(--rd-lh-lede);letter-spacing:var(--rd-tr-lede);color:var(--rd-ink-2);}
.rd .rd-meta{font-size:var(--rd-t-meta);line-height:var(--rd-lh-meta);font-weight:500;color:var(--rd-ink-3);}
.rd .rd-muted{color:var(--rd-ink-2);}
.rd strong{font-weight:700;color:var(--rd-ink);}

/* wordmark: the one gradient text on the site, kept from brand/_brand.css */
.rd .rd-wordmark{font-family:var(--rd-font-display);font-weight:800;letter-spacing:-0.04em;text-transform:uppercase;color:var(--rd-ink);white-space:nowrap;display:inline-flex;align-items:baseline;line-height:1;text-decoration:none;}
.rd .rd-wordmark .chi{background:var(--rd-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;margin-left:0.14em;}
.rd .rd-wordmark .dj{font-family:var(--rd-font-outlier);font-weight:700;font-size:0.42em;letter-spacing:0.22em;color:var(--rd-accent);margin-right:0.7em;transform:translateY(-0.12em);}

/* layout */
.rd .rd-wrap{width:100%;max-width:var(--rd-content);margin-inline:auto;padding-inline:var(--rd-gutter);}
.rd .rd-section{padding-block:var(--rd-section);}
/* raised ground: a lit top edge and a slow fall-off to the raised surface, no border (polish 2026-10-11) */
.rd .rd-section--raised{background:linear-gradient(180deg,var(--rd-paper-3) 0,var(--rd-paper-2) 220px,var(--rd-paper-2) 100%);box-shadow:inset 0 1px 0 rgba(244,246,250,0.06),inset 0 -1px 0 rgba(0,0,0,0.5);}
.rd .rd-section--tight{padding-block:var(--rd-s-8);}
.rd .rd-section > .rd-wrap > h2:first-child{margin-bottom:var(--rd-s-6);}
.rd .rd-bleed{width:100%;max-width:var(--rd-shell);margin-inline:auto;}
.rd .rd-bloom{position:relative;isolation:isolate;}
.rd .rd-bloom::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--rd-bloom);pointer-events:none;}
.rd .rd-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}
@media (min-width:1024px){
  .rd .rd-section > .rd-wrap > h2:first-child{margin-bottom:var(--rd-s-7);}
}

/* ============================================================
   3. BUTTONS (five states)
   ============================================================ */
.rd .rd-btn,.rd .rd-btn--ghost{display:inline-flex;align-items:center;justify-content:center;gap:var(--rd-s-2);min-height:48px;padding:0 var(--rd-s-5);border-radius:var(--rd-r-btn);font-family:var(--rd-font-display);font-size:var(--rd-t-btn);font-weight:700;line-height:1;letter-spacing:0;text-decoration:none;white-space:nowrap;cursor:pointer;border:1px solid transparent;transition:transform var(--rd-dur-micro) var(--rd-ease-out),filter var(--rd-dur-micro) var(--rd-ease-out),border-color var(--rd-dur-micro) var(--rd-ease-out),color var(--rd-dur-micro) var(--rd-ease-out);width:100%;}
.rd .rd-btn{background:var(--rd-btn);color:var(--rd-accent-ink);}
.rd .rd-btn--ghost{background:transparent;color:var(--rd-ink);border-color:var(--rd-rule);}
@media (hover:hover){
  .rd .rd-btn:hover{filter:brightness(1.08);}
  .rd .rd-btn--ghost:hover{border-color:var(--rd-accent);color:var(--rd-accent);}
}
.rd .rd-btn:active,.rd .rd-btn--ghost:active{transform:translateY(1px);}
.rd .rd-btn:focus-visible,.rd .rd-btn--ghost:focus-visible{outline:2px solid var(--rd-focus);outline-offset:3px;}
.rd .rd-btn[disabled],.rd .rd-btn--ghost[disabled],.rd .rd-btn[aria-disabled="true"],.rd .rd-btn--ghost[aria-disabled="true"]{opacity:0.55;cursor:not-allowed;filter:none;transform:none;}
@media (min-width:768px){ .rd .rd-btn,.rd .rd-btn--ghost{width:auto;} }

/* ============================================================
   4. COMPONENTS
   ============================================================ */

/* 4.1 statement line */
.rd .rd-statement{font-family:var(--rd-font-display);font-weight:800;font-size:var(--rd-t-h2);line-height:var(--rd-lh-h2);letter-spacing:var(--rd-tr-h2);max-width:24ch;margin:0;text-wrap:balance;}
.rd .rd-statement--display{font-size:var(--rd-t-display);line-height:var(--rd-lh-display);letter-spacing:var(--rd-tr-display);}

/* 4.2 editorial two-column block */
.rd .rd-editorial{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--rd-s-5);}
.rd .rd-editorial > h2,.rd .rd-editorial > h3{max-width:18ch;}
.rd .rd-editorial__body{max-width:var(--rd-measure);}
.rd .rd-editorial__body p + p{margin-top:1em;}
@media (min-width:1024px){
  .rd .rd-editorial{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--rd-s-7);align-items:start;}
}

/* 4.3 photo row (snap scroller on phone, row on desktop; no boxes, no radius) */
.rd .rd-photos{display:flex;gap:var(--rd-s-3);overflow-x:auto;scroll-snap-type:x mandatory;padding-inline:var(--rd-gutter);margin-inline:calc(var(--rd-gutter) * -1);scrollbar-width:none;}
.rd .rd-photos::-webkit-scrollbar{display:none;}
.rd .rd-photos > figure{flex:0 0 78%;scroll-snap-align:start;margin:0;position:relative;}
.rd .rd-photos > figure:not(:has(img[src])){display:none;}
.rd .rd-photos img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;filter:contrast(1.04) saturate(0.96) brightness(0.98);}
.rd .rd-photos figure.rd-photo--wide img{aspect-ratio:3/2;}
.rd .rd-credit{position:absolute;left:var(--rd-s-3);bottom:var(--rd-s-3);margin:0;font-family:var(--rd-font-outlier);font-weight:500;font-size:var(--rd-t-meta);line-height:1;color:var(--rd-ink-3);text-shadow:0 1px 8px rgba(6,7,10,0.9);}
.rd .rd-credit:empty{display:none;}
@media (min-width:768px){
  .rd .rd-photos{overflow:visible;scroll-snap-type:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--rd-s-4);padding-inline:0;margin-inline:0;}
  .rd .rd-photos > figure{flex:none;}
  .rd .rd-photos--3{grid-template-columns:repeat(3,minmax(0,1fr));}
  .rd .rd-photos--4{grid-template-columns:repeat(4,minmax(0,1fr));}
  .rd .rd-photos figure.rd-photo--wide{grid-column:span 2;}
}

/* 4.4 clip figure */
.rd .rd-clip{margin:0;position:relative;}
.rd .rd-clip video{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;background:var(--rd-paper-2);filter:contrast(1.04) saturate(0.96) brightness(0.98);}
.rd .rd-clip--portrait video{aspect-ratio:9/16;max-height:80svh;}
.rd .rd-clip figcaption{margin-top:var(--rd-s-3);font-size:var(--rd-t-meta);line-height:var(--rd-lh-meta);color:var(--rd-ink-3);}
.rd .rd-clip:not(:has(video[poster])){display:none;}

/* 4.5 definition list */
.rd .rd-defs{margin:0;padding:0;border-top:1px solid var(--rd-rule);}
.rd .rd-defs > div{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--rd-s-2);padding-block:var(--rd-s-4);border-bottom:1px solid var(--rd-rule);}
.rd .rd-defs dt{font-weight:700;color:var(--rd-ink);}
.rd .rd-defs dd{margin:0;color:var(--rd-ink-2);max-width:var(--rd-measure);}
.rd .rd-defs dd a{display:inline-block;padding-block:var(--rd-s-1);}
@media (min-width:768px){
  .rd .rd-defs > div{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:var(--rd-s-5);padding-block:var(--rd-s-5);}
}

/* 4.6 plain price column(s) */
.rd .rd-price{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--rd-s-7);}
.rd .rd-price__col{display:block;}
.rd .rd-price__col h3{margin-bottom:var(--rd-s-2);}
.rd .rd-price__figure{font-family:var(--rd-font-display);font-weight:800;font-size:var(--rd-t-price);line-height:1;letter-spacing:-0.02em;font-variant-numeric:tabular-nums;margin:0 0 var(--rd-s-4);}
.rd .rd-price__figure small{display:block;font-size:var(--rd-t-meta);font-weight:500;letter-spacing:0;color:var(--rd-ink-3);margin-top:var(--rd-s-2);line-height:var(--rd-lh-meta);}
.rd .rd-price__rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--rd-rule);}
.rd .rd-price__rows li{display:flex;justify-content:space-between;align-items:baseline;gap:var(--rd-s-4);padding-block:var(--rd-s-3);border-bottom:1px solid var(--rd-rule);color:var(--rd-ink-2);}
.rd .rd-price__rows li b{font-weight:500;color:var(--rd-ink);font-variant-numeric:tabular-nums;white-space:nowrap;}
@media (min-width:768px){ .rd .rd-price--2{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (min-width:1024px){ .rd .rd-price--3{grid-template-columns:repeat(3,minmax(0,1fr));} }

/* 4.7 numbered timeline (finished pose is the default; motion only under .js + no-preference) */
.rd .rd-steps{list-style:none;margin:0;padding:0;position:relative;counter-reset:rd-step;}
.rd .rd-steps::before{content:"";position:absolute;left:11px;top:12px;bottom:12px;width:2px;background:var(--rd-accent);opacity:1;transform-origin:top;}
.rd .rd-steps > li{position:relative;padding:0 0 var(--rd-s-7) var(--rd-s-7);counter-increment:rd-step;}
.rd .rd-steps > li:last-child{padding-bottom:0;}
.rd .rd-steps > li::before{content:"";position:absolute;left:0;top:6px;width:24px;height:24px;border-radius:50%;background:var(--rd-paper);border:2px solid var(--rd-accent);box-sizing:border-box;}
.rd .rd-steps > li::after{content:counter(rd-step);position:absolute;left:0;top:6px;width:24px;height:24px;display:grid;place-items:center;font-family:var(--rd-font-display);font-weight:700;font-size:12px;line-height:1;color:var(--rd-accent);}
.rd .rd-steps h3{margin-bottom:var(--rd-s-2);}
.rd .rd-steps p{color:var(--rd-ink-2);}
.rd .rd-steps > li.is-done::before{background:var(--rd-accent);}
.rd .rd-steps > li.is-done::after{color:var(--rd-accent-ink);}
.rd .rd-steps > li:last-child.is-done::before{box-shadow:var(--rd-glow);}
@media (min-width:1024px){
  .rd .rd-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--rd-s-5);} /* fills the row for 3 to 6 steps (polish: Belvedere's 3 steps sat in half the width) */
  .rd .rd-steps::before{left:12px;right:12px;top:11px;bottom:auto;width:auto;height:2px;transform-origin:left;}
  .rd .rd-steps > li{padding:var(--rd-s-7) 0 0 0;}
  .rd .rd-steps > li::before,.rd .rd-steps > li::after{top:0;}
}

/* 4.8 pull quote: no side stripe (polish 2026-10-11). Size and rhythm carry it; the quote marks are in the copy. */
.rd .rd-quote{margin:0;padding:0;border:0;max-width:52ch;}
.rd .rd-quote p{font-family:var(--rd-font-display);font-weight:500;font-size:var(--rd-t-h3);line-height:1.3;letter-spacing:var(--rd-tr-h3);color:var(--rd-ink);max-width:none;}
.rd .rd-quote p + p{margin-top:var(--rd-s-3);}
.rd .rd-quote cite{display:block;margin-top:var(--rd-s-4);font-style:normal;font-size:var(--rd-t-meta);line-height:var(--rd-lh-meta);color:var(--rd-ink-3);}
.rd .rd-quote > .rd-proof{display:none;} /* star rows (design.md 4 bans stars); only glyph rows use this slot */
.rd .rd-quote + .rd-quote{margin-top:var(--rd-s-7);}
.rd .rd-quote + :not(.rd-quote){margin-top:var(--rd-s-7);}
.rd :not(h2):not(h3) + .rd-quote{margin-top:var(--rd-s-7);}

/* 4.9 proof line */
.rd .rd-proof{font-size:var(--rd-t-lede);line-height:var(--rd-lh-lede);color:var(--rd-ink-2);max-width:var(--rd-measure);}
.rd .rd-proof a{color:var(--rd-ink);}

/* 4.10 FAQ: details/summary + p with "+" (same markup as today) */
.rd .rd-faq{border-top:1px solid var(--rd-rule);max-width:var(--rd-measure);}
.rd .rd-faq details{border-bottom:1px solid var(--rd-rule);}
.rd .rd-faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:var(--rd-s-4);min-height:44px;padding-block:var(--rd-s-4);font-family:var(--rd-font-display);font-weight:600;font-size:var(--rd-t-lede);line-height:var(--rd-lh-lede);letter-spacing:-0.01em;}
.rd .rd-faq summary::-webkit-details-marker{display:none;}
.rd .rd-faq summary::marker{content:"";}
.rd .rd-faq summary::after{content:"+";color:var(--rd-accent);font-weight:400;font-size:28px;line-height:1;flex:none;transition:transform var(--rd-dur-short) var(--rd-ease-in-out);}
.rd .rd-faq details[open] > summary::after{content:"\2212";}
.rd .rd-faq details > p{padding:0 0 var(--rd-s-5);color:var(--rd-ink-2);}
.rd .rd-faq details > p + p{padding-top:0;}

/* 4.11 team line */
.rd .rd-team{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--rd-s-5);align-items:start;}
.rd .rd-team figure{margin:0;max-width:200px;}
.rd .rd-team img{aspect-ratio:1/1;object-fit:cover;filter:contrast(1.04) saturate(0.96) brightness(0.98);}
.rd .rd-team figure:not(:has(img[src])){display:none;}
.rd .rd-team h2{max-width:18ch;margin-bottom:var(--rd-s-3);}
@media (min-width:1024px){ .rd .rd-team{grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:var(--rd-s-7);} }

/* 4.12 closing band (same on every page) */
.rd .rd-close{background:var(--rd-paper-2);padding-block:var(--rd-section);position:relative;isolation:isolate;overflow:clip;}
.rd .rd-close::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(55% 70% at 100% 100%,rgba(17,64,216,0.16),transparent 70%);}
.rd .rd-close .rd-wrap{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--rd-s-6);align-items:center;}
.rd .rd-close p{color:var(--rd-ink-2);margin-top:var(--rd-s-3);}
/* the closing statement is full-strength ink whether it is an h2 or a p.rd-statement (polish: it rendered grey through the p rule) */
.rd .rd-close h2,.rd .rd-close p.rd-statement,.rd .rd-close .rd-statement{color:var(--rd-ink);margin-top:0;max-width:20ch;}
.rd .rd-close__cta{display:grid;gap:var(--rd-s-4);justify-items:start;}
.rd .rd-close__cta a:not(.rd-btn):not(.rd-btn--ghost){display:inline-flex;align-items:center;min-height:44px;}
@media (min-width:1024px){ .rd .rd-close .rd-wrap{grid-template-columns:minmax(0,8fr) minmax(0,4fr);} .rd .rd-close .rd-close__cta{justify-self:end;justify-items:end;} }

/* 4.13 hero: photographic fold */
.rd .rd-hero{position:relative;min-height:88svh;display:flex;align-items:flex-end;padding:calc(var(--rd-nav-h) + var(--rd-s-6)) 0 var(--rd-s-9);isolation:isolate;overflow:clip;background:var(--rd-paper);}
.rd .rd-hero__media{position:absolute;inset:0;z-index:-2;background:var(--rd-paper-2);}
.rd .rd-hero__media video,.rd .rd-hero__media img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;filter:contrast(1.04) saturate(0.96) brightness(0.98);}
.rd .rd-hero__media video + img{display:none;} /* poster twin, shown only under reduced motion or when no clip is present */
.rd .rd-hero__media:not(:has(video)) img{display:block;}
/* polish 2026-10-11: one cyan light source, top right, screened over the photo so it reads as a light in the room, not a blob.
   The photo stays the subject; the light gives the fold its depth. */
.rd .rd-hero__media::after{content:"";position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;
  background:radial-gradient(40% 50% at 92% 2%,rgba(103,232,255,0.52) 0%,rgba(43,139,255,0.2) 40%,transparent 72%);}
/* photographic scrim: floor-up for the copy, plus a left wash on wide screens so the text column is always on dark */
.rd .rd-hero::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(to top,#06070a 0%,rgba(6,7,10,0.82) 24%,rgba(6,7,10,0.42) 52%,rgba(6,7,10,0.1) 80%,transparent 100%);}
.rd .rd-hero .rd-wrap{position:relative;}
/* safe column: a local pool of dark behind the copy, so faces behind the H1 drop back wherever the photo is focused */
.rd .rd-hero .rd-wrap::before{content:"";position:absolute;z-index:-1;left:calc(var(--rd-gutter) * -1);right:-10%;top:-64px;bottom:-128px;pointer-events:none;
  background:radial-gradient(75% 85% at 22% 70%,rgba(6,7,10,0.78) 0%,rgba(6,7,10,0.45) 45%,transparent 72%);}
.rd .rd-hero h1{max-width:min(14ch,100%);text-shadow:0 2px 24px rgba(6,7,10,0.75),0 0 2px rgba(6,7,10,0.6);}
.rd .rd-hero .rd-lede{margin-top:var(--rd-s-4);max-width:36ch;color:var(--rd-ink);text-shadow:0 1px 12px rgba(6,7,10,0.85);}
.rd .rd-hero__check{margin-top:var(--rd-s-6);max-width:540px;}
/* the one glow object per page: the hero primary button (rest glow is soft; hover and focus take the full recipe) */
.rd .rd-hero .rd-btn,.rd .rd-opening .rd-btn{box-shadow:0 0 0 1px rgba(103,232,255,0.22),0 0 28px rgba(43,139,255,0.28),0 12px 32px -16px rgba(0,0,0,0.9);}
@media (hover:hover){ .rd .rd-hero .rd-btn:hover,.rd .rd-opening .rd-btn:hover{box-shadow:var(--rd-glow);} }
.rd .rd-hero .rd-btn:focus-visible,.rd .rd-opening .rd-btn:focus-visible{box-shadow:var(--rd-glow);}
@media (min-width:1024px){
  .rd .rd-hero{padding-bottom:var(--rd-s-10);}
  .rd .rd-hero h1{max-width:min(16ch,100%);}
  .rd .rd-hero::after{background:linear-gradient(to top,#06070a 0%,rgba(6,7,10,0.78) 22%,rgba(6,7,10,0.36) 50%,rgba(6,7,10,0.08) 78%,transparent 100%),
    linear-gradient(100deg,rgba(6,7,10,0.72) 0%,rgba(6,7,10,0.34) 42%,rgba(6,7,10,0.04) 66%,transparent 80%);}
  .rd .rd-hero .rd-wrap::before{right:40%;}
}
/* per-image focus overrides: put the class on .rd-hero__media (or on the img). Phone and desktop crops differ, so top/right
   mean "keep that edge in frame". Beats the page-level `.rd .x-hero .rd-hero__media img` rules by specificity. */
.rd .rd-hero .rd-hero__media.rd-focus-top img,.rd .rd-hero .rd-hero__media img.rd-focus-top,.rd .rd-hero .rd-hero__media.rd-focus-top video{object-position:50% 12%;}
.rd .rd-hero .rd-hero__media.rd-focus-bottom img,.rd .rd-hero .rd-hero__media img.rd-focus-bottom,.rd .rd-hero .rd-hero__media.rd-focus-bottom video{object-position:50% 85%;}
.rd .rd-hero .rd-hero__media.rd-focus-left img,.rd .rd-hero .rd-hero__media img.rd-focus-left,.rd .rd-hero .rd-hero__media.rd-focus-left video{object-position:12% 40%;}
.rd .rd-hero .rd-hero__media.rd-focus-right img,.rd .rd-hero .rd-hero__media img.rd-focus-right,.rd .rd-hero .rd-hero__media.rd-focus-right video{object-position:88% 40%;}
.rd .rd-hero .rd-hero__media.rd-focus-top-right img,.rd .rd-hero .rd-hero__media img.rd-focus-top-right{object-position:85% 15%;}
.rd .rd-hero .rd-hero__media.rd-focus-top-left img,.rd .rd-hero .rd-hero__media img.rd-focus-top-left{object-position:15% 15%;}
.rd .rd-hero .rd-hero__media.rd-focus-center img,.rd .rd-hero .rd-hero__media img.rd-focus-center{object-position:50% 50%;}
/* faces on the right third of the frame (the usual case): on phone push the subject up, on desktop keep it right of the copy */
.rd .rd-hero .rd-hero__media.rd-focus-subject-right img,.rd .rd-hero .rd-hero__media img.rd-focus-subject-right{object-position:70% 25%;}
@media (min-width:1024px){ .rd .rd-hero .rd-hero__media.rd-focus-subject-right img,.rd .rd-hero .rd-hero__media img.rd-focus-subject-right{object-position:80% 40%;} }
/* a stronger scrim for bright photos (sky, white walls): add on .rd-hero */
.rd .rd-hero.rd-hero--bright::after{background:linear-gradient(to top,#06070a 0%,rgba(6,7,10,0.9) 28%,rgba(6,7,10,0.6) 56%,rgba(6,7,10,0.3) 100%);}

/* 4.14 two mix lanes (full width, stacked, one playing at a time) */
.rd .rd-lanes{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--rd-s-2);}
.rd .rd-lane{position:relative;display:grid;grid-template-columns:minmax(0,1fr);align-content:end;min-height:200px;padding:var(--rd-s-5) var(--rd-gutter);isolation:isolate;overflow:clip;border-top:2px solid var(--rd-rule);transition:border-color var(--rd-dur-short) var(--rd-ease-out);}
.rd .rd-lane__bg{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center;filter:contrast(1.04) saturate(0.96) brightness(0.6);transform:scale(1.02);transition:transform var(--rd-dur-max) var(--rd-ease-out);}
.rd .rd-lane::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(6,7,10,0.9) 0%,rgba(6,7,10,0.55) 55%,rgba(6,7,10,0.2) 100%);}
.rd .rd-lane__name{font-family:var(--rd-font-display);font-weight:800;font-size:var(--rd-t-display);line-height:1;letter-spacing:var(--rd-tr-display);margin:0;}
.rd .rd-lane__sub{margin-top:var(--rd-s-2);color:var(--rd-ink-2);max-width:40ch;}
.rd .rd-lane__row{display:flex;align-items:center;gap:var(--rd-s-4);margin-top:var(--rd-s-4);}
.rd .rd-lane__play{width:56px;height:56px;border-radius:50%;border:2px solid var(--rd-accent);background:var(--rd-paper);color:var(--rd-accent);display:grid;place-items:center;cursor:pointer;flex:none;transition:transform var(--rd-dur-micro) var(--rd-ease-out),background-color var(--rd-dur-micro) var(--rd-ease-out),color var(--rd-dur-micro) var(--rd-ease-out);}
.rd .rd-lane__play svg{width:20px;height:20px;fill:currentColor;}
.rd .rd-lane__play [data-icon-pause]{display:none;}
.rd .rd-lane__play:active{transform:scale(0.96);}
.rd .rd-lane__play:focus-visible{outline:2px solid var(--rd-focus);outline-offset:3px;}
.rd .rd-lane__play[disabled]{opacity:0.55;cursor:not-allowed;}
.rd .rd-lane__link{font-size:var(--rd-t-meta);color:var(--rd-ink-2);}
.rd .rd-lane__embed{margin-top:var(--rd-s-4);}
.rd .rd-lane__embed:empty{display:none;}
.rd .rd-lane__embed iframe{display:block;width:100%;height:120px;border:0;}
.rd .rd-lane.is-active{border-top-color:var(--rd-accent);}
.rd .rd-lane.is-active .rd-lane__play{background:var(--rd-accent);color:var(--rd-accent-ink);box-shadow:var(--rd-glow);}
.rd .rd-lane.is-active .rd-lane__play [data-icon-play]{display:none;}
.rd .rd-lane.is-active .rd-lane__play [data-icon-pause]{display:block;}
@media (hover:hover){ .rd .rd-lane:hover .rd-lane__bg{transform:scale(1.05);} .rd .rd-lane__play:hover{background:var(--rd-accent);color:var(--rd-accent-ink);} }
@media (min-width:768px){ .rd .rd-lane{min-height:240px;padding-inline:var(--rd-s-7);} }

/* 4.15 do-not-play card: the one physical object (paper, pen, stamp). Ported from the reference build, restyled to tokens. */
.rd .rd-dnp{--rd-dnp-paper:#f5f1e8;--rd-dnp-paper-2:#ece5d6;--rd-dnp-ink:#131b33;--rd-dnp-ink-2:#56607a;--rd-dnp-pen:#1b2fa0;--rd-dnp-note:#fff7a8;--rd-dnp-note-2:#f6e97a;--rd-dnp-note-ink:#3d3510;
  position:relative;max-width:640px;margin-inline:auto;padding:var(--rd-s-5) var(--rd-s-4) var(--rd-s-5);border-radius:var(--rd-r-paper);color:var(--rd-dnp-ink);
  background:repeating-linear-gradient(180deg,transparent 0 31px,rgba(43,139,255,0.13) 31px 32px),linear-gradient(180deg,var(--rd-dnp-paper),var(--rd-dnp-paper-2));
  box-shadow:0 1px 0 rgba(255,255,255,0.7) inset,0 0 0 1px rgba(0,0,0,0.06),var(--rd-contact);transform:rotate(-1deg);}
.rd .rd-dnp p{max-width:none;}
.rd .rd-dnp__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:var(--rd-s-2) var(--rd-s-4);border-bottom:2px solid var(--rd-dnp-ink);padding-bottom:var(--rd-s-3);margin-bottom:var(--rd-s-4);}
.rd .rd-dnp__form{font-size:var(--rd-t-meta);color:var(--rd-dnp-ink-2);}
.rd .rd-dnp__head h3{color:var(--rd-dnp-ink);}
.rd .rd-dnp__who{font-size:var(--rd-t-meta);color:var(--rd-dnp-ink-2);}
.rd .rd-dnp__cols{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--rd-s-4) var(--rd-s-6);}
.rd .rd-dnp__cols h4{font-family:var(--rd-font-display);font-size:var(--rd-t-meta);font-weight:700;margin:0 0 var(--rd-s-1);color:var(--rd-dnp-ink);}
.rd .rd-dnp__cols h4 .tag{display:inline-block;margin-left:var(--rd-s-2);padding:1px 6px;border-radius:4px;font-weight:500;background:var(--rd-dnp-ink);color:var(--rd-dnp-paper);}
.rd .rd-dnp__must h4 .tag{background:var(--rd-accent-blue);color:#fff;}
.rd .rd-dnp__cols ol{list-style:none;margin:0;padding:0;}
.rd .rd-dnp__cols li{min-height:32px;display:flex;align-items:center;gap:var(--rd-s-2);font-size:var(--rd-t-body);}
.rd .rd-dnp__cols li .n{font-family:var(--rd-font-display);font-size:var(--rd-t-meta);color:var(--rd-dnp-ink-2);width:16px;}
.rd .rd-dnp__cols li .t{position:relative;display:inline-block;font-weight:600;}
.rd .rd-dnp__cols li .t small{font-weight:400;color:var(--rd-dnp-ink-2);font-size:0.85em;}
.rd .rd-dnp .strike{position:absolute;left:-6px;right:-6px;top:50%;height:16px;margin-top:-7px;width:calc(100% + 12px);overflow:visible;pointer-events:none;}
.rd .rd-dnp .strike path{fill:none;stroke:var(--rd-dnp-pen);stroke-width:3.2;stroke-linecap:round;vector-effect:non-scaling-stroke;}
.rd .rd-dnp__dont .aside{display:none;font-size:var(--rd-t-meta);color:var(--rd-dnp-pen);font-weight:600;transform:rotate(-2deg);}
.rd .rd-dnp__must .hl{position:absolute;left:-5px;right:-5px;top:12%;bottom:6%;z-index:-1;border-radius:3px 6px 4px 7px;background:linear-gradient(90deg,rgba(103,232,255,0.85),rgba(103,232,255,0.65));transform-origin:left center;}
.rd .rd-dnp__must .t{z-index:0;}
.rd .rd-dnp__note{margin-top:var(--rd-s-4);display:flex;flex-wrap:wrap;gap:var(--rd-s-3) var(--rd-s-4);align-items:center;justify-content:space-between;}
.rd .rd-dnp__note p{margin:0;font-weight:700;color:var(--rd-dnp-pen);transform:rotate(-1.5deg);}
.rd .rd-dnp__stamp{font-family:var(--rd-font-display);font-size:var(--rd-t-meta);font-weight:700;color:var(--rd-accent-blue);border:2px solid var(--rd-accent-blue);padding:4px 10px;border-radius:6px;transform:rotate(-6deg);}
.rd .rd-dnp__postit{position:absolute;right:0;bottom:-16px;width:140px;padding:var(--rd-s-3);background:linear-gradient(180deg,var(--rd-dnp-note),var(--rd-dnp-note-2));color:var(--rd-dnp-note-ink);font-size:var(--rd-t-meta);font-weight:600;line-height:1.3;transform:rotate(-4deg);box-shadow:0 12px 24px -10px rgba(0,0,0,0.6);}
@media (min-width:640px){
  .rd .rd-dnp{padding:var(--rd-s-6);transform:rotate(-2deg);}
  .rd .rd-dnp__cols{grid-template-columns:repeat(2,minmax(0,1fr));}
  .rd .rd-dnp__dont .aside{display:inline;}
  .rd .rd-dnp__postit{right:-16px;top:-24px;bottom:auto;width:160px;transform:rotate(4deg);}
}

/* 4.16 request wall: three plain columns, no cards */
.rd .rd-wall{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--rd-s-6);}
.rd .rd-wall__bin h3{display:flex;justify-content:space-between;align-items:baseline;gap:var(--rd-s-4);padding-bottom:var(--rd-s-3);border-bottom:2px solid var(--rd-rule);}
.rd .rd-wall__bin--next h3{border-bottom-color:var(--rd-accent);}
.rd .rd-wall__bin h3 .count{font-size:var(--rd-t-meta);font-weight:500;color:var(--rd-ink-3);}
.rd .rd-wall__bin ul{list-style:none;margin:0;padding:0;}
.rd .rd-wall__bin li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--rd-s-1) var(--rd-s-4);padding-block:var(--rd-s-3);border-bottom:1px solid var(--rd-rule);}
.rd .rd-wall__bin li .song{font-weight:700;}
.rd .rd-wall__bin li .artist{color:var(--rd-ink-2);grid-column:1;}
.rd .rd-wall__bin li .from{grid-column:2;grid-row:1 / span 2;align-self:center;font-size:var(--rd-t-meta);color:var(--rd-ink-3);text-align:right;white-space:nowrap;}
.rd .rd-wall__bin li .why{grid-column:1 / -1;font-size:var(--rd-t-meta);color:var(--rd-ink-3);}
.rd .rd-wall__bin--no .song{text-decoration:line-through;text-decoration-color:var(--rd-accent);text-decoration-thickness:2px;}
@media (min-width:1024px){ .rd .rd-wall{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--rd-s-7);} }

/* 4.17 footer statement (Ft5): statement then one short link list */
.rd .rd-footer{padding-block:var(--rd-s-8) var(--rd-s-6);border-top:1px solid var(--rd-rule);}
.rd .rd-footer__links{list-style:none;margin:var(--rd-s-6) 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--rd-s-2) var(--rd-s-5);}
.rd .rd-footer__links a{display:inline-flex;align-items:center;min-height:44px;color:var(--rd-ink-2);text-decoration:none;white-space:nowrap;}
.rd .rd-footer__links a:hover{color:var(--rd-accent);text-decoration:underline;}
.rd .rd-footer__legal{margin-top:var(--rd-s-6);font-size:var(--rd-t-meta);color:var(--rd-ink-3);}
@media (min-width:768px){ .rd .rd-footer__links{grid-template-columns:repeat(4,minmax(0,1fr));} }

/* ============================================================
   5. MOTION (finished pose above is the default; motion only when JS is on and the user allows it)
   ============================================================ */
@media (prefers-reduced-motion:no-preference){
  /* hero lines: one page-load sequence, 60ms stagger, done inside 500ms */
  .rd.js .rd-hero [data-rd-line]{opacity:0;transform:translateY(12px);animation:rd-in var(--rd-dur-long) var(--rd-ease-out) forwards;animation-delay:calc(var(--i,0) * 60ms);}
  @keyframes rd-in{to{opacity:1;transform:none;}}

  /* timeline showstopper: thread draws, markers fill, in reading order (class toggled once by IntersectionObserver) */
  .rd.js .rd-steps[data-rd-draw]::before{transform:scaleY(0);transition:transform var(--rd-dur-max) var(--rd-ease-out);}
  .rd.js .rd-steps[data-rd-draw].is-drawn::before{transform:scaleY(1);}
  .rd.js .rd-steps[data-rd-draw] > li{opacity:0.35;transition:opacity var(--rd-dur-long) var(--rd-ease-out);}
  .rd.js .rd-steps[data-rd-draw] > li.is-done{opacity:1;}
  .rd.js .rd-steps[data-rd-draw] > li::before{transition:background-color var(--rd-dur-short) var(--rd-ease-out),box-shadow var(--rd-dur-short) var(--rd-ease-out);}
  @media (min-width:1024px){
    .rd.js .rd-steps[data-rd-draw]::before{transform:scaleX(0);}
    .rd.js .rd-steps[data-rd-draw].is-drawn::before{transform:scaleX(1);}
  }
}
@media (prefers-reduced-motion:reduce){
  .rd *,.rd *::before,.rd *::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:150ms!important;transition-property:opacity,color,background-color,border-color!important;}
  .rd .rd-hero [data-rd-line]{opacity:1!important;transform:none!important;}
  .rd .rd-steps[data-rd-draw]::before{transform:none!important;}
  .rd .rd-steps[data-rd-draw] > li{opacity:1!important;}
  .rd .rd-lane__bg{transform:none!important;}
  .rd .rd-hero__media video[autoplay]{display:none;}
  .rd .rd-hero__media video + img{display:block;}
}

/* ============================================================
   6. POLISH (2026-10-11, sitewide pass from review-site.md). Rules only; no booking selectors.
   ============================================================ */

/* 6.1 heading rhythm: an h2 or h3 that follows a row block gets air above it (photo-booth: Rental details, Pricing bands,
   Service area sat on the rows; first-dance-songs: style h3s sat on the intro line). */
.rd .rd-wrap:not(.rd-editorial) > h2{margin-bottom:var(--rd-s-6);}
.rd .rd-wrap:not(.rd-editorial) > * + h2{margin-top:var(--rd-s-8);}
.rd .rd-wrap > * + h3,.rd .rd-editorial__body > * + h3{margin-top:var(--rd-s-7);}
.rd .rd-wrap > h3,.rd .rd-editorial__body > h3{margin-bottom:var(--rd-s-4);}
.rd .rd-wrap > h2 + h3{margin-top:0;}
.rd .rd-wrap > p + .rd-defs,.rd .rd-wrap > p + .rd-price,.rd .rd-wrap > p + .rd-faq,.rd .rd-wrap > p + .rd-steps,.rd .rd-wrap > p + ol,.rd .rd-wrap > p + ul{margin-top:var(--rd-s-6);}
.rd .rd-wrap > .rd-defs + p,.rd .rd-wrap > .rd-price + p,.rd .rd-wrap > ol + p,.rd .rd-wrap > ul + p{margin-top:var(--rd-s-6);}
.rd .rd-wrap > nav:not(:first-child),.rd .rd-editorial__body > nav{margin-top:var(--rd-s-6);}
@media (min-width:1024px){
  .rd .rd-wrap:not(.rd-editorial) > h2{margin-bottom:var(--rd-s-7);}
  .rd .rd-wrap:not(.rd-editorial) > * + h2{margin-top:var(--rd-s-9);}
}

/* 6.2 definition list written as bare dt/dd pairs (no row div): same hairline rows as the wrapped form
   (first-dance-songs "Timing your dance"). */
.rd .rd-defs > dt{padding-top:var(--rd-s-4);font-weight:700;color:var(--rd-ink);}
.rd .rd-defs > dd{margin:0;padding:var(--rd-s-2) 0 var(--rd-s-4);border-bottom:1px solid var(--rd-rule);color:var(--rd-ink-2);max-width:var(--rd-measure);}
@media (min-width:768px){
  .rd .rd-defs:not(:has(> div)){display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);column-gap:var(--rd-s-5);}
  .rd .rd-defs:not(:has(> div)) > dt{padding-block:var(--rd-s-5);border-bottom:1px solid var(--rd-rule);}
  .rd .rd-defs:not(:has(> div)) > dd{padding-block:var(--rd-s-5);}
}

/* 6.3 pricing bands written as a dl with .rd-price (photo-booth): plain rows, not the price-column grid */
.rd dl.rd-price{display:block;margin:0;padding:0;border-top:1px solid var(--rd-rule);}
.rd dl.rd-price > div{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--rd-s-2);padding-block:var(--rd-s-4);border-bottom:1px solid var(--rd-rule);}
.rd dl.rd-price dt{font-weight:700;color:var(--rd-ink);}
.rd dl.rd-price dd{margin:0;color:var(--rd-ink-2);max-width:var(--rd-measure);}
@media (min-width:768px){ .rd dl.rd-price > div{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:var(--rd-s-5);padding-block:var(--rd-s-5);} }

/* 6.4 small sources never upscale: the 880x340 video frame and the 440x550 tile render at their own size, centred.
   Add .rd-photo--intrinsic to any figure (or img) to opt another image in. Hero media is excluded (it is a div, not a figure). */
.rd :is(figure,.rd-photos) img[width="880"][height="340"],
.rd :is(figure,.rd-photos) img[width="440"][height="550"],
.rd figure.rd-photo--intrinsic img,.rd img.rd-photo--intrinsic{width:auto;max-width:100%;height:auto;aspect-ratio:auto;object-fit:contain;margin-inline:auto;display:block;}
.rd .rd-photos > figure:has(> img[width="880"][height="340"]),.rd .rd-photos > figure.rd-photo--intrinsic{display:flex;justify-content:center;align-items:center;background:var(--rd-paper-2);}
@media (min-width:768px){ .rd .rd-photos > figure:only-child{grid-column:1 / -1;} }

/* 6.5 text-only opening (pages with no hero media: cost, ottawa, timeline, how-to-choose, reviews, insurance, mc):
   designed as a fold, not a heading on black. Type steps up one notch, one cyan light top right, a blue floor bloom lower
   left, and the primary button carries the glow. Matched structurally, so no HTML change is needed; add .rd-opening to
   name it explicitly on new pages. */
.rd .rd-opening,
.rd main > :is(header,section):not(.rd-hero):not(:has(> nav)):has(> .rd-wrap h1):first-of-type,
.rd main > :is(header,section):not(.rd-hero):not(:has(> nav)):has(> .rd-wrap h1):nth-child(-n+2){
  position:relative;isolation:isolate;overflow:clip;
  padding-block:clamp(72px,3rem + 5vw,136px) clamp(64px,3rem + 3vw,112px);
}
.rd .rd-opening::before,
.rd main > :is(header,section):not(.rd-hero):not(:has(> nav)):has(> .rd-wrap h1):nth-child(-n+2)::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(34% 44% at 94% 0%,rgba(103,232,255,0.20) 0%,rgba(43,139,255,0.10) 40%,transparent 70%),
    radial-gradient(50% 55% at 0% 100%,rgba(17,64,216,0.22) 0%,transparent 70%);
}
.rd .rd-opening::after,
.rd main > :is(header,section):not(.rd-hero):not(:has(> nav)):has(> .rd-wrap h1):nth-child(-n+2)::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;z-index:-1;pointer-events:none;
  background:linear-gradient(90deg,rgba(103,232,255,0.35),rgba(244,246,250,0.08) 40%,transparent 85%);
}
.rd .rd-opening h1,
.rd main > :is(header,section):not(.rd-hero):not(:has(> nav)):has(> .rd-wrap h1):nth-child(-n+2) h1{
  font-size:clamp(2.5rem,1.1rem + 5vw,4.75rem);max-width:min(18ch,100%);
}
.rd .rd-opening .rd-lede,
.rd main > :is(header,section):not(.rd-hero):not(:has(> nav)):has(> .rd-wrap h1):nth-child(-n+2) .rd-lede{
  margin-top:var(--rd-s-5);max-width:48ch;color:var(--rd-ink);
}
.rd .rd-opening .rd-btn,
.rd main > :is(header,section):not(.rd-hero):not(:has(> nav)):has(> .rd-wrap h1):nth-child(-n+2) .rd-btn{
  box-shadow:0 0 0 1px rgba(103,232,255,0.22),0 0 28px rgba(43,139,255,0.28),0 12px 32px -16px rgba(0,0,0,0.9);
}
/* two-column openings (cost, ottawa: copy left, figure right) keep the base display size so the H1 holds four lines */
.rd .cost-hero-layout h1,.rd .rd-opening--split h1{font-size:var(--rd-t-display);}
/* the rd-bloom helper (cost, ottawa) already paints a blue bloom; it stacks under the same isolation, so nothing doubles */
.rd .rd-bloom.rd-section::before{z-index:-2;}

/* 6.6 closing-band links and page-local contact rows breathe (kanata, booth, insurance, how-to-choose) */
.rd .rd-close ul{list-style:none;margin:var(--rd-s-4) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--rd-s-2) var(--rd-s-5);}
.rd .rd-close ul a,.rd .rd-close div > a:not(.rd-btn){display:inline-flex;align-items:center;min-height:44px;}

/* 6.7 display text never clips at 320: the hero wrap keeps its gutter and headings wrap by character when a word is too long */
.rd .rd-hero .rd-wrap,.rd .rd-opening .rd-wrap{min-width:0;}
.rd h1,.rd .rd-statement,.rd .rd-lane__name{overflow-wrap:anywhere;hyphens:manual;}
@media (max-width:359px){ .rd h1,.rd .rd-display,.rd .rd-statement--display{font-size:2.125rem;} }

/* 6.8 standalone figures never run taller than a screen: a portrait source (guides: 933x1400 Lago photo) crops to a
   landscape-ish frame instead of an 1,800px wall. Small-source and clip figures keep their own rules. */
.rd .rd-wrap > figure:not(.rd-clip):not(.rd-photo--intrinsic) > img{width:100%;max-height:min(720px,80svh);object-fit:cover;object-position:50% 40%;}
.rd .rd-wrap > figure:not(.rd-clip) > figcaption{margin-top:var(--rd-s-3);font-size:var(--rd-t-meta);line-height:var(--rd-lh-meta);color:var(--rd-ink-3);}

/* 6.9 More detail: one collapsed block above the closing call to action. Holds the longer original answers
   (text, lists, tables) so the visible page stays short. Same "+" affordance as the FAQ. */
.rd .rd-more details{border-block:1px solid var(--rd-rule);max-width:var(--rd-measure);}
.rd .rd-more summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:var(--rd-s-4);min-height:48px;padding-block:var(--rd-s-4);font-family:var(--rd-font-display);font-weight:600;font-size:var(--rd-t-lede);line-height:var(--rd-lh-lede);letter-spacing:-0.01em;}
.rd .rd-more summary::-webkit-details-marker{display:none;}
.rd .rd-more summary::marker{content:"";}
.rd .rd-more summary::after{content:"+";color:var(--rd-accent);font-weight:400;font-size:28px;line-height:1;flex:none;}
.rd .rd-more details[open] > summary::after{content:"\2212";}
.rd .rd-more__body{padding-bottom:var(--rd-s-6);color:var(--rd-ink-2);overflow-wrap:anywhere;}
.rd .rd-more__body h3{margin:var(--rd-s-6) 0 var(--rd-s-3);font-size:var(--rd-t-lede);line-height:var(--rd-lh-lede);color:var(--rd-ink);}
.rd .rd-more__body h3:first-child{margin-top:var(--rd-s-2);}
.rd .rd-more__body p,.rd .rd-more__body ul,.rd .rd-more__body ol{margin:0 0 var(--rd-s-4);}
.rd .rd-more__body ul,.rd .rd-more__body ol{padding-left:1.2em;}
.rd .rd-more__body li{margin-bottom:var(--rd-s-2);}
.rd .rd-more__body table{display:block;overflow-x:auto;width:100%;border-collapse:collapse;margin:0 0 var(--rd-s-4);}
.rd .rd-more__body th,.rd .rd-more__body td{text-align:left;vertical-align:top;padding:var(--rd-s-2) var(--rd-s-4) var(--rd-s-2) 0;border-bottom:1px solid var(--rd-rule);}
.rd .rd-more__body th,.rd .rd-more__body td{overflow-wrap:normal;}
.rd .rd-more__body th:first-child,.rd .rd-more__body td:first-child{white-space:nowrap;}
.rd .rd-section.rd-more{padding-block:var(--rd-s-6);}
