/* ─── RIELITY STUDIO | SHOTBYZUZU — main website (Website Studio, 2026-10-14) ───────────────────────
   Every colour, font, size and spacing comes from CSS variables written from the published theme
   (site-web.js → siteVars). Booking / Contact pages keep their own stylesheet (public-site.css). */
:root {
  --bg: #F8F5EF; --paper: #EFE8DE; --ink: #242321; --subtle: #A99B8A; --line: #E4DCCF;
  --ink-2: #3a3936; --muted: #6d6a64; --soft: #9a958d; --btn-bg: #242321; --btn-fg: #fff;
  --cream: #EFE8DE; --dark: #242321; --dark-fg: #F8F5EF; --head-bg: #F8F5EF; --head-fg: #242321; --foot-bg: #242321; --foot-fg: #EFE8DE;
  --sec-space: 120px; --content-w: 1240px; --radius: 0px; --btn-radius: 0px;
  --f-h1: 'Cormorant Garamond', Georgia, serif; --f-h2: var(--f-h1); --f-body: 'Jost', -apple-system, sans-serif; --f-nav: var(--f-body); --f-button: var(--f-body);
  --gutter: clamp(20px, 5vw, 64px); --head-h: 84px; --ease: cubic-bezier(.2, .7, .2, 1);
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--head-h) + 12px); }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: var(--f-body); font-weight: var(--w-body, 400); font-size: var(--s-body, 17px); line-height: var(--lh-body, 1.7); letter-spacing: var(--ls-body, 0); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
p { margin: 0 0 1em; }
button { font: inherit; color: inherit; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--ink); color: var(--bg); padding: 10px 16px; text-decoration: none; }
.skip:focus { top: 12px; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.wrap { width: 100%; max-width: var(--content-w); margin: 0 auto; padding: 0 var(--gutter); }
.wrap.narrow { max-width: 820px; }
.muted { color: var(--muted); }
.loading { padding: 40vh 20px; text-align: center; color: var(--muted); }

/* ── type ── */
.eyebrow { font-family: var(--f-nav); font-size: 11.5px; letter-spacing: .26em; text-transform: uppercase; font-weight: 500; color: var(--muted); margin: 0 0 18px; }
.eyebrow a { text-decoration: none; }
.h-hero, .h-sec, .h-item, .h-statement, .h-article, .coll-name, .pc-title, .wordmark { font-family: var(--f-h1); font-weight: var(--w-h1, 400); font-style: var(--i-h1, normal); text-transform: var(--tt-h1, none); }
.h-hero { font-size: clamp(var(--sm-h1, 46px), 7.4vw, var(--s-h1, 96px)); line-height: var(--lh-h1, 1.02); letter-spacing: var(--ls-h1, -.01em); margin: 0 0 22px; }
.h-sec { font-family: var(--f-h2); font-weight: var(--w-h2, 400); font-style: var(--i-h2, normal); text-transform: var(--tt-h2, none); font-size: clamp(var(--sm-h2, 34px), 4.6vw, var(--s-h2, 56px)); line-height: var(--lh-h2, 1.08); letter-spacing: var(--ls-h2, -.005em); margin: 0 0 24px; }
.h-item { font-family: var(--f-h2); font-weight: var(--w-h2, 400); font-size: clamp(24px, 2.3vw, 32px); line-height: 1.15; margin: 0 0 12px; }
.h-small { font-family: var(--f-nav); font-size: 12px; letter-spacing: .22em; text-transform: uppercase; font-weight: 500; margin: 0 0 16px; }
.h-hero em, .h-sec em, .h-item em, .h-statement em, .h-article em { font-style: italic; }
.rich p:last-child { margin-bottom: 0; }
.rich a { text-underline-offset: 3px; }
.lead { font-size: 1.06em; color: var(--ink-2); max-width: 640px; }

/* ── buttons ── */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: var(--btn-min-h, 52px); padding: var(--btn-pad-y, 14px) var(--btn-pad-x, 34px); border: 1px solid var(--btn-bg); background: var(--btn-bg); color: var(--btn-fg); border-radius: var(--btn-radius); font-family: var(--f-button); font-size: var(--s-button, 12px); font-weight: var(--w-button, 500); letter-spacing: var(--ls-button, .2em); text-transform: var(--tt-button, uppercase); text-decoration: none; cursor: pointer; transition: background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease); }
.btn:hover { background: transparent; color: var(--ink); }
.btn-line { background: transparent; color: var(--ink); border-color: currentColor; }
.btn-line:hover { background: var(--ink); color: var(--bg); border-color: var(--ink); }
.btn-light { background: #fff; color: #1e1d1b; border-color: #fff; }
.btn-light:hover { background: transparent; color: #fff; }
.btn-on { background: var(--btn-bg); color: var(--btn-fg); border-color: var(--btn-bg); }
.btn-on:hover { background: transparent; color: var(--ink); border-color: var(--ink); }
.btn-sm { min-height: 42px; padding: 10px 22px; font-size: 11px; }
.btns { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 30px; margin-top: 34px; }
.tlink { display: inline-flex; align-items: center; gap: 12px; font-family: var(--f-nav); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; text-decoration: none; font-weight: 500; padding: 8px 0; border-bottom: 1px solid currentColor; }
.tlink svg { width: 16px; height: 16px; transition: transform .3s var(--ease); }
.tlink:hover svg { transform: translateX(4px); }
.ibtn { width: 48px; height: 48px; display: inline-grid; place-items: center; border: 1px solid var(--line-2, var(--line)); background: transparent; cursor: pointer; border-radius: 50%; }
.ibtn svg { width: 18px; height: 18px; }
.ibtn:hover { border-color: var(--ink); }

/* ── header ── */
.w-head { position: relative; z-index: 40; background: var(--head-bg); color: var(--head-fg); }
.w-head.sticky { position: sticky; top: 0; }
.w-head.over { position: fixed; left: 0; right: 0; top: 0; background: transparent; color: #fff; transition: background .4s var(--ease), color .4s var(--ease), box-shadow .4s; }
.w-head.over.scrolled.solid-scroll, .w-head.over.menu-open { background: var(--head-bg); color: var(--head-fg); box-shadow: 0 1px 0 var(--line); }
.w-head.sticky:not(.over).scrolled { box-shadow: 0 1px 0 var(--line); }
.head-in { display: flex; align-items: center; gap: 28px; height: var(--head-h); padding: 0 var(--nav-padx, var(--gutter)); max-width: 1600px; margin: 0 auto; transition: height .3s var(--ease); }
.brand { display: flex; flex-direction: column; text-decoration: none; line-height: 1; margin-right: auto; }
.brand > span { display: flex; flex-direction: column; align-items: flex-start; }
.wordmark { font-size: 25px; letter-spacing: .14em; text-transform: uppercase; }
.wordmark-sub { font-family: var(--f-nav); font-size: 9.5px; letter-spacing: .42em; margin-top: 6px; opacity: .78; }
.logo-img { max-height: 46px; width: auto; }
.logo-img.mobile { display: none; }
.w-head .logo-light { display: none; }
.w-head.over:not(.scrolled):not(.menu-open) .logo-light { display: flex; }
.w-head.over:not(.scrolled):not(.menu-open) .logo-dark { display: none; }
.w-head.over.scrolled:not(.solid-scroll) .logo-light { display: flex; } .w-head.over.scrolled:not(.solid-scroll) .logo-dark { display: none; }
.nav-ul { list-style: none; display: flex; align-items: center; gap: var(--nav-gap, clamp(16px, 2.2vw, 34px)); margin: 0; padding: 0; }
.nav .nl { color: var(--nav-fg, inherit); font-family: var(--f-nav); font-size: var(--s-nav, 11.5px); letter-spacing: var(--ls-nav, .2em); text-transform: var(--tt-nav, uppercase); font-weight: var(--w-nav, 500); text-decoration: none; padding: 8px 0; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .35s var(--ease); }
.nav .nl:hover, .nav .nl[aria-current="page"], .nav .has-dd.is-active > .nl, .nav .has-dd.open > .nl { background-size: 100% var(--nav-ul, 1px); }
/* over a hero photo the button is an outline — unless the owner chose its colours (Navigation → Button) */
.w-head.over:not(.scrolled):not(.menu-open) .head-cta { background: var(--cta-bg, transparent); color: var(--cta-fg, #fff); border-color: var(--cta-bg, rgba(255,255,255,.75)); }
.w-head.over:not(.scrolled):not(.menu-open) .head-cta:hover { background: var(--cta-hbg, #fff); color: var(--cta-hfg, #1e1d1b); }
.menu-btn { display: none; background: none; border: 0; width: 48px; height: 48px; margin-right: -12px; cursor: pointer; }
.bars { display: grid; gap: 7px; width: 26px; margin: auto; }
.bars i { display: block; height: 1.5px; background: currentColor; transition: transform .35s var(--ease); }
.menu-open .bars i:first-child { transform: translateY(4.25px) rotate(45deg); }
.menu-open .bars i:last-child { transform: translateY(-4.25px) rotate(-45deg); }
.mnav { position: fixed; inset: var(--head-h) 0 0; background: var(--head-bg); color: var(--head-fg); padding: 28px var(--gutter) 40px; overflow-y: auto; display: flex; flex-direction: column; gap: 30px; }
.mnav[hidden] { display: none; }
.mnav ul { list-style: none; margin: 0; padding: 0; }
.mnav nav a { display: block; font-family: var(--f-h1); font-size: 38px; line-height: 1.15; padding: 9px 0; text-decoration: none; border-bottom: 1px solid var(--line); }
.mnav nav a[aria-current="page"] { font-style: italic; }
.mnav .btn { align-self: flex-start; }
.m-social, .f-social { list-style: none; display: flex; gap: 6px; margin: 0; padding: 0; }
.m-social a, .f-social a { display: grid; place-items: center; width: 44px; height: 44px; }
.m-social svg, .f-social svg { width: 20px; height: 20px; }
@media (max-width: 980px) {
  :root { --head-h: 68px; }
  .nav, .head-cta { display: none; }
  .menu-btn { display: block; }
  .wordmark { font-size: 21px; } .wordmark-sub { font-size: 8.5px; }
  .logo-img.mobile { display: block; } .logo-img.mobile ~ * { display: none; } .brand .logo-img:not(.mobile):has(+ .mobile) { display: none; }
}

/* ── sections: shared wrapper, tones, per-section style ── */
.ws { background: var(--bg); color: var(--ink); }
.ws > section, .ws > .w-divider { padding-top: var(--pt, var(--sec-space)); padding-bottom: var(--pb, var(--sec-space)); }
.ws-hero > section { padding: 0; }
.tone-light { --bg: #FFFFFF; }
.tone-cream { --bg: var(--cream); }
.tone-dark { --bg: var(--dark); --ink: var(--dark-fg); --ink-2: color-mix(in srgb, var(--dark-fg) 88%, var(--dark)); --muted: color-mix(in srgb, var(--dark-fg) 66%, var(--dark)); --line: color-mix(in srgb, var(--dark-fg) 18%, var(--dark)); --line-2: color-mix(in srgb, var(--dark-fg) 40%, var(--dark)); --btn-bg: var(--dark-fg); --btn-fg: var(--dark); }
.ws-fg { --ink-2: var(--ink); --muted: color-mix(in srgb, var(--ink) 70%, var(--bg)); }
.ws-mh > section { min-height: var(--mh); display: flex; flex-direction: column; justify-content: center; }
.ws-b > section { border-top: var(--sbw) solid var(--sbc); border-bottom: var(--sbw) solid var(--sbc); }
.ws-w-narrow .wrap { max-width: 760px; } .ws-w-normal .wrap { max-width: 1080px; } .ws-w-wide .wrap { max-width: 1440px; } .ws-w-full .wrap { max-width: none; }
.ws-a-left .wrap { text-align: left; } .ws-a-center .wrap { text-align: center; } .ws-a-right .wrap { text-align: right; }
.ws-a-center .btns, .ws-a-center .sec-head { justify-content: center; margin-left: auto; margin-right: auto; }
.sec-head { margin-bottom: clamp(36px, 5vw, 64px); max-width: 760px; }
.sec-head.center { text-align: center; margin-left: auto; margin-right: auto; }
.sec-head.center .lead { margin: 0 auto; }
.sec-head.row { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; max-width: none; }
.sec-foot { margin-top: clamp(40px, 5vw, 64px); }
.sec-foot.center { text-align: center; }
@media (max-width: 760px) {
  .ws > section, .ws > .w-divider { padding-top: var(--ptm, calc(var(--pt, var(--sec-space)) * .58)); padding-bottom: var(--pbm, calc(var(--pb, var(--sec-space)) * .58)); }
  .ws-hide-m { display: none !important; }
  .ws-am-left .wrap { text-align: left; } .ws-am-center .wrap { text-align: center; }
  .sec-head.row { display: block; } .sec-head.row > .tlink { margin-top: 18px; }
}
@media (min-width: 761px) { .ws-hide-d { display: none !important; } }

/* ── hero ── */
.w-hero { position: relative; display: flex; color: var(--hero-fg, #fff); background: var(--hero-bg, var(--dark)); overflow: hidden; isolation: isolate; }
.w-hero:not(.has-img) { color: var(--ink); background: var(--hero-bg, var(--bg)); }
.w-hero.h-full { min-height: 100vh; min-height: 100svh; } .w-hero.h-tall { min-height: 80vh; } .w-hero.h-medium { min-height: 62vh; } .w-hero.h-short { min-height: 46vh; }
.w-hero:not(.has-img).h-full, .w-hero:not(.has-img).h-tall { min-height: 60vh; }
.w-hero:not(.has-img).h-medium, .w-hero:not(.has-img).h-short { min-height: 0; }
.w-hero:not(.has-img) .hero-inner { max-width: var(--content-w); padding-top: calc(var(--head-h) * .4 + clamp(40px, 7vw, 110px)); padding-bottom: clamp(32px, 4vw, 56px); }
.w-hero:not(.has-img) .h-hero { font-size: clamp(var(--sm-h1, 46px), 6vw, calc(var(--s-h1, 96px) * .82)); }
.hero-media, .hero-shade { position: absolute; inset: 0; z-index: -1; }
.hero-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.4s var(--ease); display: flex; }
.hero-slide.on { opacity: 1; }
.hs-pic { position: relative; flex: 1; min-width: 0; min-height: 100%; }
.hero-slide img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.w-hero.mode-diptych .hero-slide { display: grid; grid-template-columns: 1fr 1fr; }
.w-hero.mode-diptych .hero-slide img { min-width: 0; }
.hero-shade { background: linear-gradient(180deg, color-mix(in srgb, var(--hero-ov) 55%, transparent) 0%, transparent 26%, transparent 42%, color-mix(in srgb, var(--hero-ov) 82%, transparent) 100%), var(--hero-ov); opacity: var(--hero-ovo); }
.w-hero:not(.has-img) .hero-shade { display: none; }
.hero-inner { width: 100%; max-width: 1600px; margin: 0 auto; padding: calc(var(--head-h) + 40px) var(--gutter) clamp(48px, 8vh, 96px); display: flex; flex-direction: column; position: relative; }
.va-top .hero-inner { justify-content: flex-start; } .va-center .hero-inner { justify-content: center; } .va-bottom .hero-inner { justify-content: flex-end; }
.hero-copy { max-width: 880px; }
.al-center .hero-copy { margin: 0 auto; text-align: center; } .al-center .btns { justify-content: center; }
.al-right .hero-copy { margin-left: auto; text-align: right; } .al-right .btns { justify-content: flex-end; }
.w-hero .eyebrow { color: inherit; opacity: .88; }
.hero-text { font-size: clamp(16px, 1.4vw, 19px); max-width: 560px; opacity: .92; margin: 0; }
.al-center .hero-text { margin: 0 auto; } .al-right .hero-text { margin-left: auto; }
.w-hero .tlink { color: inherit; }
.w-hero:not(.has-img) .btn-light { background: var(--btn-bg); color: var(--btn-fg); border-color: var(--btn-bg); }
.hero-dots { position: absolute; right: var(--gutter); bottom: clamp(48px, 8vh, 96px); display: flex; gap: 6px; }
.hero-dots button { width: 34px; height: 34px; background: none; border: 0; cursor: pointer; position: relative; padding: 0; }
.hero-dots button::after { content: ''; position: absolute; left: 4px; right: 4px; top: 50%; height: 1px; background: currentColor; opacity: .45; transition: opacity .3s; }
.hero-dots button[aria-current="true"]::after { opacity: 1; height: 2px; }
@media (max-width: 760px) {
  .w-hero.hm-full { min-height: 100vh; min-height: 100svh; } .w-hero.hm-tall { min-height: 82svh; } .w-hero.hm-medium { min-height: 62svh; } .w-hero.hm-short { min-height: 46svh; }
  .w-hero.mode-diptych .hero-slide { grid-template-columns: 1fr; } .w-hero.mode-diptych .hero-slide .hs-pic + .hs-pic { display: none; }
  .hero-dots { left: var(--gutter); right: auto; bottom: 18px; } .hero-inner { padding-bottom: 64px; }
}

/* ── introduction ── */
.w-intro .wrap { display: grid; grid-template-columns: repeat(12, 1fr); gap: 0 clamp(20px, 3vw, 48px); align-items: start; }
.w-intro .intro-head { grid-column: 1 / span 5; }
.w-intro .intro-body { grid-column: 7 / span 6; font-size: 1.04em; color: var(--ink-2); padding-top: 34px; }
.w-intro.has-img .intro-head { grid-column: 1 / span 6; }
.w-intro.has-img .intro-body { grid-column: 1 / span 5; padding-top: 0; }
.w-intro.has-img .intro-fig { grid-column: 7 / span 6; grid-row: 1 / span 2; margin: 0; }
.w-intro.has-img.side-left .intro-head, .w-intro.has-img.side-left .intro-body { grid-column: 8 / span 5; }
.w-intro.has-img.side-left .intro-fig { grid-column: 1 / span 6; }
.w-intro .intro-fig img { width: 100%; object-fit: cover; }
.w-intro.lay-centered .wrap { display: block; max-width: 860px; text-align: center; }
.w-intro.lay-centered .intro-body { padding-top: 0; }
.w-intro.lay-centered .intro-fig { margin: 48px auto 0; max-width: 520px; }
.signature { font-family: var(--f-h1); font-style: italic; font-size: 26px; margin-top: 26px; }
@media (max-width: 860px) { .w-intro .wrap { display: block; } .w-intro .intro-body { padding-top: 0; } .w-intro .intro-fig { margin: 0 0 32px; } .w-intro.has-img .intro-fig { margin-top: 0; } .w-intro.has-img .wrap { display: flex; flex-direction: column; } .w-intro.has-img .intro-fig { order: -1; } }

/* ── statement ── */
.h-statement { margin: 0; font-size: clamp(28px, 3.8vw, 50px); line-height: 1.2; max-width: 1000px; }
.w-statement.al-center .wrap { text-align: center; } .w-statement.al-center .h-statement { margin: 0 auto; }
.w-statement .attr { margin-top: 28px; font-family: var(--f-nav); font-size: 12px; letter-spacing: .22em; text-transform: uppercase; color: var(--muted); }

/* ── text & image ── */
.w-split .wrap { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 110px); align-items: center; }
.w-split.r-40 .wrap { grid-template-columns: 4fr 6fr; } .w-split.r-60 .wrap { grid-template-columns: 6fr 4fr; }
.w-split.side-right .split-media { order: 2; }
.w-split.no-img .wrap { grid-template-columns: 1fr; max-width: 820px; }
.split-media img { width: 100%; object-fit: cover; }
.split-media.duo { position: relative; padding-bottom: 14%; }
.split-media.duo img.second { position: absolute; width: 46%; right: -6%; bottom: 0; border: 10px solid var(--bg); }
.side-right .split-media.duo img.second { right: auto; left: -6%; }
.split-body .rich { color: var(--ink-2); }
.details { list-style: none; padding: 0; margin: 24px 0 0; border-top: 1px solid var(--line); }
.details li { padding: 11px 0; border-bottom: 1px solid var(--line); font-size: .94em; }
@media (max-width: 860px) { .w-split .wrap, .w-split.r-40 .wrap, .w-split.r-60 .wrap { grid-template-columns: 1fr; } .w-split.m-text-first .split-media { order: 2; } .w-split.m-image-first .split-media { order: 0; } .split-media.duo img.second { right: 0; } .side-right .split-media.duo img.second { left: 0; } }

/* ── featured weddings: asymmetric editorial spreads ── */
.wed { display: grid; grid-template-columns: repeat(12, 1fr); gap: clamp(16px, 2.4vw, 36px); align-items: start; }
.wed + .wed { margin-top: clamp(64px, 9vw, 140px); }
.wed-main { grid-column: 1 / span 7; }
.wed-side { grid-column: 8 / span 5; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(12px, 1.6vw, 24px); padding-top: clamp(40px, 9vw, 140px); }
.wed.flip .wed-main { grid-column: 6 / span 7; grid-row: 1; }
.wed.flip .wed-side { grid-column: 1 / span 5; grid-row: 1; }
.wed-sup:nth-child(2) { margin-top: clamp(30px, 5vw, 80px); }
.wed-cap { grid-column: 1 / -1; padding-top: 10px; max-width: 460px; }
.wed img { width: 100%; object-fit: cover; }
@media (max-width: 760px) { .wed, .wed.flip { display: block; } .wed-side { grid-template-columns: 1fr 1fr; padding-top: 14px; } .wed-sup:nth-child(2) { margin-top: 40px; } }

/* ── services ── */
.w-services .svc-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(28px, 3vw, 48px) clamp(18px, 2.4vw, 40px); }
.w-services.lay-mosaic .svc:nth-child(3n+2) { margin-top: clamp(40px, 7vw, 110px); }
.w-services .svc-media { overflow: hidden; margin-bottom: 22px; }
.w-services .svc-media img { width: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.w-services .svc:hover .svc-media img { transform: scale(1.03); }
.w-services .rich { color: var(--ink-2); font-size: .97em; margin-bottom: 16px; }
.price { font-family: var(--f-nav); font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); margin: -4px 0 12px; }
.price:empty { display: none; }
.w-services.lay-grid .svc-list { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.w-services.lay-list .svc-list { grid-template-columns: 1fr; gap: clamp(56px, 8vw, 120px); }
.w-services.lay-list .svc { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 6vw, 100px); align-items: center; }
.w-services.lay-list .svc:nth-child(even) .svc-media { order: 2; }
.w-services.lay-list .svc-media { margin: 0; }
.w-services .num { font-family: var(--f-h1); font-style: italic; font-size: 22px; color: var(--muted); margin-bottom: 14px; }
@media (max-width: 860px) {
  .w-services.lay-mosaic .svc-list, .w-services.lay-grid .svc-list { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 78%; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 calc(var(--gutter) * -1); padding: 0 var(--gutter) 12px; scroll-padding-inline: var(--gutter); scrollbar-width: none; }
  .w-services.lay-mosaic .svc-list::-webkit-scrollbar { display: none; }
  .w-services .svc { scroll-snap-align: start; }
  .w-services.lay-mosaic .svc:nth-child(3n+2) { margin-top: 0; }
  .w-services.lay-list .svc { grid-template-columns: 1fr; } .w-services.lay-list .svc:nth-child(even) .svc-media { order: 0; }
}

/* ── experience: numbered chapters ── */
.w-experience .wrap { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(32px, 7vw, 120px); align-items: start; }
.exp-head { position: sticky; top: calc(var(--head-h) + 32px); }
.exp-head .rich { color: var(--ink-2); }
.exp-fig { margin: 36px 0 0; } .exp-fig img { width: 100%; max-width: 420px; object-fit: cover; }
.steps { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.step { padding: clamp(28px, 3vw, 44px) 0; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 90px 1fr; gap: 0 20px; }
.step > * { grid-column: 2; }
.step .kicker { grid-column: 1; grid-row: 1 / span 3; font-family: var(--f-h1); font-style: italic; font-size: 26px; line-height: 1.2; color: var(--muted); margin: 0; }
.step .sub { font-family: var(--f-h1); font-style: italic; font-size: 20px; color: var(--ink-2); margin: -4px 0 12px; }
.step .rich { color: var(--ink-2); }
.exp-close { grid-column: 2; padding-top: 36px; font-family: var(--f-h1); font-size: clamp(22px, 2.2vw, 30px); line-height: 1.35; }
.w-experience.lay-stacked .wrap { display: block; max-width: 920px; } .w-experience.lay-stacked .exp-head { position: static; margin-bottom: 40px; }
@media (max-width: 860px) { .w-experience .wrap { display: block; } .exp-head { position: static; margin-bottom: 36px; } .step { grid-template-columns: 52px 1fr; } .exp-close { padding-top: 28px; } }

/* ── featured portraits: filmstrip ── */
.strip { display: grid; grid-auto-flow: column; grid-auto-columns: clamp(240px, 27vw, 420px); gap: clamp(12px, 1.6vw, 24px); overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 var(--gutter) 16px; scroll-padding: 0 var(--gutter); align-items: start; scrollbar-width: thin; scrollbar-color: var(--line) transparent; }
.strip-item { margin: 0; scroll-snap-align: start; }
.strip-item:nth-child(even) { margin-top: clamp(30px, 4vw, 60px); }
.strip-item img { width: 100%; object-fit: cover; }
.strip-item figcaption { font-size: 13px; color: var(--muted); padding-top: 10px; }
.strip-item a { text-decoration: none; }
.strip-nav { display: flex; gap: 10px; }
.w-portraits.lay-grid .strip { grid-auto-flow: row; grid-template-columns: repeat(4, 1fr); overflow: visible; max-width: var(--content-w); margin: 0 auto; }
@media (max-width: 760px) { .strip { grid-auto-columns: 72%; } .strip-nav { display: none; } .w-portraits.lay-grid .strip { grid-template-columns: 1fr 1fr; } }

/* ── galleries ── */
.g-grid { display: grid; grid-template-columns: repeat(var(--gc), 1fr); gap: var(--gg); }
.g-item { margin: 0; }
.g-item img { width: 100%; height: 100%; object-fit: cover; }
.g-item figcaption { font-size: 13px; color: var(--muted); padding-top: 8px; }
.g-open { all: unset; display: block; cursor: zoom-in; width: 100%; }
.g-open:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
.lay-masonry .g-grid { display: block; columns: var(--gc); column-gap: var(--gg); }
.lay-masonry .g-item { break-inside: avoid; margin-bottom: var(--gg); }
.lay-editorial .g-grid { grid-template-columns: repeat(6, 1fr); grid-auto-flow: dense; }
.lay-editorial .g-item { grid-column: span 2; } .lay-editorial .g-item img { aspect-ratio: 4 / 5; }
.lay-editorial .g-item.e0 { grid-column: span 4; grid-row: span 2; } .lay-editorial .g-item.e0 img { aspect-ratio: auto; height: 100%; }
.lay-editorial .g-item.e3 { grid-column: span 3; } .lay-editorial .g-item.e4 { grid-column: span 3; } .lay-editorial .g-item.e3 img, .lay-editorial .g-item.e4 img { aspect-ratio: 1 / 1; }
@media (max-width: 760px) {
  .g-grid { grid-template-columns: repeat(var(--gcm), 1fr); } .lay-masonry .g-grid { columns: var(--gcm); }
  .lay-editorial .g-grid { grid-template-columns: 1fr 1fr; } .lay-editorial .g-item, .lay-editorial .g-item.e3, .lay-editorial .g-item.e4 { grid-column: span 1; } .lay-editorial .g-item.e0 { grid-column: span 2; grid-row: auto; } .lay-editorial .g-item.e0 img { aspect-ratio: 4/5; }
}

/* ── collections ── */
.col-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.coll { background: var(--bg); padding: clamp(28px, 3vw, 44px) clamp(22px, 2.4vw, 36px); display: flex; flex-direction: column; }
.coll.featured { background: var(--dark); color: var(--dark-fg); --line: color-mix(in srgb, var(--dark-fg) 18%, var(--dark)); --muted: color-mix(in srgb, var(--dark-fg) 66%, var(--dark)); }
.coll-name { font-size: 28px; line-height: 1.15; margin: 0 0 6px; }
.coll-tag { font-size: 14px; color: var(--muted); margin: 0 0 18px; }
.coll-price { font-family: var(--f-h1); font-size: 40px; line-height: 1; margin: 6px 0 22px; }
.coll ul { list-style: none; padding: 0; margin: 0; font-size: 14.5px; }
.coll li { padding: 9px 0; border-top: 1px solid var(--line); }
.extras { margin-top: clamp(40px, 5vw, 70px); }
.extras ul { list-style: none; padding: 0; margin: 0; columns: 2; column-gap: 48px; font-size: 14.5px; }
.extras li { padding: 9px 0; border-bottom: 1px solid var(--line); break-inside: avoid; }
.note { margin-top: 32px; font-size: 14px; color: var(--muted); max-width: 760px; }
@media (max-width: 640px) { .extras ul { columns: 1; } }

/* ── faq ── */
.w-faq .wrap { display: grid; grid-template-columns: 4fr 8fr; gap: clamp(28px, 6vw, 100px); }
.faq-list { border-top: 1px solid var(--line); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-item summary { list-style: none; display: flex; justify-content: space-between; gap: 20px; align-items: center; padding: 22px 0; cursor: pointer; font-family: var(--f-h2); font-size: clamp(19px, 1.7vw, 23px); line-height: 1.3; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary svg { width: 18px; height: 18px; flex-shrink: 0; transition: transform .3s var(--ease); }
.faq-item[open] summary svg { transform: rotate(45deg); }
.faq-item .rich { padding: 0 40px 24px 0; color: var(--ink-2); }
@media (max-width: 860px) { .w-faq .wrap { display: block; } .faq-head { margin-bottom: 24px; } }

/* ── testimonials / team ── */
.w-testimonials .wrap { text-align: center; }
.testi { margin: 0 0 56px; } .testi:last-child { margin-bottom: 0; }
.testi blockquote { margin: 0; font-family: var(--f-h1); font-size: clamp(22px, 2.6vw, 34px); line-height: 1.35; font-style: italic; }
.testi figcaption { margin-top: 20px; font-family: var(--f-nav); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; }
.testi figcaption span { display: block; color: var(--muted); margin-top: 6px; letter-spacing: .1em; }
.testi-img { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; margin: 0 auto 24px; }
.team-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: clamp(32px, 5vw, 80px); }
.team-grid.n2 { grid-template-columns: 1fr 1fr; } .team-grid.n2 .person:nth-child(2) { margin-top: clamp(0px, 8vw, 120px); }
.person img { width: 100%; object-fit: cover; margin-bottom: 26px; }
.person .eyebrow { margin-bottom: 8px; } .person .rich { color: var(--ink-2); }
@media (max-width: 760px) { .team-grid.n2 { grid-template-columns: 1fr; } }

/* ── text, cta, divider ── */
.w-text.wd-narrow .wrap { max-width: 760px; } .w-text.al-center .wrap { text-align: center; }
.w-text .rich { color: var(--ink-2); font-size: 1.04em; }
.w-cta { position: relative; text-align: center; isolation: isolate; }
.w-cta.has-img { color: #fff; --ink: #fff; --ink-2: rgba(255,255,255,.9); --muted: rgba(255,255,255,.8); --btn-bg: #fff; --btn-fg: #1e1d1b; }
.cta-media { position: absolute; inset: 0; z-index: -1; } .cta-media img { width: 100%; height: 100%; object-fit: cover; }
.cta-media::after { content: ''; position: absolute; inset: 0; background: #141312; opacity: var(--cta-ovo, .45); }
.w-cta .h-sec { font-size: clamp(34px, 5vw, 64px); }
.w-cta .rich { max-width: 560px; margin: 0 auto; color: var(--ink-2); }
.w-cta .btns { justify-content: center; }
.w-divider { padding: calc(var(--dv) / 2) 0 !important; }
.w-divider.k-line::before, .w-divider.k-ornament::before { content: ''; display: block; max-width: var(--content-w); margin: 0 auto; border-top: 1px solid var(--line); }
.w-divider.k-ornament { position: relative; } .w-divider.k-ornament span { position: absolute; left: 50%; top: 50%; width: 9px; height: 9px; background: var(--bg); border: 1px solid var(--subtle); transform: translate(-50%, -50%) rotate(45deg); }

/* ── portfolio ── */
.filters ul { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 26px; margin: 0 0 clamp(28px, 4vw, 48px); padding: 0; }
.chip { font-family: var(--f-nav); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; text-decoration: none; padding: 10px 0; display: inline-block; color: var(--muted); border-bottom: 1px solid transparent; }
.chip:hover, .chip[aria-current="page"] { color: var(--ink); border-bottom-color: currentColor; }
.cat-intro[hidden] { display: none; } .cat-intro { max-width: 680px; margin-bottom: 36px; color: var(--ink-2); }
.pf-grid { display: grid; grid-template-columns: repeat(var(--gc), 1fr); gap: clamp(10px, 1.2vw, 18px); }
.lay-masonry .pf-grid { display: block; columns: var(--gc); column-gap: clamp(10px, 1.2vw, 18px); }
.lay-masonry .pf-item { break-inside: avoid; margin: 0 0 clamp(10px, 1.2vw, 18px); }
.pf-item { margin: 0; } .pf-item[hidden] { display: none; }
.pf-item img { width: 100%; object-fit: cover; }
.pf-item figcaption { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; color: var(--muted); padding-top: 8px; }
.lay-editorial .pf-grid { grid-template-columns: repeat(6, 1fr); grid-auto-flow: dense; }
.lay-editorial .pf-item { grid-column: span 2; } .lay-editorial .pf-item:nth-child(7n+1) { grid-column: span 4; grid-row: span 2; }
.lay-editorial .pf-item img { aspect-ratio: 4/5; height: 100%; }
@media (max-width: 760px) { .pf-grid, .lay-editorial .pf-grid { grid-template-columns: 1fr 1fr; } .lay-masonry .pf-grid { columns: 2; } .lay-editorial .pf-item, .lay-editorial .pf-item:nth-child(7n+1) { grid-column: span 1; grid-row: auto; } .filters ul { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-right: calc(var(--gutter) * -1); } .chip { white-space: nowrap; } }

/* ── lightbox ── */
.lightbox { border: 0; padding: 0; margin: 0; width: 100vw; height: 100vh; height: 100dvh; max-width: none; max-height: none; background: rgba(20, 19, 18, .97); color: #f3efe8; }
.lightbox::backdrop { background: rgba(20, 19, 18, .97); }
.lightbox[open] { display: grid; grid-template-columns: 72px 1fr 72px; align-items: center; }
.lightbox figure { margin: 0; height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 56px 0 40px; min-width: 0; }
.lightbox img { max-width: 100%; max-height: calc(100dvh - 130px); object-fit: contain; }
.lightbox figcaption { font-size: 13px; color: #c9c2b6; padding-top: 14px; min-height: 1em; text-align: center; }
.lightbox button { background: none; border: 0; color: inherit; cursor: pointer; width: 56px; height: 56px; display: grid; place-items: center; justify-self: center; }
.lightbox button svg { width: 26px; height: 26px; }
.lb-close { position: absolute; top: 10px; right: 10px; }
.lb-count { position: absolute; top: 22px; left: 24px; margin: 0; font-size: 12px; letter-spacing: .2em; }
@media (max-width: 760px) { .lightbox[open] { grid-template-columns: 1fr; } .lb-prev, .lb-next { position: absolute; bottom: 8px; } .lb-prev { left: 12px; } .lb-next { right: 12px; } .lightbox figure { padding: 60px 0 76px; } }

/* ── journal ── */
.post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(28px, 3vw, 48px) clamp(18px, 2.4vw, 36px); }
.post-card .pc-link { text-decoration: none; display: flex; flex-direction: column; }
.pc-media { overflow: hidden; margin-bottom: 18px; } .pc-media img { width: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.post-card:hover .pc-media img { transform: scale(1.03); }
.pc-meta { font-family: var(--f-nav); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--muted); margin-bottom: 10px; }
.pc-title { font-size: clamp(23px, 2vw, 28px); line-height: 1.2; margin-bottom: 10px; }
.pc-ex { color: var(--ink-2); font-size: .95em; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.post-card.big { grid-column: 1 / -1; } .post-card.big .pc-link { display: grid; grid-template-columns: 3fr 2fr; gap: 0 clamp(24px, 4vw, 64px); align-items: center; }
.post-card.big .pc-media { grid-row: 1 / span 4; margin: 0; } .post-card.big .pc-title { font-size: clamp(30px, 3.4vw, 46px); }
@media (max-width: 860px) { .post-grid { grid-template-columns: 1fr; } .post-card.big .pc-link { display: flex; } .post-card.big .pc-media { margin-bottom: 18px; } }
.w-article .art-head { padding-top: clamp(48px, 7vw, 100px); text-align: center; }
.h-article { font-size: clamp(38px, 5.4vw, 72px); line-height: 1.05; margin: 0 0 18px; }
.art-meta { color: var(--muted); font-size: 14px; }
.art-cover { margin: clamp(32px, 5vw, 64px) auto 0; max-width: 1280px; padding: 0 var(--gutter); } .art-cover img { width: 100%; max-height: 82vh; object-fit: cover; }
.art-body { padding-top: clamp(40px, 6vw, 80px); padding-bottom: 32px; font-size: 1.08em; line-height: 1.8; }
.art-body h2 { font-family: var(--f-h2); font-weight: var(--w-h2, 400); font-size: clamp(26px, 2.6vw, 34px); line-height: 1.2; margin: 2em 0 .6em; }
.art-body blockquote { margin: 1.8em 0; padding-left: 26px; border-left: 1px solid var(--ink); font-family: var(--f-h1); font-size: 1.45em; line-height: 1.4; font-style: italic; }
.art-body blockquote cite { display: block; font-style: normal; font-family: var(--f-nav); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; margin-top: 10px; }
.art-body ul { padding-left: 1.2em; } .art-body li { margin: .4em 0; }
.art-body figure { margin: 2.2em 0; } .art-body figure img { width: 100%; } .art-body figcaption { font-size: 13px; color: var(--muted); padding-top: 8px; }
.art-body figure.wide { margin-left: calc(50% - min(50vw, 640px)); margin-right: calc(50% - min(50vw, 640px)); }
.art-foot { padding-bottom: 80px; } .share { font-size: 13px; color: var(--muted); border-top: 1px solid var(--line); padding-top: 22px; }
.share a, .copy-link { color: var(--ink); background: none; border: 0; padding: 0; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; font-size: 13px; }
.w-related { background: var(--cream); padding: clamp(64px, 8vw, 110px) 0; }

/* ── footer ── */
.w-foot { background: var(--foot-bg); color: var(--foot-fg); --ink: var(--foot-fg); --muted: color-mix(in srgb, var(--foot-fg) 64%, var(--foot-bg)); --line: color-mix(in srgb, var(--foot-fg) 16%, var(--foot-bg)); --btn-bg: var(--foot-fg); --btn-fg: var(--foot-bg); padding: clamp(64px, 8vw, 110px) 0 32px; font-size: 15px; }
.f-top { display: grid; grid-template-columns: 2fr 1fr 1fr 1.4fr; gap: 40px; padding-bottom: 56px; border-bottom: 1px solid var(--line); }
.f-brand .brand { margin-bottom: 22px; } .f-brand .rich { color: var(--muted); max-width: 360px; }
.f-h { font-family: var(--f-nav); font-size: 11px; letter-spacing: .24em; text-transform: uppercase; font-weight: 500; margin: 0 0 18px; color: var(--muted); }
.f-col ul { list-style: none; margin: 0; padding: 0; } .f-col li { padding: 5px 0; }
.f-col a { text-decoration: none; } .f-col a:hover { text-decoration: underline; text-underline-offset: 3px; }
.f-social { margin-top: 14px; margin-left: -12px; }
.f-bottom { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding-top: 24px; font-size: 12.5px; color: var(--muted); } .f-bottom p { margin: 0; }
.w-foot .logo-img { filter: none; }
@media (max-width: 860px) { .f-top { grid-template-columns: 1fr 1fr; } .f-brand { grid-column: 1 / -1; } }
@media (max-width: 480px) { .f-top { grid-template-columns: 1fr; } }

/* ── consent banner (only when analytics is configured) ── */
.consent { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 60; max-width: 520px; background: var(--bg); color: var(--ink); border: 1px solid var(--line); padding: 18px 20px; font-size: 14px; display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.consent p { margin: 0; flex: 1 1 100%; }

/* ── motion: gentle reveal (off for reduced motion, and the page is fully visible without JS) ── */
.js .reveal { opacity: 0; transform: translateY(18px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.js .reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; scroll-behavior: auto !important; }
  .js .reveal { opacity: 1; transform: none; }
}
/* editor preview: no fixed header surprises inside the frame */
.is-preview .w-head.over { position: absolute; }

/* ═══ Visual Builder (2026-10-14): custom layouts, elements, new sections, image treatment ═══ */
.w-main img:not(.logo-img):not(.testi-img) { border-radius: var(--img-r, 0); }
.w-main .g-item img, .w-main .wed img, .w-main .svc-media img, .w-main .strip-item img, .w-main .pf-item img, .w-main .split-media img, .w-main .intro-fig img, .w-main .cx-el img { border: var(--img-bw, 0) solid var(--img-bc, transparent); }
.w-services .svc:hover .svc-media img, .post-card:hover .pc-media img { transform: scale(var(--img-zoom, 1.03)); }
.w-custom .cx-row { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--cx-gap, 40px); }
.w-custom.va-center .cx-row { align-items: center; } .w-custom.va-end .cx-row { align-items: end; }
.w-custom.cw-narrow .wrap { max-width: 820px; } .w-custom.cw-wide .wrap { max-width: 1440px; } .w-custom.cw-full .wrap { max-width: none; }
.cx-col { grid-column: span var(--span, 12); min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.cx-el { min-width: 0; }
.cx-el .h-hero { margin: 0; } .cx-el .h-sec { margin: 0; } .cx-el .h-item { margin: 0; } .cx-el .eyebrow { margin: 0; } .cx-el p { margin: 0; }
.cx-el.sz-m .h-sec { font-size: clamp(26px, 3vw, 38px); }
.cx-el figure { margin: 0; } .cx-el figcaption { font-size: 13px; color: var(--muted); padding-top: 8px; }
.cx-el img { width: 100%; object-fit: cover; }
.cx-el.al-center { text-align: center; } .cx-el.al-right { text-align: right; }
.cx-el.el-divider hr { border: 0; border-top: 1px solid var(--line); margin: 8px 0; }
.cx-el.el-divider.k-ornament hr { position: relative; overflow: visible; } .cx-el.el-divider.k-ornament hr::after { content: ''; position: absolute; left: 50%; top: -5px; width: 9px; height: 9px; background: var(--bg); border: 1px solid var(--subtle); transform: translateX(-50%) rotate(45deg); }
.cx-video { position: relative; aspect-ratio: 16 / 9; background: #111; } .cx-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.cx-icon { display: inline-grid; width: var(--isz, 28px); height: var(--isz, 28px); } .cx-icon svg { width: 100%; height: 100%; } .cx-icon-l { display: block; margin-top: 8px; font-size: 14px; }
.cx-link { text-underline-offset: 4px; }
.cx-el.testi blockquote { margin: 0; font-family: var(--f-h1); font-style: italic; font-size: clamp(20px, 2vw, 28px); line-height: 1.35; }
.cx-el.testi figcaption { margin-top: 14px; font-family: var(--f-nav); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; } .cx-el.testi figcaption span:not(.tn) { display: block; color: var(--muted); letter-spacing: .1em; margin-top: 4px; }
.cx-el.coll { border: 1px solid var(--line); padding: clamp(24px, 3vw, 40px); }
.cx-el.coll.featured { background: var(--dark); color: var(--dark-fg); --line: color-mix(in srgb, var(--dark-fg) 18%, var(--dark)); --muted: color-mix(in srgb, var(--dark-fg) 66%, var(--dark)); --btn-bg: var(--dark-fg); --btn-fg: var(--dark); --ink: var(--dark-fg); }
.cx-el.coll ul { list-style: none; padding: 0; margin: 0 0 18px; font-size: 14.5px; } .cx-el.coll li { padding: 9px 0; border-top: 1px solid var(--line); }
.cx-el.cx-cta { text-align: center; padding: clamp(28px, 4vw, 56px); background: var(--cream); } .cx-el.cx-cta .btns { justify-content: center; }
.cx-group .cx-gin { display: flex; gap: var(--cx-gap, 16px); } .cx-group.dir-row .cx-gin { flex-direction: row; flex-wrap: wrap; align-items: center; } .cx-group.dir-column .cx-gin { flex-direction: column; }
.cx-group.ga-center .cx-gin { justify-content: center; } .cx-group.ga-end .cx-gin { justify-content: flex-end; } .cx-group.ga-between .cx-gin { justify-content: space-between; }
.cx-social, .w-main .f-social.cx-social { margin: 0; }
.coll-media { margin: calc(clamp(28px, 3vw, 44px) * -1) calc(clamp(22px, 2.4vw, 36px) * -1) 22px; } .coll-media img { width: 100%; }
.coll-desc { font-size: 14.5px; color: var(--ink-2); margin-bottom: 14px; } .coll-btn { margin: auto 0 0; padding-top: 22px; } .coll-btn .btn { width: 100%; }
.w-newsletter .small-note { font-size: 13px; color: var(--muted); margin-top: 18px; }
.w-contact .wrap { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(32px, 6vw, 100px); align-items: start; }
.ct-details { list-style: none; padding: 0; margin: 24px 0 0; } .ct-details li { padding: 6px 0; } .ct-details a { text-decoration: none; }
@media (max-width: 860px) { .w-contact .wrap { grid-template-columns: 1fr; } }
@media (max-width: 760px) {
  .w-custom.m-stack .cx-row { grid-template-columns: 1fr; } .w-custom.m-stack .cx-col { grid-column: auto; }
  .w-custom.m-stack.rev-m .cx-row { display: flex; flex-direction: column-reverse; }
  .cx-group.dir-row .cx-gin { flex-direction: column; align-items: stretch; }
}
/* the embedded contact form (Website Builder → Contact Form), in the website's design */
.ct-form .form-wrap .s-heading { font-family: var(--f-h2); font-weight: 400; font-size: 30px; }
.ct-form .form-intro { color: var(--muted); }
.ct-form .fm-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
.ct-form .f { grid-column: 1 / -1; margin-bottom: 22px; border: 0; padding: 0; } .ct-form .f-half { grid-column: span 1; }
.ct-form .f-label, .ct-form legend { display: block; font-family: var(--f-h1); font-style: italic; font-size: 19px; margin-bottom: 6px; color: var(--ink); }
.ct-form input:not([type=radio]):not([type=checkbox]), .ct-form select, .ct-form textarea { width: 100%; font: 16px var(--f-body); color: var(--ink); background: transparent; border: 0; border-bottom: 1px solid var(--ink); padding: 10px 0; border-radius: 0; }
.ct-form textarea { min-height: 120px; resize: vertical; }
.ct-form input:focus, .ct-form select:focus, .ct-form textarea:focus { outline: none; border-bottom-width: 2px; }
.ct-form .radios { display: flex; flex-wrap: wrap; gap: 8px 18px; } .ct-form .radio { display: inline-flex; gap: 8px; align-items: center; font-size: 15px; }
.ct-form .f-help { font-size: 12.5px; color: var(--muted); margin: 0 0 6px; } .ct-form .f-err { color: #b91c1c; font-size: 13px; margin: 6px 0 0; } .ct-form .f-err:empty { display: none; }
.ct-form .req { color: var(--muted); } .ct-form .hp { position: absolute; left: -9999px; }
.ct-form .btn-pill { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 14px 34px; background: var(--btn-bg); color: var(--btn-fg); border: 1px solid var(--btn-bg); font-family: var(--f-button); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; cursor: pointer; }
.ct-form .btn-text { background: none; border: 0; text-decoration: underline; cursor: pointer; margin-right: 18px; }
.ct-form .form-msg { color: #b91c1c; font-size: 14px; margin: 10px 0; } .ct-form .notice { font-size: 13px; color: var(--muted); }
.ct-form .done h2 { font-family: var(--f-h2); font-weight: 400; } .ct-form .ct-ph { border: 1px dashed var(--line); padding: 28px; text-align: center; }
@media (max-width: 600px) { .ct-form .fm-fields { grid-template-columns: 1fr; } .ct-form .f-half { grid-column: 1 / -1; } }

/* Phones: text links keep their look but get a 44px+ tap area (invisible). */
@media (max-width: 760px) {
  .tlink { position: relative; }
  .tlink::after { content: ''; position: absolute; inset: -6px -4px; }
}

/* ── Collections: photo cards + "Your build" estimate panel (layout: cards) ── */
.lay-cards { --cc-accent: var(--btn-bg); --cc-card: color-mix(in srgb, var(--bg) 55%, #fff); --cc-r: 18px; }
.cc-layout { display: grid; gap: clamp(24px, 3vw, 44px); align-items: start; }
.cc-layout.with-est { grid-template-columns: minmax(0, 1fr) clamp(280px, 26vw, 360px); }
.cc-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 28px; }
.cc-head .h-sec { margin: 0; } .cc-head .lead { margin-top: 12px; }
.cc-count { font-size: 14px; color: var(--muted); white-space: nowrap; padding-bottom: 6px; }
.cc-grid { display: grid; grid-template-columns: repeat(var(--cc-cols, 2), minmax(0, 1fr)); gap: clamp(16px, 2vw, 28px); }
.ccard { background: var(--cc-card); border: 1px solid var(--line); border-radius: var(--cc-r); overflow: hidden; display: flex; flex-direction: column; transition: border-color .25s var(--ease), box-shadow .25s var(--ease); }
.ccard:hover { box-shadow: 0 10px 30px rgba(0, 0, 0, .06); }
.ccard.featured { border-color: color-mix(in srgb, var(--ink) 35%, var(--line)); }
.ccard.on { border-color: var(--ink); box-shadow: 0 0 0 1px var(--ink); }
.ccard-media { position: relative; background: var(--paper); }
.ccard-media img { width: 100%; height: 100%; display: block; aspect-ratio: 4 / 3; object-fit: cover; }
.ccard-media.none { min-height: 0; background: none; padding: 22px 28px 0; }
.ccard-tag { position: absolute; left: 18px; bottom: 18px; font: 600 11px/1 var(--f-body); letter-spacing: .16em; text-transform: uppercase; color: #fff; background: rgba(20, 19, 18, .72); border: 1px solid rgba(255, 255, 255, .55); border-radius: 999px; padding: 8px 14px; }
.ccard-media.none .ccard-tag { position: static; display: inline-block; color: var(--ink); background: none; border-color: var(--line); }
.ccard-body { padding: clamp(20px, 2.2vw, 30px); display: flex; flex-direction: column; flex: 1; }
.ccard-name { font-family: var(--f-h1); font-weight: var(--w-h1, 400); font-size: clamp(24px, 2.1vw, 30px); line-height: 1.15; margin: 0 0 8px; }
.ccard-line { color: var(--ink-2); margin: 0 0 18px; font-size: 15.5px; }
.ccard-price { font-family: var(--f-h1); font-size: clamp(34px, 3.2vw, 44px); line-height: 1; margin: 6px 0 22px; }
.ccard-more { border-top: 1px dashed var(--line); }
.ccard-more:first-of-type { border-top: 0; }
.ccard-more summary { list-style: none; cursor: pointer; color: var(--cc-accent); font-weight: 500; font-size: 15px; padding: 10px 0; display: inline-flex; gap: 6px; align-items: center; }
.ccard-more summary::-webkit-details-marker { display: none; }
.ccard-more summary span { transition: transform .2s var(--ease); display: inline-block; }
.ccard-more[open] summary span { transform: rotate(90deg); }
.ccard-read[open] summary span { transform: none; }
.ccard-more ul { list-style: none; padding: 0; margin: 0 0 12px; font-size: 14.5px; }
.ccard-more li { padding: 7px 0 7px 18px; position: relative; color: var(--ink-2); }
.ccard-more li::before { content: ''; position: absolute; left: 2px; top: 1.05em; width: 6px; height: 1px; background: currentColor; }
.ccard-more .rich { font-size: 14.5px; color: var(--ink-2); padding-bottom: 12px; }
.ccard-foot { margin-top: auto; padding-top: 18px; display: grid; gap: 12px; }
.ccard-link { margin: 0; }
.ccard-pick { width: 100%; min-height: 52px; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--ink) 30%, var(--line)); background: transparent; color: var(--ink); font: 500 15px var(--f-body); cursor: pointer; transition: background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease); }
.ccard-pick:hover { border-color: var(--ink); }
.ccard-pick[aria-pressed="true"] { background: var(--ink); color: var(--bg); border-color: var(--ink); }
.cc-est { position: sticky; top: calc(var(--head-h) + 24px); background: var(--cc-card); border: 1px solid var(--line); border-radius: var(--cc-r); padding: clamp(22px, 2.4vw, 32px); box-shadow: 0 18px 40px rgba(0, 0, 0, .06); }
.cc-est-h { font-family: var(--f-h1); font-weight: var(--w-h1, 400); font-size: 30px; margin: 0 0 18px; }
.cc-est-sel { margin: 0 0 18px; padding-bottom: 22px; border-bottom: 1px solid var(--line); color: var(--ink-2); }
.cc-est-sel b { display: block; color: var(--ink); font-weight: 500; }
.cc-est-row { display: flex; justify-content: space-between; align-items: baseline; margin: 0 0 22px; }
.cc-est-row span { font-size: 13px; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.cc-est-row b { font-family: var(--f-h1); font-size: 30px; font-weight: 400; }
.cc-est-btn { margin: 0 0 16px; } .cc-est-btn .btn { width: 100%; border-radius: 999px; background: var(--cc-accent); border-color: var(--cc-accent); }
.cc-est-note { font-size: 13.5px; color: var(--muted); text-align: center; margin: 0; line-height: 1.6; }
.lay-cards .extras, .lay-cards .note { margin-top: 40px; }
@media (max-width: 1100px) { .cc-layout.with-est { grid-template-columns: minmax(0, 1fr) 300px; } .cc-grid { grid-template-columns: repeat(min(var(--cc-cols, 2), 2), minmax(0, 1fr)); } }
@media (max-width: 900px) {
  .cc-layout.with-est { grid-template-columns: minmax(0, 1fr); }
  .cc-est { position: sticky; bottom: 0; top: auto; z-index: 5; border-radius: var(--cc-r) var(--cc-r) 0 0; margin: 0 calc(var(--gutter) * -1); padding: 16px var(--gutter); display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; align-items: center; box-shadow: 0 -10px 30px rgba(0, 0, 0, .08); }
  .cc-est-h, .cc-est-note { display: none; }
  .cc-est-sel { border: 0; padding: 0; margin: 0; font-size: 14px; grid-column: 1; }
  .cc-est-row { margin: 0; grid-column: 1; justify-content: flex-start; gap: 10px; } .cc-est-row b { font-size: 22px; }
  .cc-est-btn { grid-column: 2; grid-row: 1 / span 2; margin: 0; min-width: 0; } .cc-est-btn .btn { min-height: 46px; padding: 10px 16px; font-size: 11px; letter-spacing: .1em; max-width: 46vw; text-align: center; line-height: 1.3; }
  .cc-est-sel b { font-size: 15px; line-height: 1.3; }
}
@media (max-width: 640px) { .cc-grid { grid-template-columns: minmax(0, 1fr); } .cc-head { align-items: flex-start; flex-direction: column; gap: 6px; } }

/* "Book a session" section — the live booking page embedded (book.html?embed=1). */
.w-bookflow .sec-head { margin-bottom: 28px; }
.bkf-frame { display: block; width: 100%; border: 0; background: transparent; transition: height .2s var(--ease); }
.bkf-fallback { text-align: center; margin: 0; }
.bkf-ph { border: 1px dashed var(--line); border-radius: 12px; padding: 28px; display: grid; gap: 6px; color: var(--ink-2); font-size: 15px; }
.bkf-ph b { font-family: var(--f-h1); font-size: 24px; font-weight: 400; color: var(--ink); }
/* Editor canvas view of the live booking section (the preview and live site run the real booking). */
.bkf-mock { border: 1px dashed var(--line); border-radius: 18px; padding: clamp(20px, 3vw, 36px); }
.bkf-step { font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); margin: 0 0 10px; }
.bkf-title { font-family: var(--f-h1); font-weight: 400; font-size: clamp(28px, 3vw, 40px); margin: 0 0 6px; }
.bkf-intro { color: var(--ink-2); margin: 0 0 22px; }
.bkf-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 18px; }
.bkf-card { background: color-mix(in srgb, var(--bg) 55%, #fff); border: 1px solid var(--line); border-radius: 16px; overflow: hidden; }
.bkf-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: 50% 18%; display: block; }
.bkf-noimg { aspect-ratio: 4 / 3; display: grid; place-items: center; background: var(--paper); color: var(--muted); font-size: 14px; }
.bkf-body { padding: 20px 22px 22px; }
.bkf-name { font-family: var(--f-h1); font-weight: 400; font-size: 26px; margin: 0 0 6px; }
.bkf-body p { margin: 0; color: var(--ink-2); font-size: 15px; }
.bkf-from { font-family: var(--f-h1); font-size: 26px; color: var(--ink) !important; margin-top: 8px !important; }
.bkf-note { font-size: 13px; color: var(--muted); margin: 18px 0 0; }
@media (max-width: 640px) { .bkf-cards { grid-template-columns: minmax(0, 1fr); } }
.bkf-card { border-radius: var(--bkf-r, 16px); }


/* ── Navigation Manager (2026-10-15): layouts, dropdowns, button, mobile menu. Every value falls back to the
   original look; site.header.nav only sets the variables the owner changed (navVars in site-web.js). ── */
@media (min-width: 981px) { :root { --head-h: var(--nav-h, 84px); } }
.w-head.has-border { border-bottom: var(--nav-bw, 1px) solid var(--nav-bc, var(--line)); }
.w-head.w-contained .head-in { max-width: var(--content-w); }
.w-head.pos-fixed { position: fixed; left: 0; right: 0; top: 0; }
.head-spacer { height: var(--head-h); }
.w-head.can-shrink.scrolled { --head-h: max(56px, calc(var(--nav-h, 84px) * .78)); }
.is-preview .w-head.pos-fixed:not(.over) { position: sticky; }
.nav .nl { display: inline-flex; align-items: center; gap: 6px; border: 0; background-color: transparent; cursor: pointer; padding: 8px 0; }
.nav .nl:hover { color: var(--nav-hover, var(--nav-fg, inherit)); }
.w-head.act-color .nav .nl[aria-current="page"], .w-head.act-color .has-dd.is-active > .nl { background-size: 0 1px; color: var(--nav-hover, inherit); }
.w-head.act-italic .nav .nl[aria-current="page"], .w-head.act-italic .has-dd.is-active > .nl { background-size: 0 1px; font-style: italic; }
.w-head.act-none .nav .nl[aria-current="page"], .w-head.act-none .has-dd.is-active > .nl { background-size: 0 1px; }
.w-head.over:not(.scrolled):not(.menu-open) .nav .nl { color: #fff; }
/* layouts */
.w-head.lay-left-center .nav { flex: 1; display: flex; justify-content: center; }
.w-head.lay-left-center .brand { margin-right: 0; }
.w-head.lay-center-split .head-in { display: grid; grid-template-columns: 1fr auto 1fr; }
.w-head.lay-center-split .brand { margin: 0; align-items: center; } .w-head.lay-center-split .brand > span { align-items: center; }
.w-head.lay-center-split .nav-l .nav-ul { justify-content: flex-end; }
.nav-rw { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-width: 0; }
.nav .nl { white-space: nowrap; }
.w-head.lay-center-stack .head-in { flex-direction: column; justify-content: center; gap: 14px; position: relative; }
.w-head.lay-center-stack .brand { margin: 0; align-items: center; } .w-head.lay-center-stack .brand > span { align-items: center; }
.w-head.lay-center-stack .head-cta { position: absolute; right: var(--nav-padx, var(--gutter)); top: 50%; transform: translateY(-50%); }
@media (min-width: 981px) { .w-head.lay-center-stack { --head-h: var(--nav-h, 124px); } }
/* dropdowns — never clipped: the header has no overflow and sits above the page */
.nav .ni { position: relative; }
.has-dd { display: flex; align-items: center; gap: 4px; }
.dd-tog { background: none; border: 0; color: inherit; cursor: pointer; padding: 8px 2px; display: inline-flex; }
.caret { width: 11px; height: 11px; transition: transform .25s var(--ease); }
.has-dd.open .caret { transform: rotate(180deg); }
.dd { position: absolute; top: 100%; left: -18px; z-index: 60; padding-top: 10px; min-width: var(--dd-w, 230px); visibility: hidden; opacity: 0; pointer-events: none; transition: opacity .22s var(--ease), transform .22s var(--ease), visibility 0s .22s; }
.dd-al-center .dd { left: 50%; transform: translateX(-50%); }
.dda-slide .dd { transform: translateY(-6px); } .dda-slide.dd-al-center .dd { transform: translate(-50%, -6px); }
.dda-none .dd { transition: none; }
.has-dd.open > .dd { visibility: visible; opacity: 1; pointer-events: auto; transform: none; transition-delay: 0s; }
.dd-al-center .has-dd.open > .dd { transform: translateX(-50%); }
@media (hover: hover) { .has-dd:hover > .dd { visibility: visible; opacity: 1; pointer-events: auto; transform: none; transition-delay: 0s; } .dd-al-center .has-dd:hover > .dd { transform: translateX(-50%); } }
.dd-in { background: var(--dd-bg, var(--head-bg)); color: var(--dd-fg, var(--head-fg)); border: var(--dd-bw, 1px) solid var(--dd-bc, var(--line)); border-radius: var(--dd-r, 0); padding: var(--dd-pad, 14px) calc(var(--dd-pad, 14px) + 6px); display: grid; gap: 18px; text-align: left; }
.dd-al-center .dd-in { text-align: center; }
.dds-soft .dd-in { box-shadow: 0 18px 40px rgba(0, 0, 0, .08); } .dds-strong .dd-in { box-shadow: 0 22px 60px rgba(0, 0, 0, .18); }
.w-head.over:not(.scrolled):not(.menu-open) .dd-in { color: var(--dd-fg, var(--head-fg)); }
.dd ul { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--dd-gap, 2px); }
.dd-a { display: block; padding: 8px 0; text-decoration: none; color: inherit; font-family: var(--dd-f, var(--f-nav)); font-size: var(--dd-s, 13.5px); letter-spacing: .02em; line-height: 1.35; transition: opacity .2s, background-color .2s; }
.dd-case .dd-a { text-transform: var(--tt-nav, uppercase); letter-spacing: var(--ls-nav, .2em); font-size: var(--dd-s, 11px); }
.dd-l { background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .3s var(--ease); padding-bottom: 2px; }
.ddh-underline .dd-a:hover .dd-l, .dd-a[aria-current="page"] .dd-l { background-size: 100% 1px; }
.ddh-fade .dd ul:hover .dd-a:not(:hover) { opacity: .45; }
.ddh-tint .dd-a { padding-left: 8px; padding-right: 8px; margin: 0 -8px; } .ddh-tint .dd-a:hover { background: color-mix(in srgb, currentColor 7%, transparent); }
.dd-note { display: block; font-size: 12.5px; opacity: .68; margin-top: 3px; }
.dd-h { font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; opacity: .6; margin: 0 0 6px; }
.dd-editorial .dd-in { padding: var(--dd-pad, 26px) calc(var(--dd-pad, 26px) + 8px); }
.dd-editorial .dd-a { font-family: var(--dd-f, var(--f-h1)); font-size: var(--dd-s, 21px); letter-spacing: 0; padding: 7px 0; }
.dd-grouped .dd-in { grid-auto-flow: row; }
.dd-mega { min-width: var(--dd-w, 640px); }
.dd-mega .dd-in { grid-auto-flow: column; grid-auto-columns: minmax(160px, 1fr); gap: 28px; }
.dd-mega .dd-img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; margin-bottom: 8px; display: block; }
/* header button */
.w-head .head-cta { font-family: var(--cta-f, var(--f-button)); font-size: var(--cta-s, inherit); background: var(--cta-bg, var(--btn-bg)); color: var(--cta-fg, var(--btn-fg)); border-width: var(--cta-bw, 1px); border-color: var(--cta-bg, var(--btn-bg)); border-radius: var(--cta-r, var(--btn-radius)); min-height: var(--cta-h, 40px); padding-left: var(--cta-px, 22px); padding-right: var(--cta-px, 22px); transition: background .25s, color .25s, transform .25s, opacity .25s; }
.ctah-invert .head-cta:hover { background: var(--cta-hbg, transparent); color: var(--cta-hfg, var(--cta-bg, var(--btn-bg))); }
.ctah-fade .head-cta:hover { opacity: .8; } .ctah-lift .head-cta:hover { transform: translateY(-2px); } .ctah-none .head-cta:hover { background: var(--cta-bg, var(--btn-bg)); color: var(--cta-fg, var(--btn-fg)); }
.ni-cta { margin-left: 8px; }
/* mobile menu */
.menu-btn .bars.b3 { gap: 6px; }
.menu-open .bars.b3 i:nth-child(1) { transform: translateY(7.5px) rotate(45deg); } .menu-open .bars.b3 i:nth-child(2) { opacity: 0; } .menu-open .bars.b3 i:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }
.menu-btn.is-word { width: auto; padding: 0 8px; font: 500 11px var(--f-nav); letter-spacing: .2em; text-transform: uppercase; color: inherit; }
.mnav { background: var(--m-bg, var(--head-bg)); color: var(--m-fg, var(--head-fg)); }
.mnav .m-ul { display: grid; gap: var(--m-gap, 0); }
.mnav .ml, .mnav .mi > a { display: block; font-family: var(--m-f, var(--f-h1)); font-size: var(--m-s, 38px); line-height: 1.15; padding: 9px 0; text-decoration: none; color: inherit; }
.mnav .mi { border-bottom: 1px solid var(--line); }
.mnav nav a { border-bottom: 0; }
.mnav .ml[aria-current="page"] { font-style: italic; }
.mi-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.mi-label { background: none; border: 0; text-align: left; cursor: pointer; flex: 1; }
.mi-tog { background: none; border: 0; color: inherit; width: 48px; height: 48px; display: grid; place-items: center; cursor: pointer; flex-shrink: 0; }
.mi-tog svg { width: 18px; height: 18px; transition: transform .25s var(--ease); }
.mi-tog[aria-expanded="true"] svg { transform: rotate(45deg); }
.msub { list-style: none; margin: 0 0 14px; padding: 0 0 0 4px; display: grid; gap: 2px; }
.msub[hidden] { display: none; }
.mnav .msub a { display: block; padding: 9px 0 9px 14px; font-family: var(--f-body); font-size: 17px; line-height: 1.4; text-decoration: none; color: inherit; border: 0; }
.mnav .msub a[aria-current="page"] { font-style: italic; }
.msub-h { font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; opacity: .6; padding: 10px 0 2px; }
.m-cta { align-self: flex-start; }
@media (max-width: 980px) {
  .logo-img { max-height: var(--m-logo-h, 46px); } .wordmark { font-size: var(--m-logo-h, 21px); }
  .w-head.m-panel .mnav { inset: 0 0 0 auto; width: min(420px, 88vw); box-shadow: -20px 0 60px rgba(0, 0, 0, .18); padding-top: calc(var(--head-h) + 12px); z-index: 45; }
  .w-head.m-panel .menu-btn { position: relative; z-index: 50; }
  .w-head.lay-center-split .head-in, .w-head.lay-center-stack .head-in { display: flex; flex-direction: row; }
  .w-head.lay-center-split .nav, .w-head.lay-center-stack .nav { display: none; }
  .nav-rw { display: contents; }
  .w-head.lay-center-stack .brand, .w-head.lay-center-split .brand { margin-right: auto; align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) { .dd, .caret, .mi-tog svg, .head-in, .head-cta { transition: none !important; } }
/* Desktop menu too wide for the screen → the menu button is used instead (site-app.js adds .nav-compact). */
.w-head.nav-compact .nav, .w-head.nav-compact .head-cta { display: none; }
.w-head.nav-compact .menu-btn { display: block; }
.w-head.nav-compact .nav-rw { display: contents; }
.w-head.nav-compact.lay-center-split .head-in, .w-head.nav-compact.lay-center-stack .head-in { display: flex; flex-direction: row; }
.w-head.nav-compact.lay-center-split .brand, .w-head.nav-compact.lay-center-stack .brand { margin-right: auto; align-items: flex-start; }

/* ── Reviews & testimonials (2026-10-15): floating editorial cards ── */
.w-reviews { --rv-card: #F8F4ED; --rv-bc: #DED6CC; --rv-star: #B08D57; --rv-muted: var(--muted); --rv-k: 1; padding: var(--sec-space) 0; overflow-x: clip; }
.rv-head { text-align: center; max-width: 820px; margin: 0 auto clamp(40px, 6vw, 88px); }
.rv-head .h-sec { font-size: var(--rv-hs, clamp(46px, 7vw, 104px)); line-height: 1.02; margin: 0; }
.rv-intro { color: var(--rv-muted); font-size: 1.05em; max-width: 560px; margin: 18px auto 0; }
.rv-hint { font-family: var(--f-h1); font-style: italic; color: var(--rv-muted); font-size: 15px; margin: 14px 0 0; opacity: .8; }
@media (hover: none) { .rv-hint { display: none; } }
.rv-field { margin: 0 auto; }
.w-reviews.lay-floating .rv-field { column-count: var(--rv-cols, 3); column-gap: var(--rv-gap, 40px); max-width: calc(var(--rv-cols, 3) * var(--rv-cw, 340px) + (var(--rv-cols, 3) - 1) * var(--rv-gap, 40px)); }
.w-reviews.lay-grid .rv-field { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--rv-cw, 340px)), 1fr)); gap: var(--rv-gap, 40px); align-items: start; }
.rv-slot { break-inside: avoid; padding-top: var(--mt, 0); padding-bottom: var(--rv-gap, 40px); }
.w-reviews.lay-grid .rv-slot { padding: 0; }
.rv-card { position: relative; z-index: 1; display: block; width: var(--w, 100%); margin: 0 auto; background: var(--rv-card); border: 1px solid var(--rv-bc); border-radius: var(--rv-r, 14px); padding: clamp(22px, 2vw, 30px) clamp(22px, 2vw, 30px) 24px; color: var(--ink);
  transform: translate(calc(var(--dx, 0px) * var(--rv-k) + var(--px, 0px)), calc(var(--dy, 0px) * var(--rv-k) + var(--py, 0px) + var(--lift, 0px))) rotate(calc(var(--rot, 0deg) * var(--rv-k) * var(--rr, 1)));
  transition: transform .5s cubic-bezier(.2, .7, .2, 1), box-shadow .5s cubic-bezier(.2, .7, .2, 1); will-change: transform; }
.sh-soft .rv-card { box-shadow: 0 1px 2px rgba(41, 35, 31, .04), 0 12px 30px rgba(41, 35, 31, .06); }
.sh-medium .rv-card { box-shadow: 0 2px 4px rgba(41, 35, 31, .05), 0 18px 44px rgba(41, 35, 31, .10); }
.sh-strong .rv-card { box-shadow: 0 3px 8px rgba(41, 35, 31, .07), 0 26px 60px rgba(41, 35, 31, .16); }
.rv-card:hover, .rv-card:focus-visible { z-index: 5; --lift: -6px; --rr: .35; box-shadow: 0 4px 10px rgba(41, 35, 31, .06), 0 28px 64px rgba(41, 35, 31, .16); }
.rv-card:focus-visible { outline: 2px solid var(--ink); outline-offset: 5px; }
.rv-who { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; }
.rv-pic { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; flex-shrink: 0; display: block; }
.rv-ini { display: grid; place-items: center; background: color-mix(in srgb, var(--rv-bc) 55%, var(--rv-card)); color: var(--rv-muted); font-family: var(--f-h1); font-size: 20px; letter-spacing: .04em; }
.rv-name { font-family: var(--f-body); font-weight: 500; font-size: 15px; letter-spacing: .01em; margin: 0; color: var(--ink); }
.rv-meta { font-size: 13px; color: var(--rv-muted); margin: 2px 0 0; }
.rv-quote { margin: 0; font-family: var(--rv-qf, var(--f-h1)); font-style: italic; font-size: var(--rv-qs, 19px); line-height: 1.5; color: var(--ink-2); }
.rv-quote p { margin: 0 0 .6em; } .rv-quote p:last-child { margin: 0; }
.rv-stars { margin: 16px 0 0; color: var(--rv-star); letter-spacing: .18em; font-size: 13px; }
.rv-stars .off { opacity: .25; }
.rv-badge { position: absolute; top: -11px; left: 18px; font: 600 10px var(--f-body); letter-spacing: .14em; text-transform: uppercase; background: var(--ink); color: var(--bg); padding: 4px 10px; border-radius: 99px; }
.rv-card.is-demo { border-style: dashed; }
.rv-empty { text-align: center; color: var(--rv-muted); border: 1px dashed var(--rv-bc); border-radius: 14px; padding: 40px 20px; max-width: 640px; margin: 0 auto; }
@media (max-width: 1100px) { .w-reviews.lay-floating .rv-field { column-count: 2; max-width: calc(2 * var(--rv-cw, 340px) + var(--rv-gap, 40px)); } .w-reviews { --rv-k: .5; } }
@media (max-width: 680px) {
  .w-reviews { --rv-k: 0; }
  .w-reviews.lay-floating .rv-field { column-count: 1; max-width: 520px; }
  .rv-slot { padding-top: 0; padding-bottom: 18px; } .rv-card { width: 100%; }
  .rv-hint { display: none; }
  .w-reviews.m-swipe .rv-field { display: flex; column-count: auto; max-width: none; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px 4px 18px; margin: 0 calc(var(--gutter) * -1); padding-left: var(--gutter); padding-right: var(--gutter); }
  .w-reviews.m-swipe .rv-slot { flex: 0 0 86%; scroll-snap-align: center; padding: 0; }
}
@media (prefers-reduced-motion: reduce) { .rv-card { transition: none; --px: 0px !important; --py: 0px !important; } }

/* Hero: a headline per slide (2026-10-15) — on the photo itself, or in place of the main headline while it shows. */
.hc-v[hidden] { display: none; }
.hs-cap { position: absolute; z-index: 2; max-width: min(78%, 620px); color: var(--hero-fg, #fff); padding: clamp(18px, 3vw, 44px); pointer-events: none; }
.hs-cap > * { pointer-events: auto; }
.hs-cap::before { content: ''; position: absolute; inset: -40% -30%; z-index: -1; background: radial-gradient(closest-side, rgba(0, 0, 0, calc(var(--hero-ovo, .3) * .9)), transparent); }
.cap-bottom-left { left: 0; bottom: clamp(36px, 5vw, 64px); } .cap-bottom-right { right: 0; bottom: clamp(36px, 5vw, 64px); text-align: right; } .cap-top-left { left: 0; top: calc(var(--head-h) * .8); } .cap-top-right { right: 0; top: calc(var(--head-h) * .8); text-align: right; }
.cap-center { left: 50%; top: 50%; transform: translate(-50%, -50%); text-align: center; }
.hs-h { font-family: var(--f-h1); font-weight: var(--w-h1, 400); font-size: clamp(30px, 3.6vw, 60px); line-height: 1.04; margin: 0; }
.mode-diptych .hs-h { font-size: clamp(26px, 2.6vw, 44px); }
.hs-t { margin: 10px 0 0; font-size: 15px; line-height: 1.5; opacity: .92; }
@media (max-width: 760px) { .hs-cap { max-width: 92%; } .hs-h { font-size: clamp(26px, 8vw, 40px); } .cap-top-left, .cap-top-right { top: calc(var(--head-h) + 8px); } }

/* Corner roundness for photos outside sections (article photos and cover, portfolio grid) — Website Studio. */
.has-r img { border-radius: var(--fr) !important; }

/* Hero fonts chosen in its settings (empty = the theme's heading font). */
.w-hero .h-hero { font-family: var(--hero-hf, var(--f-h1)); }
.w-hero .hs-h { font-family: var(--hero-cf, var(--hero-hf, var(--f-h1))); }

/* Footer typography (Design → Menu & footer). Each value falls back to the original look. */
.w-foot .f-h { font-family: var(--ft-hf, var(--f-nav)); font-size: var(--ft-hs, 11px); letter-spacing: var(--ft-hls, .24em); text-transform: var(--ft-htt, uppercase); color: var(--ft-hc, var(--muted)); }
.w-foot .f-col a, .w-foot .f-col li, .w-foot .f-bottom a { font-family: var(--ft-lf, inherit); }
.w-foot .f-col li { font-size: var(--ft-ls, inherit); } .w-foot .f-col a { color: var(--ft-lc, inherit); }
.w-foot .f-brand .rich, .w-foot .f-bottom { font-family: var(--ft-tf, inherit); }
.w-foot .f-brand .rich { font-size: var(--ft-ts, inherit); } .w-foot .f-bottom { font-size: var(--ft-ts, 12.5px); }
.w-foot .wordmark { font-family: var(--ft-bf, var(--f-h1)); }
.w-foot.has-bs .wordmark { font-size: var(--ft-bs); }
