
@font-face{font-family:'Butler Ultra Light';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/butler-ultra-light-normal.022b3a54.woff) format('woff');}
@font-face{font-family:'Baskervville';font-style:italic;font-weight:400;font-display:swap;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;src:url(fonts/baskervville-italic.7862eafd.woff2) format('woff2');}
@font-face{font-family:'Baskervville';font-style:normal;font-weight:400;font-display:swap;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;src:url(fonts/baskervville-normal.8f502eb8.woff2) format('woff2');}
@font-face{font-family:'Syne';font-style:normal;font-weight:400;font-display:swap;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;src:url(fonts/syne-normal.6769cdbf.woff2) format('woff2');}

/* ============================================================================
   MAGNOLIA — Wedding Photography Template
   A faithful rebuild of the magnolia.alexcollierdesign.com aesthetic, in clean
   self-contained HTML/CSS. Design system: Butler Ultra Light (display) · Syne
   (labels) · Baskervville (body); cream ground, ink text, mocha accent, pill
   buttons, zero shadow. Photography slots use on-brand placeholders — swap the
   .photo blocks (marked with <!-- IMAGE: ... -->) for your own images.
   ========================================================================== */

*,*::before,*::after{ box-sizing:border-box; }

:root{
  --mocha-text:#5A534C;
  --canvas:#FCF9F5; --ink:#221F20; --ink-soft:rgba(34,31,32,.78);
  --surface:#FFFFFF; --mocha:#7C736A; --mocha-press:#6F6760; --on-primary:#FFFFFF;
  --hairline:#C5BBB2; --hairline-soft:rgba(34,31,32,.13); --band:#3A3637; --on-band:#FCF9F5;
  --secondary-press:#CCCAC7;
  --col:1180px;
  color-scheme:light;
}
/* Considered dark variant so a forced theme toggle stays legible — the native
   identity is the cream/high-key world. */
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --canvas:#201E1E; --mocha-text:#B5ACA2; --ink:#F0EBE4; --ink-soft:rgba(240,235,228,.72);
    --surface:#2B2827; --mocha:#988E83; --mocha-press:#A69C90; --on-primary:#1B1918;
    --hairline:rgba(197,187,178,.26); --hairline-soft:rgba(240,235,228,.13);
    --band:#161413; --on-band:#F0EBE4; --secondary-press:#3A3736; color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --canvas:#201E1E; --mocha-text:#B5ACA2; --ink:#F0EBE4; --ink-soft:rgba(240,235,228,.72);
  --surface:#2B2827; --mocha:#988E83; --mocha-press:#A69C90; --on-primary:#1B1918;
  --hairline:rgba(197,187,178,.26); --hairline-soft:rgba(240,235,228,.13);
  --band:#161413; --on-band:#F0EBE4; --secondary-press:#3A3736; color-scheme:dark;
}
:root[data-theme="light"]{
  --mocha-text:#5A534C;
  --canvas:#FCF9F5; --ink:#221F20; --ink-soft:rgba(34,31,32,.78);
  --surface:#FFFFFF; --mocha:#7C736A; --mocha-press:#6F6760; --on-primary:#FFFFFF;
  --hairline:#C5BBB2; --hairline-soft:rgba(34,31,32,.13); --band:#3A3637; --on-band:#FCF9F5;
  --secondary-press:#CCCAC7; color-scheme:light;
}

.mag{
  background:var(--canvas); color:var(--ink);
  font-family:Baskervville,Baskerville,'Libre Baskerville',Georgia,serif;
  font-size:17px; line-height:1.6; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
.wrap{ max-width:var(--col); margin:0 auto; padding:0 clamp(20px,6vw,80px); }

/* ---- Type roles ---------------------------------------------------------- */
.eyebrow{ font-family:Syne,system-ui,sans-serif; font-weight:400; text-transform:uppercase;
  letter-spacing:.15em; font-size:15px; line-height:1.8; margin:0; color:var(--ink); }
.eyebrow.sm{ font-size:13px; }
.d-xxl{ font-family:'Butler Ultra Light','Butler','Playfair Display',Didot,Georgia,serif; font-weight:400;
  font-size:clamp(38px,6vw,62px); line-height:1.12; letter-spacing:.025em; margin:0; text-wrap:balance; }
.d-xl{ font-family:'Butler Ultra Light','Butler','Playfair Display',Didot,Georgia,serif; font-weight:400;
  font-size:clamp(30px,4.4vw,45px); line-height:1.16; letter-spacing:.02em; margin:0; text-wrap:balance; }
.d-lg{ font-family:'Butler Ultra Light','Butler','Playfair Display',Didot,Georgia,serif; font-weight:400;
  font-size:clamp(26px,3.2vw,32px); line-height:1.2; letter-spacing:.015em; margin:0; }
.d-md{ font-family:'Butler Ultra Light','Butler','Playfair Display',Didot,Georgia,serif; font-weight:400;
  font-size:28px; line-height:1.2; letter-spacing:.015em; margin:0; }
.lead{ font-size:20px; line-height:1.55; margin:0; }
.body{ font-size:17px; line-height:1.65; margin:0; }
.it{ font-style:italic; }
.mocha-tx{ color:var(--mocha-text,var(--mocha)); }

/* ---- Buttons & links ----------------------------------------------------- */
.btn{ font-family:Syne,system-ui,sans-serif; font-weight:400; text-transform:uppercase; letter-spacing:.15em;
  font-size:14px; border:0; border-radius:100px; padding:16px 34px; cursor:pointer; display:inline-flex;
  align-items:center; justify-content:center; text-decoration:none; transition:background .5s,color .5s,box-shadow .5s; }
.btn-primary{ background:var(--mocha); color:var(--on-primary); }
.btn-primary:hover{ background:var(--mocha-press); }
.btn-secondary{ background:var(--canvas); color:var(--ink); box-shadow:inset 0 0 0 1px var(--hairline); }
.btn-secondary:hover{ background:var(--secondary-press); }
.btn-ghost{ background:transparent; color:#fff; box-shadow:inset 0 0 0 1px rgba(255,255,255,.65); }
.btn-ghost:hover{ background:rgba(255,255,255,.14); }
.btn:focus-visible,.tlink:focus-visible,a:focus-visible{ outline:2px solid var(--mocha); outline-offset:3px; }
.tlink{ font-family:Syne,system-ui,sans-serif; text-transform:uppercase; letter-spacing:.15em; font-size:14px;
  color:var(--ink); text-decoration:none; display:inline-flex; align-items:center; gap:9px; transition:color .4s; }
.tlink:hover{ color:var(--mocha-text,var(--mocha)); }
.tlink .ln{ width:34px; height:1px; background:currentColor; display:inline-block; }

/* ---- Header -------------------------------------------------------------- */
.hdr{ position:relative; z-index:40; background:var(--canvas); border-bottom:1px solid var(--hairline); }
.hdr .wrap{ display:grid; grid-template-columns:1fr auto 1fr; align-items:center; height:96px; gap:16px; }
.hdr nav{ display:flex; gap:28px; }
.hdr nav.r{ justify-content:flex-end; }
.hdr nav a{ font-family:Syne,system-ui,sans-serif; text-transform:uppercase; letter-spacing:.2em; font-size:13px;
  color:var(--ink); text-decoration:none; transition:color .4s; }
.hdr nav a:hover{ color:var(--mocha-text,var(--mocha)); }
.wordmark{ font-family:'Butler Ultra Light','Butler','Playfair Display',Didot,Georgia,serif; font-weight:400;
  letter-spacing:.25em; font-size:clamp(21px,2.6vw,29px); text-align:center; white-space:nowrap; padding-left:.25em;
  color:var(--ink); text-decoration:none; }
.burger{ display:none; background:transparent; border:0; cursor:pointer; font-family:Syne,system-ui,sans-serif;
  text-transform:uppercase; letter-spacing:.2em; font-size:12px; color:var(--ink); padding:8px; }
@media (max-width:860px){
  .hdr .wrap{ grid-template-columns:1fr auto 1fr; height:74px; }
  .hdr nav{ display:none; }
  .burger{ display:inline-block; justify-self:start; }
  .hdr .spacer{ justify-self:end; }
}
/* mobile menu overlay */
.mmenu{ position:fixed; inset:0; z-index:60; background:var(--canvas); display:none; flex-direction:column;
  align-items:center; justify-content:center; gap:26px; }
.mmenu.open{ display:flex; }
.mmenu a{ font-family:Syne,system-ui,sans-serif; text-transform:uppercase; letter-spacing:.2em; font-size:16px;
  color:var(--ink); text-decoration:none; }
.mmenu .close{ position:absolute; top:24px; right:26px; background:transparent; border:0; cursor:pointer;
  font-family:Syne,system-ui,sans-serif; letter-spacing:.15em; font-size:12px; text-transform:uppercase; color:var(--ink); }
.mmenu .wm{ font-family:'Butler Ultra Light','Butler',Georgia,serif; letter-spacing:.25em; font-size:26px; margin-bottom:10px; }

/* ---- Photo placeholders -------------------------------------------------- */
.photo{ position:relative; overflow:hidden; background:var(--w1,#Eee); isolation:isolate; }
.photo::before{ content:""; position:absolute; inset:0; z-index:-2;
  background:
    radial-gradient(130% 110% at 22% 8%, var(--w2,#fff) 0%, transparent 58%),
    linear-gradient(155deg, var(--w1,#eee) 0%, var(--w3,#ddd) 100%); }
.photo::after{ content:""; position:absolute; inset:0; z-index:-1; opacity:.05; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; z-index:1; }
.photo.blush{ --w1:#EFE3DE; --w2:#FBF5F1; --w3:#E4D0CA; --wl:#B49E96; }
.photo.sage{  --w1:#E4E7DC; --w2:#F5F5EE; --w3:#D2D8C6; --wl:#A3AB93; }
.photo.sand{  --w1:#EEE6D6; --w2:#FAF5EB; --w3:#E2D4BD; --wl:#B7A588; }
.photo.taupe{ --w1:#E7DED5; --w2:#F7F2EB; --w3:#D6CABC; --wl:#A79684; }
/* dramatic dark wash for full-bleed bands */
.photo.dusk{ --w1:#7B7168; --w2:#8E837763; --w3:#3A3637; --wl:rgba(255,255,255,.45); }
.photo.dusk::after{ opacity:.08; }

/* ---- Sections ------------------------------------------------------------ */
.sec{ padding:clamp(60px,9vw,116px) 0; }
.sec.tight{ padding:clamp(44px,6vw,76px) 0; }

/* Intro */
.intro{ text-align:center; display:flex; flex-direction:column; align-items:center; gap:20px; }
.intro .lead{ max-width:52ch; color:var(--ink-soft); }
.hr-orn{ display:flex; align-items:center; justify-content:center; gap:16px; color:var(--hairline); }
.hr-orn::before,.hr-orn::after{ content:""; width:56px; height:1px; background:currentColor; }
.hr-orn svg{ width:16px; height:16px; color:var(--mocha); }

/* Split image + text */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,72px); align-items:center; }
.split.rev .txt{ order:2; }
.split .txt{ display:flex; flex-direction:column; gap:22px; align-items:flex-start; max-width:40ch; }
.split .photo{ aspect-ratio:4/5; width:100%; }
@media (max-width:820px){ .split{ grid-template-columns:1fr; gap:30px; } .split.rev .txt{ order:0; } .split .photo{ aspect-ratio:3/4; max-height:70vh; } }

/* Full-bleed CTA band over photo */
.band-photo{ position:relative; clip-path:inset(0 0 0 0); isolation:isolate; }
.band-photo .photo{ position:fixed; inset:0; z-index:0; }
/* Fallback when clip-path is unsupported: keep the photo inside its section */
@supports not (clip-path: inset(0)){ .band-photo{ overflow:hidden; } .band-photo .photo{ position:absolute; } }
.band-photo .scrim{ position:absolute; inset:0; z-index:1; background:linear-gradient(0deg, rgba(20,18,18,.52), rgba(20,18,18,.40)); }
.band-photo .inner{ position:relative; z-index:2; text-align:center; color:#fff; padding:clamp(90px,15vw,190px) 0;
  display:flex; flex-direction:column; align-items:center; gap:26px; }
.band-photo .inner .eyebrow{ color:rgba(255,255,255,.9); }
.band-photo .inner .d-xxl,.band-photo .inner .d-xl{ color:#fff; max-width:18ch; }

/* Dark solid band (As Seen In) */
.band-dark{ background:var(--band); color:var(--on-band); }
.band-dark .inner{ text-align:center; padding:clamp(56px,8vw,92px) 0; display:flex; flex-direction:column; align-items:center; gap:22px; }
.band-dark .eyebrow{ color:rgba(252,249,245,.72); }
.band-dark .logos{ display:flex; flex-wrap:wrap; justify-content:center; gap:22px 48px; margin-top:6px; }
.band-dark .logos span{ font-family:Syne,system-ui,sans-serif; text-transform:uppercase; letter-spacing:.18em;
  font-size:14px; color:var(--on-band); opacity:.9; }

/* Mocha band (Join the list) */
.band-mocha{ background:var(--mocha); color:var(--on-primary); }
.band-mocha .inner{ padding:clamp(64px,9vw,104px) 0; display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(28px,5vw,64px); align-items:center; }
.band-mocha .d-xl,.band-mocha .eyebrow{ color:var(--on-primary); }
.band-mocha .eyebrow{ opacity:.85; }
.band-mocha .lead{ color:var(--on-primary); opacity:.92; margin-top:16px; max-width:34ch; }
@media (max-width:760px){ .band-mocha .inner{ grid-template-columns:1fr; } }

/* Bio quick facts */
.facts{ display:flex; flex-direction:column; width:100%; margin-top:4px; }
.fact{ padding:15px 0; border-top:1px solid var(--hairline-soft); }
.fact:first-child{ border-top:0; }
.fact .fl{ font-family:Syne,system-ui,sans-serif; text-transform:uppercase; letter-spacing:.15em; font-size:13px; color:var(--ink); margin:0 0 5px; }
.fact .fv{ font-size:17px; margin:0; color:var(--ink); }
.bio-sub{ font-style:italic; font-size:20px; color:var(--ink-soft); margin:0; }

/* Resources grid */
.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,3vw,36px); }
@media (max-width:820px){ .grid-3{ grid-template-columns:1fr; max-width:460px; margin:0 auto; } }
.rcard{ display:flex; flex-direction:column; gap:16px; }
.rcard .photo{ aspect-ratio:3/4; width:100%; }
.rcard .rtitle{ font-family:Syne,system-ui,sans-serif; text-transform:uppercase; letter-spacing:.14em; font-size:15px; line-height:1.4; color:var(--ink); margin:0; }
.rcard .rnum{ font-family:Syne,system-ui,sans-serif; letter-spacing:.15em; font-size:13px; color:var(--mocha-text,var(--mocha)); }

/* Testimonial */
.testi{ text-align:center; display:flex; flex-direction:column; align-items:center; gap:26px; max-width:60ch; margin:0 auto; }
.testi .med{ width:96px; height:96px; border-radius:50%; }
.testi .q{ font-family:'Butler Ultra Light','Butler','Playfair Display',Didot,Georgia,serif; font-weight:400;
  font-size:clamp(26px,3.4vw,42px); line-height:1.28; letter-spacing:.015em; color:var(--ink); margin:0; }
.testi .attr{ font-family:Syne,system-ui,sans-serif; text-transform:uppercase; letter-spacing:.15em; font-size:14px; color:var(--ink); margin:0; }

/* Recent weddings index */
.recent{ display:flex; flex-direction:column; gap:clamp(40px,7vw,96px); }
.rw{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,64px); align-items:center; }
.rw.rev .rwtx{ order:2; }
.rw .photo{ aspect-ratio:5/4; width:100%; }
.rw .rwtx{ display:flex; flex-direction:column; gap:16px; align-items:flex-start; max-width:42ch; }
.rw .rwnum{ font-family:Syne,system-ui,sans-serif; letter-spacing:.18em; font-size:15px; color:var(--mocha-text,var(--mocha)); }
.rw .rwti{ font-family:Syne,system-ui,sans-serif; text-transform:uppercase; letter-spacing:.14em; font-size:16px; line-height:1.4; color:var(--ink); margin:0; }
@media (max-width:820px){ .rw{ grid-template-columns:1fr; gap:24px; } .rw.rev .rwtx{ order:0; } .rw .photo{ aspect-ratio:4/3; } }

/* Contact CTA */
.contact{ text-align:center; display:flex; flex-direction:column; align-items:center; gap:26px; }
.contact .d-xxl{ max-width:20ch; }

/* Email form (inline) */
.eform{ display:flex; flex-wrap:wrap; gap:14px; }
.eform .fld{ flex:1 1 180px; display:flex; flex-direction:column; gap:7px; }
.eform label{ font-family:Syne,system-ui,sans-serif; text-transform:uppercase; letter-spacing:.15em; font-size:12px; color:inherit; opacity:.9; }
.eform input{ font-family:Baskervville,Georgia,serif; font-size:16px; color:inherit; background:transparent;
  border:0; border-bottom:1px solid currentColor; padding:9px 2px; }
.eform input::placeholder{ color:currentColor; opacity:.55; }
.eform input:focus{ outline:2px solid currentColor; outline-offset:3px; }
.eform .fld-btn{ flex:0 0 auto; align-self:flex-end; }
.band-mocha .eform .btn-secondary{ background:var(--on-primary); color:var(--mocha-text,var(--mocha)); box-shadow:none; }
.band-mocha .eform .btn-secondary:hover{ background:#fff; }

/* Footer */
.foot{ background:var(--canvas); border-top:1px solid var(--hairline); }
.foot-in{ max-width:var(--col); margin:0 auto; padding:clamp(52px,7vw,84px) clamp(20px,6vw,80px) 40px;
  display:grid; grid-template-columns:1.4fr 1fr 1.5fr; gap:clamp(28px,5vw,60px); }
@media (max-width:780px){ .foot-in{ grid-template-columns:1fr; gap:36px; } }
.foot .wm{ font-family:'Butler Ultra Light','Butler',Georgia,serif; font-weight:400; letter-spacing:.25em; font-size:30px; color:var(--ink); }
.foot h4{ font-family:'Butler Ultra Light','Butler',Georgia,serif; font-weight:400; font-size:28px; letter-spacing:.015em; margin:0 0 16px; color:var(--ink); }
.foot-nav{ display:flex; flex-direction:column; gap:11px; }
.foot-nav a{ font-family:Syne,system-ui,sans-serif; text-transform:uppercase; letter-spacing:.15em; font-size:14px; color:var(--ink); text-decoration:none; }
.foot-nav a:hover{ color:var(--mocha-text,var(--mocha)); }
.credits{ max-width:var(--col); margin:0 auto; padding:0 clamp(20px,6vw,80px) 46px; }
.credits hr{ border:0; height:1px; background:var(--hairline); margin:0 0 20px; }
.credits p{ font-family:Syne,system-ui,sans-serif; text-transform:uppercase; letter-spacing:.14em; font-size:11px;
  color:var(--ink-soft); line-height:1.8; margin:0; }

html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){ .btn,.tlink,.hdr nav a{ transition:none; } html{ scroll-behavior:auto; } }


/* ---- Press logos (dark band) ---- */
.band-dark .logos img{ height:32px; width:auto; filter:brightness(0) invert(1); opacity:.82; transition:opacity .4s; }
.band-dark .logos img:hover{ opacity:1; }

/* ---- Portfolio gallery (masonry) ---- */
.pf-hero{ text-align:center; display:flex; flex-direction:column; align-items:center; gap:18px; }
.pf-hero .lead{ max-width:48ch; color:var(--ink-soft); }
.gallery{ column-count:3; column-gap:clamp(10px,1.6vw,18px); }
@media (max-width:860px){ .gallery{ column-count:2; } }
@media (max-width:520px){ .gallery{ column-count:1; } }
.gitem{ display:block; break-inside:avoid; margin:0 0 clamp(10px,1.6vw,18px); position:relative; overflow:hidden; line-height:0; }
.gitem img{ width:100%; height:auto; display:block; transition:opacity .5s; }
.gitem:hover img{ opacity:.8; }

/* active nav */
.hdr nav a[aria-current="page"]{ color:var(--mocha-text,var(--mocha)); }
.mmenu a[aria-current="page"]{ color:var(--mocha-text,var(--mocha)); }


/* ===== page modules ===== */

/* ===== about.html ===== */
.ab-values{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(32px,5vw,72px)}
.ab-value{padding:clamp(26px,3.2vw,40px) 0;border-top:1px solid var(--hairline)}
.ab-value h3{margin:0 0 12px}
.ab-value .body{color:var(--ink-soft);margin:0}
.ab-fav .eyebrow{margin-top:20px}
.ab-fav .body{color:var(--ink-soft);margin-top:8px}
@media (max-width:720px){.ab-values{grid-template-columns:1fr;gap:0}}

/* ===== details.html ===== */
.det-proc{ display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--hairline-soft); margin-top:clamp(32px,5vw,56px); }
.det-step{ padding:clamp(30px,4vw,46px) clamp(24px,3vw,44px); border-bottom:1px solid var(--hairline-soft); }
.det-step:nth-child(odd){ border-right:1px solid var(--hairline-soft); padding-left:0; }
.det-step:nth-child(even){ padding-right:0; }
.det-num{ font-family:Syne,system-ui,sans-serif; text-transform:uppercase; letter-spacing:.15em; font-size:14px; color:var(--mocha-text,var(--mocha)); margin:0 0 14px; }
.det-step h3{ margin:0 0 12px; }
.det-step .body{ color:var(--ink-soft); margin:0; max-width:40ch; }
@media (max-width:760px){
  .det-proc{ grid-template-columns:1fr; }
  .det-step{ padding:clamp(26px,7vw,34px) 0; }
  .det-step:nth-child(odd){ border-right:none; }
}
.det-invest-figure{ line-height:1; color:var(--on-primary); margin:0 0 22px; }
.det-faqs{ max-width:860px; margin:clamp(32px,5vw,52px) auto 0; border-top:1px solid var(--hairline-soft); }
.det-faq{ border-bottom:1px solid var(--hairline-soft); }
.det-faq summary{ list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:24px;
  font-family:Syne,system-ui,sans-serif; text-transform:uppercase; letter-spacing:.13em; font-size:15px; color:var(--ink);
  padding:clamp(20px,3vw,26px) 0; }
.det-faq summary::-webkit-details-marker{ display:none; }
.det-faq summary::after{ content:"+"; font-family:Syne,system-ui,sans-serif; font-size:20px; color:var(--mocha-text,var(--mocha)); line-height:1; flex:none; }
.det-faq[open] summary::after{ content:"\2013"; }
.det-faq summary:hover{ color:var(--mocha-text,var(--mocha)); }
.det-faq p{ font-family:Baskervville,Georgia,serif; font-size:17px; line-height:1.75; color:var(--ink-soft); margin:0 0 clamp(22px,3vw,28px); max-width:64ch; }

/* ===== gallery.html ===== */
.gal-vendors{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--hairline);margin-top:2.5rem}
.gal-vendor{display:flex;flex-direction:column;gap:.4rem;padding:1.4rem 0;border-bottom:1px solid var(--hairline)}
.gal-vendor:nth-child(odd){padding-right:2rem}
.gal-vendor:nth-child(even){padding-left:2rem;border-left:1px solid var(--hairline)}
.gal-vendor .gal-role{font-family:Syne,sans-serif;text-transform:uppercase;letter-spacing:.15em;font-size:13px;color:var(--mocha-text,#5A534C)}
.gal-vendor .gal-name{font-family:Baskervville,serif;font-size:18px;color:var(--ink,#221F20)}
@media(max-width:640px){.gal-vendors{grid-template-columns:1fr}.gal-vendor:nth-child(odd){padding-right:0}.gal-vendor:nth-child(even){padding-left:0;border-left:0}}

/* ===== contact.html ===== */
.ct-split{ display:grid; grid-template-columns:1.35fr 1fr; gap:clamp(40px,6vw,90px); align-items:start; }
@media (max-width:860px){ .ct-split{ grid-template-columns:1fr; gap:56px; } }

.ct-form{ display:flex; flex-direction:column; gap:26px; }
.ct-row{ display:grid; grid-template-columns:1fr 1fr; gap:26px; }
@media (max-width:520px){ .ct-row{ grid-template-columns:1fr; } }
.ct-fld{ display:flex; flex-direction:column; gap:8px; }
.ct-fld label{ font-family:Syne,system-ui,sans-serif; text-transform:uppercase; letter-spacing:.15em; font-size:12px; color:var(--ink); opacity:.9; }
.ct-fld input,.ct-fld textarea{ font-family:Baskervville,Georgia,serif; font-size:16px; color:var(--ink); background:transparent; border:0; border-bottom:1px solid var(--hairline); padding:9px 2px; border-radius:0; }
.ct-fld textarea{ resize:vertical; min-height:120px; line-height:1.5; }
.ct-fld input:focus,.ct-fld textarea:focus{ outline:0; border-bottom-color:var(--mocha); }
.ct-submit{ margin-top:8px; }

.ct-info{ display:flex; flex-direction:column; align-items:flex-start; gap:20px; }
.ct-info .body{ max-width:36ch; }
.ct-email{ font-family:Syne,system-ui,sans-serif; text-transform:uppercase; letter-spacing:.15em; font-size:15px; color:var(--mocha-text,var(--mocha)); text-decoration:none; border-bottom:1px solid var(--hairline); padding-bottom:4px; }
.ct-email:hover{ color:var(--ink); }
.ct-social{ display:flex; flex-direction:column; gap:14px; margin-top:6px; }

/* ===== blog.html ===== */
/* Category bar */
.blog-cats{ display:flex; flex-direction:column; align-items:center; gap:22px; text-align:center; }
.blog-catlist{ display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }
.blog-catlist a{ font-family:Syne,system-ui,sans-serif; text-transform:uppercase; letter-spacing:.14em; font-size:13px; line-height:1; color:var(--ink); text-decoration:none; padding:11px 22px; border:1px solid var(--hairline); border-radius:100px; transition:background .25s ease,color .25s ease,border-color .25s ease; }
.blog-catlist a:hover,.blog-catlist a[aria-current]{ background:var(--mocha-text,var(--mocha)); color:#fff; border-color:var(--mocha-text,var(--mocha)); }

/* Post cards */
.blog-grid{ row-gap:clamp(40px,5vw,64px); }
.blog-card{ text-decoration:none; color:inherit; }
.blog-card .photo{ overflow:hidden; }
.blog-card .photo img{ transition:transform .6s ease; }
.blog-card:hover .photo img{ transform:scale(1.04); }
.blog-card:hover .rtitle{ color:var(--mocha-text,var(--mocha)); }
.blog-card .rtitle{ transition:color .25s ease; }

/* Pagination */
.blog-pager{ display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:clamp(48px,6vw,72px); padding-top:26px; border-top:1px solid var(--hairline); }
.blog-pager a{ font-family:Syne,system-ui,sans-serif; text-transform:uppercase; letter-spacing:.15em; font-size:13px; color:var(--ink); text-decoration:none; transition:color .25s ease; }
.blog-pager a:hover{ color:var(--mocha-text,var(--mocha)); }
.blog-pg-next{ margin-left:auto; }

/* ===== post.html ===== */
/* Post header */
.post-head{ text-align:center; display:flex; flex-direction:column; align-items:center; }
.post-head .d-xxl{ max-width:20ch; margin:14px auto 0; }
.post-meta{ color:var(--ink-soft); margin-top:20px; }

/* Full-bleed hero */
.post-hero{ margin-top:clamp(28px,4vw,52px); }
.post-hero .photo{ width:100%; aspect-ratio:16/9; }
@media (max-width:640px){ .post-hero .photo{ aspect-ratio:4/3; } }

/* Body + sidebar grid */
.post-layout{ display:grid; grid-template-columns:1.6fr 1fr; gap:clamp(40px,6vw,88px); align-items:start; }
@media (max-width:900px){ .post-layout{ grid-template-columns:1fr; gap:56px; } }

/* Main column */
.post-body{ max-width:64ch; }
.post-body .body{ color:var(--ink-soft); margin-bottom:1.5em; }
.post-body .body:last-child{ margin-bottom:0; }
.post-fig{ margin:clamp(28px,4vw,44px) 0; }
.post-fig .photo{ width:100%; aspect-ratio:3/2; }

/* Pull-quote */
.post-pull{ margin:clamp(32px,5vw,52px) 0; padding:0 0 0 clamp(20px,3vw,32px);
  border-left:1px solid var(--hairline); }
.post-pull p{ font-family:'Butler Ultra Light','Butler','Playfair Display',Didot,Georgia,serif;
  font-weight:400; font-style:italic; font-size:clamp(24px,3.2vw,30px); line-height:1.4;
  color:var(--ink); margin:0; }

/* Sidebar */
.post-side{ position:sticky; top:48px; display:flex; flex-direction:column; gap:clamp(36px,4vw,48px); }
@media (max-width:900px){ .post-side{ position:static; } }
.post-card{ text-align:center; display:flex; flex-direction:column; align-items:center; gap:14px;
  padding-bottom:clamp(32px,4vw,44px); border-bottom:1px solid var(--hairline-soft); }
.post-portrait{ width:132px; height:132px; border-radius:50%; }
.post-card .eyebrow{ margin-top:4px; }
.post-card-tx{ color:var(--ink-soft); font-size:16px; max-width:34ch; }

.post-widget{ padding-bottom:clamp(32px,4vw,44px); border-bottom:1px solid var(--hairline-soft); }
.post-widget:last-child{ border-bottom:0; padding-bottom:0; }
.post-widget .eyebrow{ display:block; margin-bottom:18px; color:var(--mocha-text,var(--mocha)); }

/* Search input (underline only) */
.post-search input{ font-family:Baskervville,Georgia,serif; font-size:17px; color:var(--ink);
  width:100%; background:transparent; border:0; border-bottom:1px solid var(--hairline);
  padding:8px 0; outline:none; transition:border-color .4s; }
.post-search input::placeholder{ color:var(--ink-soft); }
.post-search input:focus{ border-bottom-color:var(--mocha); }
.post-vis-hidden{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* Categories */
.post-cats{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px; }
.post-cats a{ font-family:Syne,system-ui,sans-serif; text-transform:uppercase; letter-spacing:.15em;
  font-size:14px; color:var(--ink); text-decoration:none; transition:color .4s; }
.post-cats a:hover{ color:var(--mocha-text,var(--mocha)); }

/* Pagination */
.post-pager{ display:flex; justify-content:space-between; align-items:center; gap:20px;
  padding-top:clamp(28px,4vw,44px); border-top:1px solid var(--hairline-soft); }
@media (max-width:520px){ .post-pager{ flex-direction:column; gap:16px; } }

/* ===== behaviour modules: carousel · lightbox · social grid · parallax ===== */

/* --- Sliding gallery / carousel --- */
.carousel{ position:relative; overflow:hidden; outline:none; touch-action:pan-y; cursor:grab; }
.carousel:focus-visible{ outline:2px solid var(--mocha); outline-offset:3px; }
.car-track{ display:flex; will-change:transform; }
.car-slide{ flex:0 0 100%; position:relative; }
.car-slide .photo{ width:100%; height:100%; }
.carousel.is-dragging{ cursor:grabbing; }
.carousel.is-dragging .car-track{ transition:none !important; }

.car-btn{
  position:absolute; top:50%; transform:translateY(-50%); z-index:6;
  width:46px; height:46px; border-radius:100px; border:0; cursor:pointer;
  background:rgba(252,249,245,.88); color:var(--ink);
  display:flex; align-items:center; justify-content:center;
  transition:background .4s, color .4s; font-size:0;
}
.car-btn svg{ width:16px; height:16px; }
.car-btn:hover{ background:var(--mocha); color:#fff; }
.car-btn:focus-visible{ outline:2px solid var(--mocha); outline-offset:3px; }
.car-btn.prev{ left:clamp(10px,2vw,26px); }
.car-btn.next{ right:clamp(10px,2vw,26px); }

.car-dots{ display:flex; justify-content:center; gap:10px; margin-top:22px; }
.car-dots.on-image{ position:absolute; left:0; right:0; bottom:18px; margin:0; z-index:6; }
.car-dot{
  width:8px; height:8px; padding:0; border:0; border-radius:50%; cursor:pointer;
  background:var(--hairline); transition:background .4s, transform .4s;
}
.car-dot.is-active{ background:var(--mocha); transform:scale(1.35); }
.car-dots.on-image .car-dot{ background:rgba(255,255,255,.55); }
.car-dots.on-image .car-dot.is-active{ background:#fff; }
.car-dot:focus-visible{ outline:2px solid var(--mocha); outline-offset:3px; }

/* hero carousel sizing */
.hero-car .car-slide .photo{ aspect-ratio:auto; height:min(78vh,720px); }
@media (max-width:640px){ .hero-car .car-slide .photo{ height:56vh; } }
/* single-image gallery carousel */
.gal-car .car-slide .photo{ height:min(76vh,760px); }
@media (max-width:640px){ .gal-car .car-slide .photo{ height:52vh; } }

/* --- Lightbox --- */
.lb{
  position:fixed; inset:0; z-index:120; display:none;
  align-items:center; justify-content:center; gap:clamp(8px,2vw,26px);
  background:rgba(26,24,23,.94); padding:clamp(16px,4vw,56px);
}
.lb.open{ display:flex; }
.lb-fig{ margin:0; max-width:min(1100px,92vw); max-height:88vh; display:flex; flex-direction:column; gap:12px; align-items:center; }
.lb-img{ max-width:100%; max-height:80vh; width:auto; height:auto; display:block; object-fit:contain; }
.lb-cap{
  font-family:Syne,system-ui,sans-serif; text-transform:uppercase; letter-spacing:.15em;
  font-size:11px; color:rgba(252,249,245,.72); text-align:center;
}
.lb-nav, .lb-close{
  background:transparent; border:1px solid rgba(252,249,245,.45); color:#FCF9F5; cursor:pointer;
  border-radius:100px; transition:background .4s, border-color .4s;
}
.lb-nav{ width:46px; height:46px; flex:0 0 46px; font-size:18px; line-height:1; }
.lb-nav:hover, .lb-close:hover{ background:rgba(252,249,245,.16); border-color:rgba(252,249,245,.8); }
.lb-close{
  position:absolute; top:clamp(14px,3vw,28px); right:clamp(14px,3vw,28px);
  padding:9px 18px; font-family:Syne,system-ui,sans-serif; text-transform:uppercase;
  letter-spacing:.15em; font-size:11px;
}
.lb-nav:focus-visible, .lb-close:focus-visible{ outline:2px solid #fff; outline-offset:3px; }
@media (max-width:640px){ .lb-nav{ width:40px; height:40px; flex:0 0 40px; } }

/* --- Footer social / Instagram grid --- */
.social{ border-top:1px solid var(--hairline-soft); }
.social-in{ max-width:var(--col); margin:0 auto; padding:clamp(34px,5vw,54px) clamp(20px,6vw,80px) 0; text-align:center; }
.social-in .eyebrow{ color:var(--ink-soft); }
.social-in .handle{
  font-family:'Butler Ultra Light','Butler',Georgia,serif; font-size:clamp(22px,2.6vw,28px);
  letter-spacing:.02em; color:var(--ink); text-decoration:none; display:inline-block; margin-top:6px;
  transition:color .4s;
}
.social-in .handle:hover{ color:var(--mocha-text,var(--mocha)); }
.social-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:clamp(6px,1vw,12px); margin-top:22px; }
.social-grid .photo{ aspect-ratio:1/1; }
@media (max-width:860px){ .social-grid{ grid-template-columns:repeat(3,1fr); } }


/* inline content links — reference hover idiom */
.body a:not(.btn), .lead a:not(.btn){ color:var(--ink); text-decoration:underline; text-underline-offset:3px; transition:opacity .4s; }
.body a:not(.btn):hover, .lead a:not(.btn):hover{ opacity:.8; }

/* details intro slider (reference intro_5, 695x422) */
.det-slider .car-slide .photo{ aspect-ratio:695/422; height:auto; }
.det-slider{ cursor:grab; }

/* text-less pinned band (e.g. post hero) */
.band-photo.quiet{ height:min(62vh,560px); }
.band-photo.quiet .scrim{ background:linear-gradient(0deg, rgba(20,18,18,.18), rgba(20,18,18,.10)); }

/* reference hover idiom on linked card images */
.blog-card img, .rcard img{ transition:opacity .5s; }
.blog-card:hover img, .rcard:hover img{ opacity:.8; }

/* demo form feedback */
.form-note{ font-family:Syne,system-ui,sans-serif; text-transform:uppercase; letter-spacing:.15em; font-size:12px; line-height:1.7; margin:10px 0 0; }
.form-note.ok{ color:inherit; }
.form-note.err{ color:var(--mocha-text,#5A534C); }
.band-mocha .form-note{ color:var(--on-primary); }
