/* ══════════════════════════════════════════════════════════
   Chania Photoshoot
   Palette is deliberately cool and quiet so the photographs
   carry all the warmth. Accent is Aegean shutter blue.
   ══════════════════════════════════════════════════════════ */

:root{
  /* Palette lifted from the previous site's own CSS variables, not
     re-invented. The cool blue-grey scheme that replaced it read as a
     template; this is the Mediterranean warmth that was already working. */
  --sand:#F5EFE0;          /* warm cream page background */
  --sand-dark:#EAE0CC;     /* section separation */
  --paper:#FDFAF5;         /* warm white — never pure white */
  --ink:#1A1612;           /* warm near-black for contrast sections */
  --ink-mid:#3D3530;
  --ink-70:rgba(26,22,18,.74);
  --ink-45:rgba(26,22,18,.52);
  --muted:#7A6E65;
  --terracotta:#B85C38;    /* primary accent + commercial CTAs */
  --terracotta-dk:#8F3E20;
  --tan:#C8956E;           /* eyebrow labels */
  --ocean:#2A5F7F;         /* secondary, non-commercial links */
  --line:rgba(26,22,18,.14);
  --line-soft:rgba(26,22,18,.08);
  --wrap:1200px;
  --r:2px;
  --s:clamp(60px,8vw,112px);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--sand);color:var(--ink);
  font-family:"Schibsted Grotesk",system-ui,-apple-system,Segoe UI,sans-serif;
  font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,picture{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3{font-family:Newsreader,Georgia,serif;font-weight:400;letter-spacing:-.012em;line-height:1.1;margin:0}
h1{font-size:clamp(34px,7.4vw,60px)}
h2{font-size:clamp(27px,4.4vw,40px)}
h3{font-size:clamp(19px,2.4vw,23px)}
h1 em,h2 em{font-style:italic;color:var(--terracotta)}
p{margin:0 0 1em}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:20px}
.narrow{max-width:660px}
.sec{padding-block:var(--s)}
.lede{font-size:clamp(17px,2.1vw,20px);color:var(--ink-70);max-width:58ch}
.sub{font-family:Newsreader,serif;font-style:italic;font-size:20px;color:var(--terracotta);margin:.2em 0 .6em}
.note{font-size:14.5px;color:var(--muted);max-width:56ch}
.hint{font-size:14px;color:var(--ink-45);margin-top:14px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;background:var(--ink);color:var(--paper);padding:10px 14px;z-index:99}
:focus-visible{outline:2px solid var(--terracotta);outline-offset:3px}

/* ── buttons ─────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  padding:14px 22px;border-radius:var(--r);text-decoration:none;
  font-weight:600;font-size:16px;line-height:1;border:1px solid transparent;
  background:var(--terracotta);color:#fff;min-height:48px;
}
.btn:hover{background:var(--terracotta-dk)}
.btn-sm{padding:11px 16px;font-size:15px;min-height:44px}
.btn-lg{padding:17px 28px;font-size:17.5px}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{background:var(--sand-dark)}
.wa-icon{width:19px;height:19px;flex:none}
.link{
  display:inline-block;color:var(--terracotta);text-decoration:none;font-weight:500;font-size:15.5px;
  border-bottom:1px solid rgba(184,92,56,.38);padding-bottom:1px;
}
.link:hover{border-bottom-color:var(--terracotta)}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:22px}

svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.stars{display:inline-flex;gap:1px;color:#C9922E;vertical-align:-2px}
.stars svg{width:15px;height:15px}

/* ── header ──────────────────────────────────────────────── */
.top{position:sticky;top:0;z-index:40;background:rgba(253,250,245,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.top-in{display:flex;align-items:center;gap:20px;min-height:62px}
.brand{font-family:Newsreader,serif;font-size:19px;text-decoration:none;letter-spacing:-.01em;white-space:nowrap}
.brand span{color:var(--terracotta)}
.brand span::before{content:" "}
.nav{display:none;gap:22px;margin-inline-start:auto;font-size:15.5px}
.nav a{text-decoration:none;color:var(--ink-70)}
.nav a:hover{color:var(--ink)}
.top-right{display:flex;align-items:center;gap:10px;margin-inline-start:auto}
.nav+.top-right{margin-inline-start:0}
.lang{position:relative}
.lang summary{list-style:none;cursor:pointer;font-size:14px;font-weight:600;color:var(--ink-70);padding:8px;border-radius:var(--r)}
.lang summary::-webkit-details-marker{display:none}
.lang ul{position:absolute;inset-inline-end:0;top:100%;margin:6px 0 0;padding:6px;list-style:none;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);min-width:130px;box-shadow:0 8px 26px rgba(26,22,18,.12)}
.lang a{display:block;padding:7px 10px;text-decoration:none;font-size:15px}
.lang a:hover{background:var(--sand-dark)}
.top-right .btn{display:none}

/* ── hero ────────────────────────────────────────────────── */
.hero-media img{width:100%;aspect-ratio:4/5;object-fit:cover}  /* matches the 1600×2000 portrait file */
.hero-copy{padding:26px 20px 30px;max-width:var(--wrap);margin-inline:auto}
.place{font-size:13px;letter-spacing:.08em;color:var(--ink-45);margin:0 0 12px}
.hero h1{margin-bottom:16px}
.facts{display:flex;flex-wrap:wrap;gap:0;list-style:none;margin:24px 0 0;padding:14px 0;border-block:1px solid var(--line)}
.facts li{font-size:15.5px;color:var(--ink-70);padding-inline-end:16px;margin-inline-end:16px;border-inline-end:1px solid var(--line)}
.facts li:last-child{border:0;margin:0;padding:0}
.facts b{font-weight:600;color:var(--ink);font-size:17px}

.trust{background:var(--ink);color:rgba(253,250,245,.82)}
.trust-in{display:flex;flex-wrap:wrap;gap:8px 22px;padding-block:13px;font-size:13.5px}
.trust span{display:inline-flex;align-items:center;gap:7px}

/* ── the work ────────────────────────────────────────────── */
.grid-work{columns:1;column-gap:6px;margin-top:34px}
.tile{margin:0 0 6px;cursor:zoom-in;break-inside:avoid}
.tile img{width:100%;height:auto}

/* ── cards ───────────────────────────────────────────────── */
.cards{display:grid;gap:20px;margin-top:34px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}
.card-media img{width:100%;aspect-ratio:4/5;object-fit:cover}
.card-body{padding:20px}
.card h3{margin-bottom:4px}
.card h3 a{text-decoration:none}
.card h3 a:hover{color:var(--terracotta)}
.tagline{color:var(--ink-45);font-size:15px;margin-bottom:14px}
.for-who{font-size:15.5px;color:var(--ink-70)}
.card-private{border-color:rgba(184,92,56,.30)}
.card-private .btn{background:var(--terracotta)}
.card-private .btn:hover{background:var(--terracotta-dk)}
.card-soon{background:transparent;border-style:dashed;padding:20px}
.badge{display:inline-block;font-size:12px;letter-spacing:.06em;color:var(--terracotta);border:1px solid var(--line);border-radius:var(--r);padding:4px 9px;margin:0 0 12px}

.spec{display:flex;gap:0;margin:0 0 14px;padding:12px 0;border-block:1px solid var(--line);flex-wrap:wrap}
.spec>div{padding-inline-end:18px;margin-inline-end:18px;border-inline-end:1px solid var(--line)}
.spec>div:last-child{border:0;margin:0;padding:0}
.spec dt{font-size:12px;color:var(--ink-45);margin-bottom:3px}
.spec dd{margin:0;font-size:16px;font-weight:500;font-variant-numeric:tabular-nums}
.spec .price{font-family:Newsreader,serif;font-size:25px;line-height:1}
.spec.big .price{font-size:34px}
.group-note{margin-top:26px}

/* ── add-ons ─────────────────────────────────────────────── */
.addons{background:var(--sand-dark)}
.addon-list{list-style:none;margin:34px 0 0;padding:0;display:grid;gap:4px}
.addon-list li{display:flex;gap:16px;padding:22px 0;border-top:1px solid var(--line)}
.addon-list .ic{flex:none;color:var(--terracotta)}
.addon-list .ic svg{width:26px;height:26px}
.addon-list h3{font-family:inherit;font-size:17px;font-weight:600;margin-bottom:5px}
.addon-list h3 b{font-family:Newsreader,serif;font-weight:400;color:var(--terracotta);font-size:19px}
.addon-list p{font-size:15.5px;color:var(--ink-70);margin-bottom:9px;max-width:52ch}

/* ── horizontal strips ───────────────────────────────────── */
.strip{
  display:flex;gap:6px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding:26px 20px;margin:0;-webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
}
.strip>*{flex:0 0 74%;scroll-snap-align:center;margin:0}
.shot{cursor:zoom-in}
.shot img{width:100%;aspect-ratio:4/5;object-fit:cover}
.gallery-head{margin-top:34px}
.gallery-head h3{margin-bottom:5px}
.gallery-head p{color:var(--ink-70);font-size:15.5px;max-width:54ch}

/* ── real / authenticity ─────────────────────────────────── */
.real{background:var(--ink);color:var(--paper)}
.real h2{margin-bottom:18px}
.real p{color:rgba(253,250,245,.78);font-size:clamp(17px,2vw,19px);max-width:56ch}

/* ── about ───────────────────────────────────────────────── */
.about-in{display:grid;gap:30px}
.about-media img{width:100%;aspect-ratio:4/5;object-fit:cover}
.about-copy h2{margin-bottom:18px}
.about-copy p{color:var(--ink-70);max-width:56ch}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:28px 0 0;padding-top:22px;border-top:1px solid var(--line)}
.stats dt{font-family:Newsreader,serif;font-size:23px;line-height:1.1}
.stats dd{margin:3px 0 0;font-size:13.5px;color:var(--ink-45)}

/* ── reviews ─────────────────────────────────────────────── */
.review{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}
.review-media{padding:24px 20px 0}
.review-media img{width:132px;height:132px;border-radius:50%;object-fit:cover;background:var(--sand-dark)}
.review-body{padding-top:16px}
.review-body{padding:20px}
.review blockquote{margin:12px 0 10px}
/* Long reviews are clamped only once JS confirms the toggle works.
   With JS off the full text is simply shown — nothing is hidden from
   a reader or a crawler. */
.review.is-clamped blockquote p{display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden}
.review-more{background:none;border:0;padding:0 0 10px;cursor:pointer;font:inherit;font-size:15px;color:var(--terracotta);text-decoration:underline;text-underline-offset:3px}
.review blockquote p{font-family:Newsreader,serif;font-size:17.5px;line-height:1.5;color:var(--ink);margin:0}
.who{font-size:14.5px;color:var(--ink-70);margin-bottom:8px}
.verified{font-size:12.5px;color:var(--ink-45);margin:0}

/* ── places ──────────────────────────────────────────────── */
.place-list{list-style:none;margin:30px 0 0;padding:0;display:grid;gap:0}
.place-list li{padding:14px 0;border-top:1px solid var(--line);font-size:15.5px}
.place-list b{font-weight:600}
.place-list span{color:var(--ink-45);display:block}

/* ── faq ─────────────────────────────────────────────────── */
.faq-list{margin-top:28px}
.faq-list details{border-top:1px solid var(--line)}
.faq-list summary{list-style:none;cursor:pointer;padding:18px 30px 18px 0;position:relative}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary h3{display:inline;font-family:inherit;font-size:17px;font-weight:600}
.faq-list summary::after{content:"+";position:absolute;inset-inline-end:2px;top:16px;font-size:22px;color:var(--terracotta);line-height:1}
.faq-list details[open] summary::after{content:"–"}
.faq-list details>p{color:var(--ink-70);padding-bottom:18px;margin:0;max-width:60ch;font-size:16px}

/* ── booking ─────────────────────────────────────────────── */
.book{background:var(--sand-dark)}
.fee{margin-top:16px;font-size:15px;color:var(--ink-70)}
.policy{margin-top:22px;border-top:1px solid var(--line);padding-top:14px}
.policy summary{cursor:pointer;font-weight:600;font-size:15.5px}
.policy p{font-size:14.5px;color:var(--ink-45);margin-top:12px;max-width:62ch}

/* ── misc pages ──────────────────────────────────────────── */
.crumbs{padding-block:18px;font-size:14px;color:var(--ink-45)}
.crumbs a{text-decoration:none;color:var(--terracotta)}
.crumbs b{font-weight:500;color:var(--ink-70)}
.exp-hero{padding-block:10px var(--s)}
.exp-hero-in{display:grid;gap:28px}
.exp-hero-media img{width:100%;aspect-ratio:4/5;object-fit:cover}
.exp-hero h1{margin-bottom:8px}
.narrow-sec{padding-block:calc(var(--s)*.55)}
.narrow-sec h2{margin-bottom:14px}
.ticks{list-style:none;margin:0;padding:0}
.ticks li{padding:9px 0 9px 26px;border-top:1px solid var(--line);position:relative;font-size:16px}
.ticks li::before{content:"";position:absolute;left:2px;top:17px;width:9px;height:9px;border:1.6px solid var(--terracotta);border-top:0;border-right:0;transform:rotate(-45deg)}
.lead{padding-top:20px}

/* ── footer ──────────────────────────────────────────────── */
.foot{background:var(--ink);color:rgba(253,250,245,.65);padding-block:44px;margin-top:0}
.foot-brand{font-family:Newsreader,serif;font-size:19px;color:var(--paper);margin-bottom:16px}
.foot nav{display:flex;flex-direction:column;gap:9px;margin-bottom:22px}
.foot a{color:rgba(253,250,245,.72);text-decoration:none;font-size:14.5px}
.foot a:hover{color:var(--paper)}
.foot-meta{font-size:13px;margin:0}

/* ── sticky mobile CTA ───────────────────────────────────── */
.sticky{
  position:fixed;left:0;right:0;bottom:0;z-index:45;
  padding:10px 16px calc(10px + env(safe-area-inset-bottom));
  background:linear-gradient(to top,rgba(253,250,245,.97) 62%,rgba(253,250,245,0));
  transform:translateY(110%);transition:transform .22s ease;
}
.sticky:not([hidden]){transform:translateY(0)}
.sticky .btn{width:100%;box-shadow:0 6px 22px rgba(26,22,18,.18)}

/* ── lightbox ────────────────────────────────────────────── */
.lb{border:0;padding:0;max-width:100vw;max-height:100dvh;width:100vw;height:100dvh;background:rgba(12,18,23,.97)}
.lb::backdrop{background:rgba(12,18,23,.9)}
.lb-fig{margin:0;height:100dvh;display:flex;align-items:center;justify-content:center;padding:44px 12px}
.lb-fig img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.lb button{position:absolute;background:rgba(255,255,255,.1);color:#fff;border:0;cursor:pointer;border-radius:var(--r);font-size:28px;line-height:1;width:48px;height:48px}
.lb-close{top:12px;inset-inline-end:12px;font-size:30px}
.lb-prev{left:10px;top:50%;transform:translateY(-50%)}
.lb-next{right:10px;top:50%;transform:translateY(-50%)}

/* ══════════════════════════════════════════════════════════
   DESKTOP
   ══════════════════════════════════════════════════════════ */
@media (min-width:720px){
  .grid-work{columns:2}
  .cards{grid-template-columns:repeat(2,1fr)}
  .stats{grid-template-columns:repeat(4,1fr)}
  .strip>*{flex-basis:42%}
  .foot nav{flex-direction:row;flex-wrap:wrap;gap:8px 22px}
  .place-list{grid-template-columns:1fr 1fr;column-gap:34px}
  .place-list span{display:inline;margin-inline-start:6px}
}

@media (min-width:900px){
  body{font-size:17.5px}
  .nav{display:flex}
  .top-right .btn{display:inline-flex}
  .hero{display:grid;grid-template-columns:minmax(0,44%) minmax(0,56%);align-items:center;gap:0;max-width:1440px;margin-inline:auto}
  .hero-media{order:2}
  .hero-media img{aspect-ratio:3/2;min-height:0}  /* matches the 2400×1600 landscape file — shown as shot */
  .hero-copy{padding:60px 56px 60px max(20px,calc((100vw - var(--wrap))/2))}
  .grid-work{columns:3;column-gap:8px}
  .tile{margin-bottom:8px}
  .cards{grid-template-columns:repeat(3,1fr)}
  .strip{padding-inline:max(20px,calc((100vw - var(--wrap))/2));gap:8px}
  .strip>*{flex-basis:30%}
  .about-in{grid-template-columns:38% 1fr;gap:52px;align-items:start}
  .exp-hero-in{grid-template-columns:1fr 42%;gap:48px;align-items:center}
  .sticky{display:none}
  .reviews-strip>*{flex-basis:34%}
}

@media (min-width:1100px){
  .strip>*{flex-basis:26%}
}

/* ── reduced motion ──────────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;transition-duration:.01ms !important;scroll-behavior:auto !important}
  .sticky{transition:none}
}

/* A card with no guest photograph still sits level with the ones that have one */
.review-text .review-body{padding-top:26px}

/* ══════════════════════════════════════════════════════════
   VISUAL REDESIGN PASS
   Section rhythm, editorial hero, photo-led cards.
   Appended last so it wins over the base rules above.
   ══════════════════════════════════════════════════════════ */

/* ── section rhythm ───────────────────────────────────────
   No two adjacent sections share a background. This is the
   single biggest reason the previous version read as a
   template: everything sat on one flat off-white. */
.surface-sand  {background:var(--sand)}
.surface-paper {background:var(--paper)}
.surface-deep  {background:var(--sand-dark)}
.surface-ink   {background:var(--ink);color:var(--paper)}
.surface-ink h2,.surface-ink h3{color:var(--paper)}
.surface-ink .lede,.surface-ink p{color:rgba(253,250,245,.78)}
.surface-ink em{color:var(--tan)}

/* ── eyebrow label ────────────────────────────────────────
   The cheapest device the old site had, and the one that did
   most of the work: a small tracked label above every H2. */
.eyebrow{
  display:block;font-size:12px;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--tan);margin:0 0 14px;
}
.surface-ink .eyebrow{color:var(--tan)}

/* ══ HERO ══════════════════════════════════════════════════
   The old desktop hero collapsed because .hero-copy carried
   padding-left: calc((100vw - wrap)/2). On a 1824px screen that
   is 332px of padding inside a 634px column, leaving 246px for a
   60px headline — so the H1 overflowed its grid column and the
   photograph painted on top of it. Replaced with a real grid and
   a hard minimum column width. */
.hero{background:var(--sand)}
/* On mobile the offer has to be visible with the photograph, not pushed
   under a paragraph. Reordered so the facts and primary CTA come first;
   desktop restores the natural reading order below. */
.hero-copy{padding:26px 20px 32px;display:flex;flex-direction:column}
.hero-copy .place{order:1}
.hero-copy h1{order:2;font-size:clamp(30px,7.6vw,42px);margin-bottom:18px}
.hero-copy .facts{order:3;margin:0 0 18px}
.hero-copy .cta-row{order:4;margin:0 0 24px}
.hero-copy .lede{order:5;font-size:16.5px;margin:0}
.hero .place{color:var(--tan);letter-spacing:.16em;text-transform:uppercase;font-weight:600}
.hero h1{letter-spacing:-.02em}

.facts{border-block:1px solid var(--line);align-items:baseline}
.facts li{color:var(--ink-70)}
.facts b{
  font-family:Newsreader,serif;font-weight:400;font-size:29px;
  color:var(--terracotta);line-height:1;
}

.trust{background:var(--ink);color:rgba(253,250,245,.8)}
.trust-in{padding-block:15px}

@media (min-width:900px){
  .hero{
    display:grid;
    /* The base rule above caps .hero at 1440px. Left unset, that cap
       combines with the gutter padding and squeezes both columns. */
    max-width:none;margin-inline:0;
    /* 40 / 60 — the photograph leads */
    grid-template-columns:minmax(360px,40fr) minmax(0,60fr);
    align-items:center;gap:clamp(32px,4vw,64px);
    /* Left gutter matches the .wrap container so the copy lines up with
       every section below it; the photograph runs to the right edge. */
    padding-inline:max(24px,calc((100vw - var(--wrap))/2)) 0;
  }
  .hero-copy{padding:clamp(40px,4vw,68px) 0;max-width:600px;display:block}
  .hero-copy .place,.hero-copy h1,.hero-copy .lede,
  .hero-copy .facts,.hero-copy .cta-row{order:0}
  .hero-copy .lede{margin-bottom:0}
  .hero-copy .cta-row{margin-top:26px}
  .hero-media{order:2;min-width:0}
  /* true 3:2, bled to the right edge, essentially uncropped */
  .hero-media img{aspect-ratio:3/2;width:100%;object-fit:cover;object-position:center}
  .hero h1{font-size:clamp(44px,4.2vw,68px)}
  .facts{margin-top:30px;padding-block:18px}
  .facts b{font-size:34px}
}


/* ══ THE WORK — editorial mosaic ═══════════════════════════
   Eight equal tiles read as a contact sheet. Spans are chosen so
   each row's heights resolve equal: a span-4 landscape at 3:2 and
   a span-2 portrait at 3:4 are the same height. */
.work{background:var(--paper)}
/* The base rule lays this out as a CSS multi-column masonry, which
   renders as N equal columns and ignores grid-column spans entirely.
   The mosaic needs real grid, so the multi-column props are reset. */
.grid-work{display:grid;columns:auto;column-gap:normal;gap:10px}
.tile{margin:0;break-inside:auto}
@media (min-width:900px){
  .grid-work{grid-template-columns:repeat(6,1fr);gap:12px}
  .tile{margin:0}
  .tile img{width:100%;height:100%;object-fit:cover}
  .grid-work>*:nth-child(1){grid-column:span 4}
  .grid-work>*:nth-child(2){grid-column:span 2}
  .grid-work>*:nth-child(3){grid-column:span 3}
  .grid-work>*:nth-child(4){grid-column:span 3}
  .grid-work>*:nth-child(5){grid-column:span 2}
  .grid-work>*:nth-child(6){grid-column:span 4}
  .grid-work>*:nth-child(7){grid-column:span 4}
  .grid-work>*:nth-child(8){grid-column:span 2}
  .grid-work>*:nth-child(1) img,
  .grid-work>*:nth-child(6) img,
  .grid-work>*:nth-child(7) img{aspect-ratio:3/2}
  .grid-work>*:nth-child(3) img,
  .grid-work>*:nth-child(4) img{aspect-ratio:3/2}
  .grid-work>*:nth-child(2) img,
  .grid-work>*:nth-child(5) img,
  .grid-work>*:nth-child(8) img{aspect-ratio:3/4}
}

/* ══ EXPERIENCES — photography-led ═════════════════════════ */
.exp{background:var(--sand)}
.cards{gap:22px}
.card{
  background:var(--paper);border:1px solid var(--line-soft);
  box-shadow:0 1px 0 rgba(26,22,18,.04);position:relative;
}
.card-media{display:block;position:relative;overflow:hidden}
.card-media img{aspect-ratio:4/5;transition:transform .5s ease}
.card:hover .card-media img{transform:scale(1.02)}
.card-body{padding:22px}
.card h3{font-size:clamp(21px,2.4vw,26px)}
.card .tagline{font-family:Newsreader,serif;font-style:italic;color:var(--terracotta);font-size:16px}
.spec .price{color:var(--terracotta);font-size:30px}
.spec dt{letter-spacing:.1em;text-transform:uppercase;font-size:10.5px;color:var(--muted)}

/* terracotta pill badge, sitting on the photograph */
.pill{
  position:absolute;top:14px;left:14px;z-index:2;
  background:var(--terracotta);color:#fff;
  font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  padding:6px 11px;border-radius:var(--r);
}
/* one dark card breaks the run of cream — the old site's trick */
.card-feature{background:var(--ink)}
.card-feature h3,.card-feature h3 a{color:var(--paper)}
.card-feature p,.card-feature .for-who{color:rgba(253,250,245,.76)}
.card-feature .spec{border-color:rgba(253,250,245,.18)}
.card-feature .spec dd{color:var(--paper)}
.card-feature .tagline,.card-feature .spec .price{color:var(--tan)}
.card-soon{background:transparent;border:1px dashed rgba(26,22,18,.26)}
.badge{color:var(--terracotta);border-color:var(--line)}

/* ══ REAL SESSIONS — on ink, so the photographs carry it ═══ */
.sessions{background:var(--ink);color:var(--paper)}
.sessions h2,.sessions h3{color:var(--paper)}
.sessions .lede,.sessions .gallery-head p{color:rgba(253,250,245,.76)}
.sessions .sub{color:var(--tan)}
.sessions .shot img{aspect-ratio:4/5}

/* ══ PLACES WE PHOTOGRAPH ══════════════════════════════════
   Inspiration and SEO, not a shopping mechanism. No prices, no
   counters, no selection state — every card leads to the same
   WhatsApp conversation. */
.places{background:var(--paper)}
.place-card{
  flex:0 0 74%;scroll-snap-align:center;margin:0;
  background:var(--sand);border:1px solid var(--line-soft);
}
.place-card img{aspect-ratio:4/5;width:100%;object-fit:cover}
.place-card .pc-body{padding:16px 18px 20px}
.place-card h3{font-size:20px;margin-bottom:5px}
.place-card p{font-size:14.5px;color:var(--muted);margin:0}
.place-card.no-photo{display:flex;align-items:center;min-height:180px}
.place-card.no-photo .pc-body{padding:24px}
.place-note{margin-top:26px;max-width:62ch}
/* the remaining street names stay in crawlable HTML */
.street-list{
  list-style:none;margin:30px 0 0;padding:22px 0 0;
  border-top:1px solid var(--line);
  display:grid;gap:10px 30px;
}
.street-list li{font-size:15.5px}
.street-list b{font-weight:600}
.street-list span{color:var(--muted);display:block}
@media (min-width:720px){
  .street-list{grid-template-columns:1fr 1fr}
  .street-list span{display:inline;margin-inline-start:6px}
  .place-card{flex-basis:44%}
}
@media (min-width:900px){.place-card{flex-basis:27%}}

/* ══ REVIEWS ═══════════════════════════════════════════════ */
.reviews{background:var(--sand-dark)}
.review{background:var(--paper);border:1px solid var(--line-soft)}
.review blockquote p{font-size:18px;color:var(--ink-mid)}
.review .verified{color:var(--tan);font-weight:600;letter-spacing:.06em;font-size:11.5px;text-transform:uppercase}
.review-media img{border:3px solid var(--sand)}
.review-text{background:var(--paper)}

/* ══ ABOUT ═════════════════════════════════════════════════ */
.about{background:var(--paper)}
.about .stats dt{color:var(--terracotta)}

/* ══ REAL PHOTOGRAPHY / AI BAND ════════════════════════════ */
.real{background:var(--terracotta);color:#fff}
.real h2{color:#fff}
.real p{color:rgba(255,255,255,.92)}
.real .eyebrow{color:rgba(255,255,255,.72)}

/* ══ ADD-ONS — moved below the emotional flow ══════════════ */
.addons{background:var(--sand)}
.addon-list li{border-top:1px solid var(--line)}
.addon-list .ic{color:var(--terracotta)}
.addon-list h3 b{color:var(--terracotta)}

/* ══ FAQ / BOOKING ═════════════════════════════════════════ */
.faq{background:var(--paper)}
.faq-list summary::after{color:var(--terracotta)}
.book{background:var(--ink);color:var(--paper)}
.book h2{color:var(--paper)}
.book .lede,.book .fee{color:rgba(253,250,245,.8)}
.book .policy{border-color:rgba(253,250,245,.2)}
.book .policy summary{color:var(--paper)}
.book .policy p{color:rgba(253,250,245,.6)}
.book .btn-wa{background:var(--terracotta)}
.book .btn-wa:hover{background:var(--terracotta-dk)}

/* ── header / footer ── */
.top{background:rgba(245,239,224,.94);border-bottom:1px solid var(--line)}
.brand span{color:var(--terracotta)}
.foot{background:var(--ink)}


/* Price / duration / photographs as three even columns — the flex
   version wrapped the third item onto its own line in narrow cards. */
.card .spec{display:grid;grid-template-columns:auto auto auto;gap:0}
.card .spec>div{padding-inline-end:14px;margin-inline-end:14px}
.card .spec dd{font-size:15px}
.card .spec .price{font-size:26px}
