/* ==========================================================================
   ADEBAYO AKINDELE — design system
   Fraunces (display) / IBM Plex Sans (body) / IBM Plex Sans Condensed (nav)
   / IBM Plex Mono (metadata)
   ========================================================================== */

:root{
  --black:#15130f;
  --ivory:#f2ede2;
  --graphite:#221f1a;
  --graphite-2:#3a352c;
  --stone:#c9c0ac;
  --stone-dim:#948c78;
  --bronze:#b97b42;
  --bronze-bright:#d18f4f;
  --burgundy:#4c1522;

  --serif:'Fraunces', Georgia, serif;
  --sans:'IBM Plex Sans', -apple-system, sans-serif;
  --nav-font:'IBM Plex Sans Condensed', sans-serif;
  --mono:'IBM Plex Mono', monospace;

  --max:1400px;
  --gutter:clamp(20px,4vw,64px);
  --section-pad:clamp(64px,10vw,148px);
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
}

body{
  margin:0;
  background:var(--ivory);
  color:var(--black);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img,svg{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
button{font-family:inherit; cursor:pointer; background:none; border:none; color:inherit;}
ul{margin:0; padding:0; list-style:none;}
h1,h2,h3,h4,p{margin:0;}
input,textarea,select{font-family:inherit; font-size:inherit;}
::selection{background:var(--bronze); color:var(--black);}
:focus-visible{outline:2px solid var(--bronze); outline-offset:3px;}

.wrap{max-width:var(--max); margin:0 auto; padding-left:var(--gutter); padding-right:var(--gutter);}
.section{padding-top:var(--section-pad); padding-bottom:var(--section-pad);}
.section.tight{padding-top:clamp(40px,6vw,80px); padding-bottom:clamp(40px,6vw,80px);}
.dark{background:var(--black); color:var(--ivory);}
.burgundy{background:var(--burgundy); color:var(--ivory);}
.graphite{background:var(--graphite); color:var(--ivory);}

/* ---------- type ---------- */
.display{font-family:var(--serif); font-optical-sizing:auto; font-weight:480; letter-spacing:-0.01em; line-height:0.98; text-transform:uppercase;}
.display-xl{font-size:clamp(48px,9vw,140px);}
.display-l{font-size:clamp(38px,6.4vw,92px);}
.display-m{font-size:clamp(30px,4.2vw,58px);}
.display-s{font-size:clamp(24px,3vw,36px); text-transform:none; letter-spacing:0;}

.lede{font-size:clamp(18px,2vw,22px); line-height:1.6; color:var(--graphite-2); max-width:640px;}
.dark .lede,.burgundy .lede,.graphite .lede{color:var(--stone);}

.eyebrow{font-family:var(--nav-font); text-transform:uppercase; letter-spacing:.14em; font-size:12px; color:var(--bronze); display:inline-flex; align-items:center; gap:10px;}
.eyebrow::before{content:""; width:22px; height:1px; background:var(--bronze);}

.meta{font-family:var(--mono); font-size:12px; letter-spacing:.03em; color:var(--stone-dim);}
.dark .meta,.burgundy .meta,.graphite .meta{color:var(--stone);}

.italic-serif{font-family:var(--serif); font-style:italic; font-weight:400;}

.section-head{display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; margin-bottom:clamp(28px,5vw,56px);}

/* ---------- buttons / links ---------- */
.btn{display:inline-flex; align-items:center; gap:10px; font-family:var(--nav-font); font-size:13px; letter-spacing:.08em; text-transform:uppercase; padding:15px 28px; border:1px solid currentColor; transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);}
.btn-primary{background:var(--bronze); color:var(--black); border-color:var(--bronze);}
.btn-primary:hover{background:transparent; color:var(--bronze);}
.dark .btn-primary:hover,.burgundy .btn-primary:hover,.graphite .btn-primary:hover{color:var(--bronze-bright);}
.btn-ghost{color:var(--black);}
.btn-ghost:hover{background:var(--black); color:var(--ivory);}
.btn-ghost-light{color:var(--ivory);}
.btn-ghost-light:hover{background:var(--ivory); color:var(--black);}
.btn-block{width:100%; justify-content:center;}
.btn-row{display:flex; gap:16px; flex-wrap:wrap;}
.link-arrow{display:inline-flex; align-items:center; gap:10px; font-family:var(--nav-font); font-size:13px; letter-spacing:.08em; text-transform:uppercase; padding-bottom:3px; border-bottom:1px solid currentColor;}
.link-arrow svg{width:14px; height:10px;}
.link-arrow:hover{color:var(--bronze);}

/* ---------- page transition overlay ---------- */
.page-transition{position:fixed; inset:0; background:var(--black); z-index:400; display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .38s var(--ease);}
.page-transition.active{opacity:1; pointer-events:all;}
.page-transition span{font-family:var(--serif); text-transform:uppercase; letter-spacing:.06em; font-size:clamp(20px,3vw,32px); color:var(--ivory);}

/* ---------- progress (scroll read) ---------- */
#progress{position:fixed; top:0; left:0; height:2px; background:var(--bronze); z-index:200; width:0%;}

/* ---------- header ---------- */
.site-header{position:fixed; top:0; left:0; right:0; z-index:100; padding:26px 0; display:flex; align-items:center; justify-content:space-between; transition:background .35s var(--ease), padding .35s var(--ease); }
.site-header .wrap{width:100%; display:flex; align-items:center; justify-content:space-between;}
.site-header.on-dark{color:var(--ivory);}
.site-header.scrolled{background:rgba(21,19,15,.92); backdrop-filter:blur(10px); padding:14px 0; border-bottom:1px solid rgba(242,237,226,.12);}
.wordmark{font-family:var(--serif); font-size:18px; letter-spacing:.02em; text-transform:uppercase;}
.wordmark span{color:var(--bronze); font-style:italic; text-transform:none;}
.main-nav{display:flex; align-items:center; gap:34px;}
.main-nav ul{display:flex; gap:26px;}
.main-nav a{font-family:var(--nav-font); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--stone); position:relative; padding-bottom:4px;}
.main-nav a::after{content:''; position:absolute; left:0; bottom:0; height:1px; width:0; background:var(--bronze); transition:width .25s var(--ease);}
.main-nav a:hover,.main-nav a.active{color:var(--ivory);}
.main-nav a.active::after{width:100%;}
.nav-right{display:flex; align-items:center; gap:20px;}
.availability{font-family:var(--mono); font-size:11px; letter-spacing:.05em; color:var(--stone); display:inline-flex; align-items:center; gap:8px;}
.availability .dot{width:6px; height:6px; border-radius:50%; background:var(--bronze); display:inline-block;}
.icon-btn{width:36px; height:36px; display:inline-flex; align-items:center; justify-content:center; color:var(--stone);}
.icon-btn:hover{color:var(--ivory);}
.icon-btn svg{width:18px; height:18px;}
.menu-btn{display:none; flex-direction:column; gap:5px; width:26px;}
.menu-btn span{height:1px; background:var(--ivory); display:block;}
@media (max-width:960px){
  .main-nav{display:none;}
  .menu-btn{display:flex;}
}

.mobile-menu{position:fixed; inset:0; background:var(--black); color:var(--ivory); z-index:300; display:flex; flex-direction:column; padding:7vw 8vw; transform:translateY(-100%); transition:transform .45s var(--ease);}
.mobile-menu.open{transform:translateY(0);}
.mobile-menu-top{display:flex; justify-content:space-between; align-items:center;}
.mobile-menu-items{display:flex; flex-direction:column; margin-top:8vw; gap:4px;}
.mobile-menu-items a{font-family:var(--serif); font-size:clamp(28px,7vw,40px); text-transform:uppercase; padding:8px 0; border-bottom:1px solid rgba(242,237,226,.1);}
.mobile-menu-bottom{margin-top:auto; display:flex; flex-direction:column; gap:16px;}
.mobile-social{display:flex; gap:18px; font-family:var(--nav-font); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--stone);}

/* ---------- hero ---------- */
.hero{position:relative; min-height:100svh; display:flex; flex-direction:column; justify-content:flex-end; padding-bottom:clamp(50px,8vw,96px); padding-top:160px; color:var(--ivory); overflow:hidden;}
.hero-media{position:absolute; inset:0; z-index:-1;}
.hero-content{position:relative;}
.hero-eyebrow{font-family:var(--nav-font); font-size:13px; letter-spacing:.14em; text-transform:uppercase; color:var(--bronze-bright);}
.hero h1{font-family:var(--serif); font-weight:480; text-transform:uppercase; letter-spacing:-.01em; font-size:clamp(3.2rem,10vw,7.5rem); line-height:.92; margin-top:14px;}
.hero-cta-row{display:flex; gap:16px; flex-wrap:wrap; margin-top:34px;}
.scroll-cue{position:absolute; left:var(--gutter); bottom:24px; font-family:var(--mono); font-size:11px; letter-spacing:.1em; color:var(--stone);}

/* ---------- abstract editorial art (svg, no photography) ---------- */
.art{position:relative; aspect-ratio:4/5; overflow:hidden; background:var(--graphite); border:1px solid rgba(242,237,226,.12);}
.art.wide{aspect-ratio:16/10;}
.art.short{aspect-ratio:16/7;}
.art svg{width:100%; height:100%;}
.art .cap{position:absolute; left:16px; bottom:14px; font-family:var(--mono); font-size:11px; letter-spacing:.05em; color:var(--stone); text-transform:uppercase;}
.art .play{position:absolute; inset:0; display:flex; align-items:center; justify-content:center;}
.art .play .ring{width:64px; height:64px; border-radius:50%; border:1px solid var(--bronze-bright); display:flex; align-items:center; justify-content:center; transition:transform .3s var(--ease);}
.art:hover .play .ring{transform:scale(1.08);}
.art .play .ring svg{width:16px; height:16px; margin-left:3px;}

/* ---------- two-col / grids ---------- */
.two-col{display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,6vw,80px); align-items:center;}
@media (max-width:860px){.two-col{grid-template-columns:1fr;}}
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,3vw,32px);}
.grid-2{display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(20px,3vw,32px);}
@media (max-width:860px){.grid-3,.grid-2{grid-template-columns:1fr;}}

/* ---------- card ---------- */
.card{border:1px solid rgba(21,19,15,.12); padding:28px; display:flex; flex-direction:column; gap:14px; height:100%;}
.dark .card,.graphite .card{border-color:rgba(242,237,226,.14);}
.card h3{font-family:var(--serif); font-size:22px; line-height:1.15;}
.card p{color:var(--graphite-2); font-size:15px;}
.dark .card p,.graphite .card p{color:var(--stone);}
.card .link-arrow{margin-top:auto;}

/* ---------- book device ---------- */
.book-stage{perspective:1400px; display:flex; align-items:center; justify-content:center;}
.book3d{width:min(280px,60vw); aspect-ratio:2/3; position:relative; transform:rotateY(-18deg) rotateX(3deg); transform-style:preserve-3d; transition:transform .5s var(--ease);}
.book-stage:hover .book3d{transform:rotateY(-8deg) rotateX(1deg);}
.book-cover{position:absolute; inset:0; background:linear-gradient(155deg,#0f0d0a,var(--burgundy) 78%); border:1px solid rgba(217,143,79,.35); display:flex; flex-direction:column; justify-content:space-between; padding:9% 10%; box-shadow:30px 40px 70px rgba(0,0,0,.55);}
.book-cover .mark{width:34px; height:34px; border:1px solid var(--bronze-bright); border-radius:50%; position:relative;}
.book-cover .mark::after{content:''; position:absolute; inset:9px; border:1px solid var(--bronze-bright); transform:rotate(45deg);}
.book-cover h3{font-family:var(--serif); font-size:clamp(1.1rem,3vw,1.5rem); text-transform:uppercase; letter-spacing:.01em; color:var(--ivory);}
.book-cover .sub{font-size:.68rem; letter-spacing:.06em; color:var(--bronze-bright); margin-top:10px; font-style:italic; font-family:var(--serif);}
.book-cover .auth{font-family:var(--nav-font); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--stone);}
.book-spine{position:absolute; left:-14px; top:2%; bottom:2%; width:14px; background:linear-gradient(90deg,#080705,var(--burgundy)); transform:rotateY(90deg) translateZ(7px); transform-origin:right;}

/* ---------- quote ---------- */
.quote-block blockquote{font-family:var(--serif); font-style:italic; font-size:clamp(1.5rem,3.4vw,2.5rem); line-height:1.3;}
.quote-attr{margin-top:18px; font-family:var(--nav-font); font-size:13px; letter-spacing:.05em; text-transform:uppercase; color:var(--stone-dim);}

/* ---------- reveal (single deliberate scroll motion) ---------- */
.reveal{opacity:0; transform:translateY(22px); transition:opacity .8s var(--ease), transform .8s var(--ease);}
.reveal.in{opacity:1; transform:translateY(0);}

/* ---------- excerpt reader ---------- */
.excerpt-nav{display:flex; align-items:center; gap:16px; margin-bottom:26px;}
.excerpt-count{font-family:var(--mono); font-size:13px; color:var(--bronze-bright);}
.excerpt-track{position:relative; height:1px; background:rgba(242,237,226,.16); flex:1;}
.excerpt-fill{position:absolute; left:0; top:-1px; height:3px; background:var(--bronze); transition:width .4s var(--ease);}
.excerpt-panels{position:relative; min-height:200px;}
.excerpt-panel{display:none; font-family:var(--serif); font-size:clamp(1.05rem,2vw,1.35rem); line-height:1.7; color:var(--stone);}
.excerpt-panel.active{display:block;}
.excerpt-btns{display:flex; gap:10px; margin-top:24px;}
.excerpt-btns button{border:1px solid rgba(242,237,226,.2); padding:10px 16px; font-family:var(--nav-font); font-size:12px; letter-spacing:.08em; text-transform:uppercase;}
.excerpt-btns button:hover{border-color:var(--bronze); color:var(--bronze-bright);}

/* ---------- timeline ---------- */
.timeline-scroll{display:flex; overflow-x:auto; padding-bottom:20px;}
.tl-item{flex:0 0 220px; padding:26px 26px 0 0; border-left:1px solid rgba(21,19,15,.14); position:relative;}
.dark .tl-item,.graphite .tl-item{border-left-color:rgba(242,237,226,.16);}
.tl-item::before{content:''; position:absolute; left:-4px; top:26px; width:7px; height:7px; border-radius:50%; background:var(--bronze);}
.tl-year{font-family:var(--mono); font-size:1.4rem; color:var(--bronze);}
.tl-text{margin-top:10px; font-size:.92rem; color:var(--graphite-2);}
.dark .tl-text,.graphite .tl-text{color:var(--stone);}

/* ---------- reviews ---------- */
.review-list{display:flex; flex-direction:column;}
.review{padding:34px 0; border-top:1px solid rgba(21,19,15,.12); display:grid; grid-template-columns:220px 1fr; gap:30px;}
.dark .review,.graphite .review,.burgundy .review{border-top-color:rgba(242,237,226,.14);}
.review:last-child{border-bottom:1px solid rgba(21,19,15,.12);}
.dark .review:last-child,.graphite .review:last-child,.burgundy .review:last-child{border-bottom-color:rgba(242,237,226,.14);}
@media (max-width:700px){.review{grid-template-columns:1fr; gap:10px;}}
.review-who .name{font-family:var(--serif); font-size:1.1rem;}
.review-who .title{font-family:var(--nav-font); font-size:12px; letter-spacing:.04em; color:var(--stone-dim); margin-top:6px;}
.review blockquote{font-family:var(--serif); font-style:italic; font-size:1.2rem; line-height:1.5;}

/* ---------- topic list rows ---------- */
.topic-list{border-top:1px solid rgba(21,19,15,.12);}
.dark .topic-list,.graphite .topic-list,.burgundy .topic-list{border-top-color:rgba(242,237,226,.14);}
.topic-row{display:grid; grid-template-columns:60px 1fr; gap:22px; padding:26px 0; border-bottom:1px solid rgba(21,19,15,.12); align-items:baseline;}
.dark .topic-row,.graphite .topic-row,.burgundy .topic-row{border-bottom-color:rgba(242,237,226,.14);}
.topic-row .n{font-family:var(--mono); color:var(--bronze); font-size:1rem;}
.topic-row h4{font-family:var(--serif); font-size:1.3rem; text-transform:uppercase; letter-spacing:.01em;}
.topic-row p{color:var(--graphite-2); margin-top:6px; max-width:56ch; font-size:15px;}
.dark .topic-row p,.graphite .topic-row p,.burgundy .topic-row p{color:var(--stone);}

/* ---------- content list rows (articles / appearances / watch) ---------- */
.content-row{display:grid; grid-template-columns:140px 1fr auto; gap:24px; padding:26px 0; border-bottom:1px solid rgba(21,19,15,.12); align-items:baseline; cursor:pointer;}
.dark .content-row,.graphite .content-row,.burgundy .content-row{border-bottom-color:rgba(242,237,226,.14);}
.content-row:hover h4{color:var(--bronze);}
.content-row .date{font-family:var(--mono); font-size:12px; color:var(--stone-dim);}
.content-row h4{font-family:var(--serif); font-weight:500; font-size:1.25rem; transition:color .2s var(--ease);}
@media (max-width:700px){.content-row{grid-template-columns:1fr; gap:6px;} .content-row .go{display:none;}}
.filter-pills{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:28px;}
.filter-pills button{border:1px solid rgba(21,19,15,.16); padding:8px 14px; font-family:var(--nav-font); font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--graphite-2);}
.dark .filter-pills button,.graphite .filter-pills button{border-color:rgba(242,237,226,.2); color:var(--stone);}
.filter-pills button.active,.filter-pills button:hover{border-color:var(--bronze); color:var(--bronze);}

/* ---------- article detail ---------- */
.article-body p{margin-bottom:1.3em; max-width:65ch; color:var(--graphite-2); font-size:1.05rem;}
.article-body .pull{font-family:var(--serif); font-style:italic; font-size:1.6rem; color:var(--black); border-left:2px solid var(--bronze); padding-left:22px; margin:2em 0; max-width:52ch;}

/* ---------- form ---------- */
.field{margin-bottom:20px;}
.field label{display:block; font-family:var(--nav-font); font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--stone-dim); margin-bottom:8px;}
.field input,.field select,.field textarea{width:100%; background:transparent; border:none; border-bottom:1px solid rgba(21,19,15,.2); color:inherit; padding:11px 2px; font-family:var(--sans); font-size:1rem;}
.dark .field input,.dark .field select,.dark .field textarea,.graphite .field input,.graphite .field select,.graphite .field textarea{border-bottom-color:rgba(242,237,226,.2);}
.field input:focus,.field select:focus,.field textarea:focus{border-bottom-color:var(--bronze);}
.field.invalid input,.field.invalid textarea,.field.invalid select{border-bottom-color:#a4432b;}
.field-grid{display:grid; grid-template-columns:1fr 1fr; gap:0 24px;}
@media (max-width:700px){.field-grid{grid-template-columns:1fr;}}
.form-note{margin-top:16px; font-family:var(--nav-font); font-size:13px; letter-spacing:.02em; color:var(--bronze); min-height:1.2em;}

/* ---------- select cards (booking) ---------- */
.select-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:14px;}
.select-card{border:1px solid rgba(21,19,15,.16); padding:18px; cursor:pointer; transition:border-color .2s var(--ease), background .2s var(--ease);}
.select-card h5{font-family:var(--serif); font-size:1.05rem;}
.select-card p{font-size:13px; color:var(--stone-dim); margin-top:6px;}
.select-card.selected{border-color:var(--bronze); background:rgba(185,123,66,.08);}

/* ---------- booking wizard ---------- */
.booking-steps-label{display:flex; justify-content:space-between; font-family:var(--nav-font); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--stone-dim); margin-bottom:14px;}
.booking-steps-label span.on{color:var(--bronze);}
.booking-progress{display:flex; gap:6px; margin-bottom:48px;}
.booking-progress .seg{height:2px; flex:1; background:rgba(21,19,15,.14);}
.dark .booking-progress .seg,.graphite .booking-progress .seg{background:rgba(242,237,226,.16);}
.booking-progress .seg.done,.booking-progress .seg.active{background:var(--bronze);}
.booking-step{display:none;}
.booking-step.active{display:block;}
.booking-step h2{margin-bottom:8px;}
.summary-list{border-top:1px solid rgba(21,19,15,.14); margin-top:14px;}
.summary-row{display:flex; justify-content:space-between; gap:20px; padding:14px 0; border-bottom:1px solid rgba(21,19,15,.14);}
.summary-row .k{font-family:var(--nav-font); font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--stone-dim);}
.summary-row .v{font-family:var(--serif); font-size:1rem; text-align:right;}

/* ---------- confirmation ---------- */
.confirm-icon{width:56px; height:56px; border-radius:50%; border:1px solid var(--bronze); display:flex; align-items:center; justify-content:center; margin-bottom:24px;}
.confirm-icon svg{width:22px; height:22px;}

/* ---------- countdown ---------- */
.countdown{display:flex; gap:clamp(20px,4vw,40px); flex-wrap:wrap;}
.cd-unit{text-align:center;}
.cd-num{font-family:var(--serif); font-size:clamp(2.2rem,6vw,4rem); color:var(--ivory);}
.cd-label{font-family:var(--nav-font); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--stone); margin-top:6px;}

/* ---------- guestbook ---------- */
.guest-list{max-height:340px; overflow-y:auto; border-top:1px solid rgba(242,237,226,.16);}
.guest-entry{padding:16px 0; border-bottom:1px solid rgba(242,237,226,.16); font-family:var(--serif); font-style:italic; font-size:1.05rem;}
.guest-entry span{display:block; font-family:var(--mono); font-style:normal; font-size:11px; color:var(--stone); margin-top:6px; text-transform:uppercase; letter-spacing:.04em;}

/* ---------- modal ---------- */
.modal-veil{position:fixed; inset:0; background:rgba(10,9,7,.72); z-index:250; display:none; align-items:center; justify-content:center; padding:24px;}
.modal-veil.open{display:flex;}
.modal-box{background:var(--ivory); color:var(--black); max-width:520px; width:100%; padding:clamp(24px,6vw,44px); position:relative; max-height:85vh; overflow-y:auto;}
.modal-box .close-x{position:absolute; top:18px; right:18px; font-size:1.3rem;}

/* ---------- search overlay ---------- */
.search-overlay{position:fixed; inset:0; background:rgba(21,19,15,.97); z-index:350; display:none; flex-direction:column; padding:clamp(24px,6vw,64px);}
.search-overlay.open{display:flex;}
.search-overlay-top{display:flex; align-items:center; gap:20px;}
.search-input{flex:1; background:none; border:none; border-bottom:1px solid rgba(242,237,226,.2); color:var(--ivory); font-family:var(--serif); font-size:clamp(24px,4vw,42px); padding:10px 0;}
.search-input:focus{outline:none; border-bottom-color:var(--bronze);}
.search-results{margin-top:40px; overflow-y:auto;}
.search-result{padding:18px 0; border-bottom:1px solid rgba(242,237,226,.1); cursor:pointer;}
.search-result:hover h4{color:var(--bronze-bright);}
.search-result h4{font-family:var(--serif); font-size:1.2rem; color:var(--ivory);}
.search-result p{font-family:var(--nav-font); font-size:12px; letter-spacing:.03em; color:var(--stone-dim); margin-top:6px; text-transform:uppercase;}

/* ---------- footer ---------- */
.site-footer{background:var(--black); color:var(--ivory); padding:clamp(70px,10vw,120px) 0 40px;}
.footer-statement{font-family:var(--serif); font-size:clamp(2.2rem,6vw,4.5rem); text-transform:uppercase;}
.footer-grid{display:flex; justify-content:space-between; margin-top:60px; flex-wrap:wrap; gap:40px;}
.footer-links a{display:block; font-family:var(--nav-font); font-size:13px; letter-spacing:.03em; color:var(--stone); margin-bottom:12px;}
.footer-links a:hover{color:var(--bronze);}
.footer-news{max-width:340px;}
.footer-news form{display:flex; border-bottom:1px solid rgba(242,237,226,.16); margin-top:16px;}
.footer-news input{flex:1; background:none; border:none; color:inherit; padding:10px 0; font-family:var(--sans);}
.footer-news button{font-family:var(--nav-font); font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--bronze);}
.footer-bottom{margin-top:60px; display:flex; justify-content:space-between; font-family:var(--mono); font-size:12px; color:var(--stone-dim); flex-wrap:wrap; gap:10px;}

/* ---------- misc utility ---------- */
.mt-lg{margin-top:clamp(30px,6vw,70px);}
.mt-md{margin-top:32px;}
.mt-sm{margin-top:14px;}
.center{text-align:center;}
.small-cap{font-family:var(--nav-font); font-size:13px; letter-spacing:.02em; color:var(--stone-dim);}
.badge{display:inline-block; font-family:var(--mono); font-size:11px; letter-spacing:.05em; text-transform:uppercase; color:var(--bronze); border:1px solid var(--bronze); padding:5px 10px;}

/* ---------- 404 ---------- */
.error-page{min-height:70vh; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding-top:120px;}
