/* ---------- Tokens ---------- */
:root{
  --ink:#182229;
  --ink-2:#22303a;
  --ink-soft:#4a5760;
  --linen:#f5f0e4;
  --linen-2:#ece3d0;
  --paper:#fbf8f1;
  --terracotta:#c1592e;
  --terracotta-dark:#a64a24;
  --teal:#3e6670;
  --sand:#d8cbb0;
  --ochre:#e3a93f;
  --line: rgba(24,34,41,.12);
  --line-light: rgba(245,240,228,.22);

  --font-display:'Fraunces','Iowan Old Style','Palatino Linotype',serif;
  --font-body:'Archivo',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;

  --container: 1180px;
  --pad: clamp(1.25rem, 4vw, 3rem);
  --radius: 4px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

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

body{
  margin:0;
  background:var(--linen);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{max-width:100%; display:block;}
a{color:inherit;}
.wrap{max-width:var(--container); margin-inline:auto; padding-inline:var(--pad);}

.skip-link{
  position:absolute; left:-9999px; top:0; z-index:999;
  background:var(--ink); color:var(--linen); padding:.8rem 1.2rem; border-radius:0 0 6px 0;
}
.skip-link:focus{left:0;}

:focus-visible{outline:2px solid var(--terracotta); outline-offset:3px;}

h1,h2,h3{
  font-family:var(--font-display);
  font-weight:500;
  letter-spacing:-.01em;
  margin:0 0 .5em;
  color:var(--ink);
}
h1{font-size:clamp(2.4rem,5.6vw,4.6rem); line-height:1.04; font-weight:500;}
h2{font-size:clamp(1.9rem,3.6vw,2.9rem); line-height:1.12;}
h3{font-size:1.05rem; font-weight:600; font-family:var(--font-body); text-transform:uppercase; letter-spacing:.06em; color:var(--terracotta);}
p{margin:0 0 1em; color:var(--ink-soft);}
.eyebrow{
  font-family:var(--font-body); font-weight:600; text-transform:uppercase;
  letter-spacing:.16em; font-size:.74rem; color:var(--terracotta);
  margin:0 0 .9em;
}
.eyebrow-light{color:var(--ochre);}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.55rem;
  font-family:var(--font-body); font-weight:600; font-size:.95rem;
  padding:.9rem 1.6rem; border-radius:999px; text-decoration:none;
  border:1px solid transparent; transition:transform .25s var(--ease), background .25s var(--ease), box-shadow .25s var(--ease);
  white-space:nowrap;
}
.btn svg{width:1.1em; height:1.1em;}
.btn-large{padding:1.05rem 2rem; font-size:1rem;}
.btn-small{padding:.55rem 1.1rem; font-size:.85rem;}
.btn-terracotta{background:var(--terracotta); color:var(--paper);}
.btn-terracotta:hover{background:var(--terracotta-dark); transform:translateY(-2px); box-shadow:0 10px 24px -10px rgba(193,89,46,.55);}
.btn-ghost-light{background:transparent; color:var(--paper); border-color:var(--line-light);}
.btn-ghost-light:hover{background:rgba(245,240,228,.12); transform:translateY(-2px);}

/* ---------- Header ---------- */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  transition:background .35s var(--ease), box-shadow .35s var(--ease), padding .35s var(--ease);
  padding-block:1.1rem;
}
.site-header.scrolled{
  background:rgba(24,34,41,.92); backdrop-filter:blur(10px);
  box-shadow:0 8px 30px -12px rgba(0,0,0,.4); padding-block:.65rem;
}
.site-header.solid{background:var(--ink);}
.header-row{display:flex; align-items:center; gap:2rem; position:relative; z-index:2;}
.brand{
  display:flex; align-items:center; gap:.55rem; text-decoration:none;
  font-family:var(--font-display); font-size:1.25rem; font-weight:600; color:var(--paper);
  margin-right:auto;
}
.brand svg{width:26px; height:26px; color:var(--paper);}
.main-nav{display:flex; gap:1.9rem; margin-right:1rem;}
.main-nav a{
  color:var(--paper); text-decoration:none; font-size:.92rem; font-weight:500;
  opacity:.86; position:relative; padding-bottom:.2rem;
}
.main-nav a::after{
  content:""; position:absolute; left:0; right:100%; bottom:0; height:1px; background:var(--ochre);
  transition:right .3s var(--ease);
}
.main-nav a:hover{opacity:1;}
.main-nav a:hover::after{right:0;}
.header-cta{flex-shrink:0;}
.lang-switch{position:relative; flex-shrink:0;}
.lang-current{
  background:none; border:1px solid var(--line-light); color:var(--paper);
  font-family:var(--font-body); font-size:.76rem; font-weight:700; letter-spacing:.03em;
  padding:.4rem .7rem; border-radius:999px; cursor:pointer;
  transition:background .25s var(--ease), border-color .25s var(--ease);
}
.lang-current:hover{background:rgba(245,240,228,.12); border-color:var(--paper);}
.lang-menu{
  position:absolute; top:calc(100% + .5rem); right:0; z-index:10;
  background:var(--ink); border:1px solid var(--line-light); border-radius:10px;
  list-style:none; margin:0; padding:.4rem; min-width:9rem;
  box-shadow:0 14px 32px -12px rgba(0,0,0,.5);
}
.lang-menu[hidden]{display:none;}
.lang-menu li{margin:0;}
.lang-menu button{
  display:block; width:100%; text-align:left; background:none; border:none; cursor:pointer;
  color:var(--sand); font-family:var(--font-body); font-size:.86rem; font-weight:500;
  padding:.5rem .6rem; border-radius:6px; transition:background .2s var(--ease), color .2s var(--ease);
}
.lang-menu button:hover{background:rgba(245,240,228,.1); color:var(--paper);}
.lang-menu button.active{color:var(--ochre); font-weight:700;}
.nav-toggle{display:none;}

.mobile-nav{
  display:none;
}

@media (max-width: 880px){
  .main-nav, .header-cta{display:none;}
  .nav-toggle{
    display:flex; flex-direction:column; justify-content:center; gap:5px;
    width:38px; height:34px; background:none; border:none; cursor:pointer; padding:0;
  }
  .nav-toggle span{display:block; height:2px; width:100%; background:var(--paper); border-radius:2px; transition:transform .3s var(--ease), opacity .3s var(--ease);}
  .nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
  .nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

  .mobile-nav{
    position:fixed; inset:0; top:0; z-index:1;
    background:var(--ink); display:flex; flex-direction:column;
    justify-content:center; align-items:flex-start; gap:1.6rem;
    padding:6rem 2rem 3rem;
    transform:translateY(-8px); opacity:0; visibility:hidden;
    transition:opacity .3s var(--ease), transform .3s var(--ease), visibility .3s;
  }
  .mobile-nav.open{opacity:1; transform:translateY(0); visibility:visible;}
  .mobile-nav a{color:var(--paper); text-decoration:none; font-family:var(--font-display); font-weight:500; font-size:1.7rem;}
  .mobile-nav .btn{margin-top:1rem;}
}

/* ---------- Hero ---------- */
.hero{position:relative; min-height:100svh; display:flex; align-items:flex-end; color:var(--paper); overflow:hidden;}
.hero-media{position:absolute; inset:0; z-index:0;}
.hero-media img{width:100%; height:100%; object-fit:cover; object-position:center 62%;}
.hero-scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(to top, rgba(15,20,24,.92) 0%, rgba(15,20,24,.55) 38%, rgba(15,20,24,.18) 62%, rgba(15,20,24,.35) 100%);
}
.hero-content{position:relative; z-index:1; padding-bottom:clamp(3rem,8vh,5.5rem); padding-top:9rem;}
.hero-lede{max-width:36em; font-size:clamp(1rem,1.6vw,1.18rem); color:rgba(245,240,228,.86);}
.hero-actions{display:flex; gap:1rem; flex-wrap:wrap; margin-top:1.8rem;}
.hero h1{color:var(--paper); max-width:16em;}

/* ---------- Meta strip ---------- */
.meta-strip{
  background:var(--ink); color:var(--linen); overflow:hidden; border-bottom:1px solid var(--line-light);
}
.meta-strip-track{
  display:flex; gap:3rem; padding:1.1rem var(--pad);
  animation:scroll-strip 32s linear infinite;
  width:max-content;
}
.meta-strip-track span{
  display:flex; align-items:center; gap:.55rem; white-space:nowrap;
  font-size:.85rem; font-weight:500; letter-spacing:.02em; color:var(--sand);
}
.meta-strip-track svg{width:18px; height:18px; color:var(--ochre); flex-shrink:0;}
@keyframes scroll-strip{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}
@media (prefers-reduced-motion: reduce){
  .meta-strip-track{animation:none; overflow-x:auto;}
}

/* ---------- Reveal ---------- */
.reveal{opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease), transform .8s var(--ease);}
.reveal.in-view{opacity:1; transform:translateY(0);}

/* ---------- Story ---------- */
.story{padding-block:clamp(4.5rem,10vh,7.5rem);}
.story-row{display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2rem,5vw,5rem); align-items:center; margin-bottom:clamp(4rem,9vh,6.5rem);}
.story-row:last-child{margin-bottom:0;}
.story-row-reverse{grid-template-columns:1.15fr .85fr;}
.story-row-reverse .story-text{order:2;}
.story-row-reverse .story-media{order:1;}
.story-text p{max-width:32em;}
.story-media{position:relative;}
.story-media figure{margin:0;}
.story-media img{border-radius:var(--radius); width:100%; aspect-ratio:4/3.2; object-fit:cover;}
.story-media-small{position:absolute; width:52%; bottom:-10%; right:-12%; box-shadow:0 30px 50px -20px rgba(24,34,41,.4); border:6px solid var(--linen);}
.story-media-small img{aspect-ratio:1/1;}

@media (max-width: 860px){
  .story-row, .story-row-reverse{grid-template-columns:1fr; gap:2.2rem;}
  .story-row-reverse .story-text, .story-row-reverse .story-media{order:initial;}
  .story-media-small{position:static; width:100%; margin-top:1rem; border-width:4px;}
}

/* ---------- Gallery ---------- */
.gallery{padding-block:clamp(4rem,9vh,7rem); background:var(--linen-2);}
.section-head{max-width:40em; margin-bottom:clamp(2rem,5vh,3.2rem);}
.section-lede{font-size:1.02rem;}

.masonry{
  columns:3 220px; column-gap:1rem;
}
.g-item{
  display:block; width:100%; margin:0 0 1rem; padding:0; border:none; background:none; cursor:pointer;
  border-radius:var(--radius); overflow:hidden; break-inside:avoid; position:relative;
}
.g-item img{width:100%; display:block; transition:transform .6s var(--ease);}
.g-item::after{
  content:"⤢"; position:absolute; top:.7rem; right:.7rem; width:2rem; height:2rem;
  background:rgba(24,34,41,.55); color:var(--paper); border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-size:.9rem;
  opacity:0; transition:opacity .3s var(--ease);
}
.g-item:hover img{transform:scale(1.05);}
.g-item:hover::after{opacity:1;}
.g-item.span-tall img{aspect-ratio:3/4.3; object-fit:cover;}
.g-item.span-wide img{aspect-ratio:16/10; object-fit:cover;}
.g-item:not(.span-tall):not(.span-wide) img{aspect-ratio:1/1; object-fit:cover;}

@media (max-width: 720px){
  .masonry{columns:2 160px;}
}
@media (max-width: 480px){
  .masonry{columns:1;}
}

/* ---------- Route / Quartier ---------- */
.route{padding-block:clamp(4.5rem,10vh,7.5rem);}
.route-diagram{margin:clamp(2rem,6vh,3.5rem) 0; color:var(--teal);}
.route-svg{width:100%; height:auto; overflow:visible;}
.route-path{stroke-dashoffset:0; transition:stroke-dashoffset 1.8s var(--ease);}
.route-diagram:not(.in-view) .route-path{stroke-dashoffset:900;}
.route-point circle{fill:var(--paper); stroke:var(--terracotta); stroke-width:2.5;}
.route-point text{font-family:var(--font-body); font-size:15px; font-weight:600; fill:var(--ink); text-anchor:middle;}
.route-point-home circle{fill:var(--terracotta); stroke:none; r:10;}
.route-home-icon{fill:var(--paper); stroke:none;}
.route-branch-label{font-size:12.5px; fill:var(--ink-soft); font-style:normal;}

.route-triptych{display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; margin-top:clamp(1.5rem,4vh,2.5rem);}
.route-triptych figure{margin:0;}
.route-triptych img{border-radius:var(--radius); aspect-ratio:4/3.4; object-fit:cover; width:100%;}
.route-triptych figcaption{margin-top:.6rem; font-size:.86rem; color:var(--ink-soft);}
@media (max-width: 720px){
  .route-triptych{grid-template-columns:1fr; }
}

/* ---------- Amenities ---------- */
.amenities{padding-block:clamp(4rem,9vh,7rem); background:var(--linen-2);}
.amenities-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(1.6rem,4vw,3rem);}
.amenity-group ul{list-style:none; margin:0; padding:0;}
.amenity-group li{
  padding:.6rem 0; border-top:1px solid var(--line); font-size:.96rem; color:var(--ink-soft);
}
.amenity-group li:last-child{border-bottom:1px solid var(--line);}
@media (max-width: 900px){
  .amenities-grid{grid-template-columns:repeat(2,1fr); row-gap:2.4rem;}
}
@media (max-width: 520px){
  .amenities-grid{grid-template-columns:1fr;}
}

/* ---------- Host ---------- */
.host{background:var(--ink); color:var(--linen); padding-block:clamp(4.5rem,10vh,7.5rem);}
.host-wrap{display:grid; grid-template-columns:1.2fr 1fr; gap:clamp(2rem,6vw,5rem); align-items:center;}
.host-text h2{color:var(--paper);}
.host-text p{color:rgba(245,240,228,.78); max-width:32em;}
.host-stats{display:flex; gap:clamp(1.5rem,4vw,3rem);}
.stat{display:flex; flex-direction:column;}
.stat-num{font-family:var(--font-display); font-size:clamp(2.6rem,5vw,4rem); font-weight:600; color:var(--ochre); line-height:1;}
.stat-label{font-size:.8rem; text-transform:uppercase; letter-spacing:.08em; color:var(--sand); margin-top:.6rem; line-height:1.35;}
@media (max-width: 760px){
  .host-wrap{grid-template-columns:1fr;}
  .host-stats{justify-content:space-between;}
}

/* ---------- Booking ---------- */
.booking{padding-block:clamp(4.5rem,10vh,7.5rem);}
.booking-wrap{display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(2rem,6vw,4rem); align-items:start;}
.booking-facts{list-style:none; margin:1.6rem 0; padding:0; display:grid; gap:.75rem;}
.booking-facts li{
  display:flex; gap:.9rem; font-size:1.02rem; color:var(--ink); padding-bottom:.75rem; border-bottom:1px solid var(--line);
}
.booking-facts li span:first-child{
  flex:0 0 6.5em; font-weight:600; color:var(--terracotta); text-transform:uppercase; font-size:.78rem; letter-spacing:.08em; padding-top:.2rem;
}
.booking-note{font-size:.9rem; color:var(--ink-soft);}
.booking-cta{display:flex; flex-direction:column; align-items:center; gap:1rem; position:sticky; top:7rem;}
@media (max-width: 760px){
  .booking-wrap{grid-template-columns:1fr;}
  .booking-cta{align-items:flex-start; position:static;}
}

/* ---------- Pricing table ---------- */
.pricing{margin:2.2rem 0; padding-top:2rem; border-top:1px solid var(--line);}
.pricing-label{
  font-family:var(--font-body); font-weight:600; text-transform:uppercase;
  letter-spacing:.14em; font-size:.72rem; color:var(--terracotta); margin:0 0 1rem;
}
.pricing-table{width:100%; border-collapse:collapse; font-size:.95rem;}
.pricing-table th{
  text-align:left; font-weight:600; text-transform:uppercase; font-size:.7rem; letter-spacing:.06em;
  color:var(--ink-soft); padding:0 0 .6rem; border-bottom:1px solid var(--line);
}
.pricing-table td{padding:.7rem 0; border-bottom:1px solid var(--line); color:var(--ink); vertical-align:top;}
.pricing-table th:last-child, .pricing-table td:last-child{text-align:right; font-variant-numeric:tabular-nums;}
.pricing-table td.placeholder{color:var(--terracotta); font-style:italic;}

/* ---------- Availability calendar ---------- */
.availability{margin:2.2rem 0; padding-top:2rem; border-top:1px solid var(--line);}
.availability-body{display:grid; grid-template-columns:1fr 1fr; gap:1.8rem;}
.availability-loading, .availability-fallback{font-size:.92rem; color:var(--ink-soft); grid-column:1/-1;}
.cal-month-label{font-family:var(--font-display); font-size:1.02rem; font-weight:600; margin:0 0 .7rem; text-transform:capitalize;}
.cal-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:3px;}
.cal-dow{font-size:.66rem; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-soft); text-align:center; padding-bottom:.35rem;}
.cal-day{
  aspect-ratio:1; display:flex; align-items:center; justify-content:center;
  font-size:.78rem; border-radius:3px; font-variant-numeric:tabular-nums;
}
.cal-day-empty{visibility:hidden;}
.cal-day-free{background:var(--paper); color:var(--ink); border:1px solid var(--line);}
.cal-day-booked{
  background:repeating-linear-gradient(135deg, var(--sand), var(--sand) 3px, var(--linen-2) 3px, var(--linen-2) 6px);
  color:var(--ink-soft);
}
.cal-day-past{color:var(--ink-soft); opacity:.35; background:none;}
.availability-legend{display:flex; align-items:center; gap:1.4rem; margin-top:1.1rem; font-size:.8rem; color:var(--ink-soft);}
.availability-legend[hidden]{display:none;}
.legend-dot{display:inline-block; width:13px; height:13px; border-radius:3px; margin-right:.4rem; vertical-align:-2px;}
.legend-free{background:var(--paper); border:1px solid var(--line);}
.legend-booked{background:repeating-linear-gradient(135deg, var(--sand), var(--sand) 3px, var(--linen-2) 3px, var(--linen-2) 6px);}
@media (max-width:640px){
  .availability-body{grid-template-columns:1fr;}
}

/* ---------- Airbnb fallback link ---------- */
.airbnb-fallback{
  font-size:.85rem; color:var(--ink-soft); text-decoration:none; text-align:center;
}
.airbnb-fallback span{color:var(--terracotta); font-weight:600;}
.airbnb-fallback:hover span{text-decoration:underline;}

/* ---------- Footer ---------- */
.site-footer{background:var(--ink); color:var(--sand); padding-block:clamp(2.5rem,6vh,3.5rem) 1.5rem;}
.footer-row{display:flex; flex-wrap:wrap; gap:2rem; align-items:flex-start; justify-content:space-between; padding-bottom:1.8rem; border-bottom:1px solid var(--line-light);}
.footer-brand span{font-family:var(--font-display); font-size:1.3rem; color:var(--paper); font-weight:600;}
.footer-brand p{margin:.4rem 0 0; font-size:.85rem; color:var(--sand);}
.footer-row nav{display:flex; gap:1.4rem; flex-wrap:wrap;}
.footer-row nav a{text-decoration:none; color:var(--sand); font-size:.9rem;}
.footer-row nav a:hover{color:var(--paper);}
.footer-whatsapp{text-decoration:none; color:var(--ochre); font-weight:600; font-size:.95rem;}
.footer-copy{margin:1.6rem 0 0; font-size:.78rem; color:var(--ink-soft); text-align:center;}
.footer-copy a{color:var(--sand); text-decoration:underline; text-underline-offset:2px;}
.footer-copy a:hover{color:var(--paper);}

/* ---------- Testimonials ---------- */
.testimonials{padding-block:clamp(4rem,9vh,7rem);}
.testimonials-badges{display:flex; align-items:center; gap:1rem; flex-wrap:wrap; margin-top:.8rem;}
.tb-rating{font-family:var(--font-display); font-size:1.5rem; font-weight:600; color:var(--ink);}
.tb-rating small{font-family:var(--font-body); font-size:.68rem; color:var(--ink-soft); font-weight:500;}
.tb-count, .tb-superhost{font-size:.85rem; color:var(--ink-soft); font-weight:500;}
.tb-sep{width:4px; height:4px; border-radius:50%; background:var(--sand); flex-shrink:0;}
.testimonials-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.4rem,4vw,2.2rem);
  margin-top:clamp(2rem,5vh,3rem);
}
.testimonial-card{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  padding:1.9rem 1.7rem;
}
.testimonial-quote-mark{
  font-family:var(--font-display); font-size:2.8rem; line-height:1; color:var(--terracotta);
  display:block; margin-bottom:.2rem;
}
.testimonial-text{font-size:.98rem; color:var(--ink); margin-bottom:1.1rem;}
.testimonial-attrib{font-size:.76rem; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-soft); font-weight:600; margin:0;}
@media (max-width:900px){
  .testimonials-grid{grid-template-columns:1fr;}
}

/* ---------- Standalone content pages (retour, mentions légales) ---------- */
.content-page{padding-block:clamp(7rem,16vh,9rem) clamp(4rem,10vh,6rem); min-height:70vh;}
.content-page .wrap{max-width:720px;}
.content-page h1{font-size:clamp(2rem,4.4vw,3rem); margin-bottom:.6rem;}
.content-page .lede{font-size:1.08rem; color:var(--ink-soft); max-width:34em;}
.content-page section{margin-top:2.6rem;}
.content-page h2{font-size:1.3rem;}
.content-page p{max-width:60ch;}
.content-page .back-link{display:inline-block; margin-top:.5rem; font-size:.9rem; color:var(--terracotta); font-weight:600; text-decoration:none;}
.content-page .back-link:hover{text-decoration:underline;}

/* ---------- Promo card (retour page) ---------- */
.promo-card{
  background:var(--ink); color:var(--paper); border-radius:var(--radius);
  padding:clamp(1.8rem,4vw,2.6rem); margin:2.2rem 0; position:relative;
  border:1px dashed var(--sand);
}
.promo-label{font-size:.74rem; text-transform:uppercase; letter-spacing:.14em; color:var(--ochre); font-weight:600; margin:0 0 .7rem;}
.promo-code{
  font-family:var(--font-display); font-size:clamp(2.2rem,6vw,3.2rem); font-weight:600;
  letter-spacing:.03em; color:var(--paper); margin:0 0 .6rem;
}
.promo-desc{color:rgba(245,240,228,.8); margin:0; max-width:32em;}

.retour-actions{display:flex; flex-direction:column; align-items:flex-start; gap:1.1rem; margin-top:.5rem;}

/* ---------- Lightbox ---------- */
.lightbox{
  position:fixed; inset:0; z-index:200; background:rgba(15,20,24,.94);
  display:flex; align-items:center; justify-content:center; padding:4vh 4vw;
}
.lightbox[hidden]{display:none;}
.lightbox figure{margin:0; max-width:min(90vw,1100px); text-align:center;}
.lightbox img{max-height:80vh; margin-inline:auto; border-radius:2px;}
.lightbox figcaption{color:var(--sand); margin-top:1rem; font-size:.92rem;}
.lightbox-close, .lightbox-nav{
  position:absolute; background:none; border:none; color:var(--paper); cursor:pointer;
  font-size:2rem; line-height:1; padding:.5rem;
}
.lightbox-close{top:1.2rem; right:1.5rem;}
.lightbox-prev{left:1rem; top:50%; transform:translateY(-50%); font-size:3rem;}
.lightbox-next{right:1rem; top:50%; transform:translateY(-50%); font-size:3rem;}
@media (max-width:640px){
  .lightbox-prev{left:.25rem;} .lightbox-next{right:.25rem;}
}
