/* ============================================================
   Ozzimage — site theme (Ozzimage design system, Onyx preset)
   Mono dark ground, warm off-white ink, Quincy CF / Newsreader
   headings, Jost body. 0 radius, no shadows, 1px rules only.
   Mobile-first; desktop layouts unlock at >=760px / >=860px.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,300;0,6..72,400;1,6..72,300;1,6..72,400&family=Jost:wght@300;400;500&display=swap');

/* ---------- Tokens ---------- */
:root {
  /* Onyx preset — five steps, light to dark */
  --onyx-light:#5c5c5c; --onyx-light-accent:#4a4a4a; --onyx-accent:#2e2e2e;
  --onyx-dark-accent:#161616; --onyx-dark:#0c0c0c;
  --ink-c:#ece7df; --ink-muted:#a9a39a; --ink-bright:#ffffff; --gold:#c9a45c;

  /* Semantic */
  --surface-page:var(--onyx-dark); --surface-raised:var(--onyx-dark-accent); --surface-inset:var(--onyx-accent);
  --border-subtle:var(--onyx-accent); --border-strong:var(--onyx-light-accent);
  --text-primary:var(--ink-c); --text-inverse:var(--onyx-dark);
  --scrim-top:linear-gradient(180deg,rgba(12,12,12,.55) 0%,rgba(12,12,12,.1) 35%,rgba(12,12,12,.15) 60%,rgba(12,12,12,.7) 100%);
  --scrim-bottom:linear-gradient(180deg,rgba(0,0,0,0) 30%,rgba(0,0,0,.75) 100%);

  /* Legacy names kept so every existing template/inline style maps onto Onyx */
  --paper:var(--onyx-dark); --paper-2:var(--onyx-dark-accent); --linen:var(--onyx-dark-accent);
  --sand:var(--onyx-dark-accent); --sand-2:var(--onyx-accent); --stone:var(--onyx-light-accent);
  --taupe:var(--ink-muted); --umber:var(--ink-muted); --espresso:var(--ink-c); --ink:var(--onyx-dark);
  --clay:var(--gold); --clay-deep:var(--gold); --clay-soft:var(--gold); --clay-light:var(--gold);
  --clay-tint:var(--onyx-dark-accent);
  --surface:var(--surface-page); --surface-sunken:var(--surface-raised); --surface-card:var(--surface-raised);
  --surface-block:var(--surface-raised); --surface-inverse:var(--surface-page); --surface-inverse-2:var(--surface-raised);
  --text-strong:var(--ink-c); --text-body:var(--ink-c); --text-muted:var(--ink-muted);
  --text-ondark:var(--ink-c); --text-ondark-mut:var(--ink-muted); --text-accent:var(--ink-c);
  --line:var(--onyx-accent); --line-strong:var(--onyx-light-accent); --line-ondark:var(--onyx-accent);
  --accent:var(--gold); --accent-hover:var(--ink-bright); --accent-ondark:var(--gold);
  --focus-ring:rgba(236,231,223,.5);

  /* Type */
  --font-display:'Quincy CF','Newsreader',Georgia,serif;
  --font-sans:'Jost','Sofia Pro',system-ui,sans-serif;
  --font-body:var(--font-sans);
  --w-light:300; --w-regular:400; --w-medium:500; --w-semi:500;
  --fs-display:clamp(34px,3.4vw,52px);
  --fs-display-1:clamp(38px,4.6vw,64px);
  --fs-display-2:clamp(38px,4.6vw,64px);
  --fs-display-3:clamp(30px,2.6vw,40px);
  --fs-h2:clamp(30px,2.6vw,40px); --fs-h3:24px; --fs-title:22px;
  --fs-body-lg:17px; --fs-body:15px; --fs-body-sm:14px; --fs-caption:13px; --fs-nav:13px; --fs-caps:12px; --fs-label:12px;
  --lh-display:1.12; --lh-heading:1.15; --lh-body:2.1; --lh-body-tight:1.9; --ls-display:-.005em;
  --tracking-caps:.22em; --tracking-eyebrow:.24em; --tracking-nav:.18em;
  --ls-label:.24em; --ls-label-sm:.2em; --ls-nav:.18em;

  /* Spacing */
  --space-1:6px; --space-2:12px; --space-3:18px; --space-4:24px; --space-5:32px; --space-6:48px; --space-7:64px; --space-8:96px;
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;
  --sp-10:40px;--sp-12:48px;--sp-16:64px;--sp-20:80px;--sp-24:96px;--sp-32:128px;--sp-40:160px;
  --gutter:clamp(20px,3vw,40px);
  --section-y:clamp(72px,8vw,120px);
  --content-max:1440px; --measure:500px; --measure-tight:46ch;
  --grid-gap:clamp(16px,2vw,24px);

  /* Radius / borders / motion — 0 corners, no shadows */
  --radius:0; --r-none:0; --r-xs:0; --r-sm:0; --r-md:0; --r-pill:0;
  --shadow-sm:none; --shadow-card:none; --shadow-float:none; --shadow-photo:none;
  --border-hair:1px solid var(--line); --border-strong:1px solid var(--line-strong); --border-ondark:1px solid var(--line);
  --ease:.2s ease; --ease-soft:ease; --ease-inout:ease; --dur-fast:.2s; --dur-base:.2s; --dur-slow:.6s;
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;background:var(--surface-page);}
body{
  margin:0;font-family:var(--font-sans);font-weight:300;font-size:var(--fs-body);
  line-height:var(--lh-body-tight);color:var(--text-primary);background:var(--surface-page);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;
}
h1,h2,h3{font-family:var(--font-display);font-weight:300;line-height:var(--lh-heading);
  letter-spacing:var(--ls-display);color:var(--text-primary);margin:0;text-wrap:balance;}
h1{font-size:var(--fs-display-1);line-height:1.08;} h2{font-size:var(--fs-h2);} h3{font-size:var(--fs-h3);}
h1 em,h1 i,h2 em,h2 i{font-style:italic;}
p{margin:0 0 1em;}
a{color:inherit;text-decoration:none;transition:color var(--ease),border-color var(--ease),background var(--ease);}
img{display:block;max-width:100%;}
button{font-family:inherit;}
strong{font-weight:500;}
::selection{background:var(--onyx-light-accent);color:#fff;}
:focus-visible{outline:1px solid var(--ink-c);outline-offset:3px;}

/* ---------- Utilities ---------- */
.container{max-width:var(--content-max);margin:0 auto;}
.section{padding-left:var(--gutter);padding-right:var(--gutter);}
.section--pad{padding-top:var(--section-y);padding-bottom:var(--section-y);}
.bg-paper,.bg-linen{background:var(--surface-page);}
.bg-sand{background:var(--surface-raised);}
.bg-ink{background:var(--surface-page);color:var(--text-primary);}
.center{text-align:center;}
.serif-italic{font-style:italic;}
.measure{max-width:var(--measure);} .measure-tight{max-width:var(--measure-tight);}
.stack{display:flex;flex-direction:column;}
.lead{font-size:var(--fs-body-lg);line-height:var(--lh-body);color:var(--text-primary);max-width:var(--measure);text-wrap:pretty;}
.muted{color:var(--text-muted);}
.body-lg{font-size:var(--fs-body-lg);line-height:var(--lh-body);text-wrap:pretty;margin:0;}
.body-lg--muted{color:var(--text-muted);}

/* Eyebrow — tracked caps */
.eyebrow{display:inline-flex;align-items:center;gap:14px;font-family:var(--font-sans);
  font-size:var(--fs-caps);font-weight:400;letter-spacing:var(--tracking-eyebrow);
  text-transform:uppercase;color:var(--text-muted);line-height:1.6;}
.eyebrow--ink,.eyebrow--ondark{color:var(--text-primary);}
.eyebrow--accent{color:var(--text-muted);}
.eyebrow--gold{color:var(--gold);}
.eyebrow--tick::before{display:none;}
.caps{font-size:var(--fs-caps);letter-spacing:var(--ls-label-sm);text-transform:uppercase;font-weight:400;line-height:2;}

/* Wordmark (portal/admin fallback) */
.wordmark{font-family:var(--font-sans);font-weight:400;text-transform:uppercase;
  letter-spacing:.3em;line-height:1;display:inline-block;white-space:nowrap;font-size:18px;color:var(--text-primary);}
.wordmark__a,.wordmark__b{color:var(--text-primary);}

/* Rules / dividers */
.rule,.divider{border:none;border-top:1px solid var(--line);width:100%;margin:0;}
.divider--short{width:64px;}
.divider--ondark{border-top-color:var(--line);}

/* Tags */
.tag{display:inline-flex;align-items:center;font-size:11px;letter-spacing:var(--ls-label-sm);text-transform:uppercase;
  line-height:1;padding:7px 12px;border:1px solid var(--line-strong);color:var(--text-muted);white-space:nowrap;}
.tag--ondark{color:var(--text-primary);}
.tag--filled{border-color:transparent;background:var(--surface-inset);color:var(--text-primary);}
.tag--accent{border-color:var(--gold);color:var(--gold);}

/* ---------- Buttons ----------
   accent  = primary: 1px ink outline, inverts to ink fill on hover
   primary = filled ink (form submit)
   outline = quiet: muted outline, brightens to ink
   link    = tracked caps with an underline rule                       */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;white-space:nowrap;
  font-family:var(--font-sans);font-weight:500;font-size:var(--fs-nav);
  letter-spacing:var(--tracking-caps);text-transform:uppercase;line-height:1.2;
  padding:18px 40px;border-radius:0;border:1px solid transparent;cursor:pointer;background:transparent;
  color:var(--text-primary);transition:background var(--ease),color var(--ease),border-color var(--ease);}
.btn--sm{padding:12px 22px;font-size:var(--fs-caps);} .btn--lg{padding:18px 40px;}
.btn--full{width:100%;}
.btn--accent{border-color:var(--ink-c);color:var(--ink-c);}
.btn--accent:hover{background:var(--ink-c);color:var(--onyx-dark);}
.btn--primary{background:var(--ink-c);border-color:var(--ink-c);color:var(--onyx-dark);}
.btn--primary:hover{background:#fff;border-color:#fff;color:var(--onyx-dark);}
.btn--outline,.btn--quiet{border-color:var(--ink-muted);color:var(--ink-muted);font-weight:400;}
.btn--outline:hover,.btn--quiet:hover{border-color:var(--ink-c);color:var(--ink-c);}
.btn--text{padding:18px 8px;border:0;}
.btn--text:hover{color:var(--ink-muted);}
.btn--link{padding:8px 0 6px;border:0;border-bottom:1px solid var(--line-strong);color:var(--text-muted);
  font-size:var(--fs-caps);font-weight:400;align-self:flex-start;}
.btn--link:hover{color:var(--ink-c);border-bottom-color:var(--ink-c);}
.btn__icon{font-size:1em;line-height:1;}

/* Section header */
.section-header{display:flex;flex-direction:column;gap:18px;align-items:flex-start;}
.section-header--center{align-items:flex-start;text-align:left;}
.section-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px 48px;margin-bottom:48px;}
.section-head__title{display:flex;flex-direction:column;gap:18px;max-width:560px;}
.section-head__aside{margin:0;max-width:440px;font-size:var(--fs-body);line-height:2;color:var(--text-muted);text-wrap:pretty;}

/* ---------- Launch banner ---------- */
.promo-banner{background:var(--surface-raised);border-bottom:1px solid var(--line);padding:12px var(--gutter);
  display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:center;text-align:center;
  font-size:var(--fs-caps);letter-spacing:var(--ls-label-sm);text-transform:uppercase;font-weight:400;color:var(--text-primary);
  position:sticky;top:0;z-index:60;}
.promo-banner p{margin:0;}
.promo-banner__hint{color:var(--text-muted);}
.promo-banner strong{font-weight:500;color:var(--text-primary);}
.promo-banner.is-compact .promo-banner__hint{display:none;}

/* ---------- Site header / nav ---------- */
.site-shell{position:relative;}
.site-header{position:relative;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:20px 40px;
  padding:clamp(24px,4vw,48px) var(--gutter) 0;}
.site-header--overlay{position:absolute;top:0;left:0;right:0;}
.brand-link{display:flex;flex:none;}
.brand-logo{height:clamp(16px,1.6vw,20px);width:auto;display:block;max-width:60vw;}
.nav-links{display:none;flex-wrap:wrap;justify-content:flex-end;gap:12px clamp(20px,3vw,46px);
  font-size:var(--fs-nav);letter-spacing:var(--tracking-nav);text-transform:uppercase;font-weight:500;}
.nav-link{color:var(--ink-c);white-space:nowrap;}
.nav-link:hover{color:var(--ink-muted);}
.nav-link.is-active::after{content:" •";}
.nav-toggle{display:flex;align-items:center;gap:12px;background:transparent;border:0;color:var(--ink-c);cursor:pointer;
  padding:12px 0;min-height:44px;font-family:var(--font-sans);font-size:var(--fs-caps);letter-spacing:var(--tracking-caps);
  text-transform:uppercase;font-weight:500;}
.nav-toggle svg{display:block;}

/* Mobile menu overlay */
.mobile-menu{position:fixed;inset:0;z-index:100;background:var(--surface-page);color:var(--text-primary);
  display:flex;flex-direction:column;overflow-y:auto;visibility:hidden;opacity:0;transition:opacity var(--ease),visibility var(--ease);}
.mobile-menu.is-open{visibility:visible;opacity:1;}
.mobile-menu__top{display:flex;align-items:center;justify-content:space-between;padding:24px var(--gutter) 0;}
.mobile-menu__top .brand-logo{height:16px;}
.mobile-menu__links{display:flex;flex-direction:column;padding:48px var(--gutter) 0;}
.mobile-menu__links a{display:flex;align-items:baseline;gap:20px;padding:18px 0;border-top:1px solid var(--line);color:var(--ink-c);}
.mobile-menu__links .num{font-size:var(--fs-caps);letter-spacing:.2em;color:var(--text-muted);font-weight:400;min-width:22px;}
.mobile-menu__links .lbl{font-family:var(--font-display);font-weight:300;font-size:32px;line-height:1.1;}
.mobile-menu__links a.is-active .lbl::after{content:" •";}
.mobile-menu__contact{margin-top:auto;padding:40px var(--gutter) 32px;display:flex;flex-direction:column;gap:10px;font-size:15px;color:var(--text-muted);}
.mobile-menu__contact a{color:var(--text-muted);}
.mobile-menu__contact a:hover{color:var(--ink-c);}

/* ---------- Full-bleed photo hero (home / portfolio) ---------- */
.photo-hero{position:relative;min-height:92vh;display:flex;flex-direction:column;overflow:hidden;background:var(--surface-raised);}
.photo-hero--short{min-height:clamp(520px,78vh,820px);}
.photo-hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.photo-hero__scrim{position:absolute;inset:0;background:var(--scrim-top);}
.photo-hero__top{position:relative;padding:calc(clamp(24px,4vw,48px) + 60px) var(--gutter) 0;max-width:760px;display:flex;flex-direction:column;gap:22px;}
.photo-hero__top .eyebrow{color:var(--ink-c);}
.photo-hero__title{font-size:var(--fs-display);line-height:var(--lh-display);}
.photo-hero__spacer{flex:1;min-height:80px;}
.photo-hero__bottom{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));
  gap:32px;padding:0 var(--gutter) 56px;align-items:end;}
.photo-hero__trust{font-size:var(--fs-caps);letter-spacing:.2em;text-transform:uppercase;font-weight:400;line-height:2;max-width:420px;margin:0;}
.photo-hero__copy{justify-self:end;max-width:480px;display:flex;flex-direction:column;gap:28px;}
.photo-hero__copy p{margin:0;font-size:var(--fs-body-lg);line-height:var(--lh-body);text-wrap:pretty;}
.photo-hero__bottom--split{gap:24px 48px;padding-bottom:clamp(40px,5vw,64px);}
.photo-hero__bottom--split h1{font-size:clamp(38px,4.6vw,64px);line-height:1.08;}
.photo-hero__bottom--split .photo-hero__copy{max-width:440px;}
.hero__actions{display:flex;gap:16px;flex-wrap:wrap;align-items:center;}

/* ---------- Page hero (text, two columns) ---------- */
.page-hero{padding:clamp(64px,9vw,140px) var(--gutter) clamp(48px,6vw,80px);display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:32px 48px;align-items:end;}
.page-hero__title{display:flex;flex-direction:column;gap:20px;}
.page-hero__title h1{font-size:clamp(40px,5vw,72px);line-height:1.05;}
.page-hero__aside{justify-self:end;max-width:460px;display:flex;flex-direction:column;gap:18px;}
.page-hero__aside p{margin:0;}
.page-hero__note{font-size:var(--fs-body-sm);line-height:1.9;color:var(--text-muted);border-top:1px solid var(--line);padding-top:18px;}
.page-top{padding-top:clamp(56px,8vw,120px);}

/* ---------- Split intro (about / contact) ---------- */
.intro-split{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:48px clamp(40px,7vw,120px);}
.intro-split--end{align-items:end;} .intro-split--start{align-items:start;}
.intro-split__media{aspect-ratio:4/5;overflow:hidden;background:var(--surface-raised);max-width:560px;}
.intro-split__media img{width:100%;height:100%;object-fit:cover;}
.intro-split__copy{display:flex;flex-direction:column;gap:28px;max-width:520px;}
.intro-split__copy h1{font-size:clamp(44px,5.4vw,80px);line-height:1.02;}
.intro-split__copy .btn{align-self:flex-start;}

/* ---------- Why (small image · empty · copy) ---------- */
.why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:48px;align-items:start;}
.why-grid__img{max-width:260px;aspect-ratio:2/3;overflow:hidden;background:var(--surface-raised);}
.why-grid__img img{width:100%;height:100%;object-fit:cover;}
.why-grid__copy{max-width:500px;display:flex;flex-direction:column;gap:36px;}
.why-grid__copy p{margin:0;}
.why-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:32px;margin-top:clamp(56px,6vw,90px);}
.check-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 28px;font-size:15px;line-height:1.6;}
.check-list li{padding:14px 0;border-top:1px solid var(--line);}

/* Legacy feature list */
.feature-points{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 28px;}
.feature-point{padding:14px 0;border-top:1px solid var(--line);font-size:15px;line-height:1.6;}
.feature-point__tick{display:none;}

/* ---------- Service tiles (staggered) ---------- */
.svc-tiles{display:grid;grid-template-columns:1fr;gap:56px clamp(32px,8vw,180px);align-items:start;}
.svc-tile{display:flex;flex-direction:column;gap:18px;color:var(--ink-c);}
.svc-tile:hover{color:#fff;}
.svc-tile__img{aspect-ratio:3/4;overflow:hidden;background:var(--surface-raised);}
.svc-tile:nth-child(even) .svc-tile__img{aspect-ratio:8/9;}
.svc-tile__img img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.svc-tile:hover .svc-tile__img img{transform:scale(1.02);}
.svc-tile__head{display:flex;justify-content:space-between;gap:16px;align-items:baseline;}
.svc-tile__title{font-family:var(--font-display);font-size:var(--fs-title);font-weight:300;line-height:1.3;}
.svc-tile__cat{font-size:var(--fs-caps);letter-spacing:.2em;text-transform:uppercase;font-weight:400;color:var(--text-muted);white-space:nowrap;}
.svc-tile__desc{margin:0;font-size:15px;line-height:1.9;color:var(--text-muted);text-wrap:pretty;}

/* ---------- Numbered steps ---------- */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:40px 32px;}
.steps--3{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));}
.step{border-top:1px solid var(--line-strong);padding-top:24px;display:flex;flex-direction:column;gap:14px;}
.step__num{font-size:var(--fs-caps);letter-spacing:.24em;font-weight:400;color:var(--text-muted);}
.step h3{font-size:var(--fs-h3);}
.steps--3 .step h3{font-size:26px;}
.step p{margin:0;font-size:15px;line-height:1.9;color:var(--text-muted);text-wrap:pretty;}
.steps-head{display:flex;flex-direction:column;gap:18px;margin-bottom:56px;}

/* ---------- Recent work (carousel panel) ---------- */
.work{padding:12px 0;background:var(--surface-page);}
.work__panel{display:grid;grid-template-columns:1fr;background:var(--surface-raised);}
.work__copy{padding:clamp(32px,4vw,48px);display:flex;flex-direction:column;justify-content:space-between;gap:48px;min-height:420px;}
.work__intro{display:flex;flex-direction:column;gap:18px;}
.work__intro .eyebrow{font-size:var(--fs-nav);color:var(--ink-c);}
.work__intro h2{font-size:clamp(28px,2.4vw,36px);}
.work__foot{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px;}
.work__meta{display:flex;flex-direction:column;gap:10px;}
.work__cat{font-size:var(--fs-caps);letter-spacing:.22em;text-transform:uppercase;font-weight:400;color:var(--text-muted);}
.work__title{font-family:var(--font-display);font-weight:300;font-size:26px;line-height:1.2;color:var(--ink-c);}
.work__title:hover{color:#fff;}
.work__nav{display:flex;gap:8px;}
.icon-btn{width:48px;height:48px;background:transparent;border:1px solid var(--line-strong);color:var(--ink-c);cursor:pointer;display:grid;place-items:center;padding:0;}
.icon-btn:hover{border-color:var(--ink-c);}
.work__media{min-height:clamp(320px,42vw,620px);position:relative;overflow:hidden;background:var(--surface-inset);display:block;}
.work__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .4s ease;}

/* ---------- Split copy + image (service area) ---------- */
.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:clamp(40px,6vw,96px);align-items:center;}
.split--top{align-items:start;}
.split__copy{display:flex;flex-direction:column;gap:28px;max-width:520px;}
.split__copy p{margin:0;}
.split__copy .btn{align-self:flex-start;}
.split__media{aspect-ratio:4/3;overflow:hidden;background:var(--surface-raised);}
.split__media img,.split img{width:100%;height:100%;object-fit:cover;}
.ratio-4-5{aspect-ratio:4/5;} .ratio-1-1{aspect-ratio:1/1;} .ratio-16-8{aspect-ratio:16/8;}
.img-shadow{box-shadow:none;}

/* ---------- Photo CTA band (B&W image, bottom scrim) ---------- */
.photo-band{position:relative;min-height:clamp(480px,48vw,760px);display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;background:#000;}
.photo-band--short{min-height:clamp(420px,42vw,640px);}
.photo-band__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.12) brightness(.8);}
.photo-band__scrim{position:absolute;inset:0;background:var(--scrim-bottom);}
.photo-band__inner{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:28px 32px;align-items:center;
  padding:0 clamp(20px,3vw,44px) clamp(48px,5vw,76px);}
.photo-band__head{display:flex;flex-direction:column;gap:14px;}
.photo-band__head .eyebrow{color:var(--ink-c);}
.photo-band__head h2{font-size:clamp(32px,2.8vw,42px);line-height:1.1;}
.photo-band__text{margin:0;font-size:var(--fs-caps);letter-spacing:.18em;line-height:2;text-transform:uppercase;font-weight:400;max-width:480px;}
.photo-band__action{display:flex;justify-content:flex-start;gap:16px;flex-wrap:wrap;}

/* Plain CTA band (raised panel) */
.cta-panel{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:28px 48px;}
.cta-panel__head{display:flex;flex-direction:column;gap:18px;max-width:720px;}
.cta-panel__head p{margin:0;color:var(--text-muted);font-size:15px;line-height:2;max-width:560px;}
.cta-panel__actions{display:flex;gap:16px;flex-wrap:wrap;}
/* Legacy centered band */
.cta-band{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-6);}
.cta-band__text{color:var(--text-muted);max-width:46ch;margin:0;}

/* ---------- Photo card (collections) ---------- */
.photo-card{position:relative;display:block;overflow:hidden;background:var(--surface-raised);aspect-ratio:4/5;}
.photo-card--landscape{aspect-ratio:3/2;} .photo-card--square{aspect-ratio:1/1;}
.photo-card--wide{aspect-ratio:16/9;} .photo-card--portrait{aspect-ratio:4/5;}
.photo-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.photo-card:hover img{transform:scale(1.02);}
.photo-card__scrim{position:absolute;inset:0;background:var(--scrim-bottom);opacity:.8;}
.photo-card__meta{position:absolute;left:20px;right:20px;bottom:20px;display:flex;flex-direction:column;gap:8px;}
.photo-card__cat{font-size:var(--fs-caps);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-c);}
.photo-card__title{font-family:var(--font-display);font-size:24px;line-height:1.1;color:var(--ink-c);}

/* Collection tile (portfolio grid, staggered) */
.collection-grid{display:grid;grid-template-columns:1fr;gap:clamp(40px,5vw,64px) clamp(20px,4vw,64px);align-items:start;}
.coll-tile{display:flex;flex-direction:column;gap:16px;color:var(--ink-c);}
.coll-tile__img{aspect-ratio:4/5;overflow:hidden;background:var(--surface-raised);}
.coll-tile__img img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.coll-tile:hover .coll-tile__img img{transform:scale(1.02);}
.coll-tile__head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;}
.coll-tile__title{font-family:var(--font-display);font-size:var(--fs-title);font-weight:300;line-height:1.3;}
.coll-tile__cat{font-size:var(--fs-caps);letter-spacing:.2em;text-transform:uppercase;font-weight:400;color:var(--text-muted);white-space:nowrap;}
.coll-tile__meta{font-size:var(--fs-body-sm);color:var(--text-muted);}
.collection-item__cap{display:flex;justify-content:space-between;margin-top:12px;font-size:var(--fs-body-sm);color:var(--text-muted);}
.portfolio-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--grid-gap);}
.portfolio-grid figure{margin:0;}
.portfolio-grid img{width:100%;object-fit:cover;display:block;}
.empty-note{margin:0;padding:48px 0;font-size:var(--fs-body-lg);line-height:2;color:var(--text-muted);}

/* Filter tabs (portfolio + pricing) */
.filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px 28px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:8px 0;margin-bottom:clamp(40px,5vw,64px);}
.filter-row__label{font-size:var(--fs-caps);letter-spacing:.2em;text-transform:uppercase;font-weight:400;color:var(--text-muted);}
.filter-btn{background:none;border:0;border-bottom:1px solid transparent;padding:10px 0;min-height:44px;cursor:pointer;
  font-family:var(--font-sans);font-size:var(--fs-caps);letter-spacing:.2em;text-transform:uppercase;font-weight:400;color:var(--text-muted);}
.filter-btn:hover{color:var(--ink-c);}
.filter-btn.is-active{color:var(--ink-c);border-bottom-color:var(--ink-c);}

/* Gallery header */
.gallery-head{display:grid;grid-template-columns:1fr;gap:var(--sp-6);align-items:end;}
.gallery-head__count{display:flex;flex-direction:column;gap:8px;}
.gallery-head__count .n{font-family:var(--font-display);font-size:2rem;color:var(--text-primary);}
.gallery-head__count .l{font-size:var(--fs-caps);letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);}
.back-link{background:none;border:none;cursor:pointer;font-size:var(--fs-caps);letter-spacing:.2em;text-transform:uppercase;
  color:var(--text-muted);padding:0;margin-bottom:var(--sp-8);display:inline-block;}
.back-link:hover{color:var(--ink-c);}

/* About values + includes (legacy) */
.values-grid{display:grid;grid-template-columns:1fr;gap:var(--sp-10);margin-top:var(--sp-12);}
.value__num{font-size:var(--fs-caps);letter-spacing:.24em;color:var(--text-muted);}
.value h3{font-size:26px;margin-top:var(--sp-2);}
.value p{font-size:15px;color:var(--text-muted);margin:0;}
.includes-list{display:flex;flex-direction:column;}
.includes-list__row{display:flex;gap:var(--sp-5);align-items:baseline;padding:18px 0;border-top:1px solid var(--line);}
.includes-list__n{font-size:var(--fs-caps);color:var(--text-muted);letter-spacing:.2em;}
.includes-list__t{font-family:var(--font-display);font-size:1.5rem;color:var(--text-primary);}

/* Hero legacy (service.php etc.) */
.hero2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:clamp(28px,5vw,72px);align-items:end;}
.hero2__copy{display:flex;flex-direction:column;gap:24px;}
.hero2__title{font-size:clamp(38px,4.6vw,64px);}
.hero2__trust{font-size:var(--fs-caps);letter-spacing:.2em;text-transform:uppercase;line-height:2;color:var(--text-muted);max-width:52ch;margin:0;}
.hero2__media img{width:100%;aspect-ratio:4/5;object-fit:cover;}
.hero2__media--duo{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,3vw,20px);align-items:start;}
.service-gallery{display:grid;grid-template-columns:1fr;gap:clamp(12px,3vw,20px);}
.service-gallery__img{width:100%;}
.svc-grid{display:grid;grid-template-columns:1fr;gap:var(--grid-gap);}
.svc-card{display:flex;flex-direction:column;background:var(--surface-raised);border:1px solid var(--line);overflow:hidden;}
.svc-card__imgwrap{display:block;overflow:hidden;}
.svc-card__img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .6s ease;}
.svc-card:hover .svc-card__img{transform:scale(1.02);}
.svc-card__body{padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-3);flex:1;}
.svc-card__title{font-family:var(--font-display);font-size:var(--fs-title);line-height:1.3;color:var(--text-primary);}
.svc-card__desc{font-size:15px;color:var(--text-muted);flex:1;margin:0;}
.goodfor{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 28px;}
.goodfor li{padding:14px 0;border-top:1px solid var(--line);font-size:15px;line-height:1.6;}

/* Service row (legacy) */
.service-row{display:grid;grid-template-columns:auto 1fr;gap:var(--sp-4) var(--sp-6);align-items:baseline;padding:24px 0;border-top:1px solid var(--line);}
.service-row__num{font-size:var(--fs-caps);letter-spacing:.2em;color:var(--text-muted);}
.service-row__title{font-family:var(--font-display);font-weight:300;font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.1;margin:0;}
.service-row__desc{font-size:15px;color:var(--text-muted);max-width:48ch;margin:0;}
.service-row__price{grid-column:2;display:flex;gap:14px;align-items:baseline;flex-wrap:wrap;}
.service-row__amt{font-family:var(--font-display);font-size:1.5rem;}
.service-row__meta{font-size:var(--fs-caps);letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);}

/* ---------- Pricing ---------- */
.price-block{scroll-margin-top:90px;}
.price-block:not([hidden]) ~ .price-block:not([hidden]){margin-top:var(--section-y);}
.price-block__intro{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:32px clamp(32px,5vw,80px);
  align-items:end;margin-bottom:clamp(40px,5vw,56px);}
.price-block__img{aspect-ratio:16/10;overflow:hidden;background:var(--surface-raised);}
.price-block__img img{width:100%;height:100%;object-fit:cover;}
.price-block__copy{display:flex;flex-direction:column;gap:18px;max-width:520px;}
.tier-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:clamp(16px,2vw,24px);}
.tier{background:var(--surface-raised);border:1px solid var(--line);padding:clamp(24px,3vw,36px);display:flex;flex-direction:column;gap:22px;}
.tier--featured{border-color:var(--line-strong);}
.tier__badge{min-height:14px;font-size:var(--fs-caps);letter-spacing:.22em;text-transform:uppercase;font-weight:400;color:var(--gold);line-height:1.2;}
.tier__name{font-family:var(--font-display);font-size:var(--fs-title);font-weight:300;line-height:1.3;}
.tier__pricing{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px;}
.tier__price{font-family:var(--font-display);font-size:clamp(38px,3.4vw,46px);font-weight:300;line-height:1;}
.tier__was{font-size:var(--fs-body-sm);color:var(--text-muted);}
.tier__was s{text-decoration-thickness:1px;}
.tier__features{list-style:none;margin:0;padding:0;flex:1;}
.tier__features li{padding:12px 0;border-top:1px solid var(--line);font-size:15px;line-height:1.6;}
.tier .btn{align-self:flex-start;padding:16px 28px;font-size:var(--fs-caps);}
.jump-nav{display:flex;flex-wrap:wrap;align-items:center;gap:10px 28px;}
.jump-nav a{font-size:var(--fs-caps);letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);}
.jump-nav a:hover{color:var(--ink-c);}
.price-note{margin:32px 0 0;max-width:620px;font-size:15px;line-height:1.9;color:var(--text-muted);}

/* Rules list (booking details) */
.rules-list{list-style:none;margin:0;padding:0;font-size:16px;line-height:1.7;}
.rules-list li{padding:16px 0;border-top:1px solid var(--line);}
.rules-list li:last-child{border-bottom:1px solid var(--line);}
.notice{background:var(--surface-raised);border:1px solid var(--line);padding:var(--sp-5) var(--sp-6);font-size:var(--fs-body-sm);color:var(--text-muted);}

/* ---------- FAQ ---------- */
.faq-layout{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:48px clamp(40px,7vw,120px);align-items:start;}
.faq-layout__intro{display:flex;flex-direction:column;gap:22px;max-width:460px;}
.faq-layout__intro h1,.faq-layout__intro h2{font-size:clamp(38px,4.4vw,64px);line-height:1.06;}
.faq-acc{border-bottom:1px solid var(--line);}
.faq-acc__item{border-top:1px solid var(--line);}
.faq-acc__q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:clamp(20px,2.4vw,28px) 0;
  min-height:44px;cursor:pointer;list-style:none;font-family:var(--font-display);font-weight:300;font-size:clamp(19px,1.6vw,23px);line-height:1.3;color:var(--ink-c);}
.faq-acc__q::-webkit-details-marker{display:none;}
.faq-acc__q::after{content:"+";font-family:var(--font-sans);font-size:24px;font-weight:300;color:var(--text-muted);flex:none;transition:transform var(--ease);}
.faq-acc__item[open] .faq-acc__q::after{transform:rotate(45deg);}
.faq-acc__a{margin:0;padding:0 0 28px;max-width:620px;font-size:16px;line-height:2;color:var(--text-muted);text-wrap:pretty;}
.faq-list{max-width:64ch;}
.faq-item{border-top:1px solid var(--line);padding:var(--sp-6) 0;}
.faq-item h3{font-size:22px;margin-bottom:var(--sp-3);}
.faq-item p{margin:0;color:var(--text-muted);}

/* ---------- Forms ---------- */
.field{display:flex;flex-direction:column;gap:8px;}
.field__label{font-size:var(--fs-caps);letter-spacing:.2em;text-transform:uppercase;font-weight:400;color:var(--ink-c);}
.field__hint{font-size:13px;color:var(--text-muted);}
.field input,.field select,.field textarea{font-family:var(--font-sans);font-size:17px;font-weight:300;color:var(--ink-c);
  background:transparent;border:0;border-bottom:1px solid var(--line-strong);padding:10px 0 12px;outline:none;width:100%;border-radius:0;
  transition:border-color var(--ease);}
.field input::placeholder,.field textarea::placeholder{color:var(--onyx-light);opacity:1;}
.field textarea{resize:vertical;min-height:96px;line-height:1.8;}
.field input:focus,.field select:focus,.field textarea:focus{border-bottom-color:var(--ink-c);}
.field select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink-muted) 50%),linear-gradient(135deg,var(--ink-muted) 50%,transparent 50%);
  background-position:calc(100% - 14px) 1.2em,calc(100% - 8px) 1.2em;background-size:6px 6px;background-repeat:no-repeat;}
.field select option,select option{background:var(--surface-raised);color:var(--ink-c);}
.field--ondark .field__label{color:var(--ink-c);}
.field--consent{display:flex;flex-direction:row;align-items:flex-start;gap:10px;font-size:var(--fs-body-sm);}
.field--consent input{width:18px;height:18px;margin-top:2px;flex:none;accent-color:var(--ink-c);}
.field--consent a{text-decoration:underline;}

.form-card{background:var(--surface-raised);padding:clamp(24px,4vw,56px);}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:32px 28px;position:relative;}
.form-grid .span-2{grid-column:1/-1;}
.form-foot{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;
  border-top:1px solid var(--line);padding-top:28px;}
.form-note{margin:0;font-size:13px;line-height:1.8;color:var(--text-muted);max-width:320px;}
.form-note a{color:var(--ink-c);border-bottom:1px solid var(--line-strong);}
.form-error{border:1px solid var(--gold);color:var(--ink-c);padding:12px 16px;font-size:var(--fs-body-sm);margin-bottom:var(--sp-6);}
.form-more{grid-column:1 / -1;}
.form-more>summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;min-height:44px;}
.form-more>summary::-webkit-details-marker{display:none;}
.form-more>summary::after{content:"+";font-size:22px;color:var(--text-muted);transition:transform var(--ease);flex:none;}
.form-more[open]>summary::after{transform:rotate(45deg);}
.form-more__label{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;}
.form-more__label b{font-size:var(--fs-caps);letter-spacing:.2em;text-transform:uppercase;font-weight:500;}
.form-more__hint{font-size:13px;color:var(--text-muted);}
.form-more__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:32px 28px;margin-top:32px;}
.form-more__grid .span-2{grid-column:1 / -1;}
.form-promo{margin:0;display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;font-size:var(--fs-body-sm);color:var(--text-muted);}
.form-promo b{font-size:var(--fs-caps);letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:var(--gold);}
.cf-turnstile{min-height:65px;}
button[type="submit"][disabled]{opacity:.6;cursor:progress;}

/* Contact meta list */
.contact-meta{display:flex;flex-direction:column;}
.contact-meta__row{display:grid;grid-template-columns:110px 1fr;gap:16px;padding:16px 0;border-top:1px solid var(--line);}
.contact-meta__row:last-child{border-bottom:1px solid var(--line);}
.contact-meta__k{font-size:var(--fs-caps);letter-spacing:.2em;text-transform:uppercase;font-weight:400;color:var(--text-muted);padding-top:3px;}
.contact-meta__v{font-size:16px;color:var(--ink-c);overflow-wrap:anywhere;}
.small-note{margin:0;font-size:var(--fs-body-sm);line-height:1.9;color:var(--text-muted);}

/* ---------- Footer ---------- */
.site-footer{background:var(--surface-page);color:var(--ink-c);padding:clamp(48px,6vw,80px) var(--gutter) 32px;
  display:flex;flex-direction:column;gap:clamp(40px,5vw,64px);}
.footer-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:32px 40px;}
.footer-photos{display:grid;grid-template-columns:repeat(4,minmax(0,186px));gap:clamp(6px,1vw,15px);flex:1 1 520px;max-width:790px;}
.footer-photos a{aspect-ratio:1;overflow:hidden;background:var(--surface-raised);display:block;}
.footer-photos img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.footer-photos a:hover img{transform:scale(1.02);}
.footer-follow{display:flex;flex-direction:column;align-items:flex-start;gap:18px;flex:0 1 auto;}
.footer-follow__handle{font-size:18px;letter-spacing:.14em;text-transform:uppercase;font-weight:400;color:var(--ink-c);}
.footer-follow__handle:hover{color:var(--ink-muted);}
.footer-follow__contact{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-top:12px;font-size:15px;color:var(--text-muted);}
.footer-follow__contact a{color:var(--text-muted);padding:4px 0;}
.footer-follow__contact a:hover{color:var(--ink-c);}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:36px 40px;border-top:1px solid var(--line);
  padding-top:clamp(36px,4vw,48px);}
.footer-brand{display:flex;flex-direction:column;gap:18px;}
.footer-brand .brand-logo{height:18px;align-self:flex-start;}
.footer-brand p{margin:0;font-size:var(--fs-body-sm);line-height:1.9;color:var(--text-muted);max-width:280px;}
.footer-col{display:flex;flex-direction:column;gap:10px;font-size:var(--fs-body-sm);}
.footer-col__title{font-size:var(--fs-caps);letter-spacing:.22em;text-transform:uppercase;font-weight:400;margin-bottom:6px;}
.footer-col a{color:var(--text-muted);}
.footer-col a:hover{color:var(--ink-c);}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;border-top:1px solid var(--line);padding-top:24px;}
.footer-bottom__note{font-size:var(--fs-caps);letter-spacing:.2em;text-transform:uppercase;font-weight:400;line-height:1.8;}
.footer-bottom__links{display:flex;flex-wrap:wrap;gap:6px 24px;align-items:center;}
.footer-bottom__links a{font-size:var(--fs-caps);letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);}
.footer-bottom__links a:hover{color:var(--ink-c);}
.to-top{background:transparent;border:0;color:var(--gold);cursor:pointer;width:44px;height:44px;display:grid;place-items:center;flex:none;padding:0;}
.to-top:hover{color:var(--ink-c);}

/* ---------- Legal / policy pages ---------- */
.legal{max-width:680px;}
.legal__title{font-size:var(--fs-h2);margin:var(--sp-3) 0 var(--sp-8);}
.legal__body{font-size:16px;line-height:2;color:var(--text-muted);}
.legal__body h2{font-size:24px;color:var(--ink-c);margin:var(--sp-10) 0 var(--sp-3);}
.legal__body p{margin:0 0 var(--sp-4);}
.legal__body a{color:var(--ink-c);border-bottom:1px solid var(--line-strong);}
.legal__body strong{color:var(--ink-c);}
.legal__body .muted{font-size:var(--fs-body-sm);}

/* ============================================================
   Client portal
   ============================================================ */
.portal-body{background:var(--surface-page);min-height:100vh;display:flex;flex-direction:column;}
.portal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px var(--gutter);border-bottom:1px solid var(--line);flex-wrap:wrap;}
.portal-nav{display:flex;align-items:center;gap:22px;font-size:var(--fs-caps);letter-spacing:.2em;text-transform:uppercase;}
.portal-nav a{color:var(--text-muted);}
.portal-nav a:hover{color:var(--ink-c);}
.portal-logout{background:none;border:none;font-family:inherit;font-size:var(--fs-caps);letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);cursor:pointer;padding:0;}
.portal-logout:hover{color:var(--ink-c);}
.portal-main{flex:1;width:100%;max-width:960px;margin:0 auto;padding:var(--sp-12) var(--gutter) var(--sp-20);}
.portal-footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:20px var(--gutter);border-top:1px solid var(--line);font-size:13px;color:var(--text-muted);}
.portal-footer a{color:var(--text-muted);text-decoration:underline;}
.portal-title{font-size:var(--fs-h2);margin-bottom:var(--sp-2);}
.portal-sub{color:var(--text-muted);margin-bottom:var(--sp-10);}
.portal-auth{max-width:440px;margin:6vh auto 0;}
.portal-card{background:var(--surface-raised);border:1px solid var(--line);padding:var(--sp-8);margin-bottom:var(--sp-6);}
.portal-card h1{font-size:32px;margin-bottom:var(--sp-2);}
.portal-field{display:block;margin-bottom:var(--sp-5);}
.portal-field>span{display:block;font-size:var(--fs-caps);letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px;}
.portal-field input,.portal-field select,.portal-field textarea{width:100%;font-family:var(--font-sans);font-size:16px;font-weight:300;padding:10px 0 12px;
  border:0;border-bottom:1px solid var(--line-strong);border-radius:0;background:transparent;color:var(--ink-c);outline:none;}
.portal-field input:focus,.portal-field textarea:focus,.portal-field select:focus{border-bottom-color:var(--ink-c);}
.portal-msg{padding:12px 16px;margin-bottom:var(--sp-5);font-size:var(--fs-body-sm);border:1px solid var(--line-strong);}
.portal-msg--ok{border-color:#6f8f74;color:#b9d4bd;}
.portal-msg--err{border-color:#b0685a;color:#e6b3a8;}
.session-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:var(--sp-5);}
.session-card{background:var(--surface-raised);border:1px solid var(--line);padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-3);}
.session-card__type{font-family:var(--font-display);font-size:24px;}
.session-card__status{display:inline-block;align-self:flex-start;font-size:var(--fs-caps);letter-spacing:.2em;text-transform:uppercase;padding:5px 12px;border:1px solid var(--gold);color:var(--gold);}
.session-card__status.is-confirmed{border-color:#6f8f74;color:#b9d4bd;}
.session-card__meta{font-size:var(--fs-body-sm);color:var(--text-muted);}
.session-card__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:var(--sp-3);}
.pay-table{width:100%;font-size:var(--fs-body-sm);border-collapse:collapse;margin:var(--sp-4) 0;}
.pay-table td{padding:10px 0;border-bottom:1px solid var(--line);}
.pay-table td:last-child{text-align:right;font-variant-numeric:tabular-nums;}
.pay-table tr.total td{font-weight:500;border-bottom:none;padding-top:12px;}
.pay-table tr.due td:last-child{color:var(--gold);font-weight:500;}
.detail-block{background:var(--surface-raised);border:1px solid var(--line);padding:var(--sp-6);margin-bottom:var(--sp-6);}
.detail-block h2{font-size:26px;margin-bottom:var(--sp-4);}
.prep-content h2{font-size:22px;margin:var(--sp-6) 0 var(--sp-2);}
.prep-content ul{margin:0 0 var(--sp-4);padding-left:1.3em;}
.prep-content li{margin-bottom:6px;}
.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--grid-gap);}
.gallery-photo{position:relative;margin:0;overflow:hidden;background:var(--surface-raised);aspect-ratio:1;}
.gallery-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease;}
.gallery-photo:hover img{transform:scale(1.02);}
.gallery-photo__dl{position:absolute;bottom:8px;right:8px;width:36px;height:36px;background:rgba(12,12,12,.7);border:1px solid var(--line-strong);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:16px;opacity:0;transition:opacity var(--ease);}
.gallery-photo:hover .gallery-photo__dl,.gallery-photo:focus-within .gallery-photo__dl{opacity:1;}

/* Journey progress + next step */
.journey{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:0 0 var(--sp-8);padding:0;}
.journey__step{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;position:relative;}
.journey__step::before{content:"";position:absolute;top:14px;left:-50%;width:100%;height:1px;background:var(--line);z-index:0;}
.journey__step:first-child::before{display:none;}
.journey__step.is-done::before,.journey__step.is-current::before{background:var(--ink-muted);}
.journey__dot{position:relative;z-index:1;width:28px;height:28px;display:flex;align-items:center;justify-content:center;
  background:var(--surface-page);border:1px solid var(--line-strong);color:var(--text-muted);font-size:12px;}
.journey__step.is-done .journey__dot{background:var(--ink-c);border-color:var(--ink-c);color:var(--onyx-dark);}
.journey__step.is-current .journey__dot{border-color:var(--gold);color:var(--gold);}
.journey__label{font-size:12px;line-height:1.3;color:var(--text-muted);}
.journey__step.is-current .journey__label{color:var(--ink-c);}
.next-step{background:var(--surface-raised);border:1px solid var(--line);padding:var(--sp-4) var(--sp-5);margin:var(--sp-2) 0 var(--sp-3);}
.next-step__label{display:block;font-size:var(--fs-caps);letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:6px;}
.next-step p{margin:0;font-size:var(--fs-body-sm);color:var(--text-muted);line-height:1.8;}
.next-step--lg{padding:var(--sp-6);margin-bottom:var(--sp-8);}
.next-step--lg p{font-size:15px;margin-bottom:var(--sp-4);}

/* ============================================================
   Public scheduler (/schedule)
   ============================================================ */
.sched{max-width:760px;margin:0 auto;}
.sched__head{margin-bottom:var(--sp-8);}
.sched__intro{font-size:15px;color:var(--text-muted);margin:var(--sp-2) 0 0;}
.sched__current{margin-top:var(--sp-4);padding:12px 16px;border:1px solid var(--line-strong);font-size:var(--fs-body-sm);}
.sched__lead{color:var(--text-muted);font-size:var(--fs-body-sm);margin-bottom:var(--sp-6);}
.sched__days{display:flex;flex-direction:column;gap:var(--sp-6);}
.sched-day{background:var(--surface-raised);border:1px solid var(--line);padding:var(--sp-5);}
.sched-day__label{display:flex;align-items:baseline;gap:10px;margin:0 0 var(--sp-4);font-family:var(--font-display);font-weight:300;font-size:24px;}
.sched-day__label small{font-family:var(--font-sans);font-size:var(--fs-caps);letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);}
.sched-day__slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px;}
.sched-slot__form{margin:0;display:block;}
.sched-slot{width:100%;min-height:48px;font-family:var(--font-sans);font-size:var(--fs-body-sm);padding:13px 10px;border:1px solid var(--line-strong);
  background:transparent;color:var(--ink-c);cursor:pointer;transition:background var(--ease),color var(--ease),border-color var(--ease);}
.sched-slot:hover{background:var(--ink-c);border-color:var(--ink-c);color:var(--onyx-dark);}
.sched__policy{margin-top:var(--sp-8);font-size:13px;color:var(--text-muted);}
.sched__policy a{text-decoration:underline;}
.sched__done{background:var(--surface-raised);border:1px solid var(--line);padding:var(--sp-8);}
.sched__when{font-family:var(--font-display);font-size:26px;line-height:1.4;margin:var(--sp-4) 0 var(--sp-6);}
.sched__hold{padding:var(--sp-5);border:1px solid var(--gold);margin-bottom:var(--sp-6);}
.sched__hold p{font-size:var(--fs-body-sm);margin:0 0 var(--sp-4);}
.sched__confirmed{color:#b9d4bd;font-weight:400;margin-bottom:var(--sp-6);}
.sched__note{font-size:var(--fs-body-sm);color:var(--text-muted);margin-bottom:var(--sp-6);}
.sched__more{margin-top:var(--sp-6);text-align:center;}
.sched-promo summary::-webkit-details-marker{display:none;}

/* Thank-you page */
.ty-ref{padding:14px 22px;border:1px solid var(--line-strong);background:var(--surface-raised);font-size:var(--fs-body-sm);margin:0;}
.ty-note{font-size:var(--fs-body-sm);color:var(--text-muted);margin:0;max-width:46ch;}

/* ============================================================
   Responsive
   ============================================================ */
@media (min-width:640px){
  .svc-tiles{grid-template-columns:repeat(2,1fr);}
  .collection-grid{grid-template-columns:repeat(2,1fr);}
  .gallery-grid{grid-template-columns:repeat(3,1fr);}
  .service-gallery{grid-template-columns:repeat(2,1fr);}
}
@media (min-width:760px){
  .work__panel{grid-template-columns:1fr 2fr;}
  .why-foot{padding-left:clamp(0px,12vw,190px);}
  .photo-band__action{justify-content:flex-end;}
  .values-grid{grid-template-columns:repeat(3,1fr);}
}
@media (min-width:860px){
  .nav-links{display:flex;}
  .nav-toggle{display:none;}
  .footer-follow,.footer-follow__contact{align-items:flex-end;}
  .faq-layout__intro{position:sticky;top:40px;}
  .gallery-head{grid-template-columns:1fr auto;}
  .service-row{grid-template-columns:auto 1fr auto;}
  .service-row__price{grid-column:auto;justify-content:flex-end;flex-direction:column;gap:4px;text-align:right;}
  .gallery-grid{grid-template-columns:repeat(4,1fr);}
}
@media (min-width:1000px){
  .svc-tiles{grid-template-columns:repeat(3,1fr);}
  /* stagger: first tile of the first row, middle tile of the second */
  .svc-tile:nth-child(6n+1),.svc-tile:nth-child(6n+5){margin-top:clamp(0px,9vw,140px);}
  .collection-grid{grid-template-columns:repeat(3,1fr);}
  .collection-grid .coll-tile:nth-child(3n+1) .coll-tile__img{aspect-ratio:3/4;}
  .collection-grid .coll-tile:nth-child(3n+2) .coll-tile__img{aspect-ratio:8/9;}
  .collection-grid .coll-tile:nth-child(3n+3) .coll-tile__img{aspect-ratio:3/4;}
  .collection-grid.is-staggered .coll-tile:nth-child(3n+1){margin-top:clamp(0px,7vw,120px);}
  .collection-grid.is-staggered .coll-tile:nth-child(3n+3){margin-top:clamp(0px,3vw,48px);}
  .service-gallery{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:639px){
  .hero__actions .btn{flex:1 1 auto;}
  .footer-photos{grid-template-columns:repeat(4,1fr);flex-basis:100%;}
  .footer-bottom{align-items:flex-start;}
  .journey{gap:2px;}
  .journey__label{font-size:10px;}
  .journey__dot{width:24px;height:24px;font-size:11px;}
  .journey__step::before{top:12px;}
  .sched-day__slots{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;}
}

@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important;}
}
