/* =====================================================================
   With Love, Summer  -  style.css
   Shared styles for every page.
   Part 1: original homepage styles (preserved verbatim in look).
   Part 2: new components for the multi-page build.
   Palette and type are unchanged; everything new is built to match.
   ===================================================================== */

/* ---------- reset and tokens ---------- */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
:root {
  --ivory: #f8f6f2;
  --cream: #f0ede6;
  --warm: #e4dfd6;
  --sand: #c8b89a;
  --espresso: #1e1c18;
  --muted: #7a7268;
  --gold: #b89c6e;
}
html { scroll-behavior:smooth; }
body {
  background:var(--ivory); color:var(--espresso);
  font-family:'Jost',sans-serif; font-weight:300;
  overflow-x:hidden; cursor:none;
}
img { pointer-events:none; user-select:none; -webkit-user-drag:none; }
.img-wrap { position:relative; overflow:hidden; }
.img-wrap::after { content:''; position:absolute; inset:0; z-index:2; background:transparent; }

/* ---------- custom cursor ---------- */
.cursor {
  position:fixed; width:7px; height:7px; background:var(--gold);
  border-radius:50%; pointer-events:none; z-index:9999; transform:translate(-50%,-50%);
}
.cursor-ring {
  position:fixed; width:34px; height:34px; border:1px solid var(--gold);
  border-radius:50%; pointer-events:none; z-index:9998; transform:translate(-50%,-50%);
  transition:width 0.3s, height 0.3s, opacity 0.3s; opacity:0.5;
}

/* ---------- back to top ---------- */
.back-top {
  position:fixed; bottom:2rem; right:2rem; width:42px; height:42px;
  border-radius:50%; background:var(--espresso); border:1px solid rgba(184,156,110,0.4);
  display:flex; align-items:center; justify-content:center;
  z-index:200; cursor:none; text-decoration:none;
  opacity:0; transform:translateY(10px); transition:opacity 0.4s, transform 0.4s, background 0.3s;
}
.back-top.visible { opacity:1; transform:translateY(0); }
.back-top:hover { background:var(--gold); border-color:var(--gold); }
.back-top svg { width:13px; height:13px; stroke:var(--ivory); }

/* ---------- navigation ---------- */
nav {
  position:sticky; top:0; left:0; right:0; z-index:100;
  display:flex; justify-content:space-between; align-items:center;
  padding:1.2rem 3.5rem; background:var(--espresso);
}
.nav-logo {
  font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:300;
  font-size:1.05rem; letter-spacing:0.06em; color:var(--ivory); text-decoration:none;
}
.nav-centre {
  display:flex; gap:2.5rem; align-items:center;
  position:absolute; left:50%; transform:translateX(-50%);
}
.nav-link {
  font-size:0.6rem; letter-spacing:0.24em; text-transform:uppercase;
  color:rgba(248,246,242,0.55); text-decoration:none; transition:color 0.3s;
}
.nav-link:hover { color:var(--ivory); }
.nav-link.active { color:var(--gold); }                 /* active page marker */
.nav-right { display:flex; gap:1rem; align-items:center; }
.nav-btn {
  display:inline-flex; align-items:center; gap:0.5rem;
  font-size:0.6rem; letter-spacing:0.2em; text-transform:uppercase;
  text-decoration:none; padding:0.6rem 1.3rem; border-radius:2px;
  font-family:'Jost',sans-serif; font-weight:300; transition:all 0.3s;
}
.nav-btn.ig { color:rgba(248,246,242,0.7); border:1px solid rgba(248,246,242,0.2); }
.nav-btn.ig:hover { color:var(--ivory); border-color:rgba(248,246,242,0.5); }
.nav-btn.book { background:var(--gold); color:var(--espresso); border:1px solid var(--gold); }
.nav-btn.book:hover { background:transparent; color:var(--gold); }
.nav-btn svg { width:12px; height:12px; }

/* ---------- hero (homepage) ---------- */
#hero {
  position:relative; height:50vh; min-height:360px;
  display:flex; align-items:flex-end; overflow:hidden;
}
.hero-img {
  position:absolute; inset:-8%;
  background-image:url('/gallery/image2.jpg');
  background-size:cover; background-position:center 20%;
  will-change:transform; filter:brightness(0.68);
}
.hero-img::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(30,28,24,0.82) 0%, rgba(30,28,24,0.08) 55%, transparent 100%);
}
.hero-content { position:relative; z-index:2; padding:0 3.5rem 3.5rem; max-width:620px; }
.hero-eyebrow {
  font-size:0.6rem; letter-spacing:0.38em; text-transform:uppercase;
  color:var(--sand); margin-bottom:1rem;
  opacity:0; animation:fadeUp 1s 0.4s ease forwards;
}
.hero-title {
  font-family:'Cormorant Garamond',serif; font-weight:300; font-style:italic;
  font-size:clamp(2.2rem,5.5vw,4.2rem); line-height:0.97;
  color:var(--ivory); margin-bottom:1.2rem;
  opacity:0; animation:fadeUp 1s 0.6s ease forwards;
}
.hero-title span { font-style:normal; display:block; }
.hero-sub {
  font-size:0.7rem; letter-spacing:0.1em;
  color:rgba(248,246,242,0.62); line-height:1.85;
  opacity:0; animation:fadeUp 1s 0.85s ease forwards;
}
.hero-badges {
  position:absolute; bottom:3.5rem; right:3.5rem;
  display:flex; flex-direction:column; gap:0.5rem; align-items:flex-end;
  opacity:0; animation:fadeIn 1s 1.3s ease forwards;
}
.badge {
  font-size:0.54rem; letter-spacing:0.2em; text-transform:uppercase;
  color:var(--sand); border:1px solid rgba(184,156,110,0.3);
  padding:0.32rem 0.75rem; backdrop-filter:blur(4px); background:rgba(30,28,24,0.25);
}
@keyframes fadeUp { from { opacity:0; transform:translateY(22px); } to { opacity:1; transform:translateY(0); } }
@keyframes fadeIn { from { opacity:0; } to { opacity:1; } }

/* ---------- services strip ---------- */
.services-strip { display:grid; grid-template-columns:repeat(8,1fr); border-bottom:1px solid var(--warm); }
.service-tag {
  padding:1.2rem 0.5rem; text-align:center; border-right:1px solid var(--warm);
  font-size:0.55rem; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--muted); white-space:nowrap; transition:color 0.3s, background 0.3s;
}
.service-tag:last-child { border-right:none; }
.service-tag:hover { color:var(--espresso); background:var(--cream); }

/* ---------- intro strip ---------- */
.intro-strip { display:grid; grid-template-columns:1fr 1fr 1fr; border-bottom:1px solid var(--warm); }
.intro-item { padding:2.5rem; border-right:1px solid var(--warm); }
.intro-item:last-child { border-right:none; }
.intro-item .label {
  font-size:0.56rem; letter-spacing:0.3em; text-transform:uppercase;
  color:var(--gold); margin-bottom:0.7rem; display:block;
}
.intro-item p { font-size:0.76rem; color:var(--muted); line-height:1.78; letter-spacing:0.03em; }

/* ---------- cultures strip ---------- */
.cultures-strip { background:var(--cream); border-bottom:1px solid var(--warm); padding:1.4rem 0; overflow:hidden; position:relative; }
.cultures-label {
  position:absolute; left:3.5rem; top:50%; transform:translateY(-50%);
  font-size:0.54rem; letter-spacing:0.28em; text-transform:uppercase;
  color:var(--gold); white-space:nowrap; z-index:2;
  background:var(--cream); padding-right:1.5rem;
}
.cultures-strip::before {
  content:''; position:absolute; left:0; top:0; bottom:0;
  width:220px; z-index:1;
  background:linear-gradient(to right, var(--cream) 60%, transparent 100%);
}
.cultures-track {
  display:flex; align-items:center; gap:2.5rem;
  padding-left:240px; animation:scrollCultures 26s linear infinite;
  white-space:nowrap; width:max-content;
}
.cultures-track:hover { animation-play-state:paused; }
.culture-name { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1rem; font-weight:300; color:var(--muted); flex-shrink:0; }
.culture-dot { width:3px; height:3px; border-radius:50%; background:var(--sand); flex-shrink:0; display:inline-block; }
@keyframes scrollCultures { 0% { transform:translateX(0); } 100% { transform:translateX(-50%); } }

/* ---------- homepage gallery ---------- */
#gallery { padding:5rem 3rem; }
.gallery-header { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:3rem; }
.gallery-header h2 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(2rem,4vw,3rem); line-height:1.05; }
.gallery-header h2 em { font-style:italic; color:var(--muted); }
.gallery-header p { max-width:300px; font-size:0.72rem; color:var(--muted); line-height:1.85; letter-spacing:0.05em; text-align:right; }
.feature-row { display:grid; grid-template-columns:3fr 2fr; gap:1rem; margin-bottom:1rem; }
.f-img { overflow:hidden; max-height:560px; }
.f-img img {
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform 0.8s cubic-bezier(0.25,0.46,0.45,0.94);
  filter:brightness(0.97) saturate(0.93);
}
.f-img:hover img { transform:scale(1.04); filter:brightness(1) saturate(1); }
.masonry { columns:3; column-gap:1rem; }
.m-item { break-inside:avoid; margin-bottom:1rem; overflow:hidden; }
.m-item img {
  width:100%; display:block;
  transition:transform 0.8s cubic-bezier(0.25,0.46,0.45,0.94);
  filter:brightness(0.97) saturate(0.95);
}
.m-item:hover img { transform:scale(1.04); filter:brightness(1) saturate(1); }

/* "View full gallery" link below the homepage gallery */
.gallery-more { text-align:center; margin-top:3rem; }

/* ---------- quotes ---------- */
.quotes-section { background:var(--espresso); padding:6rem 3.5rem; text-align:center; position:relative; overflow:hidden; }
.quotes-section::before {
  content:'\201C'; position:absolute; top:-2.5rem; left:50%; transform:translateX(-50%);
  font-family:'Cormorant Garamond',serif; font-size:20rem;
  color:rgba(184,156,110,0.05); line-height:1; pointer-events:none;
}
.quote-wrap { position:relative; min-height:150px; }
.quote-slide {
  position:absolute; inset:0; display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  opacity:0; transition:opacity 0.9s ease; pointer-events:none;
}
.quote-slide.active { opacity:1; pointer-events:auto; position:relative; }
.quote-text { font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:300; font-size:clamp(1.4rem,2.8vw,2.4rem); color:var(--ivory); max-width:820px; margin:0 auto 1.5rem; line-height:1.5; }
.quote-attr { font-size:0.6rem; letter-spacing:0.32em; text-transform:uppercase; color:var(--gold); }
.quote-dots { display:flex; justify-content:center; gap:0.7rem; margin-top:2.5rem; }
.q-dot { width:6px; height:6px; border-radius:50%; background:rgba(184,156,110,0.3); border:none; cursor:none; transition:background 0.3s; padding:0; }
.q-dot.active { background:var(--gold); }

/* ---------- booking CTA (homepage) ---------- */
#booking { padding:7rem 3.5rem; display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.booking-left h2 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(2rem,3.8vw,3.2rem); line-height:1.05; margin-bottom:1.3rem; }
.booking-left h2 em { font-style:italic; color:var(--muted); }
.location-tag { display:inline-flex; align-items:center; gap:0.5rem; font-size:0.6rem; letter-spacing:0.22em; text-transform:uppercase; color:var(--gold); margin-bottom:1.4rem; }
.location-tag::before { content:''; width:20px; height:1px; background:var(--gold); }
.booking-left > p { font-size:0.76rem; letter-spacing:0.05em; color:var(--muted); line-height:1.95; margin-bottom:2.5rem; max-width:400px; }
.detail-list { list-style:none; display:flex; flex-direction:column; gap:0.85rem; margin-bottom:3rem; }
.detail-list li { display:flex; align-items:baseline; gap:1rem; font-size:0.7rem; letter-spacing:0.08em; color:var(--espresso); }
.detail-list li::before { content:''; width:22px; height:1px; background:var(--gold); flex-shrink:0; }
.booking-right { background:var(--cream); padding:3.5rem; border:1px solid var(--warm); display:flex; flex-direction:column; gap:1.5rem; }
.booking-right h3 { font-family:'Cormorant Garamond',serif; font-weight:300; font-style:italic; font-size:1.6rem; line-height:1.2; color:var(--espresso); }
.booking-right p { font-size:0.74rem; color:var(--muted); line-height:1.85; letter-spacing:0.04em; }
.booking-right p strong { color:var(--espresso); font-weight:400; }

/* Shared gold arrow button (homepage and sub pages) */
.btn-book-main {
  display:inline-flex; align-items:center; gap:1.2rem;
  text-decoration:none; transition:gap 0.35s ease; align-self:flex-start;
  font-family:'Jost',sans-serif; font-weight:300; font-size:0.7rem;
  letter-spacing:0.26em; text-transform:uppercase; color:var(--espresso);
}
.btn-book-main:hover { gap:2rem; }
.btn-book-main .btn-arrow { width:48px; height:48px; border-radius:50%; border:1px solid var(--gold); display:flex; align-items:center; justify-content:center; transition:background 0.3s; }
.btn-book-main:hover .btn-arrow { background:var(--gold); }
.btn-book-main .btn-arrow svg { width:15px; height:15px; stroke:var(--gold); transition:stroke 0.3s; }
.btn-book-main:hover .btn-arrow svg { stroke:var(--ivory); }
.btn-book-main.on-dark { color:var(--ivory); }          /* variant for dark sections */

/* ---------- footer ---------- */
footer {
  background:var(--espresso); padding:2.8rem 3.5rem;
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1.4rem;
  border-top:1px solid rgba(255,255,255,0.05);
}
.footer-logo { font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:300; font-size:1rem; color:var(--ivory); letter-spacing:0.06em; }
.footer-links { display:flex; gap:2.5rem; }
footer a { font-size:0.6rem; letter-spacing:0.24em; text-transform:uppercase; color:var(--muted); text-decoration:none; transition:color 0.3s; }
footer a:hover { color:var(--gold); }
.footer-legal { display:flex; gap:1rem; align-items:center; }
.footer-legal a { font-size:0.54rem; letter-spacing:0.18em; }
.footer-sep { color:rgba(122,114,104,0.4); font-size:0.54rem; }
.footer-copy { font-size:0.58rem; letter-spacing:0.1em; color:rgba(122,114,104,0.45); }

/* ---------- scroll reveal ---------- */
.reveal { opacity:0; transform:translateY(30px); transition:opacity 0.9s ease, transform 0.9s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }
.reveal-delay-1 { transition-delay:0.12s; }
.reveal-delay-2 { transition-delay:0.25s; }


/* =====================================================================
   PART 2  -  new components for the multi-page site
   ===================================================================== */

/* ---------- compact page header (used on gallery, booking, faq, legal) ---------- */
.page-head {
  position:relative; background:var(--espresso); color:var(--ivory);
  padding:5rem 3.5rem 4rem; overflow:hidden;
}
.page-head::after {
  content:''; position:absolute; inset:0;
  background:radial-gradient(circle at 80% 20%, rgba(184,156,110,0.08), transparent 60%);
  pointer-events:none;
}
.page-head .eyebrow {
  position:relative; z-index:1;
  font-size:0.6rem; letter-spacing:0.38em; text-transform:uppercase;
  color:var(--sand); margin-bottom:1rem;
}
.page-head h1 {
  position:relative; z-index:1;
  font-family:'Cormorant Garamond',serif; font-weight:300; font-style:italic;
  font-size:clamp(2.2rem,5vw,3.8rem); line-height:1; color:var(--ivory); margin-bottom:1rem;
}
.page-head h1 span { font-style:normal; }
.page-head .lead {
  position:relative; z-index:1; max-width:560px;
  font-size:0.78rem; letter-spacing:0.04em; line-height:1.9; color:rgba(248,246,242,0.62);
}

/* generic content wrapper for sub pages */
.page-section { padding:5rem 3.5rem; }

/* ---------- gallery page: category tiles ---------- */
.gallery-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:1rem;
}
.gallery-tile {
  position:relative; overflow:hidden; aspect-ratio:4/5; cursor:none;
  background:var(--cream); border:1px solid var(--warm);
}
.gallery-tile img {
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform 0.8s cubic-bezier(0.25,0.46,0.45,0.94);
  filter:brightness(0.78) saturate(0.95);
}
.gallery-tile:hover img { transform:scale(1.05); filter:brightness(0.9) saturate(1); }
.gallery-tile::after {
  content:''; position:absolute; inset:0; z-index:2;
  background:linear-gradient(to top, rgba(30,28,24,0.7) 0%, rgba(30,28,24,0.05) 60%, transparent 100%);
}
.gallery-tile .tile-label {
  position:absolute; left:1.4rem; bottom:1.3rem; z-index:3;
  font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:300;
  font-size:1.5rem; color:var(--ivory);
}
.gallery-tile .tile-count {
  position:absolute; left:1.4rem; bottom:0.8rem; z-index:3;
  font-size:0.52rem; letter-spacing:0.24em; text-transform:uppercase; color:var(--sand);
}

/* ---------- lightbox ---------- */
.lightbox {
  position:fixed; inset:0; z-index:1000; display:none;
  align-items:center; justify-content:center;
  background:rgba(20,18,16,0.94); backdrop-filter:blur(6px);
}
.lightbox.open { display:flex; }
.lightbox-stage { position:relative; max-width:88vw; max-height:82vh; }
.lightbox-stage img {
  max-width:88vw; max-height:82vh; object-fit:contain; display:block;
  box-shadow:0 30px 80px rgba(0,0,0,0.5);
}
.lb-close {
  position:absolute; top:1.6rem; right:1.8rem; z-index:1002;
  width:44px; height:44px; border-radius:50%; cursor:none;
  background:transparent; border:1px solid rgba(248,246,242,0.3);
  display:flex; align-items:center; justify-content:center; transition:all 0.3s;
}
.lb-close:hover { background:var(--gold); border-color:var(--gold); }
.lb-close svg { width:16px; height:16px; stroke:var(--ivory); }
.lb-nav {
  position:absolute; top:50%; transform:translateY(-50%); z-index:1001;
  width:52px; height:52px; border-radius:50%; cursor:none;
  background:transparent; border:1px solid rgba(248,246,242,0.25);
  display:flex; align-items:center; justify-content:center; transition:all 0.3s;
}
.lb-nav:hover { background:var(--gold); border-color:var(--gold); }
.lb-nav svg { width:18px; height:18px; stroke:var(--ivory); }
.lb-prev { left:2rem; }
.lb-next { right:2rem; }
.lb-counter {
  position:absolute; bottom:1.4rem; left:50%; transform:translateX(-50%); z-index:1002;
  font-size:0.58rem; letter-spacing:0.24em; text-transform:uppercase; color:var(--sand);
}
.lb-title {
  position:absolute; top:1.7rem; left:1.8rem; z-index:1002;
  font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.2rem; color:var(--ivory);
}

/* ---------- FAQ accordion ---------- */
.faq-wrap { max-width:820px; margin:0 auto; }
.faq-item { border-bottom:1px solid var(--warm); }
.faq-q {
  width:100%; text-align:left; cursor:none; background:transparent; border:none;
  display:flex; justify-content:space-between; align-items:center; gap:1.5rem;
  padding:1.6rem 0; font-family:'Cormorant Garamond',serif; font-weight:400;
  font-size:1.15rem; color:var(--espresso); transition:color 0.3s;
}
.faq-q:hover { color:var(--gold); }
.faq-q .faq-icon { flex-shrink:0; width:16px; height:16px; position:relative; }
.faq-q .faq-icon::before,
.faq-q .faq-icon::after {
  content:''; position:absolute; background:var(--gold); transition:transform 0.3s;
}
.faq-q .faq-icon::before { top:50%; left:0; width:100%; height:1px; transform:translateY(-50%); }
.faq-q .faq-icon::after { left:50%; top:0; width:1px; height:100%; transform:translateX(-50%); }
.faq-item.open .faq-q .faq-icon::after { transform:translateX(-50%) scaleY(0); }
.faq-a { max-height:0; overflow:hidden; transition:max-height 0.4s ease; }
.faq-a-inner { padding:0 0 1.6rem; font-size:0.8rem; color:var(--muted); line-height:1.95; letter-spacing:0.03em; max-width:680px; }

/* ---------- booking page embed ---------- */
.booking-intro { max-width:680px; margin:0 auto 3rem; text-align:center; }
.booking-intro p { font-size:0.82rem; color:var(--muted); line-height:1.95; letter-spacing:0.03em; }
.booking-intro p + p { margin-top:1rem; }
.booking-intro .email-line { margin-top:1.5rem; font-size:0.7rem; letter-spacing:0.06em; color:var(--espresso); }
.booking-intro .email-line a { color:var(--gold); text-decoration:none; }
.form-frame {
  max-width:760px; margin:0 auto; background:var(--cream);
  border:1px solid var(--warm); padding:0.5rem;
}
.form-frame iframe { width:100%; min-height:1400px; border:none; display:block; background:var(--cream); }

/* ---------- legal / prose pages ---------- */
.prose { max-width:760px; margin:0 auto; }
.prose .updated { font-size:0.6rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold); margin-bottom:2.5rem; }
.prose h2 {
  font-family:'Cormorant Garamond',serif; font-weight:400; font-style:italic;
  font-size:1.5rem; color:var(--espresso); margin:2.6rem 0 0.9rem;
}
.prose h2:first-of-type { margin-top:0; }
.prose p { font-size:0.8rem; color:var(--muted); line-height:1.95; letter-spacing:0.02em; margin-bottom:1rem; }
.prose ul { list-style:none; margin:0 0 1.2rem; }
.prose li {
  position:relative; padding-left:1.4rem; margin-bottom:0.6rem;
  font-size:0.8rem; color:var(--muted); line-height:1.85; letter-spacing:0.02em;
}
.prose li::before { content:''; position:absolute; left:0; top:0.7rem; width:14px; height:1px; background:var(--gold); }
.prose a { color:var(--gold); text-decoration:none; }
.prose a:hover { text-decoration:underline; }

/* ---------- cookie banner ---------- */
.cookie-banner {
  position:fixed; left:1.5rem; right:1.5rem; bottom:1.5rem; z-index:500;
  max-width:520px; margin:0 auto;
  display:none; align-items:center; gap:1.5rem; flex-wrap:wrap;
  background:var(--espresso); border:1px solid rgba(184,156,110,0.3);
  padding:1.2rem 1.4rem; box-shadow:0 16px 40px rgba(0,0,0,0.25);
}
.cookie-banner.show { display:flex; }
.cookie-text { flex:1; min-width:200px; font-size:0.66rem; line-height:1.7; letter-spacing:0.02em; color:rgba(248,246,242,0.7); }
.cookie-text a { color:var(--gold); text-decoration:none; }
.cookie-text a:hover { text-decoration:underline; }
.cookie-accept {
  cursor:none; flex-shrink:0; background:var(--gold); color:var(--espresso); border:1px solid var(--gold);
  font-family:'Jost',sans-serif; font-weight:300; font-size:0.6rem;
  letter-spacing:0.2em; text-transform:uppercase; padding:0.6rem 1.4rem; border-radius:2px; transition:all 0.3s;
}
.cookie-accept:hover { background:transparent; color:var(--gold); }


/* =====================================================================
   responsive
   ===================================================================== */
@media(max-width:900px){
  /* show the native cursor on touch / small screens */
  body { cursor:auto; }
  .cursor, .cursor-ring { display:none; }

  nav { padding:1rem 1.5rem; }
  .nav-centre { display:none; }

  #hero { height:42vh; min-height:300px; }
  .hero-content { padding:0 1.8rem 3rem; }
  .hero-badges { display:none; }

  .services-strip { grid-template-columns:repeat(4,1fr); }
  .intro-strip { grid-template-columns:1fr; }
  .intro-item { border-right:none; border-bottom:1px solid var(--warm); }
  .intro-item:last-child { border-bottom:none; }

  .cultures-label { left:1.5rem; }
  .cultures-strip::before { width:160px; }
  .cultures-track { padding-left:180px; }

  #gallery { padding:3rem 1.5rem; }
  .gallery-header { flex-direction:column; align-items:flex-start; gap:1rem; }
  .gallery-header p { text-align:left; max-width:100%; }
  .feature-row { grid-template-columns:1fr; }
  .feature-row .f-img:last-child { display:none; }
  .masonry { columns:2; }

  .quotes-section { padding:4rem 1.8rem; }
  #booking { grid-template-columns:1fr; gap:3rem; padding:5rem 1.8rem; }

  footer { flex-direction:column; gap:1.6rem; text-align:center; }
  .footer-links { flex-wrap:wrap; justify-content:center; }

  /* sub pages */
  .page-head { padding:3.5rem 1.8rem 3rem; }
  .page-section { padding:3rem 1.5rem; }
  .gallery-grid { grid-template-columns:repeat(2,1fr); gap:0.7rem; }
  .gallery-tile .tile-label { font-size:1.2rem; left:1rem; }
  .gallery-tile .tile-count { left:1rem; }

  .lb-prev { left:0.6rem; }
  .lb-next { right:0.6rem; }
  .lb-nav { width:44px; height:44px; }
  .lb-close { top:1rem; right:1rem; }
  .lb-title { top:1.1rem; left:1.1rem; font-size:1rem; }

  .form-frame iframe { min-height:1500px; }
  .cookie-banner { left:1rem; right:1rem; bottom:1rem; }
}

@media(max-width:480px){
  .gallery-grid { grid-template-columns:1fr; }
}
