/* ===== v06 · Nov 12 (round 2) — indigo headings, dark-brown text, section tones (sea / earth), editorial services, conversion blocks =====
   Loaded LAST on every page.
   ACCENTS (r2): third accent = petrol / sea teal --accent-3 #1F5E6B (deep #17434E, light #7FB3BD) in theme.css :root.
   Indigo accent #4338A0 replaced electric blue #1F6BFF; burgundy #9D1425 replaced cherry #C41E3A and kicker #A3182F.
   Tone is set per page with <body data-tone="sea|earth">. */
:root {
  --ink-heading: #2E2A6B;   /* deep indigo · 10.6:1 on paper #F2EADB · 11.8:1 on card #FBF6EC */
  --ink-body: #2B1D14;      /* very dark brown · 13.6:1 on paper · 15.1:1 on card */
  --ink-muted: #5B4636;     /* warm brown · 7.4:1 on paper · 8.2:1 on card */
  --cta: #C8102E;           /* r3 · CTA cherry-burgundy fill · white 8.69:1 · as text on card 8.06:1, on paper 7.27:1 */
  --cta-hover: #9D1425;     /* = burgundy anchor · white 11.25:1 */
  --accent-ink: #4338A0;    /* indigo accent (links, fills) · 7.6:1 on paper · 8.4:1 on card · white on it 9.1:1 */
  --burgundy: #9D1425;      /* purple-cherry burgundy (kickers, CTAs) · 9.4:1 on paper · white on it 11.3:1 */
  --rule: rgba(46,42,107,.16);
  /* sea (default, r2 bluer) — petrol #17434E / sea teal #1F5E6B (from her #425C5B, #467B73 tiles), lagoon #3F7F8C, mist #A9C6CC, paper-sand #C9B48A */
  --tone-deep: #17434E; --tone-mid: #1F5E6B; --tone-light: #D3E1E3; --tone-sand: #C9B48A;
  /* r3: clean, luminous — 3 stops, one hue family (OKLCH h≈215→200), rising lightness: petrol → clear Ionian turquoise → sky-sea light.
     sRGB fallback carries the OKLCH midpoints (#116D7B, #6BC4CB) so the mids never go grey; real `in oklch` below in @supports. */
  --tone-grad: linear-gradient(90deg, #17434E 0%, #116D7B 25%, #0099A7 50%, #6BC4CB 75%, #AEEFF2 100%);
  --tone-ground: radial-gradient(120% 80% at 50% 0%, #005765 0%, #003D49 55%, #001F28 100%);
  --tone-veil: linear-gradient(180deg, rgba(0,53,64,.40) 0%, rgba(0,53,64,.56) 45%, rgba(0,26,35,.84) 100%);
  --sign-paint-1: #EDE4D1; --sign-paint-2: #D3E1E3; --sign-paint-3: #E6D7BA; --sign-tip: #17434E;
}
body[data-tone="earth"] {
  /* earth — sampled: olive #4D6926, rust #743624, ochre #B18838, raw sienna #94602B, umber #472721, plum #503342 */
  --tone-deep: #472721; --tone-mid: #743624; --tone-light: #E6D7BA; --tone-sand: #C9B48A;
  /* r3: sun-baked — terracotta → ochre → honey (OKLCH h≈38→82, one warm sweep, no olive/rust/umber zigzag). Fallback mids #C46320, #E7AB5B. */
  --tone-grad: linear-gradient(90deg, #AB4321 0%, #C46320 25%, #DA8427 50%, #E7AB5B 75%, #F4CF8B 100%);
  --tone-ground: radial-gradient(120% 80% at 50% 0%, #752E1B 0%, #50190D 55%, #280804 100%);
  --tone-veil: linear-gradient(180deg, rgba(72,22,11,.40) 0%, rgba(72,22,11,.56) 45%, rgba(33,5,3,.84) 100%);
  --sign-paint-1: #EDE4D1; --sign-paint-2: #E6D7BA; --sign-paint-3: #CACFB5; --sign-tip: #743624;
}

/* ---------- section ground + veil follow the tone ---------- */
body.bh-site.section-page[data-tone], body.bh-site.section-page.palette-dark[data-tone], body.bh-site.section-page.summer-page[data-tone] { background: var(--tone-ground) !important; }
body.bh-site.section-page[data-tone] .section-veil:not(.contact-veil-keep) { background: var(--tone-veil) !important; }
body.bh-site.contact-page[data-tone] .section-veil { background: linear-gradient(180deg, rgba(42,28,18,.12) 0%, rgba(42,28,18,0) 35%, rgba(42,28,18,.12) 70%, rgba(23,15,9,.72) 100%) !important; }
body.bh-site.section-page .dive-main::before, body.bh-site.section-page .services-main::before { background: var(--tone-grad) !important; height: 12px; }

/* ---------- type colours: indigo headings, brown text ---------- */
body.bh-site.section-page .dive-main, body.bh-site.section-page .services-main { color: var(--ink-body) !important; --fg: var(--ink-body); --muted: var(--ink-muted); }
body.bh-site.section-page .dive-main :is(h1,h2,h3,h4), body.bh-site.section-page .services-main :is(h1,h2,h3,h4),
body.bh-site.section-page .proj-title, body.bh-site.section-page .case-block h2, body.bh-site.section-page .contact-h2,
body.bh-site.section-page .svc-name, body.bh-site.section-page .now-copy h2 { color: var(--ink-heading) !important; -webkit-text-fill-color: currentColor; text-shadow: none !important; }
body.bh-site.section-page .dive-main :is(p,li,dd,dt,td,figcaption,label,span.svc-desc), body.bh-site.section-page .services-main :is(p,li,dd,td) { color: var(--ink-body); }
body.bh-site.section-page :is(.title-en,.dive-sub,.case-meta,.proj-sub,.now-small,.now-el-body,.price-toggle-note,.dive-caption,.dive-main figcaption) { color: var(--ink-muted) !important; }
body.bh-site.section-page .dive-main .en { color: var(--ink-muted) !important; }
body.bh-site.section-page .dive-kicker, body.bh-site.section-page .eyebrow, body.bh-site.section-page .now-kicker { color: #9D1425 !important; } /* cherry, darkened for small caps text: 6.4:1 on paper */
body.bh-site.section-page .dive-icon-row svg, body.bh-site.section-page .svc-head svg, body.bh-site.section-page .services-icon svg { stroke: var(--tone-deep) !important; }
body.bh-site.section-page .dive-main hr, body.bh-site.section-page .dive-rule, body.bh-site.section-page .services-main hr { background: var(--tone-grad) !important; height: 5px !important; border-radius: 3px; }
body.bh-site.section-page .back-puddle a, body.bh-site.section-page .services-back a { color: var(--ink-muted) !important; text-shadow: none !important; text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: 1px; } /* r2: on paper — 7.4:1 (was sand 1.7:1) */
body.bh-site .svc-warm, body.bh-site .svc-aside, body.bh-site .svc-private { border-left-color: var(--tone-mid) !important; }
body.bh-site.section-page .folio-grid figure, body.bh-site.section-page .dive-media, body.bh-site.section-page .tile { background: rgba(43,29,20,.08); }

/* ---------- draft tag (remove the element before launch) ---------- */
body.bh-site .draft-tag { background: var(--ink-heading) !important; }

/* =====================================================================
   PAINTED SIGNS · Swallows and Amazons: hand-painted boards, pegs, rope, signpost arrows
   ===================================================================== */
.signs-wall { --wood: #7A4E2D; --wood-dark: #4E2F18; }
.sign { position: relative; margin: 0; padding: 0; border: 0 !important; background: none !important; box-shadow: none !important; overflow: visible !important;
  filter: drop-shadow(3px 5px 0 rgba(43,29,20,.55)) drop-shadow(0 10px 14px rgba(43,29,20,.18)); transform: rotate(var(--tilt, -.6deg)); transform-origin: 30% 0; }
.sign::after, .sign::before { display: none !important; }
.sign-board { position: relative; padding: 7px; --tip: 30px;
  background:
    repeating-linear-gradient(90deg, rgba(0,0,0,.0) 0 9px, rgba(0,0,0,.07) 9px 10px, rgba(255,255,255,.05) 10px 13px),
    repeating-linear-gradient(0deg, rgba(0,0,0,.08) 0 2px, transparent 2px 7px),
    linear-gradient(180deg, #8B5A33, #6B4225);
  clip-path: polygon(0 0, calc(100% - var(--tip)) 0, 100% 50%, calc(100% - var(--tip)) 100%, 0 100%); }
.sign.point-left .sign-board { clip-path: polygon(var(--tip) 0, 100% 0, 100% 100%, var(--tip) 100%, 0 50%); }
.sign-face { position: relative; display: block; padding: 1.05rem calc(var(--tip) + .9rem) 1.1rem 1.25rem; color: var(--ink-body) !important; cursor: pointer;
  background:
    radial-gradient(120% 90% at 20% 10%, rgba(255,255,255,.35), transparent 60%),
    repeating-linear-gradient(90deg, rgba(122,78,45,.0) 0 14px, rgba(122,78,45,.05) 14px 15px),
    var(--paint, var(--sign-paint-1));
  clip-path: polygon(0 0, calc(100% - var(--tip) + 3px) 0, 100% 50%, calc(100% - var(--tip) + 3px) 100%, 0 100%); }
.sign.point-left .sign-face { padding: 1.05rem 1.25rem 1.1rem calc(var(--tip) + .9rem); clip-path: polygon(calc(var(--tip) - 3px) 0, 100% 0, 100% 100%, calc(var(--tip) - 3px) 100%, 0 50%); }
/* pegs (nail heads) */
.sign-face::before, .sign-face::after { content: ""; position: absolute; top: .55rem; width: 9px; height: 9px; border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #E9D8B4 0 18%, #6B4225 40%, #3A2414 100%); box-shadow: 0 1px 0 rgba(255,255,255,.4); }
.sign-face::before { left: .55rem; } .sign-face::after { right: calc(var(--tip) + .35rem); }
.sign.point-left .sign-face::before { left: calc(var(--tip) + .35rem); } .sign.point-left .sign-face::after { right: .55rem; }
.sign .svc-name, .sign h3 { font-family: var(--display) !important; font-weight: 400 !important; font-size: 1.35rem !important; line-height: 1.1; letter-spacing: .01em; margin: 0 0 .3rem !important; color: var(--ink-heading) !important; }
.sign .svc-desc { margin: 0 0 .55rem !important; color: var(--ink-body) !important; }
.sign .svc-price { display: inline-block; font-weight: 700; color: var(--ink-body) !important; background: rgba(255,255,255,.55); border: 1.5px dashed rgba(43,29,20,.45); padding: .15rem .5rem; border-radius: 3px; }
.sign .svc-price em { color: var(--ink-muted) !important; font-style: normal; }
.sign-go { display: inline-flex; align-items: center; gap: .35rem; margin-top: .55rem; font: 600 .82rem/1.2 var(--sans); letter-spacing: .04em; color: var(--tone-deep) !important; text-decoration: none; }
.sign-go::after { content: ""; position: absolute; inset: 0; z-index: 2; } /* stretched link: the whole board is clickable */
.sign-go:focus-visible { outline: none; }
.sign:focus-within { outline: 3px solid var(--ink-heading); outline-offset: 4px; border-radius: 4px; }
.sign-go svg { width: 1em; height: 1em; }
/* variants */
.signs-wall > .sign:nth-child(3n+1) { --paint: var(--sign-paint-1); --tilt: -.8deg; }
.signs-wall > .sign:nth-child(3n+2) { --paint: var(--sign-paint-2); --tilt: .7deg; }
.signs-wall > .sign:nth-child(3n)   { --paint: var(--sign-paint-3); --tilt: -.3deg; }
/* pennant (burgee) for the most-chosen board */
.sign .svc-badge, .pennant { display: inline-block; position: relative; vertical-align: middle; margin-left: .4rem; padding: .22rem 1.3rem .22rem .55rem !important;
  font: 700 .62rem/1.2 var(--sans) !important; letter-spacing: .12em; text-transform: uppercase; color: #FFFFFF !important; background: #9D1425 !important; border: 0 !important; border-radius: 0 !important;
  clip-path: polygon(0 0, 100% 0, 82% 50%, 100% 100%, 0 100%); }
.sign.svc-featured { --paint: #FFF4DA; }
.sign.svc-featured .sign-board { background: repeating-linear-gradient(90deg, transparent 0 9px, rgba(0,0,0,.07) 9px 10px), linear-gradient(180deg, #9D1425, #56010D); }
/* rope hanging the section plank */
.svc-head.plank { position: relative; display: inline-flex !important; align-items: center; gap: .55rem; margin: 2.2rem 0 1.2rem !important; padding: .55rem 1rem .5rem;
  background: repeating-linear-gradient(90deg, transparent 0 11px, rgba(0,0,0,.06) 11px 12px), linear-gradient(180deg, var(--tone-light), color-mix(in srgb, var(--tone-light) 80%, #8B5A33));
  border: 3px solid #6B4225; border-radius: 4px; box-shadow: 3px 4px 0 rgba(43,29,20,.45); transform: rotate(-1deg); }
.svc-head.plank::before, .svc-head.plank::after { content: ""; position: absolute; top: -1.6rem; width: 3px; height: 1.6rem;
  background: repeating-linear-gradient(180deg, #B08A5A 0 3px, #7A5A35 3px 6px); }
.svc-head.plank::before { left: 1.2rem; transform: rotate(-8deg); } .svc-head.plank::after { right: 1.2rem; transform: rotate(8deg); }
.svc-head.plank h2 { margin: 0 !important; font-size: 1.25rem !important; }
.signs-wall { display: grid !important; grid-template-columns: 1fr; gap: 1.5rem 1.6rem !important; margin: 0 0 1rem !important; }
@media (min-width: 760px) { .signs-wall { grid-template-columns: 1fr 1fr; } }
/* wiggle */
@keyframes signWiggle { 0% { transform: rotate(var(--tilt, 0deg)); } 30% { transform: rotate(calc(var(--tilt, 0deg) + 1.6deg)); } 60% { transform: rotate(calc(var(--tilt, 0deg) - 1.2deg)); } 100% { transform: rotate(var(--tilt, 0deg)); } }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .sign:hover, .sign:focus-within { animation: signWiggle .55s ease-in-out; }
  .sign:hover { filter: drop-shadow(4px 7px 0 rgba(43,29,20,.55)) drop-shadow(0 14px 18px rgba(43,29,20,.22)); }
}
@media (prefers-reduced-motion: reduce) { .sign, .signpost-arm { animation: none !important; } }
@media (max-width: 480px) { .sign-board { --tip: 22px; } .sign .svc-name, .sign h3 { font-size: 1.22rem !important; } }

/* ---------- SIGNPOST chooser (Featured) ---------- */
.signpost { position: relative; margin: 1.6rem auto 2.6rem; max-width: 34rem; padding: .4rem 0 2.2rem; }
.signpost::before { content: ""; position: absolute; left: 50%; top: -.6rem; bottom: 0; width: 18px; transform: translateX(-50%); border-radius: 6px 6px 2px 2px;
  background: repeating-linear-gradient(0deg, transparent 0 12px, rgba(0,0,0,.08) 12px 13px), linear-gradient(90deg, #5A3720, #8B5A33 45%, #6B4225); box-shadow: 3px 0 0 rgba(43,29,20,.35); }
.signpost::after { content: ""; position: absolute; left: 50%; bottom: -.3rem; width: 7.5rem; height: .9rem; transform: translateX(-50%); border-radius: 50%;
  background: radial-gradient(closest-side, rgba(92,58,33,.55), rgba(92,58,33,0)); }
.signpost-cap { position: absolute; left: 50%; top: -1.25rem; transform: translateX(-50%); width: 30px; height: 14px; border-radius: 50% 50% 3px 3px; background: #4E2F18; z-index: 1; }
.signpost-flag { position: absolute; left: calc(50% + 4px); top: -2.9rem; width: 46px; height: 26px; background: #9D1425; clip-path: polygon(0 0, 100% 0, 78% 50%, 100% 100%, 0 100%); }
.signpost-flag::before { content: ""; position: absolute; left: -4px; top: 0; width: 3px; height: 40px; background: #4E2F18; }
.signpost ul { list-style: none; margin: 0; padding: 0; position: relative; z-index: 2; display: grid; gap: .85rem; }
.signpost li { display: flex; }
.signpost li:nth-child(odd) { justify-content: flex-start; padding-right: calc(50% - 30px); }
.signpost li:nth-child(even) { justify-content: flex-end; padding-left: calc(50% - 30px); }
.signpost-arm { position: relative; display: block; width: 100%; text-decoration: none !important; color: var(--ink-body) !important; --tip: 26px; --tilt: -2deg;
  filter: drop-shadow(3px 4px 0 rgba(43,29,20,.55)); transform: rotate(var(--tilt)); transform-origin: 100% 50%; }
.signpost li:nth-child(even) .signpost-arm { --tilt: 2deg; transform-origin: 0 50%; }
.signpost li:nth-child(3) .signpost-arm { --tilt: 1.2deg; } .signpost li:nth-child(4) .signpost-arm { --tilt: -1.4deg; }
.signpost-arm .board { display: block; padding: 6px; background: linear-gradient(180deg, #8B5A33, #6B4225); clip-path: polygon(var(--tip) 0, 100% 0, 100% 100%, var(--tip) 100%, 0 50%); }
.signpost li:nth-child(even) .signpost-arm .board { clip-path: polygon(0 0, calc(100% - var(--tip)) 0, 100% 50%, calc(100% - var(--tip)) 100%, 0 100%); }
.signpost-arm .face { display: block; min-height: 44px; padding: .6rem .9rem .55rem calc(var(--tip) + .4rem); background: radial-gradient(120% 90% at 20% 10%, rgba(255,255,255,.35), transparent 60%), var(--paint, #F4E7CC);
  clip-path: polygon(calc(var(--tip) - 2px) 0, 100% 0, 100% 100%, calc(var(--tip) - 2px) 100%, 0 50%); }
.signpost li:nth-child(even) .signpost-arm .face { padding: .6rem calc(var(--tip) + .4rem) .55rem .9rem; text-align: right; clip-path: polygon(0 0, calc(100% - var(--tip) + 2px) 0, 100% 50%, calc(100% - var(--tip) + 2px) 100%, 0 100%); }
.signpost-arm b { display: block; font: 400 1.22rem/1.1 var(--display); color: var(--ink-heading); }
.signpost-arm small { display: block; font: 500 .78rem/1.3 var(--sans); color: var(--ink-muted); margin-top: .15rem; }
.signpost li:nth-child(1) .signpost-arm { --paint: #EDE4D1; } .signpost li:nth-child(2) .signpost-arm { --paint: #D2DBD1; }
.signpost li:nth-child(3) .signpost-arm { --paint: #E6D7BA; } .signpost li:nth-child(4) .signpost-arm { --paint: #CBBFBC; }
.signpost-arm:focus-visible { outline: 3px solid var(--ink-heading); outline-offset: 3px; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) { .signpost-arm:hover, .signpost-arm:focus-visible { animation: signWiggle .5s ease-in-out; } }
@media (max-width: 560px) {
  .signpost li:nth-child(odd) { padding-right: 18%; } .signpost li:nth-child(even) { padding-left: 18%; }
  .signpost::before { left: 50%; }
  .signpost-arm b { font-size: 1.08rem; }
}
/* card titles: clean (r2) — see ROUND 2 block */

/* =====================================================================
   CONVERSION BLOCKS: offer, steps, proof, FAQ, sticky CTA
   ===================================================================== */
.wa-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 48px; padding: .6rem 1.25rem; border-radius: 4px;
  font: 600 .95rem/1.2 var(--sans); letter-spacing: .02em; text-decoration: none !important;
  background: var(--cta); color: #FFFFFF !important; border: 2px solid var(--ink-body); box-shadow: 4px 4px 0 var(--ink-body); }
.wa-btn:hover { background: var(--cta-hover); transform: translate(1px,1px); box-shadow: 3px 3px 0 var(--ink-body); }
.wa-btn svg { width: 20px; height: 20px; flex: none; }
.ghost-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: .6rem 1.1rem; border-radius: 4px; font: 600 .95rem/1.2 var(--sans);
  color: var(--ink-heading) !important; background: #FBF6EC; border: 2px solid var(--ink-heading); text-decoration: none !important; box-shadow: 4px 4px 0 var(--tone-mid); }
.wa-btn:focus-visible, .ghost-btn:focus-visible { outline: 3px solid var(--ink-heading); outline-offset: 3px; }

.offer-hero { text-align: center; margin: .6rem auto 1.2rem; }
.offer-line { font: 400 clamp(1.5rem, 4.6vw, 2.1rem)/1.15 var(--display); color: var(--ink-heading); margin: .4rem 0 .5rem; }
.offer-sub { font-size: 1.02rem; color: var(--ink-body); margin: 0 auto .9rem; max-width: 34rem; }
.offer-ctas { display: flex; flex-wrap: wrap; gap: .8rem; justify-content: center; }
.offer-note { font-size: .86rem; color: var(--ink-muted) !important; margin: .8rem 0 0; }

.block { margin: 3rem 0 0; }
.block-h { font: 400 clamp(1.6rem, 5vw, 2.1rem)/1.1 var(--display); color: var(--ink-heading) !important; margin: 0 0 .3rem; text-align: center; }
.block-sub { text-align: center; color: var(--ink-muted) !important; margin: 0 0 1.4rem; }
.steps { list-style: none; counter-reset: step; margin: 0; padding: 0; display: grid; gap: 1rem; }
@media (min-width: 700px) { .steps { grid-template-columns: repeat(3, 1fr); } }
.steps li { counter-increment: step; position: relative; padding: 2.4rem 1rem 1.1rem; background: #FBF6EC; border: 2px solid var(--ink-body); border-radius: 4px; box-shadow: 4px 4px 0 var(--tone-mid); }
.steps li::before { content: counter(step); position: absolute; left: 1rem; top: -1.1rem; width: 2.4rem; height: 2.4rem; display: grid; place-items: center;
  font: 400 1.2rem/1 var(--display); color: #FFFFFF; background: var(--tone-deep); border: 2px solid var(--ink-body); border-radius: 50%; }
.steps h3 { font: 400 1.25rem/1.15 var(--display); color: var(--ink-heading) !important; margin: 0 0 .35rem; }
.steps p { margin: 0; line-height: 1.5; font-size: .96rem; }

.proof-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .7rem; }
@media (min-width: 760px) { .proof-grid { grid-template-columns: repeat(3, 1fr); } }
.proof-grid a { position: relative; display: block; overflow: hidden; border: 2px solid var(--ink-body); border-radius: 4px; aspect-ratio: 4 / 3; text-decoration: none !important; background: #E9D8B4; }
.proof-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.proof-grid span { position: absolute; left: .45rem; bottom: .45rem; right: .45rem; font: 600 .8rem/1.25 var(--sans); color: var(--ink-body); background: rgba(251,246,236,.94); padding: .3rem .5rem; border-radius: 3px; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) { .proof-grid a:hover img { transform: scale(1.04); } }
.proof-grid a:focus-visible { outline: 3px solid var(--ink-heading); outline-offset: 2px; }
.todo-slot { display: none; margin: 1.2rem 0 0; padding: 1rem; border: 2px dashed #9D1425; border-radius: 4px; color: #9D1425 !important; font: 600 .9rem/1.4 var(--sans); text-align: center; background: #FFF4F0; }
body.show-todo .todo-slot { display: block; }

.faq { display: grid; gap: .6rem; max-width: 40rem; margin: 0 auto; }
.faq details { background: #FBF6EC; border: 2px solid var(--ink-body); border-radius: 4px; padding: 0; }
.faq summary { cursor: pointer; list-style: none; padding: .85rem 2.6rem .85rem 1rem; position: relative; font: 600 1rem/1.35 var(--sans); color: var(--ink-heading); min-height: 44px; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: 1rem; top: 50%; transform: translateY(-50%); font: 400 1.5rem/1 var(--display); color: var(--tone-deep); }
.faq details[open] summary::after { content: "–"; }
.faq details > div { padding: 0 1rem .9rem; } .faq details p { margin: 0; line-height: 1.55; }
.faq summary:focus-visible { outline: 3px solid var(--ink-heading); outline-offset: 2px; }

.cta-band { margin: 3rem 0 .5rem; padding: 1.6rem 1.2rem; text-align: center; border: 2px solid var(--ink-body); border-radius: 4px; background: var(--tone-grad); }
.cta-band-inner { background: rgba(251,246,236,.94); border-radius: 3px; padding: 1.2rem 1rem; }
.cta-band h2 { font: 400 clamp(1.5rem, 4.5vw, 2rem)/1.15 var(--display); margin: 0 0 .4rem; color: var(--ink-heading) !important; }
.cta-band p { margin: 0 0 1rem; }

/* sticky WhatsApp (inner pages) */
.sticky-cta { position: fixed; right: max(.9rem, env(safe-area-inset-right)); bottom: calc(.9rem + env(safe-area-inset-bottom, 0px)); z-index: 45;
  display: inline-flex; align-items: center; gap: .45rem; min-height: 48px; padding: .55rem 1rem .55rem .8rem; border-radius: 999px;
  font: 600 .92rem/1 var(--sans); text-decoration: none !important; color: #FFFFFF !important; background: var(--cta); border: 2px solid #FBF6EC; box-shadow: 0 6px 18px rgba(0,0,0,.35); }
.sticky-cta svg { width: 22px; height: 22px; }
.sticky-cta:hover { background: var(--cta-hover); }
.sticky-cta:focus-visible { outline: 3px solid #FBF6EC; outline-offset: 3px; }
body.menu-open .sticky-cta { display: none; }
@media (max-width: 560px) { body.bh-site.section-page main { padding-bottom: 5rem !important; } }
/* the draft tag sits bottom-left; keep it clear of the sticky button on phones */
@media (max-width: 560px) { body.bh-site.section-page .draft-tag { bottom: calc(1.1rem + env(safe-area-inset-bottom, 0px)) !important; } }

/* contact page WhatsApp row */
.contact-quick { display: flex; flex-wrap: wrap; gap: .8rem; justify-content: center; margin: 1rem 0 .4rem; }

/* =====================================================================
   HOME · offer dock (appears once you scroll past the bay; the bay itself is untouched)
   ===================================================================== */
.offer-dock { position: fixed; z-index: 30; left: max(1.2rem, env(safe-area-inset-left)); bottom: 1.4rem; width: min(24rem, calc(50vw - 17rem));
  padding: 1.1rem 1.15rem 1.15rem; color: var(--ink-body); background: #F2EADB; border: 2px solid var(--ink-body); border-radius: 6px; box-shadow: 7px 7px 0 var(--tone-mid), 0 20px 40px rgba(0,0,0,.35);
  opacity: 0; visibility: hidden; transform: translateY(12px); transition: opacity .45s ease, transform .45s ease, visibility 0s linear .45s; }
.offer-dock::before { content: ""; position: absolute; left: -2px; right: -2px; top: -2px; height: 10px; border-radius: 6px 6px 0 0; background: var(--tone-grad); }
body.home[data-kind="section"] .offer-dock { opacity: 1; visibility: visible; transform: none; transition: opacity .45s ease, transform .45s ease, visibility 0s; }
body.home.menu-open .offer-dock { visibility: hidden; opacity: 0; }
.offer-dock .dock-kicker { margin: .35rem 0 .3rem; font: 600 .68rem/1.3 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: #9D1425; }
.offer-dock .dock-line { margin: 0 0 .45rem; font: 400 1.55rem/1.12 var(--display); color: var(--ink-heading); }
.offer-dock .dock-sub { margin: 0 0 .85rem; font-size: .95rem; line-height: 1.45; }
.offer-dock .dock-ctas { display: flex; flex-wrap: wrap; gap: .6rem; }
.offer-dock .dock-prices { margin: .8rem 0 0; font-size: .8rem; line-height: 1.4; color: var(--ink-muted); }
.offer-dock .wa-btn, .offer-dock .ghost-btn { min-height: 44px; font-size: .9rem; padding: .5rem .9rem; }
@media (max-width: 1099px) {
  .offer-dock { left: .6rem; right: .6rem; bottom: calc(.6rem + env(safe-area-inset-bottom, 0px)); width: auto; padding: .7rem .75rem .75rem; box-shadow: 4px 4px 0 var(--tone-mid), 0 10px 24px rgba(0,0,0,.35); }
  .offer-dock .dock-kicker, .offer-dock .dock-prices { display: none; }
  .offer-dock .dock-line { font-size: 1.12rem; margin: .25rem 0 .5rem; }
  .offer-dock .dock-sub { display: none; }
  .offer-dock .dock-ctas { flex-wrap: nowrap; }
  .offer-dock .dock-ctas a { flex: 1 1 0; padding: .45rem .5rem; font-size: .86rem; }
  body.home[data-kind="section"] .dive-cue-home { bottom: calc(8.6rem + env(safe-area-inset-bottom, 0px)) !important; }
  body.home[data-kind="section"] .draft-tag { display: none !important; }
}

/* studio: wider panel on desktop so the sign wall has room for two columns */
@media (min-width: 1000px) { body.bh-site.studio-services .services-main { max-width: 60rem !important; } }
body.bh-site.studio-services .services-intro { text-align: center; }

/* --- fixes: beat theme.css svc-mini tile styles on sign boards --- */
body.bh-site .sign.svc-mini, body.bh-site .svc-minis .sign.svc-mini, body.bh-site .sign.svc-mini.svc-featured { background: none !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important; padding: 0 !important; margin: 0 !important; overflow: visible !important; align-self: start; }
body.bh-site .svc-minis .sign.svc-mini::after, body.bh-site .sign.svc-mini::after { display: none !important; }
body.bh-site .sign .sign-face.svc-mini-face { padding: 1.05rem calc(var(--tip) + .9rem) 1.1rem 1.25rem; }
body.bh-site .sign.point-left .sign-face.svc-mini-face { padding: 1.05rem 1.25rem 1.1rem calc(var(--tip) + .9rem); }
body.bh-site .sign.svc-featured .sign-face.svc-mini-face { padding-top: 1.05rem; padding-bottom: 1.1rem; }
body.bh-site .sign .svc-badge { background: #9D1425 !important; color: #FFFFFF !important; border: 0 !important; }
body.bh-site .sign .svc-price { color: var(--ink-body) !important; font-weight: 700; }

/* headings: fully indigo; the accent word keeps a painted underline in the section tone */
html body.bh-site.section-page :is(h1,h2,h3) .accent-cherry, html body.bh-site.section-page.accent-electric :is(h1,h2,h3) .accent-cherry, html body.bh-site.section-page.accent-cherry-tone :is(h1,h2,h3) .accent-cherry {
  color: var(--ink-heading) !important; -webkit-text-fill-color: var(--ink-heading) !important; background: none !important;
  text-decoration: underline; text-decoration-color: var(--tone-mid); text-decoration-thickness: .12em; text-underline-offset: .14em; text-decoration-skip-ink: none; }

/* conversion text colours (beat the generic panel p rule) */
body.bh-site.section-page .dive-main p.offer-line, body.bh-site.section-page .services-main p.offer-line { color: var(--ink-heading) !important; }
body.bh-site.section-page .dive-main .offer-note, body.bh-site.section-page .services-main .offer-note { color: var(--ink-muted) !important; }
body.bh-site.section-page .proof-grid span { color: var(--ink-body) !important; }
body.bh-site.section-page .wa-btn span, body.bh-site.section-page .sticky-cta span { color: #FFFFFF !important; }
body.bh-site.section-page .dive-main a.wa-btn, body.bh-site.section-page .services-main a.wa-btn { color: #FFFFFF !important; }
body.bh-site.section-page .dive-main a.ghost-btn, body.bh-site.section-page .services-main a.ghost-btn { color: var(--ink-heading) !important; }
.signpost { margin-top: 3.4rem; }
@media (min-width: 760px) { .signs-wall { grid-template-columns: minmax(0,1fr) minmax(0,1fr); } .signs-wall > .sign[data-service="ai-automation-crm"] { grid-column: 1 / -1; } }
body.bh-site.section-page.summer-page .dive-kicker { color: #9D1425 !important; }

/* =====================================================================
   ROUND 2 · Nov 12 — Pack D icons, editorial services, clean offer index
   ===================================================================== */
/* links carry an underline so indigo accent (#4338A0) never relies on colour alone vs heading indigo */
body.bh-site.section-page .dive-main p a:not([class]), body.bh-site.section-page .services-main p a:not([class]) { text-decoration: underline; text-underline-offset: .18em; text-decoration-thickness: 1px; }

/* ---------- icons ---------- */
.menu-panel li.menu-item a:has(.menu-ic) { display: grid !important; grid-template-columns: 34px 1fr; column-gap: .85rem; align-items: center; }
.menu-ic { width: 32px; height: 32px; object-fit: contain; flex: none; filter: drop-shadow(0 1px 0 rgba(255,255,255,.25)); }
.mi-text { display: block; min-width: 0; }
.dive-ring.has-icon .dive-ring-icon .ring-ic { width: 34px; height: 34px; object-fit: contain; filter: none; }
.dive-ring.has-icon .dive-ring-icon:has(.ring-ic) { filter: none !important; }
.dive-icon-row .hdr-ic, .services-icon .hdr-ic { width: 56px; height: 56px; object-fit: contain; display: block; }
.services-icon.hdr-wrap { display: flex; justify-content: center; background: none !important; border: 0 !important; box-shadow: none !important; width: auto !important; height: auto !important; margin: .2rem auto .3rem; }
.ph-wa { width: 20px; height: 20px; flex: none; }
.ghost-btn.has-ic { display: inline-flex; align-items: center; gap: .5rem; }
.btn-ic { width: 26px; height: 26px; object-fit: contain; }

/* ---------- services: editorial list ---------- */
body.bh-site .services-main .svc-block { margin: 3.2rem 0 0; padding: 0; background: none !important; border: 0 !important; box-shadow: none !important; }
body.bh-site .services-main .svc-head.cat-head { display: grid; grid-template-columns: 48px auto 1fr; align-items: center; column-gap: .9rem;
  margin: 0 0 .4rem; padding: 0 0 .9rem; border: 0 !important; border-bottom: 1.5px solid var(--ink-heading) !important; background: none !important; box-shadow: none !important; transform: none !important; }
.cat-head::before, .cat-head::after { content: none !important; }
.cat-ic { width: 48px; height: 48px; object-fit: contain; }
.cat-num { font: 500 .78rem/1 var(--sans); letter-spacing: .16em; color: var(--accent-3); font-variant-numeric: tabular-nums; }
body.bh-site .services-main .cat-head h2 { margin: 0 !important; font-family: "Rakkas", var(--display), serif; font-weight: 400; font-size: clamp(1.45rem, 1.1rem + 1.2vw, 2rem); line-height: 1.1; color: var(--ink-heading) !important; text-align: left !important; letter-spacing: 0; }
body.bh-site .services-main .svc-note-inline { margin: .6rem 0 0; font-size: .85rem; color: var(--ink-muted) !important; }

body.bh-site .services-main .svc-list { display: block !important; margin: 0; padding: 0; gap: 0; }
body.bh-site .services-main .svc-row { position: relative; display: grid; grid-template-columns: 11.5rem minmax(0, 1fr) 10.5rem 9.5rem;
  grid-template-areas: "name desc price go"; column-gap: 1.5rem; align-items: baseline;
  padding: 1.35rem .75rem 1.35rem .5rem; margin: 0; border: 0 !important; border-bottom: 1px solid var(--rule) !important;
  background: transparent !important; box-shadow: none !important; transform: none !important; border-radius: 0 !important; transition: background-color .25s ease; }
body.bh-site .services-main .svc-row .svc-name { grid-area: name; margin: 0 !important; font-family: "Rakkas", var(--display), serif !important; font-weight: 400; font-size: 1.32rem; line-height: 1.15; text-align: left !important; }
.svc-row .svc-name { background: linear-gradient(var(--accent-ink), var(--accent-ink)) no-repeat 0 100% / 0 1.5px; padding-bottom: .12rem; justify-self: start; transition: background-size .35s cubic-bezier(.2,.7,.2,1); }
body.bh-site .services-main .svc-row .svc-desc { grid-area: desc; margin: 0 !important; font-size: 1.02rem; line-height: 1.5; color: var(--ink-body) !important; text-align: left !important; text-justify: none; word-spacing: normal; letter-spacing: 0 !important; hyphens: manual; max-width: 40ch; }
body.bh-site .services-main .svc-row .svc-price { grid-area: price; justify-self: end; text-align: right; margin: 0; padding: 0; background: none !important; border: 0 !important;
  font: 600 1rem/1.3 var(--sans) !important; font-variant-numeric: tabular-nums lining-nums; color: var(--ink-heading) !important; white-space: nowrap; }
body.bh-site .services-main .svc-row .svc-price em { display: block; margin-top: .2rem; font-style: normal; font-weight: 400; font-size: .74rem; color: var(--ink-muted) !important; letter-spacing: .04em; }
body.bh-site .services-main .svc-row .row-go { grid-area: go; justify-self: end; align-self: center; display: inline-flex; align-items: center; gap: .4rem;
  font: 600 .74rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; color: var(--accent-ink) !important; text-decoration: none !important; background: none !important; border: 0 !important; padding: 0; min-height: 44px; min-width: 44px; justify-content: flex-end; }
.svc-row .row-go svg { width: 20px; height: 20px; transition: transform .3s cubic-bezier(.2,.7,.2,1); }
.svc-row .row-go::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.svc-row .row-go:focus-visible { outline: none; }
.svc-row:has(.row-go:focus-visible) { outline: 2px solid var(--accent-ink); outline-offset: -2px; }
/* one restrained hover: faint indigo tint + underline slides under the name + arrow nudge */
@media (hover: hover) {
  body.bh-site .services-main .svc-row:hover { background: rgba(67,56,160,.045) !important; }
  .svc-row:hover .svc-name { background-size: 100% 1.5px; }
  .svc-row:hover .row-go svg { transform: translateX(4px); }
}
.svc-row:has(.row-go:focus-visible) .svc-name { background-size: 100% 1.5px; }
/* price-hidden state keeps the grid */
.studio-services:not(.prices-shown) .svc-row .svc-price { visibility: hidden; }
/* AI agents (long two-tier price) */
body.bh-site .services-main .svc-row[data-service="ai-automation-crm"] { grid-template-columns: 12rem minmax(0, 1fr) 9.5rem; grid-template-areas: "name desc go" "name price go"; row-gap: .5rem; }
body.bh-site .services-main .svc-row[data-service="ai-automation-crm"] .svc-price { justify-self: start; text-align: left; white-space: normal; }

/* "most chosen" — small swallow-tail pennant (burgee) tag */
.pennant-tag { display: inline-block; vertical-align: .32em; margin-left: .55rem; padding: .28rem 1.05rem .26rem .55rem;
  font: 600 .62rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: #FFFFFF !important; -webkit-text-fill-color: #FFFFFF;
  background: var(--burgundy); clip-path: polygon(0 0, 100% 0, calc(100% - .5rem) 50%, 100% 100%, 0 100%); }
.svc-row .pennant-tag { display: block; width: max-content; margin: .45rem 0 0; }

body.bh-site .services-main .svc-aside { margin: 1.4rem 0 0; padding: 0; border: 0 !important; background: none !important; font-size: .9rem; color: var(--ink-muted) !important; }
body.bh-site .services-main .price-toggle-bar { border-bottom: 0 !important; }

@media (max-width: 1080px) and (min-width: 761px) {
  body.bh-site .services-main .svc-row { grid-template-columns: 11rem minmax(0, 1fr) 10rem; grid-template-areas: "name desc price" "name desc go"; row-gap: .35rem; }
  body.bh-site .services-main .svc-row[data-service="ai-automation-crm"] { grid-template-columns: 11rem minmax(0, 1fr) 10rem; grid-template-areas: "name desc go" "name price go"; }
}
@media (max-width: 760px) {
  body.bh-site .services-main .svc-row, body.bh-site .services-main .svc-row[data-service="ai-automation-crm"] {
    grid-template-columns: 1fr auto; grid-template-areas: "name price" "desc desc" "go go"; row-gap: .45rem; column-gap: 1rem; padding: 1.15rem .25rem; }
  body.bh-site .services-main .svc-row[data-service="ai-automation-crm"] { grid-template-areas: "name name" "desc desc" "price price" "go go"; }
  body.bh-site .services-main .svc-row .svc-desc { max-width: none; }
  body.bh-site .services-main .svc-row .row-go { justify-self: start; font-size: .74rem; min-height: 40px; }
  body.bh-site .services-main .svc-head.cat-head { grid-template-columns: 40px auto 1fr; column-gap: .7rem; }
  .cat-ic { width: 40px; height: 40px; }
}
@media (prefers-reduced-motion: reduce) {
  .svc-row, .svc-row .svc-name, .svc-row .row-go svg, .oi-row, .oi-row .oi-arrow { transition: none !important; }
  .svc-row:hover .row-go svg, .oi-row:hover .oi-arrow { transform: none !important; }
}

/* ---------- featured: clean offer index (replaces wooden signpost) ---------- */
.offer-index { margin: 2.6rem 0 2.2rem; }
.offer-index ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; column-gap: 2rem; border-top: 1.5px solid var(--ink-heading); }
.offer-index li { margin: 0; padding: 0; border-bottom: 1px solid var(--rule); }
body.bh-site.section-page .dive-main a.oi-row { display: grid; grid-template-columns: 44px 1.6rem 1fr 22px; align-items: center; column-gap: .85rem; padding: 1.1rem .5rem 1.1rem .25rem;
  text-decoration: none !important; color: var(--ink-body) !important; background: transparent; transition: background-color .25s ease; min-height: 44px; }
.oi-ic { width: 44px; height: 44px; object-fit: contain; }
.oi-num { font: 500 .75rem/1 var(--sans); letter-spacing: .14em; color: var(--accent-3); font-variant-numeric: tabular-nums; }
.oi-text { display: flex; flex-direction: column; gap: .25rem; min-width: 0; }
.oi-text b { font-family: "Rakkas", var(--display), serif; font-weight: 400; font-size: 1.22rem; line-height: 1.1; color: var(--ink-heading); justify-self: start; align-self: flex-start;
  background: linear-gradient(var(--accent-ink), var(--accent-ink)) no-repeat 0 100% / 0 1.5px; padding-bottom: .1rem; transition: background-size .35s cubic-bezier(.2,.7,.2,1); }
.oi-text small { font: 400 .84rem/1.45 var(--sans); color: var(--ink-muted); font-variant-numeric: tabular-nums; }
.oi-arrow { width: 20px; height: 20px; color: var(--accent-ink); transition: transform .3s cubic-bezier(.2,.7,.2,1); }
@media (hover: hover) {
  body.bh-site.section-page .dive-main a.oi-row:hover { background: rgba(67,56,160,.045); }
  .oi-row:hover .oi-text b { background-size: 100% 1.5px; }
  .oi-row:hover .oi-arrow { transform: translateX(4px); }
}
.oi-row:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: -2px; }
@media (max-width: 760px) { .offer-index ul { grid-template-columns: 1fr; } }

/* now-card titles: clean editorial (no painted boards) */
body.bh-site.section-page .now-copy h2 { display: block; padding: 0 0 .5rem; margin: .25rem 0 .2rem !important; transform: none; background: none; border: 0; border-bottom: 1px solid var(--rule); border-radius: 0; box-shadow: none; }
/* menu sits on night navy: icons get a small paper disc so indigo/ink icons stay legible */
.menu-ic { box-sizing: border-box; width: 36px; height: 36px; padding: 4px; border-radius: 50%; background: #F2EADB; box-shadow: 0 0 0 1px rgba(127,179,189,.35); filter: none; }
.menu-panel li.menu-item a:has(.menu-ic) { grid-template-columns: 36px 1fr; }
.dive-ring.has-icon .dive-ring-icon .ring-ic { box-sizing: border-box; width: 40px; height: 40px; padding: 5px; border-radius: 50%; background: #F2EADB; box-shadow: 0 0 0 1px rgba(46,42,107,.25); }

/* r2: summer pages used a dark brand mark meant for a light sky; on the sea/earth ground it needs the light mark (≈17:1 on the dark veil) */
body.bh-site.section-page.summer-page .topbar .brand { color: #F7F1E4 !important; -webkit-text-fill-color: #F7F1E4 !important; text-shadow: 0 1px 2px rgba(5,5,8,.8), 0 3px 14px rgba(5,5,8,.5) !important; }
/* r2: card 04 badge sits on rust — white numeral (≈9:1) instead of dark brown (1.8:1) */
.now-card#proof .now-n { color: #FFFFFF; }

/* =====================================================================
   ROUND 3 · Nov 12 — luminous OKLCH gradients + one CTA red
   ===================================================================== */
@supports (background: linear-gradient(in oklch, red, blue)) {
  :root { --tone-grad: linear-gradient(90deg in oklch, #17434E 0%, #0099A7 50%, #AEEFF2 100%); }
  body[data-tone="earth"] { --tone-grad: linear-gradient(90deg in oklch, #AB4321 0%, #DA8427 50%, #F4CF8B 100%); }
}

/* every call to action = cherry-burgundy (--cta), white text; WhatsApp icon (Phosphor) kept */
.wa-btn, .sticky-cta { background: var(--cta) !important; }
.wa-btn:hover, .sticky-cta:hover { background: var(--cta-hover) !important; }
body.bh-site .enquiry-btn, body.bh-site.section-page .dive-main a.enquiry-btn,
body.bh-site .contact-signup .enquiry-btn.btn-outline { background: var(--cta) !important; color: #FFFFFF !important; }
body.bh-site .enquiry-btn:hover, body.bh-site .contact-signup .enquiry-btn.btn-outline:hover { background: var(--cta-hover) !important; }
/* secondary action buttons: red outline + red label on card (8.06:1), fill on hover */
.ghost-btn, body.bh-site.section-page .dive-main a.ghost-btn, body.bh-site.section-page .services-main a.ghost-btn { color: var(--cta) !important; border-color: var(--cta) !important; box-shadow: 4px 4px 0 var(--ink-body); }
.ghost-btn:hover, body.bh-site.section-page .dive-main a.ghost-btn:hover, body.bh-site.section-page .services-main a.ghost-btn:hover { background: var(--cta) !important; color: #FFFFFF !important; }
/* Contact: the email button is a peer of WhatsApp → solid red */
.contact-quick .ghost-btn, body.bh-site.section-page .dive-main .contact-quick a.ghost-btn { background: var(--cta) !important; color: #FFFFFF !important; border-color: var(--ink-body) !important; }
.contact-quick .ghost-btn:hover, body.bh-site.section-page .dive-main .contact-quick a.ghost-btn:hover { background: var(--cta-hover) !important; }
.contact-quick .ghost-btn span { color: #FFFFFF !important; }
.contact-quick .ghost-btn .btn-ic { background: #FBF6EC; border-radius: 50%; padding: 2px; box-sizing: border-box; }
/* services: "Ask on WhatsApp →" */
body.bh-site .services-main .svc-row .row-go { color: var(--cta) !important; }
.svc-row:has(.row-go:focus-visible) { outline-color: var(--cta); }
@media (hover: hover) { body.bh-site .services-main .svc-row:hover { background: rgba(200,16,46,.045) !important; } }
/* Featured / Studio contact chips + Instagram */
html body.bh-site.section-page .svc-contact-link { color: var(--cta) !important; border-color: var(--cta) !important; }
html body.bh-site.section-page .svc-contact-link:hover { background: var(--cta) !important; color: #FFFFFF !important; }
body.bh-site.section-page .social-btn { background: var(--cta); color: #FFFFFF !important; border: 2px solid #FBF6EC; border-radius: 999px; font-weight: 600; }
body.bh-site.section-page .social-btn:hover, body.bh-site.section-page .social-btn:focus-visible { background: var(--cta-hover); border-color: #FBF6EC; }

/* =====================================================================
   ROUND 4 · Nov 14 — Georgia: "limit the palette to dark dark blue, the red as it is and a combination of the two",
   colour-coded sections, sunrise–sunset gradients, one section dot (was three), clean morning-puddle landing,
   no background image on phones, bigger icons on inner pages, no disc behind the home-scroll icons.
   PALETTE (accents) — everything else is neutral (paper #F2EADB, card #FBF6EC, dark text #2B1D14 / #5B4636, white):
     navy  #1A2C5C  = purely tech & art          (white on it 17.2:1 · on paper 14.4:1)
     plum  #3A4BD8  = navy + red mixed 50% in OKLCH = combined experiences (retreats, Life as Art original content) (white 12.9:1 · paper 10.8:1)
     red   #C8102E  = à la carte in-person services (stays, shoots, villas) — also EVERY call to action (hover #9D1425) (white 8.7:1)
   Light tints (text on dark grounds only): navy #B7CAF5 · plum #B3C3F3 · red #F5BEBB. Paper tints: #E3EBFF · #E4EBFF · #FEE4E3.
   SUNRISE–SUNSET gradient: night navy → plum → red → dawn rose #D9705F → soft gold #F6C98E (in OKLCH; sRGB fallback carries the OKLCH mids
   #291E4F, #6D1E54, #B4484E, #EB9D6C). Each code shifts the stops toward its own colour.
   Section codes: <body data-tone="navy|plum|red"> (the old sea/earth values are gone).
   ===================================================================== */
:root, body {
  --navy: #1A2C5C; --plum: #3A4BD8; --red: #C8102E; --red-hover: #9D1425;
  --cta: #C8102E; --cta-hover: #9D1425; --burgundy: #9D1425;
  --ink-heading: #1A2C5C; --accent-ink: #1A2C5C; --rule: rgba(26,44,92,.16);
  --bh-night: #1A2C5C; --bh-electric: #1A2C5C; --bh-electric-text: #1A2C5C; --bh-emerald: #3A4BD8; --bh-emerald-deep: #3A4BD8; --bh-mint: #B3C3F3;
  --bh-pastel-cherry: #FEE4E3; --bh-pastel-electric: #E3EBFF; --bh-pastel-emerald: #E4EBFF;
  --code: #1A2C5C; --code-light: #B7CAF5; --code-tint: #E3EBFF; --code-g1: #25386B; --code-g2: #111E3F; --code-g3: #030717;
}
body[data-tone="plum"] { --code: #3A4BD8; --code-light: #B3C3F3; --code-tint: #E4EBFF; --code-g1: #2833A5; --code-g2: #151476; --code-g3: #080D35; }
body[data-tone="red"]  { --code: #C8102E; --code-light: #F5BEBB; --code-tint: #FEE4E3; --code-g1: #88011A; --code-g2: #56010D; --code-g3: #290003; }
body, body[data-tone] {
  --accent-3: var(--code); --accent-3-deep: var(--code); --accent-3-light: var(--code-light);
  --tone-deep: var(--code); --tone-mid: var(--code); --tone-light: var(--code-tint); --tone-sand: var(--code-light); --sign-tip: var(--code);
  --sign-paint-1: #F2EADB; --sign-paint-2: var(--code-tint); --sign-paint-3: #FBF6EC;
  --tone-ground: radial-gradient(120% 80% at 50% 0%, var(--code-g1) 0%, var(--code-g2) 55%, var(--code-g3) 100%);
  --tone-veil: linear-gradient(180deg, rgba(5,8,20,.36) 0%, rgba(5,8,20,.52) 45%, rgba(3,4,12,.82) 100%);
}
/* r6: sunrise–sunset gradients replaced by the oil-swirl sheen (P4) — see ROUND 6 block */
/* ---------- section panel: ONE dot in the section colour (was cherry · indigo · teal trio, purely decorative) ---------- */
body.bh-site.section-page .dive-main::after, body.bh-site.section-page .services-main::after {
  width: .8rem; height: .8rem; background: var(--code) !important; box-shadow: 0 0 0 3px var(--code-tint) !important; }
/* panel offset shadow + accents follow the code */
body.bh-site.section-page .dive-main, body.bh-site.section-page .services-main,
body.bh-site.section-page.accent-cherry-tone .dive-main, body.bh-site.section-page.accent-cherry-tone .services-main { box-shadow: 10px 10px 0 var(--code), 0 30px 60px rgba(5,5,8,.45) !important; }
body.bh-site.section-page .dive-icon-row svg, body.bh-site.section-page .svc-head svg { stroke: var(--code) !important; }
body.bh-site.section-page .dive-main a, body.bh-site.section-page .services-main a { color: var(--navy); }
html body.bh-site.section-page.accent-electric .accent-cherry { -webkit-text-fill-color: var(--ink-heading) !important; color: var(--ink-heading) !important; }
body.bh-site .svc-price { color: var(--ink-heading) !important; }
body.bh-site .svc-mini::after, body.bh-site .svc-minis .svc-mini:nth-child(3n+2)::after, body.bh-site .svc-minis .svc-mini:nth-child(3n)::after { background: var(--code) !important; }
html body.bh-site.section-page button.price-toggle, html body.bh-site.section-page .proj-filter-chip, html body.bh-site.section-page a.proj-more { box-shadow: 3px 3px 0 var(--code) !important; }
body.bh-site.section-page input:focus, body.bh-site.section-page select:focus, body.bh-site.section-page textarea:focus { outline-color: var(--code) !important; }
body.bh-site.section-page .back-puddle a, body.bh-site.section-page .services-back a { text-decoration-color: var(--code) !important; }
@media (hover: hover) {
  body.bh-site.section-page .dive-main a.oi-row:hover { background: color-mix(in srgb, var(--code) 5%, transparent); }
}
/* chrome on night: navy button, light dots */
body.bh-site .menu-btn.btn-outline, html body.bh-site.section-page .menu-btn.btn-outline { background: var(--navy) !important; border-color: #F7F1E4 !important; box-shadow: 0 0 0 3px rgba(26,44,92,.5) !important; }
html body.bh-site .menu-btn span, html body.bh-site.section-page .menu-btn span, html body.section-page.summer-page .menu-btn span { background: #F7F1E4 !important; }
body.bh-site .menu-panel { background: radial-gradient(120% 70% at 85% 0%, #25386B 0%, #1A2C5C 50%, #030717 100%) !important; }
body.bh-site .menu-panel a:hover { color: #FFFFFF !important; text-decoration: underline; text-underline-offset: .2em; }
body.bh-site .menu-group-label { color: #F5BEBB !important; }
body.bh-site .menu-ornament { color: #C9BFAE !important; }
html body.bh-site .menu-close, html body.bh-site.section-page .menu-close { border-color: rgba(247,241,228,.6) !important; }
.menu-ic { box-shadow: none; }
/* menu items carry their section colour as a small dot */
.menu-panel li.menu-item a { position: relative; }
.menu-panel li.menu-item a::after { content: ""; position: absolute; right: .2rem; top: 50%; width: .62rem; height: .62rem; margin-top: -.31rem; border-radius: 50%; background: #B7CAF5; box-shadow: 0 0 0 2px #1A2C5C, 0 0 0 3px rgba(247,241,228,.5); }
.menu-panel li.menu-item a[href*="locations"]::after, .menu-panel li.menu-item a[href*="life-as-art"]::after { background: #7B96FE; }
.menu-panel li.menu-item a[href*="april-october"]::after, .menu-panel li.menu-item a[href*="contact"]::after { background: #FD7373; }
/* paper-side numbers / tags in the code colour */
.cat-num, .oi-num { color: var(--code) !important; }

/* ---------- Featured: each card carries its own code ---------- */
.now-card#agents { --card-edge: #1A2C5C; } .now-card#villas, .now-card#festive, .now-card#proof { --card-edge: #C8102E; }
.now-card#festive .now-n, .now-card#proof .now-n { background: var(--card-edge); color: #FFFFFF; }
.now-index a::before, .now-index a:nth-child(n)::before { background: #C8102E; border-radius: 50%; width: .7rem; height: .7rem; clip-path: none; }
.now-index a[href="#agents"]::before { background: #1A2C5C; }
.now-index a:hover { background: #FBF6EC; }
.now-below::after { background: repeating-linear-gradient(180deg, transparent 0 6px, rgba(247,241,228,.14) 6px 7px), linear-gradient(90deg, transparent, rgba(26,44,92,.16) 35%, rgba(200,16,46,.16) 65%, transparent); }
.now-below::before { background: var(--tone-grad); }
.now-terms { border-left-color: var(--card-edge, var(--code)); }
.now-terms li::before, .now-terms li:nth-child(n)::before { background: var(--card-edge, var(--code)); border-radius: 50%; clip-path: none; width: .55rem; height: .55rem; top: .72rem; }
.now-prices > div { border-top-color: var(--card-edge, var(--code)); }
.now-el { color: var(--ink-heading); }

/* ---------- Creative Studio: category codes (page = navy) ---------- */
.svc-block[aria-labelledby="svc-film"], .svc-block[aria-labelledby="svc-private"] { --code: #C8102E; --code-tint: #FEE4E3; }
.services-main .cat-head h2::after { content: ""; display: inline-block; width: .55rem; height: .55rem; margin-left: .6rem; vertical-align: .25em; border-radius: 50%; background: var(--code); }

/* ---------- Home: night ground in navy; accent word in the spot's code (light tint for the dark puddle) ---------- */
html:has(body.home.bh-site), body.home.bh-site, body.home.bh-site[data-kind], body.home.bh-site .stage {
  background: radial-gradient(120% 80% at 50% 0%, #25386B 0%, #1A2C5C 45%, #030717 100%) !important; }
body.home.bh-site .dive-title .accent-cherry, body.home.bh-site .dive-sub .accent-cherry {
  background: none !important; -webkit-text-fill-color: var(--home-accent, #B7CAF5) !important; color: var(--home-accent, #B7CAF5) !important; filter: drop-shadow(0 1px 2px rgba(5,5,8,.9)) !important; }
body.home[data-code="navy"] { --home-accent: #B7CAF5; } body.home[data-code="plum"] { --home-accent: #B3C3F3; } body.home[data-code="red"] { --home-accent: #F5BEBB; }
/* home scroll: icons on their own — no paper disc, no ring circle, no twinkles */
.dive-ring.has-icon .dive-ring-icon .ring-ic { width: 72px; height: 72px; padding: 0; border-radius: 0; background: none !important; box-shadow: none !important;
  filter: drop-shadow(0 0 1.5px rgba(255,255,255,.95)) drop-shadow(0 0 7px rgba(247,241,228,.7)) drop-shadow(0 3px 6px rgba(2,6,23,.6)) !important; }
.dive-ring.has-icon .cherry-ring-svg, .dive-ring.has-icon .cherry-twinkle { display: none !important; }
.dive-ring.has-icon { background: none !important; border: 0 !important; box-shadow: none !important; }
.dive-ring.has-icon::before, .dive-ring.has-icon::after { display: none !important; }
.offer-dock { box-shadow: 7px 7px 0 var(--navy), 0 20px 40px rgba(0,0,0,.35); }
@media (max-width: 1099px) { .offer-dock { box-shadow: 4px 4px 0 var(--navy), 0 10px 24px rgba(0,0,0,.35); } }
.offer-dock .dock-kicker { color: #C8102E; }

/* ---------- Landing: the base puddle with morning clouds, nothing else ---------- */
html:has(body.home.bh-site[data-kind="sky"]), body.home.bh-site[data-kind="sky"], body.home.bh-site .stage.is-sky { background: #4B5353 !important; }
.sky-landing.puddle-landing { background: #4B5353; display: flex; justify-content: center; }
.puddle-morning { display: block; height: 100%; width: auto; max-width: none; object-fit: cover; object-position: 50% 50%; }
@media (min-aspect-ratio: 9/16) {
  /* wider than the artwork: centre it full-height; its asphalt edges fade softly into the matching ground */
  .puddle-morning { -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%); }
}
@media (max-aspect-ratio: 9/16) { .puddle-morning { width: 100%; height: 100%; } }
.puddle-landing .sky-hint { opacity: 1; color: #1A2C5C; background: rgba(251,246,236,.88); padding: .35rem .8rem .25rem; border-radius: 999px; box-shadow: 0 2px 10px rgba(2,6,23,.25); }
.puddle-landing .sky-hint svg { animation: none !important; }
@media (max-width: 560px) { .puddle-landing .sky-hint { bottom: calc(2.9rem + env(safe-area-inset-bottom, 0px)); } }
body.home.bh-site[data-kind="sky"] .brand { color: #FFFFFF !important; text-shadow: 0 1px 2px rgba(2,6,23,.85), 0 2px 12px rgba(2,6,23,.55) !important; }

/* ---------- Inner pages: bigger icons (all sizes) ---------- */
.dive-icon-row .hdr-ic, .services-icon .hdr-ic { width: 96px; height: 96px; }
body.bh-site .services-main .svc-head.cat-head { grid-template-columns: 72px auto 1fr; }
.cat-ic { width: 72px; height: 72px; }
body.bh-site.section-page .dive-main a.oi-row { grid-template-columns: 64px 1.6rem 1fr 22px; }
.oi-ic { width: 64px; height: 64px; }
.btn-ic { width: 32px; height: 32px; }
.menu-ic { width: 44px; height: 44px; } .menu-panel li.menu-item a:has(.menu-ic) { grid-template-columns: 44px 1fr; }
@media (max-width: 760px) {
  .dive-icon-row .hdr-ic, .services-icon .hdr-ic { width: 88px; height: 88px; }
  body.bh-site .services-main .svc-head.cat-head { grid-template-columns: 60px auto 1fr; }
  .cat-ic { width: 60px; height: 60px; }
  body.bh-site.section-page .dive-main a.oi-row { grid-template-columns: 56px 1.4rem 1fr 22px; }
  .oi-ic { width: 56px; height: 56px; }
}

/* ---------- Inner pages on phones: no background image — just the section colour ---------- */
@media (max-width: 760px) {
  body.bh-site.section-page .section-bg, body.bh-site.section-page .section-veil { display: none !important; }
  body.bh-site.section-page[data-tone], body.bh-site.section-page.palette-dark[data-tone], body.bh-site.section-page.summer-page[data-tone] { background: var(--code) !important; }
  html:has(body.bh-site.section-page[data-tone]) { background: var(--code) !important; }
  body.bh-site.section-page .dive-main, body.bh-site.section-page .services-main,
  body.bh-site.section-page.accent-cherry-tone .dive-main, body.bh-site.section-page.accent-cherry-tone .services-main { box-shadow: 6px 6px 0 rgba(2,6,23,.45) !important; }

  body.bh-site.contact-page .dive-main { margin-top: 5.5rem !important; }
}

.proof-grid a { background: #F2EADB; }
.dive-ring.has-icon, .dive-ring.has-icon .dive-ring-icon { width: 72px !important; height: 72px !important; }

/* =====================================================================
   ROUND 5 · Nov 14 — desktop menu without scrollbar (two columns), menu icons without discs and bigger,
   landing fills the desktop screen, "How it goes" numbers with three coloured shadows, faint GFS Neohellenic dropped.
   ===================================================================== */
/* body font: GFS Neohellenic (the faint italic secondary face) removed — Inter carries those lines until Georgia picks from the font sheet */
:root, body { --serif: "Inter", system-ui, -apple-system, sans-serif; --greek: "Inter", system-ui, -apple-system, sans-serif; --display: "Rakkas", Georgia, serif; }

/* landing: full-screen cover on landscape screens (wide crop of the same artwork), tall artwork on portrait */
.sky-landing.puddle-landing { display: block; }
.landing-picture { position: absolute; inset: 0; display: block; }
.landing-picture .puddle-morning { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; object-position: 50% 50%;
  -webkit-mask-image: none !important; mask-image: none !important; }
@media (orientation: portrait) { .landing-picture .puddle-morning { object-position: 50% 46%; } }

/* menu icons: no disc, slightly bigger (all sizes) */
.menu-ic, body.bh-site .menu-ic { width: 52px !important; height: 52px !important; padding: 0 !important; border-radius: 0 !important; background: none !important; box-shadow: none !important;
  filter: drop-shadow(0 1px 1px rgba(255,255,255,.55)) drop-shadow(0 0 6px rgba(247,241,228,.35)) !important; }
.menu-panel li.menu-item a:has(.menu-ic) { grid-template-columns: 52px 1fr !important; }

/* desktop menu: two columns (Create | Experience + Life as Art + Contact), fits without a scrollbar */
@media (min-width: 900px) {
  .menu-panel { justify-content: center !important; padding: 4.5rem 3rem 2.5rem !important; scrollbar-width: none; }
  .menu-panel::-webkit-scrollbar, .menu-panel ul::-webkit-scrollbar { display: none; width: 0; height: 0; }
  .menu-panel .static-menu, .menu-panel #menu-list {
    display: block !important; flex: 0 0 auto !important; overflow: visible !important; max-width: 56rem !important; width: 100%; margin: 0 auto !important; padding-bottom: 0 !important;
    column-count: 2; column-gap: 4rem; scrollbar-width: none; }
  .menu-panel .static-menu > li, .menu-panel #menu-list > li { break-inside: avoid; }
  .menu-panel .static-menu > li.menu-group:not(.menu-group-first), .menu-panel #menu-list > li.menu-group:not(.menu-group-first) { break-before: column; margin-top: .25rem !important; }
  .menu-panel li.menu-item a { padding: .8rem .2rem !important; min-height: 0 !important; }
  .menu-panel li.menu-item.menu-loose-first { margin-top: 1.1rem !important; }
  .menu-panel .menu-ornament { margin-bottom: 1.2rem !important; }
  .menu-panel .menu-close { margin: 1.6rem auto 0 !important; }
}

/* How it goes: each step number (and its card) gets its own shadow colour */
.steps li::before { background: #FBF6EC !important; color: var(--ink-heading) !important; box-shadow: 4px 4px 0 var(--step-c, #1A2C5C); }
.steps li:nth-child(1) { --step-c: #1A2C5C; } .steps li:nth-child(2) { --step-c: #3A4BD8; } .steps li:nth-child(3) { --step-c: #C8102E; }
.steps li { box-shadow: 4px 4px 0 var(--step-c, #1A2C5C) !important; }
@media (min-width: 900px) {
  .menu-panel { padding: 3.2rem 3rem 1.8rem !important; }
  .menu-panel li.menu-item a { padding: .6rem .2rem !important; font-size: 1.8rem !important; }
  .menu-panel .menu-brand { margin-bottom: .3rem !important; }
}
body.home.bh-site[data-kind="sky"] .brand { text-shadow: 0 1px 2px rgba(2,6,23,.95), 0 0 14px rgba(2,6,23,.7), 0 0 28px rgba(2,6,23,.45) !important; }

/* =====================================================================
   ROUND 6 · Nov 14 — P4 "oil from the puddle" palette (trial; P1 is in site-pre-r6/), oil-sheen gradients instead of the
   sunrise strip, no reflections under images (taller frames instead), help menu, new image slots.
   P4 (sampled from the oil swirl in the landing artwork, then pushed darker for section fills and brighter for accents, OKLCH):
     oil teal    #1A2C5C  tech & art            (white 12.0:1 · paper 10.1:1)   bright #84A8FE · pale #B7CAF5
     oil violet  #3A4BD8  combined experiences  (white 13.5:1 · paper 11.3:1)   bright #7B96FE · pale #B3C3F3
     oil rose    #C8102E  à la carte in-person  (white 10.6:1 · paper 8.8:1)    bright #FD7373 · pale #F5BEBB
     CTA = oil rose #C8102E, hover #9D1425 (white 13.7:1)       sheen gold (gradients only) #E9D1A0
   ===================================================================== */
/* oil-sheen strips: the code colour easing into the swirl's own thin-film tints — muted, no rainbow */
body[data-tone="navy"], body:not([data-tone]) { --tone-grad: linear-gradient(90deg, #1A2C5C 0%, #506BAB 38%, #B3C3F3 70%, #E9D1A0 100%); }
body[data-tone="plum"] { --tone-grad: linear-gradient(90deg, #3A4BD8 0%, #6C83D6 38%, #B7CAF5 70%, #E9D1A0 100%); }
body[data-tone="red"]  { --tone-grad: linear-gradient(90deg, #C8102E 0%, #D67371 38%, #E9D1A0 70%, #B7CAF5 100%); }
@supports (background: linear-gradient(in oklch, red, blue)) {
  body[data-tone="navy"], body:not([data-tone]) { --tone-grad: linear-gradient(90deg in oklab, #1A2C5C 0%, #506BAB 38%, #B3C3F3 70%, #E9D1A0 100%); }
  body[data-tone="plum"] { --tone-grad: linear-gradient(90deg in oklab, #3A4BD8 0%, #6C83D6 38%, #B7CAF5 70%, #E9D1A0 100%); }
  body[data-tone="red"]  { --tone-grad: linear-gradient(90deg in oklab, #C8102E 0%, #D67371 38%, #E9D1A0 70%, #B7CAF5 100%); }
}
body.bh-site.section-page .dive-main::before, body.bh-site.section-page .services-main::before { height: 6px !important; opacity: .9; }
.offer-dock::before { background: linear-gradient(90deg in oklab, #1A2C5C 0%, #3A4BD8 35%, #C8102E 65%, #E9D1A0 100%) !important; }
/* brighter oil accents on the dark menu */
.menu-panel li.menu-item a::after { background: #84A8FE; box-shadow: 0 0 0 2px #1A2C5C, 0 0 0 3px rgba(247,241,228,.5); }
.menu-panel li.menu-item a[href*="locations"]::after, .menu-panel li.menu-item a[href*="life-as-art"]::after { background: #7B96FE; }
.menu-panel li.menu-item a[href*="april-october"]::after, .menu-panel li.menu-item a[href*="contact"]::after { background: #FD7373; }
body.bh-site .menu-group-label { color: #F5BEBB !important; }
.steps li:nth-child(1) { --step-c: #1A2C5C; } .steps li:nth-child(2) { --step-c: #3A4BD8; } .steps li:nth-child(3) { --step-c: #C8102E; }

/* Featured: no reflection; a taller portrait frame (4:5) beside the copy on wide screens */
.now-below { display: none !important; }
.now-pool { padding: 1rem 1rem 0; }
.now-above, .now-card#festive .now-above { aspect-ratio: 4 / 5 !important; border-radius: 6px !important; border: 2px solid var(--ink-body); }
.now-above img, .now-card#festive .now-above img { object-position: 50% 50%; }
.now-card#proof .now-above img { object-position: 62% 50%; }
@media (min-width: 900px) {
  .featured-main.dive-main.wide { max-width: 60rem; }
  .now-card { display: grid; grid-template-columns: minmax(0, 23rem) minmax(0, 1fr); align-items: start; }
  .now-pool { padding: 1.2rem 0 1.2rem 1.2rem; position: sticky; top: 5rem; }
  .now-copy { padding: 1.4rem 1.8rem 1.75rem; }
}
@media (max-width: 560px) { .now-above, .now-card#festive .now-above { aspect-ratio: 4 / 5 !important; } }

/* fall specials: the full poster in a tall frame */

/* "Things we can help with" — small pop-out list */
.help-menu { margin: 1rem auto 0; max-width: 36rem; text-align: left; border: 2px solid var(--ink-body); border-radius: 6px; background: #FBF6EC; box-shadow: 4px 4px 0 var(--code); }
.help-menu summary { cursor: pointer; list-style: none; padding: .75rem 1rem; min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  font: 600 .95rem/1.2 var(--sans); letter-spacing: .04em; color: var(--ink-heading); }
.help-menu summary::-webkit-details-marker { display: none; }
.help-menu summary::after { content: "+"; font-size: 1.3rem; line-height: 1; color: var(--code); }
.help-menu[open] summary::after { content: "–"; }
.help-list { list-style: none; margin: 0; padding: .2rem 1rem 1rem; columns: 2 14rem; column-gap: 1.5rem; }
.help-list li { break-inside: avoid; border-top: 1px solid var(--rule); }
.help-list a { display: block; padding: .5rem 0; color: var(--ink-body) !important; text-decoration: none; font-size: .95rem; }
.help-list a:hover { color: #C8102E !important; text-decoration: underline; text-underline-offset: .2em; }

/* new figures: tall frames, no reflections */
.exp-pair { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; margin: 1.2rem 0 1.4rem; }
.frame-tall { margin: 0; aspect-ratio: 3 / 4; overflow: hidden; border: 2px solid var(--ink-body); border-radius: 6px; }
.frame-tall img { width: 100%; height: 100%; object-fit: cover; display: block; }
.zak-figure img { aspect-ratio: auto; height: auto; }
.ceremony-coverage { margin: 2.2rem 0 1rem; }
.ceremony-figure { max-width: 34rem; margin: .8rem auto 1rem; }
.ceremony-figure img { width: 100%; height: auto; display: block; filter: sepia(.15); }
/* posters keep their full tall frame (Ana) */
.folio-grid .frame-poster { max-width: 30rem; margin-left: auto; margin-right: auto; width: 100%; }
.folio-grid .frame-poster img { aspect-ratio: 1200 / 1698 !important; height: auto !important; max-height: none !important; object-fit: contain !important; }

/* =====================================================================
   ROUND 7 · Nov 14 — menu fix on summer pages, star markers on the help list, arrow-only scroll hint, polish pass.
   ===================================================================== */
/* April October + Retreats: the open menu used a near-white panel under cream text — same night panel as everywhere else */
html body.bh-site.section-page.summer-page .menu-panel { background: radial-gradient(120% 70% at 85% 0%, #25386B 0%, #1A2C5C 50%, #030717 100%) !important; color: #F7F1E4 !important; }
html body.bh-site.section-page.summer-page .menu-panel a { color: #F7F1E4 !important; }
html body.bh-site.section-page.summer-page .menu-panel a:hover { color: #FFFFFF !important; }
/* help list: a small ✧ (the menu's own star) in the section colour before each service */
.help-list a { display: flex; align-items: baseline; gap: .55rem; }
.help-list a::before { content: "✧"; flex: none; color: var(--code); font-size: 1.15em; line-height: 1; transform: translateY(.05em); }
/* landing: arrow only */
.puddle-landing .sky-hint { padding: .45rem .55rem; gap: 0; }
.puddle-landing .sky-hint svg { width: 20px; height: 20px; display: block; }
/* polish · Retreats caption had no air before the paragraph under it */
body.bh-site .dive-caption { margin-bottom: 1.1rem !important; }
/* polish · April October event-planning art was a 410px square after a tall pair — keep it a quiet accent */
body.bh-site .dive-media.ao-cherry-2 { max-width: 17rem; margin-left: auto; margin-right: auto; }
/* polish · home dock kicker wrapped to an orphan word; one line on desktop */
@media (min-width: 761px) { .offer-dock .dock-kicker { letter-spacing: .12em !important; font-size: .62rem !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } }
/* polish · featured CTA band: inline contact link reads as a link */
.cta-band p a { color: inherit; text-decoration: underline; text-underline-offset: .18em; }
/* polish · lede → offer line needed a breath */
.offer-line { margin-top: 1.1rem !important; }

/* =====================================================================
   ROUND 8 · Nov 14 — widened desktop scroll-stop art (phones keep the portrait originals)
   ===================================================================== */
@media (min-aspect-ratio: 1/1) {
  body.home.bh-site .stage { width: 100vw !important; left: 50% !important; box-shadow: none !important; }
  body.home.bh-site #puddle-picture,
  body.home.bh-site .puddle-inner,
  body.home.bh-site #puddle-picture .puddle-inner,
  body.home.bh-site .puddle-base,
  body.home.bh-site .puddle-crossfade { -webkit-mask-image: none !important; mask-image: none !important; aspect-ratio: auto !important; max-width: none !important; width: 100% !important; height: 100% !important; object-fit: cover !important; object-position: 50% 50% !important; }
}
/* ---------- R8 · April October: one Experience page with four parts ---------- */
html { scroll-behavior: smooth; }
.ao-section { scroll-margin-top: 4.5rem; margin-top: 2.6rem; padding-top: 2rem; border-top: 1px solid color-mix(in oklab, var(--code, #C8102E) 28%, transparent); }
.ao-section > .contact-h2 { margin-bottom: .1rem; }
.ao-section > .title-en { margin-top: 0; margin-bottom: 1rem; }
.ao-subnav { display: flex; flex-wrap: wrap; justify-content: center; gap: .45rem; margin: 1.6rem auto .4rem; }
.ao-subnav a { font-size: .78rem; letter-spacing: .04em; padding: .45rem .8rem; border: 1.5px solid var(--ink-body, #1a2433); border-radius: 999px; color: var(--ink-body, #1a2433); text-decoration: none; background: rgba(255,255,255,.35); }
.ao-subnav a:hover { background: var(--code, #C8102E); border-color: var(--code, #C8102E); color: #FBF6EC; }
.stay-cards { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; margin-top: 1rem; }
@media (max-width: 520px) { .stay-cards { grid-template-columns: 1fr; } }
.stay-card { display: flex; flex-direction: column; border: 2px solid var(--ink-body, #1a2433); background: #FBF6EC; text-decoration: none; color: inherit; box-shadow: 4px 4px 0 var(--code, #C8102E); transition: transform .2s ease, box-shadow .2s ease; }
.stay-card:hover { transform: translate(-2px,-2px); box-shadow: 6px 6px 0 var(--code, #C8102E); }
.stay-card img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-bottom: 2px solid var(--ink-body, #1a2433); }
.stay-text { display: flex; flex-direction: column; gap: .15rem; padding: .75rem .85rem .85rem; text-align: left; }
.stay-text b { font-family: Rakkas, Georgia, serif; font-weight: 400; font-size: 1.25rem; color: var(--navy, #1A2C5C); }
.stay-text small { font-size: .82rem; opacity: .8; }
.stay-text em { font-size: .82rem; color: var(--code, #C8102E); margin-top: .3rem; }
.retreat-list { list-style: none; padding: 0; margin: 1rem 0 1.1rem; text-align: left; }
.retreat-list li { position: relative; padding: .55rem 0 .55rem 1.7rem; border-bottom: 1px solid rgba(26,36,51,.12); font-size: .95rem; line-height: 1.5; }
.retreat-list li::before { content: "✧"; position: absolute; left: .2rem; top: .5rem; color: var(--code, #C8102E); font-size: 1.1em; }
.ready-retreat { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); margin-top: 2rem; border: 2px solid var(--ink-body, #1a2433); background: #FBF6EC; box-shadow: 5px 5px 0 var(--code, #C8102E); text-align: left; }
.ready-retreat img { width: 100%; height: 100%; object-fit: cover; border-right: 2px solid var(--ink-body, #1a2433); min-height: 16rem; }
.rr-copy { padding: 1.1rem 1.2rem 1.2rem; }
.rr-kicker { font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: var(--code, #C8102E); margin: 0 0 .35rem; }
.ready-retreat h3 { font-family: Rakkas, Georgia, serif; font-weight: 400; font-size: 1.35rem; line-height: 1.2; color: var(--navy, #1A2C5C); margin: 0 0 .5rem; }
.rr-copy p { font-size: .92rem; line-height: 1.55; margin: 0 0 .6rem; }
.rr-price { font-weight: 600; color: var(--navy, #1A2C5C); }
@media (max-width: 560px) { .ready-retreat { grid-template-columns: 1fr; } .ready-retreat img { border-right: 0; border-bottom: 2px solid var(--ink-body, #1a2433); min-height: 0; aspect-ratio: 3 / 2; } }
/* stay listing pages */
.stay-facts { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem; padding: 0; margin: .8rem 0 1.1rem; }
.stay-facts li { font-size: .8rem; padding: .3rem .7rem; border: 1.5px solid var(--ink-body, #1a2433); border-radius: 999px; background: rgba(255,255,255,.4); }
.stay-copy { max-width: 40rem; margin: 2rem auto 0; text-align: left; }
.stay-copy .contact-h2 { text-align: left; margin-top: 1.6rem; }
.stay-amenities { list-style: none; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .2rem 1rem; }
.stay-amenities li { padding: .35rem 0 .35rem 1.5rem; position: relative; }
.stay-amenities li::before { content: "✧"; position: absolute; left: .1rem; color: var(--code, #C8102E); }
.stay-page .offer-ctas { justify-content: center; margin-bottom: 1.4rem; }
/* Featured: services list now sits lower, before the FAQ */
.help-block { max-width: 34rem; margin: 2.4rem auto 0; }
.help-block .help-menu { margin: 0 auto; }
.help-more { text-align: center; margin-top: .9rem; font-size: .9rem; }
.help-more a { color: var(--code); }
.stay-page .folio-grid img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; height: auto; }
.stay-page .folio-grid .span-2 img { aspect-ratio: 16 / 10; }
.stay-copy .dive-body, .stay-copy .soft-note { text-align: left; }
/* r9: April October sub-links in the menu */
.menu-panel .menu-sub { list-style: none; display: flex; flex-wrap: wrap; gap: .3rem .9rem; padding: .1rem 0 .7rem 3.1rem; margin: -.2rem 0 0; }
.menu-panel .menu-sub a { font-size: .78rem; letter-spacing: .03em; color: inherit; opacity: .85; text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: 1px; }
.menu-panel .menu-sub a:hover { opacity: 1; }
/* r9: same words on every device: the dock keeps its kicker, sub-line and prices on phones (smaller), and the desktop kicker wraps instead of being cut off */
@media (max-width: 1099px) {
  .offer-dock .dock-kicker { display: block !important; font-size: .6rem !important; letter-spacing: .1em !important; margin: 0 0 .1rem; }
  .offer-dock .dock-sub { display: block !important; font-size: .8rem !important; line-height: 1.4; margin: 0 0 .5rem; }
  .offer-dock .dock-prices { display: block !important; font-size: .7rem !important; line-height: 1.35; margin: .45rem 0 0; }
  .offer-dock .dock-line { margin: .15rem 0 .3rem; }
}
@media (min-width: 761px) { .offer-dock .dock-kicker { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; } }

/* =====================================================================
   ROUND 10 · Nov 14 — the gradient strips move into the offset shadow on the RIGHT of each content background.
   The standalone strips (panel top strip, gradient rules, home-dock top strip, CTA-band frame) are gone. The offset
   shadow is now an L drawn by a pseudo-element: the right side runs the soft sheen gradient top→bottom (pale gold
   → pale tint → mid → the section code), so the bottom edge stays the code colour, as before.
   ===================================================================== */
/* per-section vertical sheen (same stops as the old strips, turned on end, code colour last) */
body[data-tone="navy"], body:not([data-tone]) { --edge-grad: linear-gradient(180deg, #E9D1A0 0%, #B3C3F3 30%, #506BAB 62%, #1A2C5C 100%); }
body[data-tone="plum"] { --edge-grad: linear-gradient(180deg, #E9D1A0 0%, #B7CAF5 30%, #6C83D6 62%, #3A4BD8 100%); }
body[data-tone="red"]  { --edge-grad: linear-gradient(180deg, #B7CAF5 0%, #E9D1A0 30%, #D67371 62%, #C8102E 100%); }
@supports (background: linear-gradient(in oklch, red, blue)) {
  body[data-tone="navy"], body:not([data-tone]) { --edge-grad: linear-gradient(180deg in oklab, #E9D1A0 0%, #B3C3F3 30%, #506BAB 62%, #1A2C5C 100%); }
  body[data-tone="plum"] { --edge-grad: linear-gradient(180deg in oklab, #E9D1A0 0%, #B7CAF5 30%, #6C83D6 62%, #3A4BD8 100%); }
  body[data-tone="red"]  { --edge-grad: linear-gradient(180deg in oklab, #B7CAF5 0%, #E9D1A0 30%, #D67371 62%, #C8102E 100%); }
}
/* the L-shaped edge: sits outside the box only (clip-path), so it never covers content */
.r10-edge, body.bh-site.section-page .dive-main::before, body.bh-site.section-page .services-main::before,
.now-card::after, .offer-dock::before, .stay-card::after, .ready-retreat::after, .cta-band::after {
  --e: 10px;
  content: "" !important; display: block !important; position: absolute !important; pointer-events: none; z-index: 0 !important;
  left: calc(var(--e) - 2px) !important; top: calc(var(--e) - 2px) !important; right: calc(-1 * var(--e) - 2px) !important; bottom: calc(-1 * var(--e) - 2px) !important;
  width: auto !important; height: auto !important; margin: 0 !important; opacity: 1 !important; transform: none !important; border: 0 !important;
  border-radius: 0 6px 6px 6px !important;
  background: var(--edge-c, var(--code)) !important; background: var(--edge-grad-local, var(--edge-grad)) !important;
  -webkit-clip-path: polygon(calc(100% - var(--e)) 0, 100% 0, 100% 100%, 0 100%, 0 calc(100% - var(--e)), calc(100% - var(--e)) calc(100% - var(--e)));
  clip-path: polygon(calc(100% - var(--e)) 0, 100% 0, 100% 100%, 0 100%, 0 calc(100% - var(--e)), calc(100% - var(--e)) calc(100% - var(--e)));
}
/* main content panels: solid 10px offset → gradient edge; soft drop shadow kept */
body.bh-site.section-page .dive-main, body.bh-site.section-page .services-main,
body.bh-site.section-page.accent-cherry-tone .dive-main, body.bh-site.section-page.accent-cherry-tone .services-main { box-shadow: 0 30px 60px rgba(5,5,8,.45) !important; }
/* gradient rules inside the panels → a quiet hairline in the code colour */
body.bh-site.section-page .dive-main hr, body.bh-site.section-page .dive-rule, body.bh-site.section-page .services-main hr {
  background: color-mix(in srgb, var(--code) 35%, transparent) !important; height: 1px !important; border-radius: 0; }
/* Featured cards: each card's own colour runs the edge */
.now-card { overflow: visible; box-shadow: 0 18px 40px rgba(7,11,31,.18); }
.now-card::before { border-bottom-left-radius: 6px; }
.now-card::after { --e: 7px; --edge-c: var(--card-edge, var(--code));
  --edge-grad-local: linear-gradient(180deg in oklab, #E9D1A0 0%, color-mix(in oklab, var(--card-edge, var(--code)) 45%, #E9D1A0) 55%, var(--card-edge, var(--code)) 100%); }
/* home dock: top strip gone, edge on the right */
.offer-dock { box-shadow: 0 20px 40px rgba(0,0,0,.35) !important; }
.offer-dock::before { --e: 7px; --edge-c: #1A2C5C;
  --edge-grad-local: linear-gradient(180deg in oklab, #E9D1A0 0%, #B3C3F3 30%, #506BAB 62%, #1A2C5C 100%); }
@media (max-width: 1099px) { .offer-dock { box-shadow: 0 10px 24px rgba(0,0,0,.35) !important; } .offer-dock::before { --e: 4px; } }
/* April October cards */
.stay-card, .ready-retreat { position: relative; }
.stay-card { box-shadow: none; } .stay-card:hover { box-shadow: none; }
.stay-card::after { --e: 5px; } .stay-card:hover::after { --e: 7px; }
.ready-retreat { box-shadow: none; } .ready-retreat::after { --e: 6px; }
/* CTA band: the gradient frame becomes paper with the same right edge */
.cta-band { position: relative; background: #FBF6EC; }
.cta-band-inner { background: transparent; }
.cta-band::after { --e: 8px; }

/* ROUND 10 palette · version C: P1 navy + pink mauve + brighter red (applied in the same places as the P4 colours were; older comments above may quote P4 hexes)
   tech & art #1A2C5C (mid #506BAB · pale #B7CAF5 · bright #84A8FE · tint #E3EBFF · grounds #25386B #111E3F #030717)
   combined experiences #3A4BD8 (mid #6C83D6 · pale #B3C3F3 · bright #7B96FE · tint #E4EBFF · grounds #2833A5 #151476 #080D35)
   in-person + CTA #C8102E hover #9D1425 (mid #D67371 · pale #F5BEBB · bright #FD7373 · tint #FEE4E3 · grounds #88011A #56010D #290003) */

/* r10b · Get Found: a text-only card in the Featured card style, first step before AI agents */
.now-card.now-solo { display: block !important; }
.now-card.now-solo .now-copy { padding: 1.4rem 1.8rem 1.75rem; }
.now-card#get-found { --card-edge: var(--navy); }
.now-card#get-found::before { display: none; }
.gf-price { margin: .1rem 0 .6rem; font-size: 1.15rem; }
.gf-label { margin: .9rem 0 .2rem; font-weight: 600; color: var(--ink-heading); }
@media (max-width: 560px) { .now-card.now-solo .now-copy { padding: 1.1rem 1.1rem 1.3rem; } }

/* r10c · Pitsimenti: the video is replaced by one painted still, same 16:9 slot */
.pitsi-still { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }

/* =====================================================================
   VERSION F · lightened navy #1A2C5C (tech & art + headings) · lobelia #3A4BD8 (combined experiences, tints #6C83D6 #B3C3F3 #E4EBFF)
   · dusty rose as the link & accent colour (#A8737A stars/underlines, #8E5A62 link text + hover fill = AA, link hover #6E4249) · red #C8102E (hover #9D1425) for in-person/CTA.
   (The "version" comment above this block describes the copy this was built from.)
   ===================================================================== */
body.bh-site { --link: #8E5A62; --link-hover: #6E4249; --accent-m: #A8737A; --accent-fill: #8E5A62; }
body.bh-site.section-page .dive-main p a:not([class]), body.bh-site.section-page .dive-main li a:not([class]),
body.bh-site.section-page .services-main p a:not([class]), body.bh-site.section-page .services-main li a:not([class]),
.now-link, .help-more a, .cta-band p a, .dive-caption a, .soft-note a, .stay-copy a:not([class]) { color: var(--link) !important; text-decoration-color: var(--accent-m) !important; }
body.bh-site.section-page .dive-main p a:not([class]):hover, body.bh-site.section-page .dive-main li a:not([class]):hover,
body.bh-site.section-page .services-main p a:not([class]):hover, .now-link:hover, .help-more a:hover, .cta-band p a:hover { color: var(--link-hover) !important; }
body.bh-site.section-page .back-puddle a, body.bh-site.section-page .services-back a { text-decoration-color: var(--accent-m) !important; }
.help-list a::before, .retreat-list li::before, .stay-amenities li::before { color: var(--accent-m) !important; }
.help-list a:hover { color: var(--link-hover) !important; }
.stay-text em { color: var(--link) !important; }
.ao-subnav a:hover { background: var(--accent-fill) !important; border-color: var(--accent-fill) !important; color: #FFFFFF !important; }
.row-go:hover, .oi-row:hover .oi-arrow { color: var(--link) !important; }

/* r10d · Featured: five-step ladder (Get Found card = step 1; steps 2–5 inside the AI agents card) */
.sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ladder-head { margin: 2.2rem 0 1.2rem; text-align: center; scroll-margin-top: 5rem; }
.ladder-map { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: .45rem; padding: 0; margin: .6rem 0 0; }
.ladder-map a { display: inline-flex; align-items: center; gap: .45rem; padding: .4rem .8rem .4rem .45rem; border: 1.5px solid var(--ink-body); border-radius: 999px; background: #FBF6EC; color: var(--ink-body) !important; text-decoration: none; font-size: .85rem; }
.ladder-map b { display: inline-grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: 50%; background: var(--navy); color: #FFFFFF; font: 400 .85rem/1 var(--display); }
.ladder-map li + li a { position: relative; }
.ladder { list-style: none; margin: 1.1rem 0 .8rem; padding: 0; position: relative; }
.ladder::before { content: ""; position: absolute; left: 1.05rem; top: 1.2rem; bottom: 1.2rem; width: 2px; background: color-mix(in srgb, var(--card-edge, var(--navy)) 40%, transparent); }
.rung { position: relative; display: grid; grid-template-columns: 2.1rem minmax(0, 1fr); gap: .8rem; padding: .85rem 0; border-top: 1px solid var(--rule); scroll-margin-top: 5rem; }
.rung:first-child { border-top: 0; padding-top: .2rem; }
.rung-n { position: relative; z-index: 1; display: grid; place-items: center; width: 2.1rem; height: 2.1rem; border-radius: 50%; background: #FBF6EC; border: 2px solid var(--ink-body); box-shadow: 3px 3px 0 var(--card-edge, var(--navy)); font: 400 1.05rem/1 var(--display); color: var(--ink-heading); }
.rung h3 { margin: .1rem 0 .15rem; font: 400 1.35rem/1.15 var(--display); color: var(--ink-heading); }
.rung-price { margin: 0 0 .35rem; font-size: .98rem; }
.rung-price b { font-weight: 700; color: var(--ink-body); } .rung-price em { font-style: normal; color: var(--ink-muted); font-size: .88em; }
.rung-text { margin: 0 0 .6rem; font-size: .95rem; line-height: 1.5; }
.rung .enquiry-btn { font-size: .88rem; padding: .5rem .9rem; min-height: 44px; }
.ladder-terms { margin: .4rem 0 0; padding-top: .7rem; border-top: 1px solid var(--rule); }

/* ======================================================================
   ROUND 12 (Nov 14) — Georgia t186u
   ====================================================================== */
/* r12.4 · 🍒 emoji logo top-left on every page (links home via .brand) — wordmark stays Rakkas */
.topbar .brand { display: inline-flex !important; align-items: center; gap: .42em; }
.topbar .brand .logo-cherry { font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", "Twemoji Mozilla", sans-serif; font-size: 1.28em; line-height: 1; letter-spacing: 0;
  text-shadow: none !important; -webkit-text-fill-color: initial !important; filter: drop-shadow(0 1px 2px rgba(2,6,23,.55)); transform: translateY(-.04em); }
.topbar .brand .brand-text { font-family: var(--display); transition: opacity .25s ease; }
/* on home the wordmark still fades once you scroll, but the logo mark stays */
.topbar .brand.brand-scrolled { opacity: 1 !important; pointer-events: auto !important; }
.topbar .brand.brand-scrolled .brand-text { opacity: 0; }
@media (prefers-reduced-motion: reduce) { .topbar .brand .brand-text { transition: none; } }

/* r12.5 · menu button back to THREE colour dots in the new palette (navy · lobelia · red) on a paper disc */
html body.bh-site .topbar .menu-btn.menu-btn.menu-btn { background: #F7F1E4 !important; border: 2px solid #1A2C5C !important;
  box-shadow: 0 0 0 3px rgba(247,241,228,.28), 0 2px 10px rgba(2,6,23,.4) !important; filter: none !important; }
html body.bh-site .topbar .menu-btn.menu-btn span { width: 7px !important; height: 7px !important; border-radius: 50% !important; box-shadow: none !important; }
html body.bh-site .topbar .menu-btn.menu-btn span:nth-child(1) { background: #1A2C5C !important; }
html body.bh-site .topbar .menu-btn.menu-btn span:nth-child(2) { background: #3A4BD8 !important; }
html body.bh-site .topbar .menu-btn.menu-btn span:nth-child(3) { background: #C8102E !important; }
/* …and the single colour-coded panel dot that replaced the trio is gone (purely decorative) */
html body.bh-site.section-page .dive-main::after, html body.bh-site.section-page .services-main::after,
body.home #featured.hf .dive-main::after { content: none !important; display: none !important; }

/* r12.1 · colour balance — lobelia #3A4BD8 carries the labels & accents; red #C8102E kept for calls to action + a few key accents
   (CTA buttons, submit, "most popular" badges, the featured offer sign, step 3) */
html body.bh-site .dive-kicker, html body.bh-site .eyebrow, html body.bh-site .now-kicker,
html body.bh-site.section-page .dive-kicker, html body.bh-site.section-page .eyebrow, html body.bh-site.section-page .now-kicker,
html body.bh-site.section-page.summer-page .dive-kicker, body.home #featured.hf .dive-kicker, body.home #featured.hf .now-kicker { color: #3A4BD8 !important; }  /* 5.5:1 on paper */
.now-card#villas, .now-card#festive, .now-card#proof { --card-edge: #3A4BD8; }
.now-index a::before, .now-index a:nth-child(n)::before { background: #3A4BD8; }
.svc-block[aria-labelledby="svc-film"], .svc-block[aria-labelledby="svc-private"] { --code: #3A4BD8; --code-tint: #E4EBFF; }
body.bh-site .svc-minis .svc-mini:nth-child(3n+2)::after { background: #3A4BD8 !important; }
.signpost-flag { background: #3A4BD8; }
.help-list a:hover { color: #3A4BD8 !important; }
body.bh-site .menu-group-label { color: #B3C3F3 !important; }
html body.bh-site.section-page .accent-cherry, html body.bh-site.section-page.accent-cherry-tone .accent-cherry { -webkit-text-fill-color: var(--ink-heading) !important; color: var(--ink-heading) !important; }

/* r12.2 · landing: ONE image layer (stage) — no overlay picture, no grey frame, no mask */
html:has(body.home.bh-site[data-kind="sky"]), body.home.bh-site[data-kind="sky"], body.home.bh-site .stage.is-sky { background: #1F6FD0 !important; }
.sky-landing.puddle-landing, body.home .sky-landing { background: transparent !important; }
body.home .stage.is-sky #puddle-picture, body.home .stage.is-sky .puddle-inner { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; max-width: none !important;
  object-fit: cover !important; object-position: 50% 50% !important; transform: none !important; filter: none !important; -webkit-mask-image: none !important; mask-image: none !important; opacity: 1 !important; border-radius: 0 !important; clip-path: none !important; }

/* r12.8 · Featured lives on the homepage (section#featured inside the scroll track) */
body.home #featured.hf { position: relative; display: block; min-height: 100vh; min-height: 100dvh; box-sizing: border-box; padding: calc(4.6rem + env(safe-area-inset-top, 0px)) clamp(.75rem, 3vw, 2rem) 4rem;
  scroll-snap-align: start; background: linear-gradient(180deg, rgba(3,7,23,.42) 0%, rgba(3,7,23,.58) 100%); }
body.home #featured.hf .featured-main { margin: 0 auto !important; opacity: 1 !important; transform: none !important; }
body.home #featured.hf [id] { scroll-margin-top: 5rem; }
body.home.on-featured-panel .dive-cue-home { display: none !important; }
html body.bh-site .topbar .menu-btn.menu-btn.menu-btn { border-radius: 999px !important; }
/* menu-item section dots follow the new codes: April October + Contact are lobelia now */
.menu-panel li.menu-item a[href*="april-october"]::after, .menu-panel li.menu-item a[href*="contact"]::after { background: #7B96FE; }

/* ======================================================================
   ROUND 13 (Nov 14) — Georgia t188u / t189u
   ====================================================================== */

/* r13.2 · landing is now the former Creative Studio stop (night moon puddle).
   Keep it a single full-screen image; ground colour matches the dark road. */
html:has(body.home.bh-site[data-kind="sky"]), body.home.bh-site[data-kind="sky"], body.home.bh-site .stage.is-sky { background: #0D1A2E !important; }

/* r14 · undo r13.5: Featured follows the other stops again (r12.8 dark scrim + solid paper panel).
   The stop image is the new clouds + pine & cypress puddle (still-featured-r14 / wide-featured-r14). */

/* r13.3 · infinite scroll: night (Contact) flows toward the landing clone, then jumps to the real start */
.loop-bridge {
  position: relative;
  height: 100dvh; height: 100svh;
  scroll-snap-align: start;
  scroll-snap-stop: always;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 0 1.25rem calc(3.2rem + env(safe-area-inset-bottom, 0px));
  box-sizing: border-box;
  pointer-events: none;
  background: linear-gradient(180deg,
    rgba(18, 12, 36, 0) 0%,
    rgba(28, 16, 48, 0.42) 28%,
    rgba(40, 48, 110, 0.38) 58%,
    rgba(13, 26, 46, 0.2) 100%);
}
.loop-clone {
  height: 100dvh; height: 100svh;
  scroll-snap-align: start;
  scroll-snap-stop: always;
  pointer-events: none;
}
.loop-back {
  pointer-events: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: .55rem 1.15rem;
  border: 2px solid #1A2C5C;
  border-radius: 999px;
  background: #F2EADB;
  color: #1A2C5C !important;
  font: 600 .95rem/1.2 var(--sans, Inter, sans-serif);
  text-decoration: none;
  box-shadow: 3px 3px 0 #3A4BD8;
}
.loop-back:hover, .loop-back:focus-visible { background: #FBF6EC; color: #1A2C5C !important; outline: 3px solid #3A4BD8; outline-offset: 2px; }
/* When motion is allowed the jump is automatic; keep the link for keyboard users only (focus reveals it). */
@media (prefers-reduced-motion: no-preference) {
  body.home:not(.loop-reduced) .loop-back {
    position: absolute;
    width: 1px; height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
    padding: 0;
    margin: -1px;
    box-shadow: none;
  }
  body.home:not(.loop-reduced) .loop-back:focus-visible {
    position: static;
    width: auto; height: auto;
    min-height: 44px;
    clip: auto;
    overflow: visible;
    margin: 0;
    padding: .55rem 1.15rem;
    border: 2px solid #1A2C5C;
    box-shadow: 3px 3px 0 #3A4BD8;
  }
}
@media (prefers-reduced-motion: reduce) {
  body.home .loop-back { position: static; clip: auto; width: auto; height: auto; margin: 0; }
}

/* ======================================================================
   ROUND 16 (Nov 14) — Georgia t192u
   Featured pre-page on the original night puddle; paper panel restored;
   morning puddle for Studio; packages (not steps); uniform intros.
   ====================================================================== */

/* Undo r15 float: Featured is a paper panel again (r12.8 scrim + solid sheet). */
body.home #featured.hf.hf-float { /* leftover guard if class remains */ }

/* Cue visible on the Featured pre-page; hidden once the paper panel is in view. */
body.home.on-featured .dive-cue-home,
body.home.on-featured-panel .dive-cue-home { display: none !important; }
body.home.on-featured-stop .dive-cue-home { display: flex !important; }

/* The old landing chevron is a fixed overlay; leave it off so it cannot cover the pre-page intro or the paper panel. The dive cue is the enter affordance. */
body.home .sky-landing,
body.home .sky-hint { display: none !important; visibility: hidden !important; pointer-events: none !important; }

/* Packages: no step numbers, no vertical step rail, no numbered pills. */
.packages-map a { padding: .4rem .85rem; }
.packages-list { list-style: none; margin: 1.1rem 0 .8rem; padding: 0; position: relative; }
.packages-list .rung { display: grid; gap: .6rem; margin: 0 0 1.15rem; padding: 0; }
.packages-list .rung-n,
.ladder-map b { display: none !important; }
.packages-list.ladder::before { display: none !important; content: none !important; }

/* Uniform intros: icon 56px, Rakkas title, one-or-two-sentence description. */
.page-intro {
  text-align: center;
  margin: 0 0 1.6rem;
}
.page-intro .dive-icon-row,
.page-intro .services-icon.hdr-wrap {
  display: flex;
  justify-content: center;
  margin: 0.35rem 0 0.45rem;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
  width: auto !important;
  height: auto !important;
}
.page-intro .hdr-ic,
.page-intro .services-icon .hdr-ic,
body.bh-site .page-intro .hdr-ic,
body.bh-site.section-page .page-intro .hdr-ic {
  width: 56px !important;
  height: 56px !important;
  object-fit: contain;
  display: block;
}
.page-intro h1,
.services-intro.page-intro h1 {
  font-family: var(--display, Rakkas, serif);
  font-size: clamp(2rem, 9vw, 2.9rem);
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.08;
  margin: 0.1rem 0 0.35rem;
  text-align: center;
}
.page-intro .dive-lede,
.services-intro.page-intro .dive-lede {
  font-family: var(--serif, Georgia, serif);
  font-size: 1.05rem;
  line-height: 1.55;
  margin: 0 auto 0.75rem;
  max-width: 36rem;
  text-align: center;
  text-transform: none;
  letter-spacing: 0.01em;
  font-style: normal;
}

/* Homepage stop cues follow the same intro pattern (slightly tighter so the puddle still reads). */
body.home .dive-cue-home {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0;
}
body.home .dive-cue-home .dive-cue-ic {
  width: 56px;
  height: 56px;
  object-fit: contain;
  margin: 0 0 0.45rem;
  filter: drop-shadow(0 1px 2px rgba(3, 7, 23, .55));
}
body.home .dive-cue-home .dive-title {
  font-family: var(--display, Rakkas, serif);
  font-size: clamp(1.7rem, 6vw, 2.5rem);
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.08;
  max-width: 18rem;
  margin: 0 0 0.35rem;
  text-wrap: balance;
}
body.home .dive-cue-home .dive-sub {
  font-family: var(--serif, Georgia, serif);
  font-style: normal;
  font-size: 1.05rem;
  line-height: 1.5;
  letter-spacing: 0.01em;
  text-transform: none;
  max-width: 22rem;
  margin: 0 auto 0.85rem;
  text-wrap: balance;
}

/* ======================================================================
   ROUND 17 (Nov 14) — Georgia t193u
   More lobelia #3A4BD8 in accents, edges, packages, menu and the loop wash.
   Navy stays on body/heading text for contrast. Red stays on WhatsApp/CTA/badges.
   Dusty rose stays on links and stars. Layout and content otherwise unchanged.
   ====================================================================== */

/* L-shaped edges lean lobelia on every tone (navy and default used to end in navy). */
body[data-tone="navy"], body:not([data-tone]),
body[data-tone="plum"],
body.home.bh-site {
  --edge-grad: linear-gradient(180deg, #E9D1A0 0%, #B7CAF5 22%, #6C83D6 55%, #3A4BD8 100%);
}
@supports (background: linear-gradient(in oklch, red, blue)) {
  body[data-tone="navy"], body:not([data-tone]),
  body[data-tone="plum"],
  body.home.bh-site {
    --edge-grad: linear-gradient(180deg in oklab, #E9D1A0 0%, #B7CAF5 22%, #6C83D6 55%, #3A4BD8 100%);
  }
}
.offer-dock::before {
  --edge-c: #3A4BD8;
  --edge-grad-local: linear-gradient(180deg in oklab, #E9D1A0 0%, #B7CAF5 22%, #6C83D6 55%, #3A4BD8 100%) !important;
}

/* Title accents / heading underlines on paper panels — text fill stays navy. */
html body.bh-site :is(h1, h2, h3) .accent-cherry,
html body.bh-site.section-page :is(h1, h2, h3) .accent-cherry,
body.home #featured.hf :is(h1, h2, h3) .accent-cherry,
body.home #featured.hf .accent-cherry {
  color: var(--ink-heading, #1A2C5C) !important;
  -webkit-text-fill-color: var(--ink-heading, #1A2C5C) !important;
  background: none !important;
  text-decoration: underline;
  text-decoration-color: #3A4BD8 !important;
  text-decoration-thickness: .12em;
  text-underline-offset: .14em;
  text-decoration-skip-ink: none;
}
.block-h,
body.home #featured.hf .block-h,
.page-intro h1,
.services-intro.page-intro h1,
body.home #featured.hf h1 {
  text-decoration: underline;
  text-decoration-color: #3A4BD8;
  text-decoration-thickness: .08em;
  text-underline-offset: .16em;
  text-decoration-skip-ink: none;
}

/* Kickers already lobelia; keep them clearly so, including any leftover eyebrows. */
html body.bh-site .dive-kicker,
html body.bh-site .eyebrow,
html body.bh-site .now-kicker,
html body.bh-site .gf-label,
body.home #featured.hf .dive-kicker,
body.home #featured.hf .now-kicker,
body.home #featured.hf .eyebrow {
  color: #3A4BD8 !important;
}

/* Icon strokes (inline SVG) and the homepage enter ring — was a red/cherry ring. */
body.bh-site.section-page .dive-icon-row svg,
body.bh-site.section-page .svc-head svg,
body.bh-site.section-page .services-icon svg,
body.home #featured.hf .dive-icon-row svg,
body.home .dive-cue-home .dive-ring-icon svg {
  stroke: #3A4BD8 !important;
}
body.home .dive-cue-home .dive-ring,
body.home .dive-ring.cherry-ring,
body.home .dive-ring {
  border-color: #3A4BD8 !important;
  box-shadow: none;
}
body.home .dive-ring .cherry-glow { stroke: rgba(58, 75, 216, .55) !important; }
body.home .dive-ring .cherry-rim,
body.home .dive-ring .cherry-sheen-arc { stroke: #3A4BD8 !important; }

/* Package / offer card accents and borders (edges were mixed navy/red/lobelia). */
.now-card#get-found,
.now-card#agents,
.now-card#villas,
.now-card#festive,
.now-card#proof {
  --card-edge: #3A4BD8;
}
.oi-num,
.cat-num {
  color: #3A4BD8 !important;
}
.ladder-map a,
.packages-map a {
  border-color: #3A4BD8 !important;
}
.ladder-map a:hover,
.packages-map a:hover,
.ladder-map a:focus-visible,
.packages-map a:focus-visible {
  background: #E4EBFF !important;
  border-color: #3A4BD8 !important;
  color: #1A2C5C !important;
}
.oi-row:hover .oi-arrow,
.oi-row:focus-visible .oi-arrow {
  color: #3A4BD8 !important;
}

/* Ghost / secondary buttons: lobelia outline, navy type (red stays on WhatsApp/CTA). */
html body.bh-site a.ghost-btn,
html body.bh-site .ghost-btn {
  border-color: #3A4BD8 !important;
  color: #1A2C5C !important;
  -webkit-text-fill-color: #1A2C5C !important;
}
html body.bh-site a.ghost-btn:hover,
html body.bh-site .ghost-btn:hover {
  background: #E4EBFF !important;
  border-color: #3A4BD8 !important;
  color: #1A2C5C !important;
}

/* Menu: more lobelia in the panel wash, item hover and the close button. */
body.bh-site .menu-panel {
  background: radial-gradient(120% 80% at 90% 0%, #3A4BD8 0%, #25386B 42%, #1A2C5C 68%, #030717 100%) !important;
}
body.bh-site .menu-panel a:hover,
body.bh-site .menu-panel a:focus-visible {
  color: #FFFFFF !important;
  text-decoration: underline;
  text-decoration-color: #B3C3F3;
  text-underline-offset: .2em;
}
.menu-panel li.menu-item a::after {
  background: #7B96FE;
  box-shadow: 0 0 0 2px #1A2C5C, 0 0 0 3px rgba(58, 75, 216, .55);
}
html body.bh-site .menu-close,
html body.bh-site.section-page .menu-close {
  border-color: #7B96FE !important;
}

/* Loop bridge: night washes into lobelia before the start. */
.loop-bridge {
  background: linear-gradient(180deg,
    rgba(18, 12, 36, 0) 0%,
    rgba(26, 44, 92, 0.38) 24%,
    rgba(58, 75, 216, 0.52) 58%,
    rgba(13, 26, 46, 0.22) 100%);
}

/* ======================================================================
   ROUND 18 (Nov 14) — Georgia t194u
   Restore the approved homepage stop layout from site-pre-r13 (round 12):
   icon (not a button) in the lower third, original cue typography.
   Homepage no longer scrolls through paper pages. Featured is its own page.
   ====================================================================== */

/* Cue sits in the lower third, as in r12: fixed to the bottom, not vertically centred.
   r16 stacked a large title + icon + empty ring and it read as a centred panel. */
body.home .dive-cue-home,
body.home .dive-cue-home.spot-enter {
  position: fixed !important;
  left: 50% !important;
  right: auto !important;
  top: auto !important;
  bottom: calc(6% + var(--safe-bottom, env(safe-area-inset-bottom, 0px))) !important;
  transform: translateX(-50%) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  width: min(90vw, 360px);
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
body.home.on-featured .dive-cue-home,
body.home.on-featured-panel .dive-cue-home,
body.home.on-featured-stop .dive-cue-home {
  display: flex !important;
}

/* Original cue typography (styles.css + r12): modest Rakkas title, italic lowercase caption. */
body.home .dive-cue-home .dive-cue-ic { display: none !important; }
body.home .dive-cue-home .dive-title {
  order: 1;
  font-family: var(--display, Rakkas, serif);
  font-size: clamp(1.05rem, 3.8vw, 1.32rem) !important;
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.12;
  max-width: 14rem !important;
  margin: 0 !important;
  text-decoration: none;
  text-wrap: balance;
}
body.home .dive-cue-home .dive-sub {
  order: 2;
  font-family: var(--serif, Georgia, serif) !important;
  font-style: italic !important;
  font-size: clamp(0.78rem, 3.2vw, 0.95rem) !important;
  line-height: 1.3 !important;
  letter-spacing: 0.04em !important;
  text-transform: lowercase !important;
  max-width: 16.5rem !important;
  margin: 0.15rem 0 0.15rem !important;
  text-wrap: balance;
}
body.home .dive-cue-home .dive-action {
  order: 4 !important;
  margin-top: 0.55rem !important;
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

/* Icon instead of button: 72px hand-drawn icon, no circular ring (r12 v06.css). */
body.home .dive-ring.has-icon {
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
  width: 72px !important;
  height: 72px !important;
  animation: none !important;
}
body.home .dive-ring.has-icon::before,
body.home .dive-ring.has-icon::after { display: none !important; content: none !important; }
body.home .dive-ring.has-icon .cherry-ring-svg,
body.home .dive-ring.has-icon .cherry-twinkle { display: none !important; }
body.home .dive-ring.has-icon .dive-ring-icon,
body.home .dive-ring.has-icon,
body.home .dive-ring.has-icon .dive-ring-icon .ring-ic {
  width: 72px !important;
  height: 72px !important;
}
body.home .dive-ring.has-icon .dive-ring-icon .ring-ic {
  padding: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  box-shadow: none !important;
  object-fit: contain;
  filter: drop-shadow(0 0 1.5px rgba(255,255,255,.95)) drop-shadow(0 0 7px rgba(247,241,228,.7)) drop-shadow(0 3px 6px rgba(2,6,23,.6));
}

/* Featured is a normal inner page now. */
body.featured-page .featured-main { opacity: 1 !important; transform: none !important; }
body.featured-page .now-card { scroll-margin-top: 5rem; }
body.featured-page .ladder-head { scroll-margin-top: 5rem; }

/* ======================================================================
   ROUND 19 (Nov 14) — Georgia t195u
   Homepage stop cue: caption above, icon over the Rakkas title, group
   anchored at the bottom. Nothing else changes.
   ====================================================================== */
body.home .dive-cue-home,
body.home .dive-cue-home.spot-enter,
body.home[data-kind="section"] .dive-cue-home,
body.home[data-kind="sky"] .dive-cue-home {
  bottom: calc(1.25rem + var(--safe-bottom, env(safe-area-inset-bottom, 0px))) !important;
}
@media (max-width: 1099px) {
  body.home .dive-cue-home,
  body.home .dive-cue-home.spot-enter,
  body.home[data-kind="section"] .dive-cue-home {
    bottom: calc(1.15rem + var(--safe-bottom, env(safe-area-inset-bottom, 0px))) !important;
  }
}

/* Top to bottom: caption, icon, title directly under the icon. */
body.home .dive-cue-home .dive-sub {
  order: 1 !important;
  margin: 0 0 0.35rem !important;
}
body.home .dive-cue-home .dive-action {
  order: 2 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
body.home .dive-cue-home .dive-title {
  order: 3 !important;
  margin: 0.2rem 0 0 !important;
}
body.home .dive-cue-home .dive-title-el-extra { order: 5 !important; }
