/* =====================================================================
   Brian Photographe — refonte
   Direction "Chambre noire & planche-contact"
   Display: Libre Caslon Display · Corps: Libre Caslon Text · Labels: Space Mono
   ===================================================================== */

/* ---------- Tokens ---------- */
:root{
  --ink:#14110E;          /* noir chaud */
  --ink-soft:#1C1813;     /* surface sombre */
  --ink-2:#241F18;
  --paper:#FBFAF8;        /* blanc os (pas crème) */
  --bone:#ECE7DE;         /* séparateur clair */
  --bone-2:#E2DBD0;
  --ash:#6E6A63;          /* texte secondaire */
  --ash-light:#A8A29A;    /* texte secondaire sur sombre */
  --brass:#B0894F;        /* accent unique (décoratif / sur fond sombre) */
  --brass-bright:#C9A063; /* hover / texte sur sombre */
  --brass-ink:#8A6A35;    /* texte gold sur fond clair (contraste AA) */
  --line:rgba(20,17,14,.14);
  --line-light:rgba(251,250,248,.16);

  --font-display:'Libre Caslon Display', Georgia, 'Times New Roman', serif;
  --font-body:'Libre Caslon Text', Georgia, 'Times New Roman', serif;
  --font-mono:'Space Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;

  /* échelle typographique fluide */
  --t-xs:.75rem;
  --t-sm:.8125rem;
  --t-label:.72rem;
  --t-base:clamp(1rem,.97rem + .15vw,1.125rem);
  --t-lg:clamp(1.2rem,1.1rem + .5vw,1.4rem);
  --t-xl:clamp(1.5rem,1.25rem + 1vw,2rem);
  --t-2xl:clamp(2rem,1.5rem + 2.2vw,3.25rem);
  --t-3xl:clamp(2.6rem,1.7rem + 4vw,5rem);
  --t-hero:clamp(3rem,1.4rem + 7vw,8.5rem);

  --s-1:.25rem; --s-2:.5rem; --s-3:.75rem; --s-4:1rem; --s-5:1.5rem;
  --s-6:2rem; --s-7:2.5rem; --s-8:3rem; --s-10:4rem; --s-12:5rem; --s-16:7rem;
  --section:clamp(4.5rem,9vw,9rem);
  --gutter:clamp(1.25rem,5vw,4.5rem);
  --maxw:80rem;

  --r:2px;
  --r-pill:100px;
  --shadow-print:0 30px 60px -32px rgba(20,17,14,.55), 0 8px 20px -12px rgba(20,17,14,.3);
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  font-family:var(--font-body);
  font-size:var(--t-base);
  line-height:1.6;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,picture,svg,video{display:block;max-width:100%;height:auto}
/* cover-image containers: let <picture> fill so img height:100% has a reference */
.hero__slide picture,.page-hero__bg picture,.cat-card picture,.reportage__media picture{display:block;width:100%;height:100%}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
ul[role="list"]{list-style:none;padding:0}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:1px}
::selection{background:var(--brass);color:var(--paper)}

/* ---------- Typo helpers ---------- */
h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;line-height:1.04;letter-spacing:-.01em}
.display{font-family:var(--font-display);line-height:1.02}
.t-hero{font-size:var(--t-hero);line-height:.96;letter-spacing:-.02em}
.t-3xl{font-size:var(--t-3xl)}
.t-2xl{font-size:var(--t-2xl)}
.t-xl{font-size:var(--t-xl)}
em,.italic{font-style:italic}
p{text-wrap:pretty}
h1,h2,h3{text-wrap:balance}

.eyebrow{
  font-family:var(--font-mono);
  font-size:var(--t-label);
  letter-spacing:.26em;
  text-transform:uppercase;
  color:var(--brass-ink);
  display:inline-flex;align-items:center;gap:.7em;
  font-weight:400;
}
.eyebrow::before{content:"";width:1.6rem;height:1px;background:var(--brass);opacity:.7}
.eyebrow.is-center::after{content:"";width:1.6rem;height:1px;background:var(--brass);opacity:.7}
.mono{font-family:var(--font-mono)}
.frame-no{font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.14em;color:var(--brass-ink)}
.lede{font-size:var(--t-lg);line-height:1.5;color:var(--ash);max-width:48ch}
.muted{color:var(--ash)}

/* ---------- Layout ---------- */
.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}
.container-wide{max-width:96rem}
.section{padding-block:var(--section)}
.section--dark{background:var(--ink);color:var(--paper)}
.section--bone{background:var(--bone)}
.section--tight{padding-block:clamp(3rem,6vw,5rem)}
.section--dark .eyebrow,.section--dark .frame-no,
.page-hero .eyebrow,.page-hero .frame-no,
.hero .eyebrow,.hero .frame-no{color:var(--brass-bright)}
.page-hero .lede,.page-hero .muted,.page-hero p{color:var(--ash-light)}
.section--dark .lede,.section--dark .muted{color:var(--ash-light)}
.stack>*+*{margin-top:var(--s-4)}
.center{text-align:center}
.divider{height:1px;background:var(--line);border:0}
.section--dark .divider{background:var(--line-light)}

.grid{display:grid;gap:var(--s-5)}
.section-head{display:flex;flex-direction:column;gap:var(--s-4);max-width:62rem;margin-bottom:clamp(2.5rem,5vw,4rem)}
.section-head.is-center{align-items:center;text-align:center;margin-inline:auto}

/* ---------- Buttons / links ---------- */
.btn{
  --bg:var(--ink);--fg:var(--paper);--bd:var(--ink);
  display:inline-flex;align-items:center;gap:.7em;
  font-family:var(--font-mono);font-size:var(--t-sm);letter-spacing:.14em;text-transform:uppercase;
  padding:.95em 1.7em;border:1px solid var(--bd);background:var(--bg);color:var(--fg);
  border-radius:var(--r-pill);cursor:pointer;transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease);
  text-align:center;line-height:1;
}
.btn:hover{transform:translateY(-2px)}
.btn .arrow{transition:transform .35s var(--ease)}
.btn:hover .arrow{transform:translateX(4px)}
.btn--primary{--bg:var(--brass);--fg:var(--ink);--bd:var(--brass)}
.btn--primary:hover{--bg:var(--brass-bright);--bd:var(--brass-bright)}
.btn--ghost{--bg:transparent;--fg:var(--ink);--bd:var(--line)}
.btn--ghost:hover{--bg:var(--ink);--fg:var(--paper);--bd:var(--ink)}
.section--dark .btn--ghost{--fg:var(--paper);--bd:var(--line-light)}
.section--dark .btn--ghost:hover{--bg:var(--paper);--fg:var(--ink);--bd:var(--paper)}
.btn[aria-disabled="true"],.btn:disabled{opacity:.45;pointer-events:none}
.btn.is-loading{pointer-events:none}
.btn.is-loading .btn-label{opacity:.5}

.link-underline{
  position:relative;display:inline-flex;gap:.5em;align-items:center;
  font-family:var(--font-mono);font-size:var(--t-sm);letter-spacing:.12em;text-transform:uppercase;
  padding-bottom:2px;
}
.link-underline::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}
.link-underline:hover::after{transform:scaleX(1);transform-origin:left}
.link-underline .arrow{transition:transform .35s var(--ease)}
.link-underline:hover .arrow{transform:translateX(4px)}

/* ---------- Skip link ---------- */
.skip-link{position:absolute;left:50%;top:-100px;transform:translateX(-50%);z-index:200;background:var(--ink);color:var(--paper);padding:.8em 1.4em;border-radius:var(--r-pill);transition:top .25s}
.skip-link:focus{top:.8rem}

/* ---------- Header ---------- */
.site-header{position:fixed;inset:0 0 auto 0;z-index:100;transition:background .4s var(--ease),box-shadow .4s var(--ease),border-color .4s}
.site-header__bar{display:flex;align-items:center;justify-content:space-between;gap:var(--s-5);padding-block:1.1rem;border-bottom:1px solid transparent;transition:padding .4s var(--ease)}
.site-header[data-state="top"]{color:var(--paper)}
.site-header[data-state="solid"]{background:rgba(251,250,248,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--ink)}
.site-header[data-state="solid"] .site-header__bar{border-color:var(--line);padding-block:.7rem}
.site-header[data-state="solid"] .brand__sub{color:#57534C}
.brand{display:flex;flex-direction:column;line-height:1;gap:.2rem;z-index:120}
.brand__name{font-family:var(--font-display);font-size:1.35rem;letter-spacing:.02em}
.brand__sub{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.34em;text-transform:uppercase;color:var(--ash-light);transition:color .4s}
.nav{display:flex;align-items:center;gap:clamp(1rem,2vw,2rem)}
.nav__list{display:flex;align-items:center;gap:clamp(1rem,2vw,2rem);font-family:var(--font-mono);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase}
.nav__link{position:relative;padding:.4em 0;opacity:.85;transition:opacity .3s}
.nav__link:hover,.nav__link[aria-current="page"]{opacity:1}
.nav__link[aria-current="page"]::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--brass)}
.nav__cta{display:inline-flex}
.nav-toggle{display:none}

@media (max-width:1024px){
  .nav__list,.nav .nav__cta{display:none}
  .nav-toggle{display:inline-flex;align-items:center;gap:.6em;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;background:none;border:0;cursor:pointer;z-index:120;padding:.5em}
  .nav-toggle__lines{width:26px;height:10px;position:relative;display:inline-block}
  .nav-toggle__lines span{position:absolute;left:0;width:100%;height:1.5px;background:currentColor;transition:transform .4s var(--ease),opacity .3s}
  .nav-toggle__lines span:first-child{top:0}
  .nav-toggle__lines span:last-child{bottom:0}
  body.menu-open .nav-toggle__lines span:first-child{transform:translateY(4px) rotate(45deg)}
  body.menu-open .nav-toggle__lines span:last-child{transform:translateY(-4px) rotate(-45deg)}
}

/* fullscreen mobile menu */
.menu-overlay{position:fixed;inset:0;z-index:110;background:var(--ink);color:var(--paper);
  display:flex;flex-direction:column;justify-content:center;padding:var(--gutter);
  clip-path:inset(0 0 100% 0);transition:clip-path .6s var(--ease);visibility:hidden}
body.menu-open .menu-overlay{clip-path:inset(0 0 0 0);visibility:visible}
.menu-overlay__list{display:flex;flex-direction:column;gap:clamp(.3rem,2vw,1rem)}
.menu-overlay__list a{font-family:var(--font-display);font-size:clamp(2rem,9vw,3.4rem);line-height:1.1;display:inline-flex;align-items:baseline;gap:1rem;transition:color .3s,transform .5s var(--ease);transform:translateY(20px);opacity:0}
body.menu-open .menu-overlay__list a{transform:translateY(0);opacity:1;transition-delay:calc(var(--i,0)*60ms + 150ms)}
.menu-overlay__list a:hover{color:var(--brass-bright)}
.menu-overlay__list .frame-no{font-size:.8rem;align-self:center}
.menu-overlay__foot{margin-top:var(--s-10);display:flex;flex-wrap:wrap;gap:var(--s-5);font-family:var(--font-mono);font-size:.78rem;letter-spacing:.1em;color:var(--ash-light)}
.menu-overlay__foot a:hover{color:var(--brass-bright)}

/* ---------- Hero (slideshow) ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;color:var(--paper);overflow:hidden;background:var(--ink)}
.hero__slides{position:absolute;inset:0}
.hero__slide{position:absolute;inset:0;opacity:0;transition:opacity 1.4s var(--ease),transform 7s linear;transform:scale(1.06);background-size:cover;background-position:center}
.hero__slide img{width:100%;height:100%;object-fit:cover}
.hero__slide.is-active{opacity:1;transform:scale(1)}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,17,14,.5) 0%,rgba(20,17,14,.05) 32%,rgba(20,17,14,.65) 100%);pointer-events:none}
.hero__inner{position:relative;z-index:2;width:100%;padding-bottom:clamp(3rem,7vw,6rem);padding-top:8rem}
.hero__eyebrow{color:var(--brass-bright)}
.hero h1{font-size:var(--t-hero);margin-top:1rem;max-width:16ch}
.hero__meta{display:flex;flex-wrap:wrap;gap:var(--s-5);align-items:center;margin-top:var(--s-6);font-family:var(--font-mono);font-size:var(--t-sm);letter-spacing:.12em;text-transform:uppercase;color:var(--ash-light)}
.hero__actions{display:flex;flex-wrap:wrap;gap:var(--s-4);margin-top:var(--s-7)}
.hero__counter{position:absolute;right:var(--gutter);bottom:clamp(3rem,7vw,6rem);z-index:2;display:flex;align-items:center;gap:.6em;font-family:var(--font-mono);font-size:var(--t-sm);letter-spacing:.14em;color:var(--paper)}
.hero__counter .bar{display:inline-block;width:48px;height:1px;background:var(--line-light);position:relative}
.hero__counter .bar::after{content:"";position:absolute;left:0;top:0;height:100%;background:var(--brass-bright);width:var(--p,20%);transition:width .8s var(--ease)}
.scroll-cue{position:absolute;left:var(--gutter);bottom:clamp(3rem,7vw,6rem);z-index:2;font-family:var(--font-mono);font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;writing-mode:vertical-rl;color:var(--ash-light)}
@media (max-width:640px){.scroll-cue{display:none}}

/* ---------- Film strip (signature divider) ---------- */
.filmstrip{background:var(--ink);padding:.5rem 0;overflow:hidden;border-block:1px solid var(--ink-2)}
.filmstrip__track{display:flex;gap:.4rem;width:max-content;animation:slide 60s linear infinite}
@media (prefers-reduced-motion:reduce){.filmstrip__track{animation:none}}
.filmstrip__track img{height:clamp(72px,10vw,116px);width:auto;aspect-ratio:3/2;object-fit:cover;filter:grayscale(1) brightness(.9);opacity:.78;transition:filter .5s,opacity .5s;border-radius:1px}
.filmstrip:hover .filmstrip__track img{filter:grayscale(0);opacity:1}
@keyframes slide{to{transform:translateX(-50%)}}

/* ---------- Editorial split ---------- */
.split{display:grid;gap:clamp(2rem,5vw,5rem);align-items:center}
@media (min-width:880px){.split{grid-template-columns:1.05fr .95fr}.split--reverse>:first-child{order:2}}
.split__media{position:relative}
.split__media img{width:100%;object-fit:cover;border-radius:var(--r);box-shadow:var(--shadow-print)}
.media-tag{position:absolute;left:-.5rem;bottom:1.2rem;background:var(--paper);color:var(--ink);font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.16em;text-transform:uppercase;padding:.5em .9em;box-shadow:var(--shadow-print)}
.section--dark .media-tag{background:var(--brass);color:var(--ink)}

/* ---------- Stats ---------- */
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s-6) var(--s-5);margin-top:var(--s-8)}
@media(min-width:760px){.stats{grid-template-columns:repeat(4,1fr)}}
.stat__num{font-family:var(--font-display);font-size:var(--t-2xl);line-height:1;display:flex;align-items:baseline;gap:.15em}
.stat__num small{font-size:.4em;color:var(--brass)}
.stat__label{font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--ash);margin-top:.6rem}
.section--dark .stat__label{color:var(--ash-light)}

/* ---------- Gallery grid ---------- */
.gallery{columns:1;column-gap:var(--s-4)}
@media(min-width:600px){.gallery{columns:2}}
@media(min-width:1024px){.gallery{columns:3}}
.gallery__item{break-inside:avoid;margin-bottom:var(--s-4);position:relative;overflow:hidden;border-radius:var(--r);background:var(--bone)}
.gallery__item button{display:block;width:100%;border:0;padding:0;background:none;cursor:zoom-in}
.gallery__item img{width:100%;transition:transform .9s var(--ease),filter .6s}
.gallery__item:hover img{transform:scale(1.04)}
.gallery__item figcaption{position:absolute;left:0;bottom:0;width:100%;padding:1rem;color:var(--paper);font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.12em;text-transform:uppercase;background:linear-gradient(transparent,rgba(20,17,14,.7));opacity:0;transform:translateY(8px);transition:opacity .4s,transform .4s;pointer-events:none}
.gallery__item:hover figcaption{opacity:1;transform:translateY(0)}

/* category tabs */
.cat-grid{display:grid;gap:var(--s-4);grid-template-columns:1fr}
@media(min-width:640px){.cat-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1080px){.cat-grid{grid-template-columns:repeat(3,1fr)}}
.cat-card{position:relative;overflow:hidden;border-radius:var(--r);aspect-ratio:4/5;display:block;background:var(--ink)}
.cat-card img{width:100%;height:100%;object-fit:cover;opacity:.85;transition:transform 1s var(--ease),opacity .5s}
.cat-card:hover img{transform:scale(1.05);opacity:1}
.cat-card::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 40%,rgba(20,17,14,.78))}
.cat-card__body{position:absolute;inset:auto 0 0 0;z-index:2;padding:clamp(1.2rem,2.5vw,2rem);color:var(--paper);display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}
.cat-card__title{font-family:var(--font-display);font-size:var(--t-xl);line-height:1}
.cat-card__count{font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.14em;color:var(--brass-bright)}
.cat-card .arrow{transition:transform .4s var(--ease)}
.cat-card:hover .arrow{transform:translate(4px,-4px)}

/* ---------- Reportage cards ---------- */
.reportages{display:grid;gap:clamp(1.5rem,3vw,2.5rem);grid-template-columns:1fr}
@media(min-width:760px){.reportages{grid-template-columns:repeat(2,1fr)}}
.reportage{display:block;position:relative}
.reportage__media{position:relative;overflow:hidden;border-radius:var(--r);aspect-ratio:16/11;background:var(--ink)}
.reportage__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.reportage:hover .reportage__media img{transform:scale(1.05)}
.reportage__no{position:absolute;top:1rem;left:1rem;z-index:2;font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.16em;color:var(--paper);mix-blend-mode:difference}
.reportage__body{padding-top:var(--s-4);display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;border-top:1px solid var(--line);margin-top:var(--s-4)}
.reportage__couple{font-family:var(--font-display);font-size:var(--t-xl);line-height:1.05}
.reportage__place{font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--ash);margin-top:.4rem}
.reportage__tag{font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--brass-ink);white-space:nowrap}
.section--dark .reportage__body{border-color:var(--line-light)}
.section--dark .reportage__place{color:var(--ash-light)}

/* ---------- Formules / pricing ---------- */
.formules{display:grid;gap:var(--s-5);grid-template-columns:1fr}
@media(min-width:900px){.formules{grid-template-columns:repeat(3,1fr)}}
.formule{border:1px solid var(--line-light);border-radius:var(--r);padding:clamp(1.6rem,3vw,2.4rem);display:flex;flex-direction:column;gap:var(--s-4);background:var(--ink-soft);transition:transform .5s var(--ease),border-color .5s}
.formule:hover{transform:translateY(-4px);border-color:var(--brass)}
.formule--feature{background:var(--ink-2);border-color:var(--brass)}
.formule__tag{font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--brass-bright)}
.formule__name{font-family:var(--font-display);font-size:var(--t-2xl);line-height:1}
.formule__cover{font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--ash-light)}
.formule__list{display:flex;flex-direction:column;gap:.7rem;font-size:.95rem;color:var(--paper)}
.formule__list li{display:flex;gap:.7em;align-items:flex-start;list-style:none}
.formule__list li::before{content:"";flex:none;width:6px;height:6px;margin-top:.55em;background:var(--brass);transform:rotate(45deg)}
.formule__foot{margin-top:auto;padding-top:var(--s-4);border-top:1px solid var(--line-light);font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--ash-light)}

.offer-row{display:grid;gap:var(--s-5);grid-template-columns:1fr;margin-top:var(--s-8)}
@media(min-width:760px){.offer-row{grid-template-columns:repeat(3,1fr)}}
.offer{border-top:2px solid var(--brass);padding-top:var(--s-4)}
.offer__price{font-family:var(--font-display);font-size:var(--t-xl)}
.offer__name{font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--ash);margin-bottom:.5rem}

/* ---------- FAQ ---------- */
.faq{max-width:54rem;margin-inline:auto}
.faq__item{border-bottom:1px solid var(--line)}
.faq__q{width:100%;text-align:left;background:none;border:0;cursor:pointer;display:flex;gap:1.2rem;align-items:flex-start;justify-content:space-between;padding:1.4rem 0;font-family:var(--font-display);font-size:var(--t-lg);line-height:1.25}
.faq__q .ico{flex:none;width:1.4rem;height:1.4rem;position:relative;margin-top:.25em}
.faq__q .ico::before,.faq__q .ico::after{content:"";position:absolute;background:var(--brass);transition:transform .4s var(--ease)}
.faq__q .ico::before{left:0;top:50%;width:100%;height:1.5px;transform:translateY(-50%)}
.faq__q .ico::after{top:0;left:50%;height:100%;width:1.5px;transform:translateX(-50%)}
.faq__q[aria-expanded="true"] .ico::after{transform:translateX(-50%) scaleY(0)}
.faq__a{overflow:hidden;height:0;transition:height .45s var(--ease)}
.faq__a-inner{padding:0 0 1.5rem;color:var(--ash);max-width:62ch}

/* ---------- Testimonials ---------- */
.quotes{display:grid;gap:var(--s-5);grid-template-columns:1fr}
@media(min-width:760px){.quotes{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1100px){.quotes{grid-template-columns:repeat(3,1fr)}}
.quote{border:1px solid var(--line);border-radius:var(--r);padding:clamp(1.4rem,2.5vw,2rem);display:flex;flex-direction:column;gap:var(--s-4);background:var(--paper)}
.quote__mark{font-family:var(--font-display);font-size:3rem;line-height:.6;color:var(--brass);height:1.2rem}
.quote__text{font-size:1rem;line-height:1.6}
.quote__by{margin-top:auto;font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--ash)}
.quote__stars{color:var(--brass-ink);letter-spacing:.2em;font-size:.85rem}
.section--dark .quote__stars,.section--dark .quote__mark{color:var(--brass-bright)}
.section--dark .quote{background:var(--ink-soft);border-color:var(--line-light)}

/* feature quote band */
.bigquote{max-width:46rem;margin-inline:auto;text-align:center}
.bigquote p{font-family:var(--font-display);font-size:var(--t-2xl);line-height:1.18;font-style:italic}
.bigquote cite{display:block;margin-top:var(--s-5);font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--brass-ink);font-style:normal}
.section--dark .bigquote cite{color:var(--brass-bright)}

/* ---------- Forms ---------- */
.form{display:grid;gap:var(--s-5)}
.field{display:flex;flex-direction:column;gap:.5rem}
.field label{font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--ash)}
.field .req{color:var(--brass)}
.input,.textarea,.select{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line);padding:.7rem 0;font-family:var(--font-body);font-size:1.05rem;transition:border-color .3s}
.input:focus,.textarea:focus,.select:focus{outline:none;border-color:var(--brass)}
.textarea{resize:vertical;min-height:7rem}
.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23B0894F' fill='none' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .2rem center}
.field--cols{display:grid;gap:var(--s-5)}
@media(min-width:620px){.row-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-5)}}
.field[data-error="true"] .input,.field[data-error="true"] .textarea,.field[data-error="true"] .select{border-color:#B4452F}
.field__err{font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.06em;color:#B4452F;display:none}
.field[data-error="true"] .field__err{display:block}
.form__status{font-family:var(--font-mono);font-size:var(--t-sm);letter-spacing:.06em}
.form__status[data-state="ok"]{color:var(--brass)}
.form__status[data-state="err"]{color:#B4452F}

/* contact aside */
.contact-grid{display:grid;gap:clamp(2.5rem,6vw,5rem)}
@media(min-width:920px){.contact-grid{grid-template-columns:1fr 1fr}}
.contact-list{display:flex;flex-direction:column;gap:var(--s-5);font-family:var(--font-mono);font-size:var(--t-sm);letter-spacing:.04em}
.contact-list dt{color:var(--brass-ink);text-transform:uppercase;font-size:var(--t-xs);letter-spacing:.16em;margin-bottom:.3rem}
.contact-list a:hover{color:var(--brass)}

/* ---------- Footer ---------- */
.site-footer{background:var(--ink);color:var(--ash-light)}
.site-footer .muted{color:var(--ash-light)}
.site-footer__top{display:grid;gap:var(--s-8);padding-block:var(--section);grid-template-columns:1fr}
@media(min-width:760px){.site-footer__top{grid-template-columns:1.4fr 1fr 1fr}}
.footer-brand .brand__name{color:var(--paper);font-size:2rem}
.footer-cols h2{font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--brass-bright);margin-bottom:var(--s-4);font-weight:400}
.footer-cols ul{display:flex;flex-direction:column;gap:.7rem;list-style:none;padding:0}
.footer-cols a:hover{color:var(--paper)}
.footer-social{display:flex;gap:var(--s-4);margin-top:var(--s-5);font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.12em;text-transform:uppercase}
.footer-social a:hover{color:var(--brass-bright)}
.site-footer__bottom{border-top:1px solid var(--line-light);padding-block:var(--s-5);display:flex;flex-wrap:wrap;gap:var(--s-4);justify-content:space-between;font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.08em;color:var(--ash-light)}
.site-footer__bottom a:hover{color:var(--paper)}

/* ---------- Page hero (interior) ---------- */
.page-hero{padding-top:clamp(8rem,16vh,11rem);padding-bottom:clamp(2.5rem,5vw,4rem);background:var(--ink);color:var(--paper);position:relative;overflow:hidden}
.page-hero--media{min-height:62svh;display:flex;align-items:flex-end}
.page-hero__bg{position:absolute;inset:0;z-index:0}
.page-hero__bg img{width:100%;height:100%;object-fit:cover;opacity:.5}
.page-hero--media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,17,14,.5),rgba(20,17,14,.2) 40%,rgba(20,17,14,.85))}
.page-hero__inner{position:relative;z-index:2;width:100%}
.page-hero h1{font-size:var(--t-3xl);margin-top:var(--s-4);max-width:18ch}
.breadcrumb{font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--ash-light);display:flex;gap:.6em;flex-wrap:wrap}
.breadcrumb a:hover{color:var(--brass-bright)}
.breadcrumb [aria-current]{color:var(--brass-bright)}

/* prose */
.prose{max-width:64ch}
.prose p+p{margin-top:var(--s-4)}
.prose h2{font-size:var(--t-xl);margin-top:var(--s-8);margin-bottom:var(--s-3)}
.prose h3{font-size:var(--t-lg);margin-top:var(--s-6);margin-bottom:var(--s-2)}
.prose strong{font-weight:700}

/* ---------- Lightbox ---------- */
.lightbox{position:fixed;inset:0;z-index:300;background:rgba(20,17,14,.96);display:flex;align-items:center;justify-content:center;padding:clamp(1rem,4vw,3rem);opacity:0;visibility:hidden;transition:opacity .35s}
.lightbox.is-open{opacity:1;visibility:visible}
.lightbox img{max-width:100%;max-height:86vh;width:auto;box-shadow:var(--shadow-print)}
.lightbox__close,.lightbox__nav{position:absolute;background:none;border:0;color:var(--paper);cursor:pointer;font-family:var(--font-mono);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;padding:1rem}
.lightbox__close{top:1rem;right:1rem}
.lightbox__nav{top:50%;transform:translateY(-50%);font-size:2rem;opacity:.7;transition:opacity .3s}
.lightbox__nav:hover{opacity:1;color:var(--brass-bright)}
.lightbox__prev{left:.5rem}.lightbox__next{right:.5rem}
.lightbox__count{position:absolute;bottom:1.5rem;left:50%;transform:translateX(-50%);font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.16em;color:var(--ash-light)}

/* ---------- Cookie banner ---------- */
.cookie{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:250;max-width:34rem;background:var(--ink);color:var(--paper);border:1px solid var(--brass);border-radius:var(--r);padding:1.3rem 1.5rem;box-shadow:var(--shadow-print);transform:translateY(150%);transition:transform .6s var(--ease)}
.cookie.is-visible{transform:none}
.cookie p{font-size:.9rem;color:var(--ash-light);margin-bottom:1rem}
.cookie__actions{display:flex;gap:.8rem;flex-wrap:wrap}

/* ---------- Reveal animation ---------- */
[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}
[data-reveal].is-in{opacity:1;transform:none}
[data-reveal][data-delay="1"]{transition-delay:.08s}
[data-reveal][data-delay="2"]{transition-delay:.16s}
[data-reveal][data-delay="3"]{transition-delay:.24s}
@media (prefers-reduced-motion:reduce){
  [data-reveal]{opacity:1!important;transform:none!important;transition:none}
  .hero__slide{transition:opacity .6s}
}

/* ---------- Utilities ---------- */
.flow>*+*{margin-top:var(--s-5)}
.mt-6{margin-top:var(--s-6)}.mt-8{margin-top:var(--s-8)}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.text-brass{color:var(--brass)}
.maxw-prose{max-width:62ch}
.two-col-text{column-gap:var(--s-8)}
@media(min-width:760px){.two-col-text{columns:2}}
