/* =================================================================
   MBAYE VISUEL — Design tokens
   Palette : encre chaude quasi-noire en base, ivoire pour le texte,
   rouge + indigo du logo comme accents (utilisés avec parcimonie).
   Typo : Fraunces (display, éditorial, chaleureux) + Work Sans (corps).
================================================================= */
:root{
  --ink:        #14120e;
  --ink-2:      #1d1a14;
  --ink-3:      #26221a;
  --paper:      #f4efe6;
  --paper-dim:  #cfc7b6;
  --stone:      #9c9484;
  --stone-dark: #6b6455;
  --rouge:      #cf1225;
  --rouge-dim:  #a80f1f;
  --indigo:     #4a3aa0;
  --indigo-dim: #382c78;

  --font-display: 'Fraunces', 'Georgia', serif;
  --font-body: 'Work Sans', -apple-system, sans-serif;

  --container: 1240px;
  --gutter: clamp(20px, 5vw, 64px);

  --ease: cubic-bezier(.16,.84,.44,1);
}

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

body{
  margin:0;
  font-family: var(--font-body);
  background: var(--paper);
  color: var(--ink);
  font-weight: 400;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
button{ font:inherit; cursor:pointer; }

h1,h2,h3,h4{
  font-family: var(--font-display);
  font-weight: 500;
  line-height: 1.12;
  margin: 0;
  letter-spacing: -0.01em;
}

.container{ max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter); }

/* ---------- Eyebrow / signature rule mark ---------- */
.eyebrow{
  display:flex; align-items:center; gap:12px;
  font-family: var(--font-body);
  font-size: 12.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--stone-dark);
  margin: 0 0 18px;
  font-weight: 500;
}
.eyebrow-light{ color: rgba(244,239,230,0.78); }
.rule-mark{
  display:inline-block;
  width: 30px; height: 3px;
  background: linear-gradient(90deg, var(--rouge) 0 50%, var(--indigo) 50% 100%);
  flex-shrink:0;
}

.section-head{ max-width: 640px; margin-bottom: 48px; }
.section-head h2{ font-size: clamp(30px, 4vw, 46px); }
.section-head-center{ max-width: 640px; margin-left:auto; margin-right:auto; text-align:center; }
.section-head-center .eyebrow{ justify-content:center; }
.section-sub{ margin-top:14px; color: var(--stone-dark); font-size:16px; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding: 15px 30px;
  font-size: 14px;
  letter-spacing: 0.04em;
  font-weight: 500;
  border-radius: 2px;
  border: 1px solid transparent;
  transition: background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease), transform .3s var(--ease);
  white-space: nowrap;
}
.btn-primary{ background: var(--rouge); color: var(--paper); }
.btn-primary:hover{ background: var(--rouge-dim); transform: translateY(-1px); }
.btn-outline{ background: transparent; color: var(--ink); border-color: var(--ink); }
.btn-outline:hover{ background: var(--ink); color: var(--paper); }
.btn-ghost-light{ background: transparent; color: var(--paper); border-color: rgba(244,239,230,0.55); }
.btn-ghost-light:hover{ border-color: var(--paper); background: rgba(244,239,230,0.08); }

/* =================================================================
   HEADER
================================================================= */
.site-header{
  position: fixed; top:0; left:0; right:0; z-index: 200;
  background: transparent;
  transition: background .4s var(--ease), box-shadow .4s var(--ease), padding .3s var(--ease);
  padding: 22px 0;
}
.site-header.is-scrolled{
  background: rgba(20,18,14,0.92);
  backdrop-filter: blur(10px);
  padding: 14px 0;
  box-shadow: 0 1px 0 rgba(244,239,230,0.08);
}
.header-inner{
  max-width: var(--container); margin:0 auto; padding: 0 var(--gutter);
  display:flex; align-items:center; justify-content:space-between; gap: 24px;
}
.brand{ display:flex; align-items:center; }
.brand-logo{ height: 34px; width:auto; }

.main-nav{ display:flex; align-items:center; gap: 34px; }
.main-nav a{
  font-size: 13.5px; letter-spacing: 0.05em; text-transform: uppercase;
  color: var(--paper); font-weight: 500;
  position:relative; padding: 4px 0;
}
.main-nav a::after{
  content:""; position:absolute; left:0; right:100%; bottom:0; height:1px;
  background: var(--rouge); transition: right .3s var(--ease);
}
.main-nav a:hover::after{ right:0; }

.nav-cta{ flex-shrink:0; border-color: rgba(244,239,230,0.55); color: var(--paper); padding: 11px 22px; }
.nav-cta:hover{ background: var(--paper); color: var(--ink); border-color: var(--paper); }

.nav-toggle{
  display:none; flex-direction:column; gap:5px; background:none; border:none; padding:8px; z-index: 210;
}
.nav-toggle span{ width:24px; height:1.5px; background: var(--paper); transition: transform .3s var(--ease), opacity .3s var(--ease); }

/* =================================================================
   HERO
================================================================= */
.hero{
  position: relative; height: 100svh; min-height: 560px;
  display:flex; align-items:flex-end;
  overflow:hidden;
  background: var(--ink);
}
.hero-media{ position:absolute; inset:0; display:flex; }
.hero-img-left{ flex: 1 1 33.33%; position:relative; overflow:hidden; }
.hero-img-mid{ flex: 1 1 33.33%; position:relative; overflow:hidden; }
.hero-img-right{ flex: 1 1 33.34%; position:relative; overflow:hidden; }
.hero-img-left img, .hero-img-mid img, .hero-img-right img{
  width:100%; height:100%; object-fit:cover; object-position: center 28%;
}
.hero-img-mid img{ object-position: center 40%; }
.hero-img-right img{ object-position: center 22%; }
.hero-scrim{
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(20,18,14,0.35) 0%, rgba(20,18,14,0.1) 35%, rgba(20,18,14,0.55) 70%, rgba(20,18,14,0.92) 100%);
}
.hero-scrim::before{
  content:"";
  position:absolute; top:0; bottom:0; left:0; width:54%;
  background: linear-gradient(90deg, transparent 55%, rgba(20,18,14,0.55) 100%);
}
.hero-content{
  position: relative; z-index:2;
  max-width: var(--container); margin: 0 auto; width:100%;
  padding: 0 var(--gutter) 90px;
  color: var(--paper);
  opacity:0; transform: translateY(24px);
  animation: heroReveal 1s var(--ease) 0.3s forwards;
}
@keyframes heroReveal{ to{ opacity:1; transform:none; } }
.hero-text{ max-width: 420px; text-align:left; }
.hero-text .eyebrow{ justify-content:flex-start; }
.hero-title{
  font-size: clamp(44px, 6.5vw, 84px);
  line-height: 0.95;
  letter-spacing: -0.02em;
}
.hero-tagline{
  font-family: var(--font-display); font-style: italic; font-weight: 400;
  font-size: clamp(17px, 1.8vw, 21px);
  color: var(--paper-dim);
  margin: 20px 0 34px;
}
.hero-actions{ display:flex; gap:16px; flex-wrap:wrap; justify-content:flex-start; }

.scroll-cue{
  position:absolute; bottom: 28px; right: var(--gutter); z-index:2;
  width:1px; height:56px; background: rgba(244,239,230,0.4);
}
.scroll-cue span{
  position:absolute; top:0; left:-2.5px; width:6px; height:6px; border-radius:50%;
  background: var(--paper);
  animation: cueMove 2.2s ease-in-out infinite;
}
@keyframes cueMove{ 0%{ top:0; opacity:1;} 90%{ opacity:0;} 100%{ top:100%; opacity:0;} }

/* =================================================================
   ABOUT
================================================================= */
.about{ padding: 130px 0; background: var(--paper); }
.about-grid{
  max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter);
  display:grid; grid-template-columns: 0.85fr 1fr; gap: clamp(32px, 6vw, 88px);
  align-items:center;
}
.about-image img{ width:100%; aspect-ratio: 4/5; object-fit:cover; }
.about-text h2{ font-size: clamp(28px, 3.6vw, 42px); margin-bottom: 26px; }
.about-text .lead{ font-size:18px; color: var(--ink); margin-bottom:16px; }
.about-text p{ color: var(--stone-dark); }
.about-points{ margin-top: 28px; display:flex; flex-direction:column; gap:12px; }
.about-points li{
  padding-left: 22px; position:relative; color: var(--ink); font-size:15px;
}
.about-points li::before{
  content:""; position:absolute; left:0; top:9px; width:8px; height:1.5px; background: var(--rouge);
}

/* =================================================================
   SERVICES
================================================================= */
.services{
  position: relative;
  padding: 110px 0; color: var(--paper);
  background:
    linear-gradient(180deg, rgba(20,18,14,0.62), rgba(20,18,14,0.72)),
    url('images/portfolio/mariages/mariage-03.jpg') center 22% / cover no-repeat;
  background-attachment: scroll;
}
.services .section-head{ max-width: var(--container); margin: 0 auto 60px; padding: 0 var(--gutter); }
.services .section-head h2{ color: var(--paper); font-size: clamp(30px,4vw,46px); }
.services-columns{
  max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter);
  display:grid; grid-template-columns: 1fr 1fr; gap: clamp(32px,6vw,80px);
}
.service-col h3{
  font-family: var(--font-body); text-transform:uppercase; letter-spacing:0.08em;
  font-size:13px; color: var(--stone); font-weight:600; margin-bottom: 26px;
  padding-bottom: 14px; border-bottom: 1px solid rgba(244,239,230,0.14);
}
.service-list{ display:flex; flex-direction:column; }
.service-list li{
  padding: 20px 0; border-bottom: 1px solid rgba(244,239,230,0.1);
}
.service-list li:last-child{ border-bottom:none; }
.service-list span{
  display:block; font-family: var(--font-display); font-size: 19px; font-weight:500; margin-bottom:6px;
}
.service-list p{ margin:0; color: var(--paper-dim); font-size:14.5px; max-width: 46ch; }
/* =================================================================
   BOOK BY CATEGORY (Réserver une prestation)
================================================================= */
.book-categories{
  position:relative;
  padding: 120px 0; color: var(--ink);
  background:
    linear-gradient(180deg, rgba(244,239,230,0.72), rgba(244,239,230,0.82)),
    url('images/portfolio/shooting-femmes/femme-03.jpg') center 25% / cover no-repeat;
}
.book-categories .section-head{ padding: 0 var(--gutter); }
.book-grid{
  max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter);
  display:grid; grid-template-columns: repeat(3, 1fr); gap: 32px;
}
.book-card{
  display:flex; flex-direction:column;
  background: var(--ink); overflow:hidden;
}
.book-card h3{
  color: var(--paper); font-size: 20px; font-weight:500;
  text-align:center; padding: 20px 16px 16px;
}
.book-card-media{ aspect-ratio: 4/5; overflow:hidden; }
.book-card-media img{ width:100%; height:100%; object-fit:cover; transition: transform .6s var(--ease); }
.book-card:hover .book-card-media img{ transform: scale(1.05); }
.book-btn{ margin: 18px; border-radius: 0; }

/* =================================================================
   HIGHLIGHTS (Réalisations)
================================================================= */
.highlights{
  position:relative;
  padding: 120px 0 100px; color: var(--ink);
  background:
    linear-gradient(180deg, rgba(244,239,230,0.72), rgba(244,239,230,0.8)),
    url('images/portfolio/traditions/tradition-09.jpg') center 20% / cover no-repeat;
}
.highlights .section-head{ padding: 0 var(--gutter); }
.highlights-grid{
  max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter);
  display:grid; grid-template-columns: repeat(6, 1fr); grid-auto-rows: 120px; gap: 10px;
}
.highlight-item{ overflow:hidden; }
.highlight-item img{ width:100%; height:100%; object-fit:cover; object-position: center 18%; transition: transform .7s var(--ease); }
.highlight-item:hover img{ transform: scale(1.05); }
.highlight-item:nth-child(1){ grid-column: span 2; grid-row: span 3; }
.highlight-item:nth-child(2){ grid-column: span 2; grid-row: span 2; }
.highlight-item:nth-child(3){ grid-column: span 2; grid-row: span 2; }
.highlight-item:nth-child(4){ grid-column: span 2; grid-row: span 2; }
.highlight-item:nth-child(5){ grid-column: span 2; grid-row: span 3; }
.highlight-item:nth-child(6){ grid-column: span 2; grid-row: span 2; }
.highlights-cta{ text-align:center; margin-top: 52px; }

/* =================================================================
   GALLERY
================================================================= */
.gallery{
  position:relative;
  padding: 120px 0; color: var(--paper);
  background:
    linear-gradient(180deg, rgba(29,26,20,0.55), rgba(29,26,20,0.68)),
    url('images/portfolio/traditions/tradition-01.jpg') center 20% / cover no-repeat;
}
.gallery .section-head{ padding: 0 var(--gutter); }
.gallery .section-head h2{ color: var(--paper); }
.gallery .section-sub{ color: var(--stone); }

.gallery-filters{
  max-width: var(--container); margin: 0 auto 44px; padding: 0 var(--gutter);
  display:flex; flex-wrap:wrap; gap:10px; justify-content:center;
}
.filter-btn{
  background: transparent; border: 1px solid rgba(244,239,230,0.22); color: var(--paper-dim);
  padding: 9px 18px; border-radius: 20px; font-size: 13px; letter-spacing:0.02em;
  transition: all .3s var(--ease);
}
.filter-btn:hover{ border-color: var(--paper); color: var(--paper); }
.filter-btn.is-active{ background: var(--paper); color: var(--ink); border-color: var(--paper); }

.gallery-grid{
  max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter);
  columns: 4 260px; column-gap: 14px;
}
.gallery-item{
  break-inside: avoid; margin-bottom: 14px; overflow:hidden; position:relative;
  cursor: pointer; background: var(--ink-3);
  opacity:0; transform: translateY(16px);
  transition: opacity .5s var(--ease), transform .5s var(--ease);
}
.gallery-item.is-visible{ opacity:1; transform:none; }
.gallery-item img{ width:100%; height:auto; display:block; transition: transform .6s var(--ease), filter .5s; }
.gallery-item:hover img{ transform: scale(1.045); }
.gallery-item .gi-overlay{
  position:absolute; inset:0; background: linear-gradient(180deg, transparent 55%, rgba(20,18,14,0.85) 100%);
  opacity:0; transition: opacity .35s var(--ease);
  display:flex; align-items:flex-end; padding: 16px;
}
.gallery-item:hover .gi-overlay{ opacity:1; }
.gi-overlay span{ font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color: var(--paper-dim); }
.gallery-item.is-hidden{ display:none; }

/* =================================================================
   STRENGTHS (Points forts)
================================================================= */
.strengths{
  position:relative;
  padding: 120px 0; color: var(--ink);
  background:
    linear-gradient(180deg, rgba(244,239,230,0.72), rgba(244,239,230,0.8)),
    url('images/portfolio/traditions/tradition-06.jpg') center 30% / cover no-repeat;
}
.strengths .section-head{ padding: 0 var(--gutter); }
.strengths-grid{
  max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter);
  display:grid; grid-template-columns: repeat(3, 1fr); gap: 48px 40px;
}
.strength-icon{ width:34px; height:34px; color: var(--rouge); margin-bottom: 20px; }
.strength-item h3{ font-size:18px; margin-bottom:10px; font-weight:500; }
.strength-item p{ color: var(--stone-dark); font-size:14.5px; margin:0; }

/* =================================================================
   EXPERIENCE CLIENT
================================================================= */
.experience{
  position:relative;
  padding: 130px 0; color: var(--paper);
  background:
    linear-gradient(135deg, rgba(56,44,120,0.68), rgba(20,18,14,0.72)),
    url('images/portfolio/mariages/mariage-07.jpg') center 30% / cover no-repeat;
}
.experience-inner{ max-width: 780px; margin:0 auto; padding: 0 var(--gutter); text-align:center; }
.experience h2{ font-size: clamp(28px, 3.6vw, 42px); margin-bottom: 24px; }
.experience p{ color: var(--paper-dim); font-size: 17px; }
.experience .eyebrow{ justify-content:center; }

/* =================================================================
   CONTACT
================================================================= */
.contact{ padding: 120px 0; background: var(--paper); }
.contact .section-head{ padding: 0 var(--gutter); }
.contact-grid{
  max-width: var(--container); margin:0 auto; padding: 0 var(--gutter);
  display:grid; grid-template-columns: 1fr 1fr; gap: clamp(30px,5vw,70px);
  align-items: stretch;
}
.contact-card{
  background: var(--ink); color: var(--paper);
  padding: clamp(32px, 4vw, 56px);
  display:flex; flex-direction:column; justify-content:center;
}
.contact-card h3{ font-size: 28px; margin-bottom: 10px; }
.contact-address{ color: var(--stone); margin: 0 0 30px; }
.contact-links{ display:flex; flex-direction:column; gap:16px; margin-bottom: 30px; }
.contact-link{ display:flex; align-items:center; gap:12px; font-size:15px; }
.contact-link svg{ width:19px; height:19px; flex-shrink:0; color: var(--rouge); }
.contact-link:hover{ color: var(--paper-dim); }
.contact-whatsapp{ align-self:flex-start; margin-bottom: 34px; }
.social-links{ display:flex; gap:14px; }
.social-links a{
  width:40px; height:40px; border:1px solid rgba(244,239,230,0.25); border-radius:50%;
  display:flex; align-items:center; justify-content:center; transition: all .3s var(--ease);
}
.social-links svg{ width:18px; height:18px; }
.social-links a:hover{ border-color: var(--paper); background: rgba(244,239,230,0.06); }
.contact-image{ overflow:hidden; min-height: 320px; }
.contact-image img{ width:100%; height:100%; object-fit:cover; }

/* =================================================================
   CTA FINAL
================================================================= */
.cta-final{ position:relative; padding: 190px 0; overflow:hidden; }
.cta-final-media{ position:absolute; inset:0; }
.cta-final-media img{ width:100%; height:100%; object-fit:cover; object-position: center 25%; }
.cta-final-content{
  position:relative; z-index:2; max-width: 680px; margin:0 auto; padding:0 var(--gutter);
  text-align:center; color: var(--paper);
}
.cta-final-content h2{ font-size: clamp(30px,4.5vw,52px); margin-bottom:18px; }
.cta-final-content p{ font-family: var(--font-display); font-style:italic; font-size:19px; color: var(--paper-dim); margin-bottom:34px; }

/* =================================================================
   FOOTER
================================================================= */
.site-footer{ background: var(--ink); color: var(--paper-dim); padding: 80px 0 0; }
.footer-inner{
  max-width: var(--container); margin:0 auto; padding: 0 var(--gutter);
  display:grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 40px;
  padding-bottom: 60px; border-bottom: 1px solid rgba(244,239,230,0.1);
}
.footer-logo{ height:30px; margin-bottom:16px; }
.footer-brand p{ font-size:14px; max-width: 32ch; }
.footer-col h4{
  font-family: var(--font-body); text-transform:uppercase; letter-spacing:0.08em; font-size:12px;
  color: var(--stone); margin-bottom:18px; font-weight:600;
}
.footer-col{ display:flex; flex-direction:column; gap:10px; }
.footer-col a{ font-size:14px; transition: color .25s; }
.footer-col a:hover{ color: var(--paper); }
.footer-social{ display:flex; gap:12px; margin-top:6px; }
.footer-social a{
  width:32px; height:32px; border:1px solid rgba(244,239,230,0.2); border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-size:10.5px; letter-spacing:0.03em;
}
.footer-bottom{ text-align:center; padding: 26px var(--gutter); font-size:13px; color: var(--stone-dark); }

/* =================================================================
   LIGHTBOX
================================================================= */
.lightbox{
  position:fixed; inset:0; z-index: 500; background: rgba(15,13,10,0.97);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transition: opacity .35s var(--ease), visibility .35s;
}
.lightbox.is-open{ opacity:1; visibility:visible; }
.lightbox-image{ max-width: 88vw; max-height: 82vh; object-fit:contain; box-shadow: 0 30px 80px rgba(0,0,0,0.5); }
.lightbox-close{
  position:absolute; top: 24px; right: clamp(20px,4vw,48px);
  background:none; border:none; color: var(--paper); font-size: 34px; line-height:1;
}
.lightbox-nav{
  position:absolute; top:50%; transform: translateY(-50%);
  background: rgba(244,239,230,0.06); border: 1px solid rgba(244,239,230,0.18); color: var(--paper);
  width:52px; height:52px; border-radius:50%; font-size:26px; display:flex; align-items:center; justify-content:center;
  transition: background .25s;
}
.lightbox-nav:hover{ background: rgba(244,239,230,0.16); }
.lightbox-prev{ left: clamp(12px,3vw,40px); }
.lightbox-next{ right: clamp(12px,3vw,40px); }
.lightbox-caption{
  position:absolute; bottom: 26px; left:0; right:0; text-align:center;
  color: var(--stone); font-size:13px; letter-spacing:0.04em; text-transform:uppercase;
}

/* =================================================================
   SCROLL REVEAL (generic)
================================================================= */
.reveal{ opacity:0; transform: translateY(28px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.is-visible{ opacity:1; transform:none; }

/* =================================================================
   RESPONSIVE
================================================================= */
@media (max-width: 980px){
  .about-grid{ grid-template-columns:1fr; }
  .about-image{ order:-1; }
  .services-columns{ grid-template-columns:1fr; gap:56px; }
  .contact-grid{ grid-template-columns:1fr; }
  .contact-image{ min-height:260px; order:-1; }
  .strengths-grid{ grid-template-columns: repeat(2,1fr); }
  .footer-inner{ grid-template-columns: 1fr 1fr; }
  .highlights-grid{ grid-template-columns: repeat(4,1fr); grid-auto-rows:110px; }
  .highlight-item:nth-child(1),
  .highlight-item:nth-child(5){ grid-column: span 2; grid-row: span 2; }
  .book-grid{ grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 760px){
  .main-nav{
    position: fixed; inset:0; z-index:199;
    background: var(--ink);
    flex-direction: column; justify-content:center; align-items:center; gap: 30px;
    transform: translateX(100%); transition: transform .45s var(--ease);
  }
  .main-nav.is-open{ transform: translateX(0); }
  .main-nav a{ font-size: 22px; }
  .nav-cta{ display:none; }
  .nav-toggle{ display:flex; }
  .nav-toggle.is-open span:nth-child(1){ transform: translateY(6.5px) rotate(45deg); }
  .nav-toggle.is-open span:nth-child(2){ opacity:0; }
  .nav-toggle.is-open span:nth-child(3){ transform: translateY(-6.5px) rotate(-45deg); }

  .hero-actions{ flex-direction:column; align-items:stretch; }
  .hero-actions .btn{ width:100%; }
  .hero-img-mid, .hero-img-right{ display:none; }
  .hero-img-left{ flex-basis:100%; }
  .hero-scrim::before{
  content:"";
  position:absolute; top:0; bottom:0; left:0; width:34%;
  background: linear-gradient(90deg, transparent 30%, rgba(20,18,14,0.72) 100%);
}
  .hero-content{ justify-content:flex-start; }
  .hero-text{ max-width:100%; text-align:left; }
  .hero-text .eyebrow{ justify-content:flex-start; }
  .hero-actions{ justify-content:flex-start; }
  .scroll-cue{ left:auto; right: var(--gutter); }
  .hero-img-right{ display:none; }
  .hero-img-left{ flex-basis:100%; }
  .hero-scrim{
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(20,18,14,0.25) 0%, rgba(20,18,14,0.06) 35%, rgba(20,18,14,0.3) 70%, rgba(20,18,14,0.52) 100%);
}

  .gallery-grid{ columns: 2 200px; }
  .strengths-grid{ grid-template-columns:1fr; }
  .footer-inner{ grid-template-columns:1fr; gap:32px; }
  .highlights-grid{ grid-template-columns: repeat(2,1fr); grid-auto-rows:150px; }
  .highlight-item{ grid-column: span 1 !important; grid-row: span 2 !important; }
  .cta-final{ padding: 130px 0; }
  .lightbox-nav{ width:42px; height:42px; font-size:20px; }
  .book-grid{ grid-template-columns:1fr; max-width:420px; margin-left:auto; margin-right:auto; }
}