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

:root{
  --black:#0c0b09;
  --ivory:#f2ece1;
  --graphite:#26231f;
  --graphite-2:#3a352e;
  --stone:#c7bda9;
  --stone-dim:#8a8171;
  --orange:#c8551f;
  --orange-bright:#e2681f;
  --burgundy:#4a1522;

  --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{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
button{font-family:inherit; cursor:pointer;}
ul{margin:0; padding:0; list-style:none;}
h1,h2,h3,h4,p{margin:0;}
input,textarea,select{font-family:inherit; font-size:inherit;}

.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);}
.dark{background:var(--black); color:var(--ivory);}
.burgundy{background:var(--burgundy); 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{color:var(--stone);}

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

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

.rule{height:1px; background:var(--graphite); opacity:.15; border:0; margin:0;}
.dark .rule{background:var(--stone); opacity:.25;}

/* ---------- links / buttons ---------- */
.link-arrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--nav-font); text-transform:uppercase; letter-spacing:.08em; font-size:13px;
  border-bottom:1px solid transparent; padding-bottom:3px;
  transition:border-color .25s var(--ease), gap .25s var(--ease);
}
.link-arrow:hover{border-color:currentColor; gap:12px;}
.link-arrow svg{width:14px; height:10px; flex:none;}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--nav-font); text-transform:uppercase; letter-spacing:.09em; font-size:13px;
  padding:17px 30px; border:1px solid currentColor; background:transparent; color:inherit;
  transition:background .3s var(--ease), color .3s var(--ease), transform .3s var(--ease);
  white-space:nowrap;
}
.btn-primary{background:var(--orange); border-color:var(--orange); color:var(--ivory);}
.btn-primary:hover{background:var(--orange-bright); transform:translateY(-2px);}
.btn-ghost-light{color:var(--ivory); border-color:rgba(242,236,225,.4);}
.btn-ghost-light:hover{border-color:var(--ivory); transform:translateY(-2px);}
.btn-ghost-dark{color:var(--black); border-color:rgba(12,11,9,.35);}
.btn-ghost-dark:hover{border-color:var(--black); transform:translateY(-2px);}
.btn-block{width:100%;}

/* ==========================================================================
   HEADER / NAV
   ========================================================================== */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:500;
  display:flex; align-items:center; justify-content:space-between;
  padding:26px var(--gutter);
  transition:padding .35s var(--ease), background .35s var(--ease), backdrop-filter .35s var(--ease);
}
.site-header.on-dark{color:var(--ivory);}
.site-header.on-light{color:var(--black);}
.site-header.scrolled{
  padding:14px var(--gutter);
  background:rgba(12,11,9,.82);
  backdrop-filter:blur(10px);
  color:var(--ivory);
}
.wordmark{font-family:var(--serif); font-weight:500; font-size:19px; letter-spacing:.01em; text-transform:uppercase;}
.wordmark span{color:var(--orange);}

.main-nav{display:flex; align-items:center; gap:34px;}
.main-nav ul{display:flex; gap:28px;}
.main-nav a{
  font-family:var(--nav-font); text-transform:uppercase; letter-spacing:.09em; font-size:13px;
  position:relative; padding-bottom:4px;
}
.main-nav a::after{
  content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--orange);
  transition:width .25s var(--ease);
}
.main-nav a:hover::after, .main-nav a.active::after{width:100%;}
.nav-right{display:flex; align-items:center; gap:22px;}
.availability{
  font-family:var(--mono); font-size:11px; letter-spacing:.03em; text-transform:uppercase;
  display:flex; align-items:center; gap:8px; opacity:.85;
}
.availability .dot{width:6px; height:6px; border-radius:50%; background:var(--orange); flex:none;}
.icon-btn{background:none; border:0; color:inherit; padding:4px;}
.icon-btn svg{width:19px; height:19px;}
.menu-btn{display:none; background:none; border:0; color:inherit; flex-direction:column; gap:5px; padding:4px;}
.menu-btn span{width:24px; height:1px; background:currentColor;}

@media (max-width:980px){
  .main-nav ul, .availability{display:none;}
  .menu-btn{display:flex;}
  .nav-right .icon-btn{display:none;}
  .wordmark{font-size:15px; white-space:nowrap;}
  .site-header{padding:20px var(--gutter);}
  .nav-right{gap:14px;}
  .btn.btn-primary{padding:13px 18px; font-size:12px;}
}

/* full-screen mobile menu */
.mobile-menu{
  position:fixed; inset:0; z-index:900; background:var(--black); color:var(--ivory);
  display:flex; flex-direction:column; justify-content:space-between;
  padding:26px var(--gutter) 44px;
  transform:translateY(-100%); transition:transform .5s var(--ease);
  overflow-y:auto;
}
.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; gap:6px; margin-top:14vh;}
.mobile-menu-items a{
  font-family:var(--serif); text-transform:uppercase; font-size:clamp(32px,10vw,52px); line-height:1.16;
}
.mobile-menu-bottom{display:flex; flex-direction:column; gap:20px;}
.mobile-social{display:flex; gap:18px; font-family:var(--nav-font); text-transform:uppercase; font-size:12px; letter-spacing:.08em; color:var(--stone);}

/* ==========================================================================
   PAGE TRANSITION OVERLAY (signature)
   ========================================================================== */
.page-transition{
  position:fixed; inset:0; z-index:2000; background:var(--black);
  display:flex; align-items:center; justify-content:center;
  transform:translateY(100%); pointer-events:none;
}
.page-transition.active{transform:translateY(0); transition:transform .5s var(--ease); pointer-events:all;}
.page-transition.leave{transform:translateY(-100%); transition:transform .5s var(--ease);}
.page-transition span{
  font-family:var(--serif); text-transform:uppercase; color:var(--ivory); font-size:15px; letter-spacing:.2em;
  opacity:0;
}
.page-transition.active span{opacity:1; transition:opacity .3s ease .15s;}

/* ==========================================================================
   HERO
   ========================================================================== */
.hero{
  position:relative; min-height:100vh; display:flex; flex-direction:column; justify-content:flex-end;
  color:var(--ivory); overflow:hidden;
}
.hero-media{position:absolute; inset:0; z-index:0;}
.hero-media img{width:100%; height:100%; object-fit:cover; position:absolute; inset:0;}
.hero-media .img-b{opacity:0;}
.hero-media::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(12,11,9,.25) 0%, rgba(12,11,9,.15) 40%, rgba(12,11,9,.88) 100%);
}
.hero-content{position:relative; z-index:2; padding:0 var(--gutter) 72px;}
.hero-eyebrow{color:var(--stone); font-family:var(--mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; margin-bottom:18px; display:block;}
.hero h1{font-family:var(--serif); text-transform:uppercase; font-size:clamp(52px,11vw,168px); line-height:.94; letter-spacing:-.01em;}
.hero-cta-row{display:flex; flex-wrap:wrap; gap:16px; margin-top:38px;}
.scroll-cue{
  position:absolute; bottom:28px; left:var(--gutter); z-index:2; color:var(--stone);
  font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:.12em;
  display:flex; align-items:center; gap:10px;
}
.scroll-cue::after{content:""; width:1px; height:38px; background:linear-gradient(var(--orange), transparent); animation:scrollcue 2s infinite;}
@keyframes scrollcue{0%{opacity:0; transform:scaleY(.3);}50%{opacity:1;}100%{opacity:0; transform:scaleY(1);}}

/* generic page hero (inner pages) */
.page-hero{
  min-height:78vh; display:flex; align-items:flex-end; position:relative; color:var(--ivory); background:var(--black);
}
.page-hero .hero-content{padding-bottom:64px;}
.page-hero h1{font-family:var(--serif); text-transform:uppercase; font-size:clamp(42px,8vw,108px); line-height:.98;}
.page-hero.has-image .hero-media img{opacity:.62; object-position:center 15%;}

/* ==========================================================================
   GRIDS / CARDS
   ========================================================================== */
.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:var(--gutter);}
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gutter);}
.grid-4{display:grid; grid-template-columns:repeat(4,1fr); gap:28px;}
@media (max-width:980px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr;}}

.section-head{display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:56px;}
@media (max-width:700px){.section-head{flex-direction:column; align-items:flex-start; gap:20px;}}

/* editorial card: image + number/eyebrow + title + rule, no boxes/shadows */
.ed-card{display:block;}
.ed-card .frame{position:relative; overflow:hidden; aspect-ratio:4/5; margin-bottom:20px; background:var(--graphite);}
.ed-card.wide .frame{aspect-ratio:16/10;}
.ed-card .frame img{width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease);}
.ed-card:hover .frame img{transform:scale(1.05);}
.ed-card .frame .num{
  position:absolute; top:16px; left:16px; font-family:var(--mono); font-size:12px; color:var(--ivory);
  background:rgba(12,11,9,.55); padding:4px 9px;
}
.ed-card .cat{display:block; margin-bottom:10px;}
.ed-card h3{font-family:var(--serif); font-size:clamp(20px,2.4vw,27px); line-height:1.14; text-transform:uppercase; margin-bottom:10px;}
.ed-card p{color:var(--graphite-2); font-size:14.5px; margin-bottom:14px;}
.ed-card .row-meta{display:flex; justify-content:space-between; align-items:center; padding-top:14px; border-top:1px solid rgba(38,35,31,.15);}

.topic-card{
  position:relative; display:grid; grid-template-columns:1fr 1.2fr; gap:36px; align-items:center;
  padding:44px 0; border-top:1px solid rgba(242,236,225,.18);
}
.topic-card:last-child{border-bottom:1px solid rgba(242,236,225,.18);}
.topic-card .num{font-family:var(--mono); font-size:13px; color:var(--orange);}
.topic-card h3{font-family:var(--serif); text-transform:uppercase; font-size:clamp(30px,4.2vw,58px); line-height:1; margin:14px 0 16px;}
.topic-card .frame{aspect-ratio:5/4; overflow:hidden;}
.topic-card .frame img{width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease);}
.topic-card:hover .frame img{transform:scale(1.04);}
@media (max-width:820px){.topic-card{grid-template-columns:1fr;}}

/* stats */
.stats-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:40px;}
.stat .num{font-family:var(--serif); font-size:clamp(46px,7vw,96px); line-height:1; color:var(--orange);}
.stat .label{margin-top:10px; font-family:var(--nav-font); text-transform:uppercase; letter-spacing:.05em; font-size:13px; color:var(--stone);}
@media (max-width:820px){.stats-grid{grid-template-columns:1fr 1fr; row-gap:44px;}}

/* horizontal scroller (appearances strip) */
.hscroll{display:flex; gap:24px; overflow-x:auto; padding-bottom:14px; scrollbar-width:none;}
.hscroll::-webkit-scrollbar{display:none;}
.hscroll .ap-card{flex:0 0 320px;}

/* testimonial */
.testimonial{min-height:80vh; display:flex; align-items:center; position:relative; color:var(--ivory);}
.testimonial blockquote{font-family:var(--serif); font-size:clamp(26px,4vw,52px); line-height:1.18; max-width:1040px;}
.testimonial cite{display:block; margin-top:32px; font-style:normal; font-family:var(--nav-font); text-transform:uppercase; letter-spacing:.08em; font-size:13px; color:var(--stone);}

/* timeline */
.timeline-row{display:grid; grid-template-columns:120px 1fr 1.3fr; gap:36px; padding:40px 0; border-top:1px solid rgba(38,35,31,.15); align-items:center;}
.timeline-row .year{font-family:var(--serif); font-size:34px;}
.timeline-row .cat{margin-bottom:8px;}
.timeline-row .frame{aspect-ratio:4/3; overflow:hidden;}
.timeline-row .frame img{width:100%; height:100%; object-fit:cover;}
@media (max-width:820px){.timeline-row{grid-template-columns:1fr; gap:16px;}}

/* philosophy statements */
.statement{padding:46px 0; border-top:1px solid rgba(38,35,31,.15);}
.statement:last-child{border-bottom:1px solid rgba(38,35,31,.15);}
.statement p{font-family:var(--serif); font-size:clamp(24px,3.6vw,46px); line-height:1.16; max-width:920px;}

/* THE ROOM interstitial */
.room-interstitial{min-height:70vh; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:var(--stone); gap:22px;}
.room-interstitial p{font-family:var(--serif); text-transform:uppercase; font-size:clamp(30px,5vw,64px); line-height:1.05;}
.room-interstitial p:last-child{color:var(--ivory);}

/* ---------- forms ---------- */
.field{margin-bottom:26px;}
.field label{display:block; font-family:var(--nav-font); text-transform:uppercase; letter-spacing:.07em; font-size:12px; margin-bottom:10px; color:var(--graphite-2);}
.dark .field label{color:var(--stone);}
.field input, .field select, .field textarea{
  width:100%; background:transparent; border:0; border-bottom:1px solid rgba(38,35,31,.3);
  padding:12px 2px; color:inherit; outline:none; transition:border-color .25s var(--ease);
}
.dark .field input, .dark .field select, .dark .field textarea{border-bottom-color:rgba(242,236,225,.3);}
.field input:focus, .field select:focus, .field textarea:focus{border-bottom-color:var(--orange);}
.field textarea{resize:vertical; min-height:110px;}
.field .helper{font-size:12.5px; color:var(--stone-dim); margin-top:8px;}
.field .error{font-size:12.5px; color:var(--orange-bright); margin-top:8px; display:none;}
.field.invalid input, .field.invalid textarea, .field.invalid select{border-bottom-color:#c0392b;}
.field.invalid .error{display:block;}
.field.valid input, .field.valid select, .field.valid textarea{border-bottom-color:#5c8a5c;}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
@media (max-width:640px){.field-row{grid-template-columns:1fr;}}
:focus-visible{outline:2px solid var(--orange); outline-offset:3px;}

/* select-card (booking options) */
.select-card{
  border:1px solid rgba(38,35,31,.25); padding:26px 22px; cursor:pointer; transition:all .25s var(--ease);
  display:flex; align-items:center; justify-content:space-between; gap:14px;
}
.dark .select-card{border-color:rgba(242,236,225,.25);}
.select-card:hover{border-color:var(--orange);}
.select-card.selected{border-color:var(--orange); background:rgba(200,85,31,.08);}
.select-card .title{font-family:var(--serif); font-size:19px; text-transform:uppercase;}
.select-card .tick{width:18px; height:18px; border:1px solid currentColor; border-radius:50%; flex:none; position:relative;}
.select-card.selected .tick::after{content:""; position:absolute; inset:4px; background:var(--orange); border-radius:50%;}
.select-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
@media (max-width:640px){.select-grid{grid-template-columns:1fr;}}

/* booking */
.booking-shell{min-height:100vh; background:var(--black); color:var(--ivory); display:flex; flex-direction:column;}
.booking-top{display:flex; justify-content:space-between; align-items:center; padding:26px var(--gutter);}
.booking-progress{display:flex; gap:6px; padding:0 var(--gutter) 8px;}
.booking-progress .seg{flex:1; height:2px; background:rgba(242,236,225,.2); position:relative; overflow:hidden;}
.booking-progress .seg span{position:absolute; inset:0; background:var(--orange); transform:scaleX(0); transform-origin:left; transition:transform .4s var(--ease);}
.booking-progress .seg.done span, .booking-progress .seg.active span{transform:scaleX(1);}
.booking-steps-label{display:flex; justify-content:space-between; padding:10px var(--gutter) 0; font-family:var(--mono); font-size:11px; color:var(--stone-dim); text-transform:uppercase;}
.booking-steps-label .on{color:var(--orange);}
.booking-body{flex:1; display:flex; align-items:center; padding:40px var(--gutter) 80px;}
.booking-step{width:100%; max-width:840px; margin:0 auto; display:none;}
.booking-step.active{display:block; animation:stepIn .5s var(--ease);}
@keyframes stepIn{from{opacity:0; transform:translateY(18px);} to{opacity:1; transform:translateY(0);}}
.booking-step h2{font-family:var(--serif); text-transform:uppercase; font-size:clamp(30px,5vw,56px); line-height:1.05; margin-bottom:40px;}
.booking-nav{display:flex; justify-content:space-between; align-items:center; margin-top:48px; gap:20px;}
.booking-nav .back{font-family:var(--nav-font); text-transform:uppercase; font-size:13px; letter-spacing:.08em; color:var(--stone);}

.summary-list{border-top:1px solid rgba(242,236,225,.2);}
.summary-row{display:flex; justify-content:space-between; gap:20px; padding:22px 0; border-bottom:1px solid rgba(242,236,225,.2);}
.summary-row .k{font-family:var(--nav-font); text-transform:uppercase; letter-spacing:.07em; font-size:12px; color:var(--stone);}
.summary-row .v{text-align:right; max-width:60%;}

/* newsletter */
.newsletter{padding:64px 0; border-top:1px solid rgba(242,236,225,.18);}
.newsletter-form{display:flex; gap:0; max-width:520px; border-bottom:1px solid rgba(242,236,225,.4);}
.newsletter-form input{flex:1; background:none; border:0; padding:14px 0; color:inherit; outline:none;}
.newsletter-form button{background:none; border:0; color:var(--orange); font-family:var(--nav-font); text-transform:uppercase; letter-spacing:.08em; font-size:13px;}
.newsletter-success{display:none; align-items:center; gap:14px;}
.newsletter-success.show{display:flex;}
.newsletter.done .newsletter-form{display:none;}
.check-anim{width:22px; height:22px; border:1px solid var(--orange); border-radius:50%; position:relative; flex:none;}
.check-anim::after{content:""; position:absolute; left:6px; top:2px; width:5px; height:9px; border-right:2px solid var(--orange); border-bottom:2px solid var(--orange); transform:rotate(45deg);}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.site-footer{background:var(--black); color:var(--ivory); padding-top:var(--section-pad);}
.footer-lead h2{font-family:var(--serif); text-transform:uppercase; font-size:clamp(48px,9vw,132px); line-height:.94;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding:64px 0 40px; border-top:1px solid rgba(242,236,225,.15); margin-top:64px;}
.footer-grid h4{font-family:var(--nav-font); text-transform:uppercase; letter-spacing:.08em; font-size:12px; color:var(--stone); margin-bottom:18px;}
.footer-grid li{margin-bottom:11px; font-size:14.5px;}
.footer-grid a:hover{color:var(--orange);}
.footer-bottom{display:flex; justify-content:space-between; align-items:center; padding:26px 0; border-top:1px solid rgba(242,236,225,.15); font-family:var(--mono); font-size:12px; color:var(--stone-dim); flex-wrap:wrap; gap:12px;}
@media (max-width:900px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr;}}

/* ==========================================================================
   SEARCH OVERLAY
   ========================================================================== */
.search-overlay{
  position:fixed; inset:0; z-index:1500; background:rgba(12,11,9,.98); color:var(--ivory);
  transform:translateY(-100%); transition:transform .45s var(--ease); overflow-y:auto;
}
.search-overlay.open{transform:translateY(0);}
.search-top{display:flex; justify-content:space-between; align-items:center; padding:26px var(--gutter);}
.search-input-row{padding:40px var(--gutter) 20px; border-bottom:1px solid rgba(242,236,225,.2);}
.search-input-row input{
  width:100%; background:none; border:0; color:var(--ivory); font-family:var(--serif); text-transform:uppercase;
  font-size:clamp(28px,6vw,64px); outline:none;
}
.search-input-row input::placeholder{color:rgba(242,236,225,.35);}
.search-results{padding:34px var(--gutter) 80px;}
.search-group{margin-bottom:44px;}
.search-group h4{font-family:var(--nav-font); text-transform:uppercase; letter-spacing:.08em; font-size:12px; color:var(--stone); margin-bottom:18px;}
.search-result-row{display:flex; justify-content:space-between; padding:16px 0; border-bottom:1px solid rgba(242,236,225,.1); cursor:pointer;}
.search-result-row:hover{color:var(--orange);}
.search-empty{padding:60px 0; text-align:center;}
.search-empty p:first-child{font-family:var(--serif); text-transform:uppercase; font-size:30px; margin-bottom:14px;}

/* ---------- misc ---------- */
.skeleton{background:linear-gradient(90deg, rgba(38,35,31,.08) 25%, rgba(38,35,31,.16) 37%, rgba(38,35,31,.08) 63%); background-size:400% 100%; animation:sk 1.4s ease infinite;}
@keyframes sk{0%{background-position:100% 0;}100%{background-position:0 0;}}

.reveal{opacity:0; transform:translateY(24px); transition:opacity .7s var(--ease), transform .7s var(--ease);}
.reveal.in{opacity:1; transform:translateY(0);}

.breadcrumbs{font-family:var(--mono); font-size:12px; color:var(--stone-dim); display:flex; gap:8px; align-items:center; margin-bottom:26px;}
.breadcrumbs a:hover{color:var(--orange);}

.pill-filters{display:flex; gap:10px; flex-wrap:wrap;}
.pill{
  font-family:var(--nav-font); text-transform:uppercase; letter-spacing:.06em; font-size:12.5px;
  padding:9px 18px; border:1px solid rgba(38,35,31,.25); background:transparent; color:inherit;
  transition:all .25s var(--ease);
}
.dark .pill{border-color:rgba(242,236,225,.3);}
.pill.active, .pill:hover{border-color:var(--orange); color:var(--orange);}

.badge-status{
  display:inline-flex; align-items:center; gap:8px; font-family:var(--mono); text-transform:uppercase;
  font-size:12px; letter-spacing:.05em; padding:6px 12px; border:1px solid var(--orange); color:var(--orange);
}

.two-col{display:grid; grid-template-columns:1fr 1fr; gap:var(--gutter);}
@media (max-width:900px){.two-col{grid-template-columns:1fr;}}

.author-card{display:flex; gap:20px; align-items:center; padding:28px; border:1px solid rgba(38,35,31,.15);}
.dark .author-card{border-color:rgba(242,236,225,.2);}
.author-card img{width:64px; height:64px; object-fit:cover; flex:none;}

.book-cover{aspect-ratio:2/3; overflow:hidden; background:var(--graphite); position:relative;}
.book-cover img{width:100%; height:100%; object-fit:cover;}

.book-cover-art{
  aspect-ratio:2/3; position:relative; overflow:hidden;
  background:radial-gradient(120% 140% at 15% 0%, #6a2434 0%, #3a1420 42%, #0c0b09 100%);
  display:flex; flex-direction:column; justify-content:space-between;
  padding:9% 10%;
}
.book-cover-art::after{
  content:""; position:absolute; inset:0;
  background-image:repeating-linear-gradient(115deg, rgba(242,236,225,.03) 0px, rgba(242,236,225,.03) 1px, transparent 1px, transparent 64px);
}
.book-cover-art .bc-top{display:block; font-family:var(--mono); text-transform:uppercase; font-size:11px; letter-spacing:.14em; color:var(--stone); position:relative;}
.book-cover-art .bc-title{display:block; font-family:var(--serif); text-transform:uppercase; font-size:clamp(22px,2.6vw,32px); line-height:1.12; color:var(--ivory); position:relative;}
.book-cover-art .bc-line{display:block; width:34px; height:2px; background:var(--orange); margin:16px 0; position:relative;}
.book-cover-art .bc-author{display:block; font-family:var(--nav-font); text-transform:uppercase; letter-spacing:.1em; font-size:11.5px; color:var(--stone); position:relative;}
.book-cover-art.wide-cover{aspect-ratio:16/10;}

.related-strip{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gutter);}
@media (max-width:900px){.related-strip{grid-template-columns:1fr;}}

.error-page{min-height:100vh; display:flex; align-items:center; justify-content:center; background:var(--black); color:var(--ivory); text-align:center; padding:40px var(--gutter);}
.error-page h1{font-family:var(--serif); text-transform:uppercase; font-size:clamp(48px,10vw,120px); line-height:.95; margin-bottom:26px;}

.transcript{border-top:1px solid rgba(38,35,31,.15);}
.transcript summary{padding:20px 0; font-family:var(--nav-font); text-transform:uppercase; letter-spacing:.07em; font-size:13px; cursor:pointer;}
.transcript-body{padding-bottom:26px; color:var(--graphite-2); font-size:15px; line-height:1.7;}

.sticky-book-cta{
  position:fixed; bottom:0; left:0; right:0; z-index:400; background:var(--black); color:var(--ivory);
  display:none; justify-content:space-between; align-items:center; padding:16px var(--gutter);
  border-top:1px solid rgba(242,236,225,.15);
}
@media (max-width:820px){.sticky-book-cta.show{display:flex;}}
.sticky-book-cta span{font-family:var(--nav-font); text-transform:uppercase; font-size:12.5px; letter-spacing:.05em;}
