/* =========================================================
   Saul 3.1 — shared design system for andrewdaviesfilm.com
   Edit here to change styles across the entire site.
   ========================================================= */

:root{
  /* Palette (Saul 3) */
  --sand:#D4BE90;          /* accent band surface */
  --parchment:#EDE4CF;     /* lead page surface */
  --terra:#A34035;         /* hero fallback, contact section */
  --gold:#E0B75F;          /* primary button, testimonial tint, quote marks — never text on light */
  --sand-title:#8B3020;    /* headings, labels, links — 6.5:1 parchment, 4.6:1 sand */
  --ink:#2E1D19;           /* Saul 3.1: body copy — 12.7:1 parchment, 8.9:1 sand */
  --sand-body:var(--ink);
  --sand-sub:#7A3522;      /* secondary text — 7.0:1 parchment, 4.9:1 sand */
  --sand-border:rgba(106,34,21,0.14);
  --terra-title:#F5EDE0;   /* all text on terra — 5.4:1 */
  --terra-sub:#F5EDE0;
  --card-bg:rgba(106,34,21,0.05);
  --card-border:rgba(106,34,21,0.14);
  --max:1200px;

  /* Surface roles: .content-section.sand = lead surface, .parchment = accent band */
  --surface-lead:var(--parchment);
  --surface-band:var(--sand);

  /* Type scale — ratio 1.25, 17px reading size */
  --fs-label:0.75rem;
  --fs-small:0.875rem;
  --fs-body:1.0625rem;
  --fs-lead:1.25rem;
  --fs-h3:1.5rem;
  --fs-h2:clamp(1.75rem,3vw,2.5rem);
  --fs-h1:clamp(2.4rem,5.5vw,4.25rem);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'DM Sans',system-ui,sans-serif;background:var(--sand);color:var(--sand-body);-webkit-font-smoothing:antialiased;}

/* ── Header & Nav ── */
header{position:sticky;top:0;z-index:100;background:var(--sand);box-shadow:0 2px 12px rgba(0,0,0,0.18);display:flex;align-items:center;justify-content:space-between;padding:1.1rem 2.5rem;}
.logo{font-weight:1000;font-size:1rem;letter-spacing:0.04em;text-transform:uppercase;color:var(--sand-title);text-decoration:none;}
nav ul{display:flex;gap:2rem;list-style:none;}
nav a{font-size:0.78rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--sand-sub);text-decoration:none;transition:color 0.2s;}
nav a:hover{color:var(--sand-title);}
.nav-cta{font-family:'DM Sans',system-ui,sans-serif;font-size:0.72rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--terra);text-decoration:none;border:1.5px solid var(--terra);padding:0.4rem 1rem;transition:background 0.2s,color 0.2s;white-space:nowrap;margin-left:1.5rem;}
.nav-cta:hover{background:var(--terra);color:#F5EDE0;}

/* ── Hero ── */
.page-hero{position:relative;padding:16rem 2.5rem 14rem;overflow:hidden;background:var(--terra);}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top center;z-index:0;}
.hero-overlay{position:absolute;inset:0;background:rgba(30,10,5,0.58);z-index:1;}
.hero-inner{position:relative;z-index:2;max-width:var(--max);margin:0 auto;}
.eyebrow{font-size:0.65rem;font-weight:700;letter-spacing:0.15em;text-transform:uppercase;color:rgba(245,237,224,0.7);margin-bottom:0.9rem;}
.page-title{font-family:'Source Serif 4',Georgia,serif;font-size:clamp(2rem,4.5vw,3.2rem);font-weight:500;color:#F5EDE0;line-height:1.15;margin-bottom:1rem;text-wrap:balance;}
.page-lede{font-size:clamp(1rem,1.8vw,1.2rem);color:rgba(245,237,224,0.8);line-height:1.65;max-width:580px;}
.hero-clients{margin-top:2rem;font-family:'DM Sans',system-ui,sans-serif;font-size:0.62rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:rgba(245,237,224,0.4);line-height:1.8;}

/* ── Breadcrumb ── */
.breadcrumb-nav{background:var(--sand);border-bottom:1px solid var(--sand-border);}
.breadcrumb{max-width:var(--max);margin:0 auto;padding:0.6rem 2.5rem;list-style:none;display:flex;gap:0;align-items:center;font-family:'DM Sans',system-ui,sans-serif;font-size:0.7rem;color:var(--sand-sub);}
.breadcrumb li+li::before{content:" › ";margin:0 0.4rem;opacity:0.5;}
.breadcrumb a{color:var(--sand-sub);text-decoration:none;}
.breadcrumb a:hover{color:var(--sand-title);}
.breadcrumb li[aria-current]{color:var(--sand-title);font-weight:700;}

/* ── Content sections ── */
.content-section{padding:4.5rem 2.5rem 5rem;}
.content-section.sand{background:var(--sand);}
.content-section.parchment{background:var(--parchment);}
.section-inner{max-width:var(--max);margin:0 auto;}
.body-inner{max-width:740px;margin:0 auto;}
.body-inner p{font-family:'Source Serif 4',Georgia,serif;font-size:1rem;line-height:1.8;color:var(--sand-body);margin-bottom:1.25rem;}
.body-inner p:last-child{margin-bottom:0;}
.body-inner h2{font-family:'Source Serif 4',Georgia,serif;font-size:clamp(1.4rem,2.5vw,1.9rem);font-weight:500;color:var(--sand-title);margin-bottom:1rem;line-height:1.2;text-wrap:balance;}
.body-inner h3{font-family:'DM Sans',system-ui,sans-serif;font-size:0.65rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--sand-sub);margin-top:2rem;margin-bottom:0.75rem;}
.body-inner a{color:var(--terra);text-decoration:underline;text-underline-offset:0.2em;}
.body-inner a:hover{opacity:0.8;}

/* ── Benefits list ── */
.benefit-list{list-style:none;border-top:1px solid var(--sand-border);margin-top:1.5rem;}
.benefit-list li{padding:1rem 0;border-bottom:1px solid var(--sand-border);}
.benefit-list strong{display:block;font-family:'DM Sans',system-ui,sans-serif;font-size:0.88rem;font-weight:700;color:var(--sand-title);margin-bottom:0.25rem;}
.benefit-list p{font-family:'DM Sans',system-ui,sans-serif;font-size:0.88rem;color:var(--sand-body);margin:0;line-height:1.6;}

/* ── Testimonial ── */
.testimonial-section{background:rgba(224,183,95,0.15);padding:4rem 2.5rem;}
.testimonial-inner{max-width:740px;margin:0 auto;}
.testimonial-inner blockquote{font-family:'Source Serif 4',Georgia,serif;font-size:1.2rem;font-style:italic;color:var(--sand-body);line-height:1.7;margin-bottom:1rem;}
.testimonial-inner cite{font-size:0.78rem;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:var(--sand-sub);font-style:normal;}
.testimonial-inner cite a{color:var(--sand-sub);}

/* ── Tables ── */
.compare-table,.pricing-table{width:100%;border-collapse:collapse;margin-top:1.25rem;font-size:0.85rem;}
.compare-table th,.pricing-table th{font-family:'DM Sans',system-ui,sans-serif;font-size:0.62rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--sand-sub);padding:0.6rem 0.75rem;border-bottom:2px solid var(--sand-border);text-align:left;}
.compare-table td,.pricing-table td{font-family:'DM Sans',system-ui,sans-serif;padding:0.75rem;border-bottom:1px solid var(--sand-border);color:var(--sand-body);line-height:1.5;vertical-align:top;}
.compare-table td:first-child{font-weight:700;color:var(--sand-title);white-space:nowrap;}
.compare-table td:nth-child(2){color:var(--sand-title);}
.compare-table tr:last-child td,.pricing-table tr:last-child td{border-bottom:none;}
.pricing-table td:first-child{font-weight:600;color:var(--sand-title);}
.pricing-table td:nth-child(2){font-weight:700;color:var(--terra);white-space:nowrap;}

/* ── FAQ ── */
.faq-list{list-style:none;border-top:1px solid var(--sand-border);margin-top:1.5rem;}
.faq-list li{padding:1.25rem 0;border-bottom:1px solid var(--sand-border);}
.faq-list strong{display:block;font-family:'DM Sans',system-ui,sans-serif;font-size:0.88rem;font-weight:700;color:var(--sand-title);margin-bottom:0.4rem;}
.faq-list p{font-family:'DM Sans',system-ui,sans-serif;font-size:0.85rem;color:var(--sand-body);margin:0;line-height:1.6;}
.faq-accordion{border-top:1px solid var(--sand-border);margin-top:1.5rem;}
.faq-item{border-bottom:1px solid var(--sand-border);}
.faq-item summary{font-family:'DM Sans',system-ui,sans-serif;font-size:0.88rem;font-weight:700;color:var(--sand-title);padding:1.1rem 0;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+";font-size:1.1rem;font-weight:400;color:var(--sand-sub);flex-shrink:0;transition:transform 0.2s;}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item .faq-a{font-family:'DM Sans',system-ui,sans-serif;font-size:0.85rem;color:var(--sand-body);padding:0 0 1.1rem 0;line-height:1.65;margin:0;}

/* ── Video ── */
.video-embed{margin:2rem 0;width:100%;}
.video-embed iframe{width:100%;aspect-ratio:16/9;display:block;border:0;}
.video-caption{font-family:'DM Sans',system-ui,sans-serif;font-size:0.7rem;color:var(--sand-sub);margin-top:0.55rem;line-height:1.5;}
.video-caption a{color:var(--sand-sub);}

/* ── Contact form ── */
.contact-section{background:var(--terra);padding:4.5rem 2.5rem;}
.contact-inner{max-width:620px;margin:0 auto;}
.contact-inner h2{font-family:'Source Serif 4',Georgia,serif;font-size:clamp(1.6rem,3vw,2.2rem);font-weight:500;color:var(--terra-title);margin-bottom:0.75rem;line-height:1.2;text-wrap:balance;}
.contact-lede{font-size:0.95rem;color:var(--terra-sub);margin-bottom:2rem;line-height:1.6;}
.contact-lede a{color:var(--gold);text-decoration:underline;text-underline-offset:0.2em;}
.contact-form{display:flex;flex-direction:column;gap:1.1rem;}
.form-row{display:flex;flex-direction:column;gap:0.4rem;}
.form-row label{font-family:'DM Sans',system-ui,sans-serif;font-size:0.72rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:rgba(245,237,224,0.7);}
.contact-form input,.contact-form textarea{background:rgba(30,10,5,0.35);border:1px solid rgba(245,237,224,0.2);padding:0.8rem 1rem;font-family:'DM Sans',system-ui,sans-serif;font-size:0.95rem;color:var(--terra-title);transition:border-color 0.2s;}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:rgba(245,237,224,0.35);}
.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--gold);}
.contact-form textarea{resize:vertical;min-height:120px;}
.form-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.form-status{font-family:'DM Sans',system-ui,sans-serif;font-size:0.9rem;color:rgba(245,237,224,0.7);min-height:1.4em;}
.form-note{font-family:'DM Sans',system-ui,sans-serif;font-size:0.78rem;color:rgba(245,237,224,0.45);margin-top:-0.25rem;}

/* ── CTA strip ── */
.cta-strip{background:var(--terra);padding:3.5rem 2.5rem;text-align:center;}
.cta-strip h2{font-family:'Source Serif 4',Georgia,serif;font-size:clamp(1.4rem,3vw,2rem);font-weight:500;color:var(--terra-title);margin-bottom:1rem;}
.cta-strip p{font-size:0.95rem;color:var(--terra-sub);margin-bottom:1.75rem;}
.btn-cta{display:inline-block;background:var(--gold);color:#3a1a08;font-family:'DM Sans',system-ui,sans-serif;font-size:0.78rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;padding:0.9rem 2rem;text-decoration:none;transition:opacity 0.2s;border:none;-webkit-appearance:none;appearance:none;cursor:pointer;border-radius:0;}
.btn-cta:hover{opacity:0.85;}

/* ── Footer ── */
footer{background:var(--sand);border-top:1px solid var(--sand-border);padding:3rem 2.5rem;}
.footer-grid{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1fr 2fr 1fr;gap:3rem;}
.footer-brand .footer-logo{font-weight:1000;font-size:0.9rem;letter-spacing:0.04em;text-transform:uppercase;color:var(--sand-title);text-decoration:none;display:block;margin-bottom:0.75rem;}
.footer-brand p{font-size:0.78rem;color:var(--sand-sub);line-height:1.6;}
.footer-col h4{font-size:0.62rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--sand-sub);margin-bottom:0.85rem;}
.footer-col ul{list-style:none;}
.footer-col li{margin-bottom:0.45rem;}
.footer-col a{font-size:0.82rem;color:var(--sand-body);text-decoration:none;transition:color 0.2s;}
.footer-col a:hover{color:var(--sand-title);}
.footer-copy{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--sand-border);font-size:0.75rem;color:var(--sand-sub);max-width:var(--max);margin-inline:auto;}

/* ── Scroll reveal ── */
.reveal{opacity:0;transform:translateY(24px);transition:opacity 0.55s ease,transform 0.55s ease;}
.reveal.in{opacity:1;transform:none;}

/* ── Mobile ── */
@media(max-width:760px){
  header{padding:1rem 1.25rem;}
  nav ul{gap:1.2rem;}
  .nav-cta{display:none;}
  .page-hero{padding:10rem 1.25rem 8rem;}
  .content-section,.testimonial-section{padding-inline:1.25rem;}
  .footer-grid{grid-template-columns:1fr;gap:2rem;}
  footer{padding:2rem 1.25rem;}
  .cta-strip{padding:2.5rem 1.25rem;}
  .compare-table,.pricing-table{font-size:0.78rem;}
  .compare-table td,.pricing-table td{padding:0.6rem 0.4rem;}
  .pricing-table td:nth-child(2){white-space:normal;}
  .breadcrumb{padding-inline:1.25rem;}
}

/* =========================================================
   Saul 3.1 refinements (dembrandt-skills review, 2026-10-20)
   ========================================================= */

/* ── Page surface: parchment leads, sand is the accent band ── */
body{background:var(--parchment);color:var(--ink);}
.content-section.sand{background:var(--surface-lead);}
.content-section.parchment{background:var(--surface-band);}
.content-section{padding-block:6rem;}

/* ── Header: quiet, translucent, one hairline instead of a shadow ── */
header{background:rgba(237,228,207,0.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:none;border-bottom:1px solid var(--sand-border);}
nav a{font-size:var(--fs-label);color:var(--ink);}
nav a:hover,nav a.active{color:var(--sand-title);}
.nav-cta{color:var(--sand-title);border-color:var(--sand-title);}
.nav-cta:hover{background:var(--sand-title);color:#F5EDE0;}

/* ── Hero: let the footage show; text carries the contrast via gradient ── */
.hero-overlay{background:linear-gradient(180deg,rgba(20,8,4,0.15) 0%,rgba(20,8,4,0.35) 45%,rgba(20,8,4,0.78) 100%);}
.page-title,.hero-title,.site-hero h1{font-size:var(--fs-h1);line-height:1.05;letter-spacing:-0.01em;}
.page-lede,.hero-lede{font-size:var(--fs-lead);color:#F5EDE0;}
.eyebrow,.hero-eyebrow{font-size:var(--fs-label);color:#F5EDE0;letter-spacing:0.16em;}
.hero-clients{font-size:var(--fs-label);color:rgba(245,237,224,0.9);}

/* ── Labels & eyebrows: legible size, red-brown (4.6:1 on sand, 6.5:1 on parchment) ── */
.section-eyebrow,.body-inner h3,.case-study-label{font-size:var(--fs-label);color:var(--sand-title);letter-spacing:0.14em;}
.breadcrumb{font-size:var(--fs-label);}
.breadcrumb-nav{background:var(--parchment);}

/* ── Reading text ── */
.body-inner{max-width:720px;}
.body-inner p,.body-p{font-size:var(--fs-body);line-height:1.75;color:var(--ink);}
.body-inner h2,.section-title{font-size:var(--fs-h2);line-height:1.12;letter-spacing:-0.005em;margin-bottom:1.25rem;}
.body-inner a{color:var(--sand-title);}

/* ── Footage first: embeds break out of the reading column (skill: authentic-product-representation) ── */
.body-inner .video-embed{width:min(1080px,calc(100vw - 5rem));position:relative;left:50%;transform:translateX(-50%);margin:3rem 0 2.5rem;}
.video-embed iframe{box-shadow:0 18px 50px rgba(46,29,25,0.28);}
.video-caption{font-size:var(--fs-label);color:var(--ink);text-align:center;}

/* ── Benefits: numbered, scannable, one separation strategy (hairlines) ── */
.benefit-list strong{font-family:'Source Serif 4',Georgia,serif;font-size:1.2rem;font-weight:600;color:var(--sand-title);margin-bottom:0.35rem;}
.benefit-list p{font-size:var(--fs-small);color:var(--ink);line-height:1.65;}
.benefit-list li{padding:1.4rem 0;}

/* ── Testimonial: the strongest proof on the page gets display treatment ── */
.testimonial-section{padding-block:6rem;}
.testimonial-inner blockquote{font-size:clamp(1.4rem,2.6vw,2rem);line-height:1.4;color:var(--ink);position:relative;}
.testimonial-inner blockquote::before{content:"\201C";position:absolute;left:-0.1em;top:-0.55em;font-size:4em;color:var(--gold);opacity:0.9;line-height:1;}
.testimonial-inner cite{font-size:var(--fs-label);color:var(--sand-title);}

/* ── Tables ── */
.compare-table,.pricing-table{font-size:var(--fs-small);}
.compare-table th,.pricing-table th{font-size:var(--fs-label);color:var(--sand-title);}
.pricing-table td:nth-child(2){color:var(--sand-title);}

/* ── FAQ ── */
.faq-item summary{font-size:1rem;padding:1.25rem 0;}
.faq-item .faq-a{font-size:var(--fs-small);color:var(--ink);}

/* ── Cards: fill only — no border on top of a fill (skill: surface-separation) ── */
.service-card,.work-card,.journal-card,.post-card{border:none !important;box-shadow:none;transition:transform 0.25s ease-out,box-shadow 0.25s ease-out;}
.content-section.sand .service-card,.content-section.sand .work-card,.content-section.sand .journal-card{background:var(--sand);}
.content-section.parchment .service-card,.content-section.parchment .work-card{background:var(--parchment);}
.service-card:hover,.journal-card:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(46,29,25,0.16);}
.service-card .tag,.work-client,.journal-tag,.tl-year,.panel-link,.card-cta,.journal-cta{color:var(--sand-title) !important;font-size:var(--fs-label);}

/* ── Client logos: legible, one tone, full strength ── */
.client-marquee{background:var(--parchment);}
.marquee-track li img{height:40px;opacity:0.85;filter:grayscale(1) sepia(0.35) brightness(0.35);}
.marquee-track li:hover img{opacity:1;filter:none;}

/* ── Buttons: one primary (gold, ink text), hover darkens instead of fading ── */
.btn-cta,.btn-primary{color:var(--ink);}
.btn-cta:hover,.btn-primary:hover{opacity:1;background:#D3A64A;}
.btn-secondary{color:#F5EDE0;border-color:rgba(245,237,224,0.75);}

/* ── Contact on terra: cream text throughout ── */
.form-row label,.form-note,.form-status,.contact-section .section-eyebrow{color:#F5EDE0;}
.contact-lede a,.direct-line a,.contact-aside a{color:#F5EDE0;text-decoration:underline;}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:rgba(245,237,224,0.75);}

/* ── Footer ── */
footer{background:var(--sand);}
.footer-col h4,.footer-col .footer-heading{font-family:'DM Sans',system-ui,sans-serif;font-size:var(--fs-label);font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--sand-title);margin-bottom:0.85rem;}
.footer-col a,.footer-brand p{font-size:var(--fs-small);color:var(--ink);}

/* ── Work video posters with a play affordance (prototype JS adds .is-playing) ── */
.work-thumb{position:relative;cursor:pointer;}
.work-thumb .play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,transparent 40%,rgba(20,8,4,0.45));}
.work-thumb .play span{width:64px;height:64px;border-radius:50%;background:rgba(245,237,224,0.92);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px rgba(0,0,0,0.3);transition:transform 0.2s ease-out;}
.work-thumb .play span::after{content:"";border-left:16px solid var(--sand-title);border-top:10px solid transparent;border-bottom:10px solid transparent;margin-left:4px;}
.work-thumb:hover .play span{transform:scale(1.08);}
.work-thumb.is-playing .play{display:none;}


/* ── Mobile: nav must fit 390px; drop the location link from the bar ── */
@media(max-width:760px){
  nav ul{gap:1rem;}
  nav li:has(a[href*="east-sussex"]){display:none;}
  .content-section{padding-block:4rem;}
  .body-inner .video-embed{width:calc(100vw - 2.5rem);}
}

/* ── Motion: respect reduced-motion everywhere (skill: motion-and-storytelling) ── */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0.01ms !important;transition-duration:0.01ms !important;}
  .reveal{opacity:1 !important;transform:none !important;}
}

/* ── Homepage polish ── */
.testimonial blockquote{font-size:clamp(1.25rem,2vw,1.55rem);line-height:1.45;color:var(--ink);position:relative;padding-top:1.6rem;}
.testimonial blockquote::before{content:"\201C";position:absolute;left:-0.05em;top:-0.35em;font-size:3.2em;color:var(--gold);line-height:1;}
.testimonial-author .name{font-size:var(--fs-small);}
.testimonial-author .role{font-size:var(--fs-label);color:var(--ink);}
.testimonial-section{border:none;}
.journal-card{border:none;max-width:none;grid-template-columns:minmax(0,1.1fr) 1fr;}
.journal-thumb{aspect-ratio:4/3;max-height:420px;}
.journal-thumb video,.journal-thumb img{width:100%;height:100%;object-fit:cover;}
.journal-body{padding:2.5rem;}
.journal-card .journal-title,.journal-body h3{font-size:var(--fs-h3);}

/* ── Form status prefixes (colour alone never carries the meaning) ── */
.form-status.is-ok,.form-status.is-error{color:#F5EDE0;font-weight:700;}
.form-status.is-ok::before{content:"✓ ";color:var(--gold);}
.form-status.is-error::before{content:"! ";}
.form-note a{color:#F5EDE0;text-decoration:underline;text-underline-offset:0.2em;}
.breadcrumb > ol{flex:1;}

/* ── Book-a-call button (contact section, terra) — secondary to "Send enquiry" ── */
.book-call{margin-top:2rem;padding-top:1.75rem;border-top:1px solid rgba(245,237,224,0.3);display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
.book-call-label{font-family:'DM Sans',system-ui,sans-serif;font-size:var(--fs-small);color:#F5EDE0;}
.btn-book{display:inline-flex;align-items:center;gap:0.6rem;font-family:'DM Sans',system-ui,sans-serif;font-size:var(--fs-label);font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:#F5EDE0;text-decoration:none;border:1.5px solid #F5EDE0;padding:0.85rem 1.4rem;cursor:pointer;transition:background 0.2s ease-out,color 0.2s ease-out;}
.btn-book svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;}
.btn-book:hover,.btn-book:focus-visible{background:#F5EDE0;color:var(--terra);}
.btn-book:focus-visible{outline:2px solid #F5EDE0;outline-offset:3px;}

/* Anchor jumps land below the sticky header */
section[id],[id].content-section{scroll-margin-top:5rem;}

/* Site-map footer: every page linked from every page */
.footer-grid.footer-sitemap{grid-template-columns:1.1fr 1fr 1fr 1.3fr 1fr;gap:2.5rem;}
.footer-sitemap .footer-col li{line-height:1.35;}
@media (max-width:1100px){.footer-grid.footer-sitemap{grid-template-columns:1fr 1fr 1fr;}}
@media (max-width:760px){.footer-grid.footer-sitemap{grid-template-columns:1fr 1fr;gap:2rem 1.5rem;}}
@media (max-width:480px){.footer-grid.footer-sitemap{grid-template-columns:1fr;}}
.footer-brand a:not(.footer-logo){color:var(--sand-title);text-decoration:underline;text-underline-offset:0.2em;}
