/* ==========================================================================
   Bay Stays — theme styles
   Design tokens derived from the logo: #0C67A1 · #1374B0 · #FFD700 · #EFB900
   ========================================================================== */

:root{
  /* Harbour Blue */
  --bs-harbour-50:#EEF6FC; --bs-harbour-100:#D5E9F7; --bs-harbour-200:#ABD2EE;
  --bs-harbour-300:#75B4E0; --bs-harbour-400:#3D91CC; --bs-harbour-500:#1374B0;
  --bs-harbour-600:#0C67A1; --bs-harbour-700:#095283; --bs-harbour-800:#0A4268;
  --bs-harbour-900:#0B3550; --bs-harbour-950:#072336;
  /* Sun Gold */
  --bs-sun-50:#FFFAEB; --bs-sun-100:#FFF2C7; --bs-sun-200:#FFE68A; --bs-sun-300:#FFD700;
  --bs-sun-400:#F5C400; --bs-sun-500:#EFB900; --bs-sun-600:#C99500; --bs-sun-700:#9E7200;
  /* Sand */
  --bs-sand-0:#FFFFFF; --bs-sand-50:#FBF9F5; --bs-sand-100:#F5F1E9; --bs-sand-200:#E9E3D6;
  --bs-sand-300:#D6CDBB; --bs-sand-400:#B3A894; --bs-sand-500:#8C8271; --bs-sand-600:#6B6355;
  --bs-sand-700:#4E4840; --bs-sand-800:#33302B; --bs-sand-900:#1F1D1A;
  --bs-pohutukawa:#C2452D; --bs-kauri:#2E7D5B;

  /* Semantic — overridden inline from the settings panel */
  --bs-color-primary:var(--bs-harbour-600);
  --bs-color-primary-hover:var(--bs-harbour-700);
  --bs-color-accent:var(--bs-sun-500);
  --bs-surface-page:var(--bs-sand-0);
  --bs-surface-alt:var(--bs-sand-100);
  --bs-surface-inverse:var(--bs-harbour-900);
  --bs-text-heading:var(--bs-sand-900);
  --bs-text-body:var(--bs-sand-700);
  --bs-text-muted:var(--bs-sand-600);
  --bs-border-subtle:var(--bs-sand-200);

  /* Type */
  /* Skyscanner Relative is proprietary. Noto Sans is Skyscanner's own
     documented Latin fallback for it (Black 900 -> Extra Bold 800). */
  --bs-font-body:"Skyscanner Relative","Noto Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --bs-font-display:var(--bs-font-body);
  --bs-fs-display:clamp(3rem,1.7rem + 5.2vw,5.25rem);
  --bs-fs-h1:clamp(2.5rem,1.6rem + 3.4vw,3.75rem);
  --bs-fs-h2:clamp(2.125rem,1.5rem + 2.2vw,2.875rem);
  --bs-fs-h3:clamp(1.625rem,1.35rem + 1vw,2.0625rem);
  --bs-fs-h4:clamp(1.375rem,1.2rem + .5vw,1.625rem);

  /* Space & layout */
  --bs-section-y:clamp(3.5rem,2rem + 6vw,7.5rem);
  --bs-container:1280px;
  --bs-container-narrow:880px;
  --bs-gutter:clamp(1.25rem,.5rem + 3vw,2.5rem);
  --bs-grid-gap:clamp(1.25rem,.75rem + 1.5vw,2rem);

  /* Surface */
  --bs-radius-xs:2px; --bs-radius-sm:4px; --bs-radius-md:8px; --bs-radius-pill:999px;
  --bs-shadow-xs:0 1px 2px rgba(11,53,80,.06);
  --bs-shadow-sm:0 4px 12px rgba(11,53,80,.07);
  --bs-shadow-md:0 10px 28px rgba(11,53,80,.10);
  --bs-shadow-lg:0 24px 56px -16px rgba(11,53,80,.22);

  /* Motion */
  --bs-dur-fast:200ms; --bs-dur-base:320ms; --bs-dur-slow:520ms; --bs-dur-slower:800ms;
  --bs-ease:cubic-bezier(.22,1,.36,1);
  --bs-ease-spring:cubic-bezier(.34,1.56,.64,1);

  --bs-header-h:88px;
}

/* ------------------------------------------------------------- Reset */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--bs-header-h) + 16px);-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--bs-font-body);font-size:1.0625rem;line-height:1.75;color:var(--bs-text-body);background:var(--bs-surface-page);-webkit-font-smoothing:antialiased}
img,svg,video{max-width:100%;height:auto;display:block}
h1,h2,h3,h4,h5,h6{font-family:var(--bs-font-display);font-weight:400;color:var(--bs-text-heading);line-height:1.18;letter-spacing:-.01em;margin:0 0 .5em}
h1{font-size:var(--bs-fs-h1);letter-spacing:-.02em;line-height:1.1}
h2{font-size:var(--bs-fs-h2);letter-spacing:-.015em}
h3{font-size:var(--bs-fs-h3)}
h4{font-size:var(--bs-fs-h4)}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
a{color:var(--bs-color-primary);text-decoration-thickness:1px;text-underline-offset:3px}
ul,ol{margin:0 0 1em;padding-left:1.25em}
button{font:inherit}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--bs-color-accent);outline-offset:3px;border-radius:var(--bs-radius-sm)}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.bs-skip{position:absolute;left:-9999px;z-index:999;padding:12px 20px;background:var(--bs-color-primary);color:#fff;text-decoration:none}
.bs-skip:focus{left:16px;top:16px}

/* --------------------------------------------------------- Layout */
.bs-container{max-width:var(--bs-container);margin-inline:auto;padding-inline:var(--bs-gutter);width:100%}
.bs-container--narrow{max-width:var(--bs-container-narrow)}
.bs-section{padding-block:var(--bs-section-y)}
.bs-section--alt{background:var(--bs-surface-alt)}
.bs-section--inverse{background:var(--bs-surface-inverse);color:#fff}
.bs-section--inverse h1,.bs-section--inverse h2,.bs-section--inverse h3,.bs-section--inverse h4{color:#fff}
.bs-section__head{display:flex;gap:2rem;align-items:flex-end;justify-content:space-between;margin-bottom:3rem;flex-wrap:wrap}
.bs-section__head--center{text-align:center;justify-content:center}
.bs-section__head--center>div,.bs-section__head--center{max-width:66ch;margin-inline:auto}
.bs-section__title{margin-bottom:.4em}
.bs-section__cta{margin-top:3rem;text-align:center}
.bs-grid{display:grid;gap:var(--bs-grid-gap)}
.bs-grid--2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.bs-grid--3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.bs-grid--4{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}

.bs-eyebrow{font-size:.8125rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--bs-color-primary);margin-bottom:.9rem}
.bs-eyebrow--light{color:rgba(255,255,255,.86)}
.bs-eyebrow--gold{color:var(--bs-sun-300)}
.bs-lead{font-size:1.25rem;font-weight:300;line-height:1.72;color:var(--bs-text-muted);max-width:68ch}
.bs-lead--center{margin-inline:auto;text-align:center}
.bs-display{font-family:var(--bs-font-display);font-size:var(--bs-fs-display);line-height:1.06;letter-spacing:-.02em}
.bs-prose{max-width:68ch}
.bs-prose h2,.bs-prose h3{margin-top:1.8em}
.bs-prose img{border-radius:var(--bs-radius-xs);margin-block:1.5em}

/* -------------------------------------------------------- Buttons */
.bs-btn{--_bg:var(--bs-color-primary);--_fg:#fff;--_bd:var(--bs-color-primary);
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  font-family:var(--bs-font-body);font-size:.9375rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;
  text-decoration:none;padding:1rem 2.125rem;min-height:52px;
  border:1px solid var(--_bd);border-radius:var(--bs-radius-pill);background:var(--_bg);color:var(--_fg);
  cursor:pointer;position:relative;overflow:hidden;isolation:isolate;text-align:center;
  transition:color var(--bs-dur-base) var(--bs-ease),border-color var(--bs-dur-base) var(--bs-ease),transform var(--bs-dur-fast) var(--bs-ease),box-shadow var(--bs-dur-base) var(--bs-ease)}
.bs-btn::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--bs-color-primary-hover);transform:scaleX(0);transform-origin:left;transition:transform var(--bs-dur-slow) var(--bs-ease)}
.bs-btn:hover::before{transform:scaleX(1)}
.bs-btn:hover{box-shadow:var(--bs-shadow-sm)}
.bs-btn:active{transform:translateY(1px)}
.bs-btn--accent{--_bg:var(--bs-color-accent);--_fg:var(--bs-sand-900);--_bd:var(--bs-color-accent)}
.bs-btn--accent::before{background:var(--bs-sun-300)}
.bs-btn--outline{--_bg:transparent;--_fg:var(--bs-color-primary)}
.bs-btn--outline:hover{--_fg:#fff}
.bs-btn--ghost{--_bg:transparent;--_fg:#fff;--_bd:rgba(255,255,255,.55)}
.bs-btn--ghost::before{background:rgba(255,255,255,.16)}
.bs-btn--sm{padding:.6875rem 1.5rem;min-height:44px;font-size:.8125rem}
.bs-btn--lg{padding:1.25rem 2.75rem;min-height:60px;font-size:1rem}
.bs-btn[disabled],.bs-btn.is-busy{opacity:.55;pointer-events:none}

.bs-link{display:inline-flex;align-items:center;gap:.45rem;font-size:.875rem;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:var(--bs-color-primary);text-decoration:none;position:relative;padding-bottom:4px;background:none;border:0;cursor:pointer}
.bs-link::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform var(--bs-dur-base) var(--bs-ease)}
.bs-link:hover::after{transform:scaleX(1);transform-origin:left}
.bs-link--gold{color:var(--bs-sun-300)}
.bs-icon{flex:none}

/* -------------------------------------------------------- Header */
.bs-header{position:fixed;inset-block-start:0;inset-inline:0;z-index:200;padding-block:1.25rem;background:transparent;border-bottom:1px solid transparent;
  transition:background var(--bs-dur-base) var(--bs-ease),box-shadow var(--bs-dur-base) var(--bs-ease),border-color var(--bs-dur-base) var(--bs-ease),padding var(--bs-dur-base) var(--bs-ease)}
.bs-header__inner{display:flex;align-items:center;gap:2rem}
.bs-header__brand{display:flex;align-items:center;flex:none;text-decoration:none}
.bs-logo{width:auto;object-fit:contain}
.bs-logo--dark{display:none}
.bs-nav{margin-inline:auto}
.bs-nav__list{display:flex;gap:2.25rem;list-style:none;margin:0;padding:0}
.bs-nav__list a{font-size:.8125rem;letter-spacing:.13em;text-transform:uppercase;color:#fff;text-decoration:none;padding-block:6px;border-bottom:1px solid transparent;transition:border-color var(--bs-dur-fast) var(--bs-ease),color var(--bs-dur-fast) var(--bs-ease)}
.bs-nav__list a:hover,.bs-nav__list .current-menu-item>a{border-bottom-color:var(--bs-sun-300)}
.bs-header__actions{display:flex;align-items:center;gap:1rem;flex:none}
.bs-header__phone{display:inline-flex;align-items:center;gap:.45rem;font-size:.9375rem;color:#fff;text-decoration:none}
.bs-burger{display:none;background:none;border:0;color:#fff;cursor:pointer;padding:8px}

/* Scrolled / non-overlay state */
.bs-header.is-stuck,body:not(.bs-has-overlay-header) .bs-header{
  background:rgba(255,255,255,.95);backdrop-filter:saturate(1.4) blur(12px);
  border-bottom-color:var(--bs-border-subtle);box-shadow:var(--bs-shadow-sm);padding-block:.75rem}
.bs-header.is-stuck .bs-nav__list a,body:not(.bs-has-overlay-header) .bs-nav__list a,
.bs-header.is-stuck .bs-header__phone,body:not(.bs-has-overlay-header) .bs-header__phone,
.bs-header.is-stuck .bs-burger,body:not(.bs-has-overlay-header) .bs-burger{color:var(--bs-text-heading)}
.bs-header.is-stuck .bs-logo--light,body:not(.bs-has-overlay-header) .bs-logo--light{display:none}
.bs-header.is-stuck .bs-logo--dark,body:not(.bs-has-overlay-header) .bs-logo--dark{display:block}
body:not(.bs-has-overlay-header) .bs-main{padding-top:var(--bs-header-h)}

/* Drawer */
.bs-drawer{position:fixed;inset:0;z-index:300;background:var(--bs-harbour-950);color:#fff;display:flex;align-items:center;justify-content:center}
.bs-drawer[hidden]{display:none}
.bs-drawer__inner{text-align:center;padding:2rem}
.bs-drawer__close{position:absolute;top:1.25rem;right:1.25rem;background:none;border:0;color:#fff;cursor:pointer;padding:10px}
.bs-drawer__list{list-style:none;margin:0 0 2rem;padding:0;display:grid;gap:1.25rem}
.bs-drawer__list a{font-family:var(--bs-font-display);font-size:1.75rem;color:#fff;text-decoration:none}
.bs-drawer__phone{display:block;margin-top:1.5rem;color:var(--bs-sun-300);text-decoration:none}

/* ---------------------------------------------------------- Hero */
.bs-hero{position:relative;min-height:min(88vh,820px);display:flex;align-items:center;overflow:hidden;color:#fff}
.bs-hero__media{position:absolute;inset:0}
.bs-hero__slide{position:absolute;inset:0;margin:0;opacity:0;transition:opacity 1.2s var(--bs-ease)}
.bs-hero__slide.is-active{opacity:1}
.bs-hero__slide img{width:100%;height:100%;object-fit:cover}
.bs-hero__fallback{position:absolute;inset:0;background:linear-gradient(170deg,#8fc5e8 0%,#3d91cc 38%,#0a4468 78%,#072336 100%)}
.bs-hero__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,35,54,.6) 0%,rgba(7,35,54,.2) 42%,rgba(7,35,54,.72) 100%)}
.bs-hero__inner{position:relative;padding-block:calc(var(--bs-header-h) + 3rem) 7rem;text-align:center}
.bs-hero__title{font-size:var(--bs-fs-display);line-height:1.06;letter-spacing:-.025em;color:#fff;margin-inline:auto;max-width:18ch}
.bs-hero__sub{font-size:1.3125rem;font-weight:300;line-height:1.6;color:rgba(255,255,255,.92);max-width:52ch;margin-inline:auto}
.bs-hero__actions{margin-top:2rem}
.bs-hero__dots{position:absolute;bottom:6.5rem;left:50%;transform:translateX(-50%);display:flex;gap:9px;z-index:2}
.bs-hero__dots button{width:8px;height:8px;padding:0;border:0;border-radius:999px;background:rgba(255,255,255,.45);cursor:pointer;transition:width var(--bs-dur-base) var(--bs-ease),background var(--bs-dur-base) var(--bs-ease)}
.bs-hero__dots button.is-active{width:28px;background:var(--bs-sun-300)}
@keyframes bs-kenburns{from{transform:scale(1)}to{transform:scale(1.09) translateY(-1.5%)}}
.bs-kenburns{animation:bs-kenburns 14s linear forwards}

/* ------------------------------------------- Availability widget */
.bs-searchband--overlap{margin-top:-52px;position:relative;z-index:5}
.bs-book{display:grid;grid-template-columns:repeat(3,1fr) auto;background:var(--bs-sand-0);border:1px solid var(--bs-border-subtle);border-radius:var(--bs-radius-md);box-shadow:var(--bs-shadow-md);position:relative}
.bs-book__cell{border-right:1px solid var(--bs-border-subtle);position:relative;min-width:0}
.bs-book__cell:last-of-type{border-right:0}
.bs-book__cell--submit{display:flex;align-items:center;padding:.75rem}
.bs-book__cell--submit .bs-btn{width:100%;white-space:nowrap}
.bs-book__trigger{display:block;width:100%;text-align:left;padding:1.15rem 1.5rem;cursor:pointer}
.bs-book__k{display:block;font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;color:var(--bs-text-muted);margin-bottom:4px}
.bs-book__v{display:block;font-family:var(--bs-font-display);font-size:1.3125rem;color:var(--bs-text-heading);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bs-book__error{grid-column:1/-1;margin:0;padding:.85rem 1.5rem;background:#FBEFEC;color:#8E2C18;font-size:.9375rem;border-radius:0 0 var(--bs-radius-md) var(--bs-radius-md)}
.bs-book--compact{grid-template-columns:1fr 1fr;box-shadow:none;border-radius:var(--bs-radius-sm)}
.bs-book--compact .bs-book__cell--guests{grid-column:1/-1;border-top:1px solid var(--bs-border-subtle);border-right:0}
.bs-book--compact .bs-book__cell--submit{grid-column:1/-1;border-top:1px solid var(--bs-border-subtle)}
.bs-book--compact .bs-book__cell:nth-of-type(2){border-right:0}

.bs-pop{position:absolute;top:calc(100% + 10px);left:0;z-index:60;background:#fff;border:1px solid var(--bs-border-subtle);border-radius:var(--bs-radius-md);box-shadow:var(--bs-shadow-lg);padding:1.25rem}
.bs-pop[hidden]{display:none}
.bs-pop--calendar{left:0;right:auto;min-width:min(640px,92vw)}
.bs-pop--guests{min-width:290px}
.bs-pop__note{font-size:.75rem;color:var(--bs-text-muted);margin:.5rem 0 0}
.bs-pop__done{width:100%;margin-top:1rem}

.bs-stepper{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--bs-border-subtle)}
.bs-stepper:last-of-type{border-bottom:0}
.bs-stepper strong{display:block;font-weight:500;font-size:1.0625rem;color:var(--bs-text-heading)}
.bs-stepper small{font-size:.8125rem;color:var(--bs-text-muted)}
.bs-stepper__controls{display:flex;align-items:center;gap:.75rem}
.bs-stepper__controls button{width:32px;height:32px;border-radius:999px;border:1px solid var(--bs-border-subtle);background:#fff;color:var(--bs-color-primary);display:grid;place-items:center;cursor:pointer;transition:border-color var(--bs-dur-fast) var(--bs-ease),background var(--bs-dur-fast) var(--bs-ease)}
.bs-stepper__controls button:hover:not(:disabled){border-color:var(--bs-color-primary);background:var(--bs-harbour-50)}
.bs-stepper__controls button:disabled{opacity:.35;cursor:not-allowed}
.bs-stepper output{min-width:1.5rem;text-align:center;font-variant-numeric:tabular-nums;font-weight:500}

/* Calendar */
.bs-cal__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.bs-cal__hint{margin:0;font-size:.875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--bs-text-muted)}
.bs-cal__nav{width:36px;height:36px;border-radius:999px;border:1px solid var(--bs-border-subtle);background:#fff;color:var(--bs-text-heading);display:grid;place-items:center;cursor:pointer;transition:background var(--bs-dur-fast) var(--bs-ease),border-color var(--bs-dur-fast) var(--bs-ease)}
.bs-cal__nav:hover{background:var(--bs-color-primary);border-color:var(--bs-color-primary);color:#fff}
.bs-cal__months{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
.bs-cal__month h4{font-size:1rem;text-align:center;margin-bottom:.75rem;letter-spacing:0}
.bs-cal__dow,.bs-cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.bs-cal__dow span{text-align:center;font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;color:var(--bs-sand-500);padding-bottom:.35rem}
.bs-cal__day{aspect-ratio:1;display:grid;place-items:center;border:0;background:none;font-size:.9375rem;font-variant-numeric:tabular-nums;color:var(--bs-text-heading);border-radius:var(--bs-radius-sm);cursor:pointer;transition:background var(--bs-dur-fast) var(--bs-ease),color var(--bs-dur-fast) var(--bs-ease)}
.bs-cal__day:hover:not(:disabled){background:var(--bs-harbour-50)}
.bs-cal__day:disabled{color:var(--bs-sand-400);cursor:not-allowed;text-decoration:line-through;text-decoration-color:var(--bs-sand-400)}
.bs-cal__day.is-empty{visibility:hidden}
.bs-cal__day.is-in-range{background:var(--bs-harbour-50);border-radius:0}
.bs-cal__day.is-start,.bs-cal__day.is-end{background:var(--bs-color-primary);color:#fff}
.bs-cal__day.is-start{border-radius:var(--bs-radius-sm) 0 0 var(--bs-radius-sm)}
.bs-cal__day.is-end{border-radius:0 var(--bs-radius-sm) var(--bs-radius-sm) 0}
.bs-cal__day.is-start.is-end{border-radius:var(--bs-radius-sm)}
.bs-cal__foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;padding-top:.85rem;border-top:1px solid var(--bs-border-subtle)}
.bs-cal__legend{margin:0;font-size:.75rem;color:var(--bs-text-muted);display:flex;align-items:center;gap:.5rem}
.bs-cal__key{width:14px;height:14px;border-radius:3px;background:var(--bs-sand-200);display:inline-block}
.bs-cal__clear{background:none;border:0;font-size:.75rem;letter-spacing:.09em;text-transform:uppercase;color:var(--bs-color-primary);cursor:pointer}

/* --------------------------------------------------------- Mosaic */
.bs-mosaic{display:grid;grid-template-columns:1fr 1fr 1fr}
.bs-mosaic__panel--copy{background:var(--bs-surface-inverse);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:clamp(2rem,4vw,3.5rem);gap:.5rem}
.bs-mosaic__panel--copy h2{color:#fff;font-size:clamp(1.4rem,2.2vw,2rem)}
.bs-mosaic__panel--copy p{color:rgba(255,255,255,.8);font-size:1.0625rem;max-width:38ch}

/* ---------------------------------------------------------- Media */
.bs-media{position:relative;overflow:hidden;border-radius:var(--bs-radius-xs);background:var(--bs-sand-200);display:block}
.bs-media img{width:100%;height:100%;object-fit:cover;transition:transform var(--bs-dur-slower) var(--bs-ease)}
.bs-media--4x3{aspect-ratio:4/3}
.bs-media--3x2{aspect-ratio:3/2}
.bs-media--1x1{aspect-ratio:1/1}
.bs-media--4x5{aspect-ratio:4/5}
.bs-media__placeholder{position:absolute;inset:0;background:linear-gradient(170deg,#cfe6f2,#8ec6df 42%,#e7dcc2 68%,#cdbb95)}
.bs-card:hover .bs-media img{transform:scale(1.06)}

.bs-badge{position:absolute;top:.875rem;left:.875rem;z-index:2;background:#fff;color:var(--bs-text-heading);font-size:.75rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;padding:.45rem .85rem;border-radius:var(--bs-radius-sm);box-shadow:var(--bs-shadow-xs)}
.bs-badge--accent{background:var(--bs-color-accent);color:var(--bs-sand-900)}
.bs-badge--primary{background:var(--bs-color-primary);color:#fff}
.bs-badge--tr{left:auto;right:.875rem}

/* ---------------------------------------------------------- Cards */
.bs-card{background:#fff;border-radius:var(--bs-radius-xs);transition:transform var(--bs-dur-base) var(--bs-ease),box-shadow var(--bs-dur-base) var(--bs-ease)}
.bs-card:hover{transform:translateY(-4px);box-shadow:var(--bs-shadow-md)}
.bs-card__body{padding-top:1.125rem}
.bs-card__title{font-size:var(--bs-fs-h3);margin-bottom:.5rem}
.bs-card__title a{color:inherit;text-decoration:none}
.bs-card__text{font-size:1rem;line-height:1.7;color:var(--bs-text-muted);margin-bottom:1rem}
.bs-meta{display:flex;flex-wrap:wrap;gap:1.125rem;font-size:.9375rem;color:var(--bs-text-muted);padding-bottom:.9rem;border-bottom:1px solid var(--bs-border-subtle);margin-bottom:1.1rem}
.bs-meta:empty{display:none}
.bs-meta span{display:inline-flex;align-items:center;gap:.45rem}
.bs-meta .bs-icon{color:var(--bs-color-primary)}

/* Carousel */
.bs-carousel{overflow:hidden}
.bs-carousel__track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 2 * var(--bs-grid-gap)) / 3);gap:var(--bs-grid-gap);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:4px}
.bs-carousel__track::-webkit-scrollbar{display:none}
.bs-carousel__track>*{scroll-snap-align:start}
.bs-carousel__nav{display:flex;gap:.625rem}
.bs-arrow{width:44px;height:44px;border-radius:999px;border:1px solid var(--bs-sand-300);background:#fff;color:var(--bs-text-body);display:grid;place-items:center;cursor:pointer;transition:background var(--bs-dur-base) var(--bs-ease),border-color var(--bs-dur-base) var(--bs-ease),color var(--bs-dur-base) var(--bs-ease),transform var(--bs-dur-base) var(--bs-ease)}
.bs-arrow:hover{background:var(--bs-color-primary);border-color:var(--bs-color-primary);color:#fff;transform:scale(1.06)}

/* ------------------------------------------------------ Amenities */
.bs-amenities__item{display:flex;gap:1rem}
.bs-amenities__item .bs-icon{color:var(--bs-sun-300)}
.bs-amenities__item h3{font-size:1.1875rem;margin-bottom:.35rem}
.bs-amenities__item p{font-size:.9375rem;line-height:1.7;color:rgba(255,255,255,.72);margin:0}

/* ---------------------------------------------------- Experiences */
.bs-experiences{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--bs-grid-gap);align-items:center}
.bs-exp{background:#fff;border:1px solid var(--bs-border-subtle);padding:.75rem;border-radius:var(--bs-radius-xs);transition:transform var(--bs-dur-base) var(--bs-ease),box-shadow var(--bs-dur-base) var(--bs-ease)}
.bs-exp:hover{transform:translateY(-4px);box-shadow:var(--bs-shadow-md)}
.bs-exp--featured{transform:scale(1.05);box-shadow:var(--bs-shadow-lg);z-index:2}
.bs-exp--featured:hover{transform:scale(1.05) translateY(-4px)}
.bs-exp__media{border-radius:var(--bs-radius-xs)}
.bs-exp__placeholder{position:absolute;inset:0}
.bs-exp__placeholder--0{background:linear-gradient(170deg,#cfe6f2,#5f9b7e 48%,#1d4638)}
.bs-exp__placeholder--1{background:linear-gradient(170deg,#8fc5e8,#0f5f92 55%,#0a4468)}
.bs-exp__placeholder--2{background:linear-gradient(170deg,#f6cf7a,#e79a63 34%,#173a55)}
.bs-exp__body{padding:1.125rem .5rem .5rem}
.bs-exp__body h3{font-size:1.375rem;margin:0}

/* ----------------------------------------------------------- Stats */
.bs-stat{text-align:center}
.bs-stat strong{display:block;font-family:var(--bs-font-display);font-size:clamp(2.5rem,5vw,4rem);line-height:1;color:var(--bs-color-primary);font-weight:400;font-variant-numeric:tabular-nums}
.bs-stat span{display:block;margin-top:.7rem;font-size:.8125rem;letter-spacing:.2em;text-transform:uppercase;color:var(--bs-text-muted)}

/* ---------------------------------------------------- Testimonial */
.bs-testimonial{position:relative;color:#fff;padding-block:clamp(4rem,8vw,8rem);text-align:center;background:linear-gradient(170deg,#f6cf7a 0%,#e79a63 28%,#8a5f7e 58%,#173a55 100%)}
.bs-testimonial__scrim{position:absolute;inset:0;background:rgba(7,35,54,.62)}
.bs-testimonial__inner{position:relative}
.bs-stars{display:flex;justify-content:center;gap:.35rem;color:var(--bs-sun-300);margin-bottom:1.25rem}
.bs-stars .bs-icon{fill:currentColor}
.bs-testimonial blockquote{font-family:var(--bs-font-display);font-style:italic;font-size:clamp(1.375rem,2.5vw,2rem);line-height:1.55;margin:0 auto;max-width:44ch;color:#fff}
.bs-testimonial__who{margin-top:1.6rem;font-size:.8125rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.85)}
.bs-testimonial__who span{display:block;margin-top:.35rem;color:var(--bs-sun-300);font-size:.6875rem}

/* ------------------------------------------------------------- CTA */
.bs-cta__grid{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(2rem,4vw,4rem);align-items:center}
.bs-cta__actions{display:flex;flex-direction:column;gap:.875rem}

/* --------------------------------------------------- Page headers */
.bs-pagehead{position:relative;padding-block:calc(var(--bs-header-h) + 3rem) 3rem}
.bs-pagehead--plain{background:var(--bs-surface-alt)}
body:not(.bs-has-overlay-header) .bs-pagehead{padding-block:3.5rem}
.bs-pagehead--image{color:#fff;min-height:44vh;display:flex;align-items:flex-end;padding-bottom:3.5rem}
.bs-pagehead--image .bs-pagehead__title{color:#fff}
.bs-pagehead__media{position:absolute;inset:0;overflow:hidden}
.bs-pagehead__media img{width:100%;height:100%;object-fit:cover}
.bs-pagehead__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,35,54,.45),rgba(7,35,54,.72))}
.bs-pagehead .bs-container{position:relative}
.bs-pagehead__title{font-size:var(--bs-fs-h1);margin:0}

.bs-filters{background:var(--bs-surface-alt);padding-block:1rem;border-bottom:1px solid var(--bs-border-subtle)}
.bs-filters .bs-container{display:flex;gap:.625rem;flex-wrap:wrap}
.bs-chip{font-size:.8125rem;letter-spacing:.09em;text-transform:uppercase;padding:.55rem 1.25rem;border:1px solid var(--bs-sand-300);border-radius:999px;color:var(--bs-text-body);text-decoration:none;transition:background var(--bs-dur-fast) var(--bs-ease),color var(--bs-dur-fast) var(--bs-ease),border-color var(--bs-dur-fast) var(--bs-ease)}
.bs-chip:hover,.bs-chip.is-active{background:var(--bs-color-primary);border-color:var(--bs-color-primary);color:#fff}

/* ------------------------------------------------ Single property */
.bs-gallery-hero{padding-top:calc(var(--bs-header-h) + 1.5rem)}
body:not(.bs-has-overlay-header) .bs-gallery-hero{padding-top:1.5rem}
.bs-gallery-hero__grid{display:grid;grid-template-columns:2fr 1fr;gap:.75rem}
.bs-gallery-hero__thumbs{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;position:relative}
.bs-gallery-hero__more{position:absolute;right:.75rem;bottom:.75rem;background:rgba(7,35,54,.82);color:#fff;font-size:.8125rem;letter-spacing:.08em;text-transform:uppercase;padding:.4rem .8rem;border-radius:var(--bs-radius-sm)}
.bs-property__layout{display:grid;grid-template-columns:1fr 380px;gap:clamp(2rem,4vw,4rem);align-items:start}
.bs-property__title{margin-bottom:.5rem}
.bs-property__h2{font-size:var(--bs-fs-h3);margin-top:2.5rem}
.bs-amenity-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.875rem}
.bs-amenity-list li{display:flex;align-items:center;gap:.75rem;font-size:1.0625rem}
.bs-amenity-list .bs-icon{color:var(--bs-color-primary)}
.bs-walks{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:2rem}
.bs-walks strong{display:block;font-family:var(--bs-font-display);font-size:1.75rem;color:var(--bs-color-primary)}
.bs-walks span{font-size:.9375rem;color:var(--bs-text-muted)}
.bs-map{margin-top:1.5rem;border-radius:var(--bs-radius-xs);overflow:hidden}
.bs-bookcard{position:sticky;top:calc(var(--bs-header-h) + 16px);background:#fff;border:1px solid var(--bs-border-subtle);border-radius:var(--bs-radius-md);box-shadow:var(--bs-shadow-md);padding:1.5rem}
.bs-bookcard__price{display:flex;align-items:baseline;gap:.45rem;margin-bottom:1.25rem}
.bs-bookcard__price strong{font-family:var(--bs-font-display);font-size:2.375rem;color:var(--bs-text-heading);font-weight:400}
.bs-bookcard__price span{font-size:.9375rem;color:var(--bs-text-muted)}
.bs-bookcard__or{text-align:center;margin:1.125rem 0 0}
.bs-bookcard__phone{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1rem;font-size:.875rem}
.bs-bookcard__phone a{text-decoration:none}

.bs-mobilebar{position:fixed;inset-inline:0;bottom:0;z-index:150;display:none;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem var(--bs-gutter);background:#fff;border-top:1px solid var(--bs-border-subtle);box-shadow:0 -8px 24px rgba(11,53,80,.10);transform:translateY(110%);transition:transform var(--bs-dur-base) var(--bs-ease)}
.bs-mobilebar.is-visible{transform:none}
.bs-mobilebar__price strong{font-family:var(--bs-font-display);font-size:1.25rem;color:var(--bs-text-heading)}
.bs-mobilebar__price span{display:block;font-size:.75rem;color:var(--bs-text-muted)}

/* ----------------------------------------------------------- Forms */
.bs-input{width:100%;min-height:48px;padding:.75rem 1rem;font-family:var(--bs-font-body);font-size:1rem;color:var(--bs-text-heading);background:#fff;border:1px solid var(--bs-border-subtle);border-radius:var(--bs-radius-sm);transition:border-color var(--bs-dur-fast) var(--bs-ease),box-shadow var(--bs-dur-fast) var(--bs-ease)}
.bs-input:focus{outline:none;border-color:var(--bs-color-primary);box-shadow:0 0 0 3px rgba(239,185,0,.5)}
textarea.bs-input{min-height:auto}
.bs-field label{display:block;font-size:.8125rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bs-text-muted);margin-bottom:.5rem}
.bs-form__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem}
.bs-field--wide{grid-column:1/-1}
.bs-form__actions{margin-top:1.5rem}
.bs-form__status{margin-top:1rem;padding:.85rem 1.125rem;border-radius:var(--bs-radius-sm);font-size:.9375rem}
.bs-form__status.is-ok{background:#EDF7F2;color:#1F5A40}
.bs-form__status.is-error{background:#FBEFEC;color:#8E2C18}
.bs-hp{position:absolute!important;left:-9999px}
.bs-searchform{display:flex;gap:.75rem}

/* ---------------------------------------------------------- Footer */
.bs-footer{background:var(--bs-harbour-950);color:var(--bs-sand-300);padding-block:clamp(3rem,5vw,4.5rem) 0;font-size:.9375rem}
.bs-footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:clamp(1.5rem,3vw,3rem)}
.bs-footer h4{color:#fff;font-family:var(--bs-font-body);font-size:.8125rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;margin-bottom:1rem}
.bs-footer__logo{display:inline-block;margin-bottom:1rem}
.bs-footer__col p{line-height:1.7;max-width:40ch}
.bs-footer__list{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.bs-footer__list a{color:var(--bs-harbour-200);text-decoration:none;transition:color var(--bs-dur-fast) var(--bs-ease)}
.bs-footer__list a:hover{color:var(--bs-sun-300)}
.bs-footer__list--contact li{display:flex;align-items:center;gap:.6rem}
.bs-footer__list--contact .bs-icon{color:var(--bs-sun-300)}
.bs-social{list-style:none;display:flex;gap:.6rem;padding:0;margin:1.25rem 0 0}
.bs-social a{width:36px;height:36px;border-radius:999px;border:1px solid rgba(255,255,255,.2);display:grid;place-items:center;color:#fff;text-decoration:none;font-size:.8125rem;transition:background var(--bs-dur-fast) var(--bs-ease),border-color var(--bs-dur-fast) var(--bs-ease)}
.bs-social a:hover{background:var(--bs-color-accent);border-color:var(--bs-color-accent);color:var(--bs-sand-900)}
.bs-footer__bar{margin-top:clamp(2rem,4vw,3rem);padding-block:1.5rem;border-top:1px solid rgba(255,255,255,.12);font-size:.8125rem}
.bs-footer__bar p{margin:0}

/* ------------------------------------------------------------ Misc */
.bs-postlist{display:grid;gap:3rem}
.bs-postlist__meta{font-size:.8125rem;color:var(--bs-text-muted)}
.bs-404__actions{display:flex;gap:.875rem;justify-content:center;flex-wrap:wrap;margin-top:2rem}
.pagination,.nav-links{display:flex;gap:.5rem;justify-content:center;margin-top:3rem;flex-wrap:wrap}
.page-numbers{display:grid;place-items:center;min-width:42px;height:42px;padding-inline:.5rem;border:1px solid var(--bs-border-subtle);border-radius:var(--bs-radius-sm);text-decoration:none;color:var(--bs-text-body);font-size:.875rem}
.page-numbers.current,.page-numbers:hover{background:var(--bs-color-primary);border-color:var(--bs-color-primary);color:#fff}

/* -------------------------------------------------------- Reveals */
.bs-js .bs-reveal,.bs-js .bs-reveal-stagger>*{opacity:0;transform:translateY(28px);transition:opacity var(--bs-dur-slow) var(--bs-ease),transform var(--bs-dur-slow) var(--bs-ease)}
.bs-js .bs-reveal.is-in,.bs-js .bs-reveal-stagger.is-in>*{opacity:1;transform:none}
.bs-reveal-stagger.is-in>*:nth-child(2){transition-delay:90ms}
.bs-reveal-stagger.is-in>*:nth-child(3){transition-delay:180ms}
.bs-reveal-stagger.is-in>*:nth-child(4){transition-delay:270ms}
.bs-reveal-stagger.is-in>*:nth-child(5){transition-delay:360ms}
.bs-reveal-stagger.is-in>*:nth-child(6){transition-delay:450ms}
.bs-no-motion .bs-reveal,.bs-no-motion .bs-reveal-stagger>*{opacity:1!important;transform:none!important;transition:none!important}
.bs-no-motion .bs-kenburns{animation:none}

/* --------------------------------------------------- Breakpoints */
@media (max-width:1024px){
  .bs-nav,.bs-header__phone{display:none}
  .bs-burger{display:block}
  .bs-property__layout{grid-template-columns:1fr}
  .bs-bookcard{position:static}
  .bs-carousel__track{grid-auto-columns:calc((100% - var(--bs-grid-gap)) / 2)}
  .bs-footer__grid{grid-template-columns:1fr 1fr}
  .bs-mosaic{grid-template-columns:1fr 1fr}
  .bs-mosaic__panel--copy{grid-column:1/-1;order:-1}
  .bs-cta__grid{grid-template-columns:1fr}
  .bs-exp--featured{transform:none}
  .bs-exp--featured:hover{transform:translateY(-4px)}
}
@media (max-width:820px){
  .bs-cal__months{grid-template-columns:1fr}
  .bs-pop--calendar{position:fixed;inset:auto 4vw 4vw;min-width:0;max-height:78vh;overflow:auto}
}
@media (max-width:768px){
  :root{--bs-header-h:72px}
  .bs-book{grid-template-columns:1fr 1fr}
  .bs-book__cell--guests{grid-column:1/-1;border-top:1px solid var(--bs-border-subtle);border-right:0}
  .bs-book__cell--submit{grid-column:1/-1;border-top:1px solid var(--bs-border-subtle)}
  .bs-book__cell:nth-of-type(1){border-right:1px solid var(--bs-border-subtle)}
  .bs-book__cell:nth-of-type(2){border-right:0}
  .bs-searchband--overlap{margin-top:-32px}
  .bs-gallery-hero__grid{grid-template-columns:1fr}
  .bs-carousel__track{grid-auto-columns:86%}
  .bs-section__head{margin-bottom:2rem}
  .bs-mosaic{grid-template-columns:1fr}
  .bs-mobilebar{display:flex}
  .bs-mobilebar~*{padding-bottom:0}
  body.single-property{padding-bottom:76px}
}
@media (max-width:560px){
  .bs-footer__grid{grid-template-columns:1fr}
  .bs-walks{gap:1.25rem}
  .bs-searchform{flex-direction:column}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .bs-reveal,.bs-reveal-stagger>*{opacity:1!important;transform:none!important}
}
@media print{
  .bs-header,.bs-footer,.bs-mobilebar,.bs-book,.bs-drawer{display:none!important}
}

/* ------------------------------------------- Gutenberg block styles */
.is-style-bs-arch img{border-radius:999px 999px 2px 2px}
.is-style-bs-eyebrow{font-size:.75rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--bs-color-primary)}
.is-style-bs-lead{font-size:1.125rem;font-weight:300;line-height:1.7;color:var(--bs-text-muted);max-width:68ch}
.is-style-bs-section{padding-block:var(--bs-section-y)}
.wp-block-details{border-bottom:1px solid var(--bs-border-subtle);padding-block:1.25rem}
.wp-block-details summary{font-family:var(--bs-font-display);font-size:1.1875rem;color:var(--bs-text-heading);cursor:pointer;list-style:none}
.wp-block-details summary::-webkit-details-marker{display:none}
.wp-block-details[open] summary{margin-bottom:.75rem}
.wp-block-button__link,.wp-element-button{border-radius:999px;background:var(--bs-color-primary);color:#fff;font-family:var(--bs-font-body);font-size:.875rem;font-weight:500;letter-spacing:.09em;text-transform:uppercase;padding:.9375rem 2rem;text-decoration:none}
.wp-block-button__link:hover,.wp-element-button:hover{background:var(--bs-color-primary-hover)}
.wp-block-quote{border-left:2px solid var(--bs-color-accent);padding-left:1.5rem;font-family:var(--bs-font-display);font-style:italic;font-size:1.25rem;color:var(--bs-text-heading)}
.wp-block-separator{border-color:var(--bs-border-subtle)}
.bs-feature-trio{gap:var(--bs-grid-gap)}
.bs-comments{margin-top:3rem}
.bs-comments__list{list-style:none;padding:0;margin:0 0 2rem;display:grid;gap:1.5rem}
.bs-comments__list ol{list-style:none;padding-left:1.5rem}
.bs-comments .comment-body{border:1px solid var(--bs-border-subtle);border-radius:var(--bs-radius-xs);padding:1.25rem}
.bs-comments .comment-meta{font-size:.8125rem;color:var(--bs-text-muted);margin-bottom:.5rem}

/* ==========================================================================
   v1.1 — defensive resets
   Some plugins and leftover theme styles set a global background on <button>,
   which turned the availability bar orange. These selectors are deliberately
   specific, and the few !important flags are limited to properties that a
   third-party rule can visibly break.
   ========================================================================== */
.bs-book,
.bs-book .bs-book__cell,
.bs-book .bs-book__trigger,
.bs-pop .bs-stepper__controls button,
.bs-cal .bs-cal__day,
.bs-cal .bs-cal__nav,
.bs-cal .bs-cal__clear{
  -webkit-appearance:none;appearance:none;
  box-shadow:none;text-shadow:none;
}
.bs-book .bs-book__trigger{
  background:transparent !important;
  background-image:none !important;
  border:0 !important;
  border-radius:0 !important;
  color:inherit !important;
  font-family:var(--bs-font-body);
  text-transform:none;
  letter-spacing:normal;
  line-height:1.4;
  min-height:0;
  margin:0;
  width:100%;
}
.bs-book .bs-book__trigger:hover{background:var(--bs-sand-50) !important}
.bs-book{background:var(--bs-sand-0) !important}
.bs-book .bs-book__cell{background:transparent !important}
.bs-book .bs-book__cell--submit{background:var(--bs-sand-0) !important}
.bs-cal .bs-cal__day{background:transparent}
.bs-cal .bs-cal__day.is-in-range{background:var(--bs-harbour-50)}
.bs-cal .bs-cal__day.is-start,.bs-cal .bs-cal__day.is-end{background:var(--bs-color-primary);color:#fff}
.bs-book .bs-btn{text-transform:uppercase;letter-spacing:.08em}

/* Font stack insurance — if a global rule tries to override the display face */
.bs-hero__title,.bs-section__title,.bs-card__title,.bs-pagehead__title,
.bs-property__title,.bs-book__v,.bs-stat strong,.bs-testimonial blockquote{
  font-family:var(--bs-font-display);
}

/* ==========================================================================
   v1.1 — motion
   ========================================================================== */

/* Scroll progress ------------------------------------------------------- */
.bs-progress{position:fixed;top:0;left:0;height:3px;width:100%;z-index:250;transform:scaleX(0);transform-origin:left;
  background:linear-gradient(90deg,var(--bs-color-primary),var(--bs-color-accent));pointer-events:none}

/* Directional reveals --------------------------------------------------- */
.bs-js .bs-reveal--left{opacity:0;transform:translateX(-36px)}
.bs-js .bs-reveal--right{opacity:0;transform:translateX(36px)}
.bs-js .bs-reveal--scale{opacity:0;transform:scale(.94)}
.bs-reveal--left.is-in,.bs-reveal--right.is-in,.bs-reveal--scale.is-in{opacity:1;transform:none}
.bs-reveal--left,.bs-reveal--right,.bs-reveal--scale{
  transition:opacity var(--bs-dur-slow) var(--bs-ease),transform var(--bs-dur-slow) var(--bs-ease)}

/* Image mask wipe — media inside a reveal unveils rather than just fading */
.bs-js .bs-reveal .bs-media,.bs-js .bs-reveal-stagger .bs-media{clip-path:inset(0 0 100% 0);
  transition:clip-path 900ms var(--bs-ease)}
.bs-js .bs-reveal.is-in .bs-media,.bs-js .bs-reveal-stagger.is-in .bs-media{clip-path:inset(0 0 0 0)}

/* Heading word reveal --------------------------------------------------- */
.bs-word{display:inline-block;overflow:hidden;vertical-align:bottom}
.bs-js .bs-word>span{display:inline-block;transform:translateY(105%);
  transition:transform 700ms var(--bs-ease)}
.is-in .bs-word>span,
.bs-hero.is-ready .bs-word>span,
.bs-words-in .bs-word>span{transform:none}
.bs-word:nth-child(1)>span{transition-delay:0ms}
.bs-word:nth-child(2)>span{transition-delay:60ms}
.bs-word:nth-child(3)>span{transition-delay:120ms}
.bs-word:nth-child(4)>span{transition-delay:180ms}
.bs-word:nth-child(5)>span{transition-delay:240ms}
.bs-word:nth-child(6)>span{transition-delay:300ms}
.bs-word:nth-child(7)>span{transition-delay:360ms}
.bs-word:nth-child(8)>span{transition-delay:420ms}

/* Hero entrance --------------------------------------------------------- */
.bs-js .bs-hero__inner>*{opacity:0;transform:translateY(22px);
  transition:opacity 800ms var(--bs-ease),transform 800ms var(--bs-ease)}
.bs-hero.is-ready .bs-hero__inner>*{opacity:1;transform:none}
.bs-hero.is-ready .bs-hero__inner>*:nth-child(1){transition-delay:120ms}
.bs-hero.is-ready .bs-hero__inner>*:nth-child(2){transition-delay:220ms}
.bs-hero.is-ready .bs-hero__inner>*:nth-child(3){transition-delay:340ms}
.bs-hero.is-ready .bs-hero__inner>*:nth-child(4){transition-delay:460ms}
.bs-js .bs-searchband{opacity:0;transform:translateY(26px);
  transition:opacity 800ms var(--bs-ease) 560ms,transform 800ms var(--bs-ease) 560ms}
.bs-searchband.is-ready{opacity:1;transform:none}

/* Eyebrow rule draw ----------------------------------------------------- */
.bs-eyebrow{display:flex;align-items:center;gap:.85rem}
.bs-eyebrow::after{content:"";height:1px;width:clamp(28px,4vw,64px);background:currentColor;opacity:.5;
  transition:width 700ms var(--bs-ease) 200ms}
.bs-section__head--center .bs-eyebrow,.bs-hero .bs-eyebrow{justify-content:center}
.bs-section__head--center .bs-eyebrow::before,.bs-hero .bs-eyebrow::before{content:"";height:1px;
  width:clamp(28px,4vw,64px);background:currentColor;opacity:.5;transition:width 700ms var(--bs-ease) 200ms}
/* collapsed until the section is revealed */
.bs-js .bs-section__head:not(.is-in) .bs-eyebrow::after,
.bs-js .bs-section__head:not(.is-in) .bs-eyebrow::before,
.bs-js .bs-hero:not(.is-ready) .bs-eyebrow::after,
.bs-js .bs-hero:not(.is-ready) .bs-eyebrow::before{width:0}

/* Card polish ----------------------------------------------------------- */
.bs-card{will-change:transform}
.bs-card:hover{transform:translateY(-8px)}
.bs-card .bs-badge{transition:transform var(--bs-dur-base) var(--bs-ease-spring),box-shadow var(--bs-dur-base) var(--bs-ease)}
.bs-card:hover .bs-badge{transform:translateY(-2px) scale(1.05);box-shadow:var(--bs-shadow-sm)}
.bs-card__media::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(7,35,54,0) 55%,rgba(7,35,54,.42) 100%);
  opacity:0;transition:opacity var(--bs-dur-base) var(--bs-ease)}
.bs-card:hover .bs-card__media::after{opacity:1}
.bs-card__title a{background-image:linear-gradient(currentColor,currentColor);
  background-size:0 1px;background-repeat:no-repeat;background-position:0 100%;
  transition:background-size var(--bs-dur-base) var(--bs-ease)}
.bs-card:hover .bs-card__title a{background-size:100% 1px}

/* Buttons: nudge the trailing icon --------------------------------------- */
.bs-btn .bs-icon,.bs-link .bs-icon{transition:transform var(--bs-dur-base) var(--bs-ease)}
.bs-btn:hover .bs-icon,.bs-link:hover .bs-icon{transform:translateX(4px)}

/* Amenity icons draw in -------------------------------------------------- */
.bs-amenities__item .bs-icon{transition:transform 600ms var(--bs-ease),opacity 600ms var(--bs-ease)}
.bs-amenities__item:hover .bs-icon{transform:scale(1.12) rotate(-4deg)}
.bs-amenity-list li{transition:transform var(--bs-dur-fast) var(--bs-ease)}
.bs-amenity-list li:hover{transform:translateX(4px)}

/* Gallery thumbs --------------------------------------------------------- */
.bs-gallery-hero__thumbs .bs-media{transition:transform var(--bs-dur-base) var(--bs-ease)}
.bs-gallery-hero__thumbs .bs-media:hover{transform:scale(.98)}
.bs-gallery-hero__thumbs .bs-media img{transition:transform var(--bs-dur-slower) var(--bs-ease)}
.bs-gallery-hero__thumbs .bs-media:hover img{transform:scale(1.1)}
.bs-gallery-hero__grid--single{grid-template-columns:1fr}

/* Stat underline --------------------------------------------------------- */
.bs-stat{position:relative;padding-top:1.5rem}
.bs-stat::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);
  height:2px;width:46px;background:var(--bs-color-accent);transition:width 700ms var(--bs-ease)}
.bs-js .bs-stats:not(.is-in) .bs-stat::before{width:0}

/* Footer link slide ------------------------------------------------------ */
.bs-footer__list a{display:inline-block;transition:color var(--bs-dur-fast) var(--bs-ease),transform var(--bs-dur-fast) var(--bs-ease)}
.bs-footer__list a:hover{transform:translateX(4px)}

/* Chips, arrows, social -------------------------------------------------- */
.bs-chip{transition:background var(--bs-dur-fast) var(--bs-ease),color var(--bs-dur-fast) var(--bs-ease),border-color var(--bs-dur-fast) var(--bs-ease),transform var(--bs-dur-fast) var(--bs-ease)}
.bs-chip:hover{transform:translateY(-2px)}
.bs-social a{transition:background var(--bs-dur-fast) var(--bs-ease),border-color var(--bs-dur-fast) var(--bs-ease),transform var(--bs-dur-base) var(--bs-ease-spring)}
.bs-social a:hover{transform:translateY(-3px) scale(1.06)}

/* Mosaic panels ---------------------------------------------------------- */
.bs-mosaic__panel img{transition:transform 1200ms var(--bs-ease)}
.bs-mosaic__panel:hover img{transform:scale(1.05)}

/* Motion off ------------------------------------------------------------- */
.bs-no-motion .bs-progress{display:none}
.bs-no-motion .bs-word>span{transform:none !important}
.bs-no-motion .bs-eyebrow::after,.bs-no-motion .bs-eyebrow::before{width:clamp(28px,4vw,64px) !important}
.bs-no-motion .bs-stat::before{width:46px !important}
.bs-no-motion .bs-hero__inner>*,.bs-no-motion .bs-searchband{opacity:1 !important;transform:none !important}
.bs-no-motion .bs-reveal .bs-media,.bs-no-motion .bs-reveal-stagger .bs-media{clip-path:none !important}
@media (prefers-reduced-motion:reduce){
  .bs-progress{display:none}
  .bs-word>span{transform:none !important}
  .bs-hero__inner>*,.bs-searchband{opacity:1 !important;transform:none !important}
  .bs-reveal .bs-media,.bs-reveal-stagger .bs-media{clip-path:none !important}
  .bs-eyebrow::after,.bs-eyebrow::before{width:clamp(28px,4vw,64px) !important;transition:none}
  .bs-stat::before{width:46px !important;transition:none}
}

/* ==========================================================================
   v1.2 — BACKPACK TYPOGRAPHY LAYER
   Skyscanner's published type and spacing tokens, applied wholesale.
   Source: skyscanner.design Foundations -> Typography + Spacing, and
   @skyscanner/bpk-foundations-web/tokens/base.raw.json (v24.6.1).

   Key traits of the system:
     - One sans family at four weights: 300 / 400 book / 700 bold / 900 black
     - Major-third scale locked to an 8px baseline grid
     - Line height by role: Hero 100%, Heading-to-Body 125-150%, Caption 133%
     - Sentence case everywhere. No letterspaced uppercase, no tracking tricks.
   Colours are untouched.
   ========================================================================== */

:root{
  /* --- Backpack font sizes (rem -> px) --------------------------------- */
  --bp-fs-xs:.75rem;      /* 12 */
  --bp-fs-sm:.875rem;     /* 14 */
  --bp-fs-base:1rem;      /* 16 */
  --bp-fs-lg:1.25rem;     /* 20 */
  --bp-fs-xl:1.5rem;      /* 24 */
  --bp-fs-xxl:2rem;       /* 32 */
  --bp-fs-xxxl:2.5rem;    /* 40 */
  --bp-fs-xxxxl:3rem;     /* 48 */
  --bp-fs-xxxxxl:4rem;    /* 64 */
  --bp-fs-6xl:4.75rem;    /* 76 */
  --bp-fs-7xl:6rem;       /* 96 */

  /* --- Backpack line heights (as ratios of the paired size) ------------ */
  --bp-lh-hero:1;         /* 100% */
  --bp-lh-h1:1.25;        /* 32/40 */
  --bp-lh-h2:1.3333;      /* 24/32 */
  --bp-lh-h3:1.4;         /* 20/28 */
  --bp-lh-body:1.5;       /* 16/24 */
  --bp-lh-sm:1.4286;      /* 14/20 */
  --bp-lh-xs:1.3333;      /* 12/16 */

  /* --- Backpack weights ------------------------------------------------ */
  --bp-w-light:300;
  --bp-w-book:400;
  --bp-w-bold:700;
  --bp-w-black:800;       /* 900 falls back to 800 per Skyscanner guidance */

  /* --- Backpack spacing ramp ------------------------------------------- */
  --bp-sp-xxs:.0625rem;   /*  1 */
  --bp-sp-xs:.125rem;     /*  2 */
  --bp-sp-sm:.25rem;      /*  4 */
  --bp-sp-md:.5rem;       /*  8 */
  --bp-sp-base:1rem;      /* 16 */
  --bp-sp-lg:1.5rem;      /* 24 */
  --bp-sp-xl:2rem;        /* 32 */
  --bp-sp-xxl:2.5rem;     /* 40 */
  --bp-sp-xxxl:4rem;      /* 64 */
  --bp-sp-xxxxl:6rem;     /* 96 */

  /* Remap the theme's own spacing onto the Backpack ramp (8px grid) */
  --bs-section-y:clamp(3rem,2rem + 3vw,6rem);   /* 48 -> 96 */
  --bs-gutter:clamp(1rem,.5rem + 2vw,2rem);     /* 16 -> 32 */
  --bs-grid-gap:clamp(1rem,.5rem + 1.5vw,1.5rem); /* 16 -> 24 */
  --bs-container:1280px;
  --bs-container-narrow:704px;                  /* 44rem, Backpack reading width */
}

/* --- Base -------------------------------------------------------------- */
body{
  font-family:var(--bs-font-body);
  font-size:var(--bp-fs-base);
  line-height:var(--bp-lh-body);
  font-weight:var(--bp-w-book);
  letter-spacing:normal;
}

/* --- Headings: bold, sentence case, tight ------------------------------ */
h1,h2,h3,h4,h5,h6,.bs-display,
.bs-hero__title,.bs-section__title,.bs-card__title,.bs-pagehead__title,
.bs-property__title,.bs-property__h2,.bs-exp__body h3,.bs-amenities__item h3{
  font-family:var(--bs-font-body);
  font-weight:var(--bp-w-bold);
  letter-spacing:normal;
  text-transform:none;
}
h1{font-size:var(--bp-fs-xxl);line-height:var(--bp-lh-h1)}
h2{font-size:var(--bp-fs-xl);line-height:var(--bp-lh-h2)}
h3{font-size:var(--bp-fs-lg);line-height:var(--bp-lh-h3)}
h4{font-size:var(--bp-fs-base);line-height:var(--bp-lh-body)}
h5{font-size:var(--bp-fs-sm);line-height:var(--bp-lh-sm)}

/* Hero: black weight, 100% line height, 32 -> 64px */
.bs-hero__title,.bs-display{
  font-size:clamp(2rem,1rem + 4vw,4rem);
  line-height:var(--bp-lh-hero);
  font-weight:var(--bp-w-black);
  max-width:22ch;
}
.bs-pagehead__title,.bs-property__title{
  font-size:clamp(2rem,1.5rem + 2vw,2.5rem);
  line-height:var(--bp-lh-h1);
  font-weight:var(--bp-w-black);
}
.bs-section__title{
  font-size:clamp(1.5rem,1.1rem + 1.6vw,2rem);
  line-height:var(--bp-lh-h1);
  margin-bottom:var(--bp-sp-md);
}
.bs-card__title{font-size:var(--bp-fs-lg);line-height:var(--bp-lh-h3);margin-bottom:var(--bp-sp-sm)}
.bs-property__h2{font-size:var(--bp-fs-xl);line-height:var(--bp-lh-h2);margin-top:var(--bp-sp-xl)}
.bs-mosaic__panel--copy h2{font-size:var(--bp-fs-xl);line-height:var(--bp-lh-h2);font-weight:var(--bp-w-bold)}
.bs-exp__body h3,.bs-amenities__item h3{font-size:var(--bp-fs-lg);line-height:var(--bp-lh-h3)}
.bs-drawer__list a{font-size:var(--bp-fs-xl);line-height:var(--bp-lh-h2);font-weight:var(--bp-w-bold)}

/* --- Body copy --------------------------------------------------------- */
.bs-lead,.bs-hero__sub{
  font-size:var(--bp-fs-lg);
  line-height:var(--bp-lh-h3);
  font-weight:var(--bp-w-book);
  max-width:60ch;
}
.bs-prose,.bs-card__text,.bs-amenities__item p,.bs-mosaic__panel--copy p,
.bs-postlist__item p,.bs-footer__col p{
  font-size:var(--bp-fs-base);
  line-height:var(--bp-lh-body);
}
.bs-amenity-list li{font-size:var(--bp-fs-base);line-height:var(--bp-lh-body)}
.bs-meta{font-size:var(--bp-fs-sm);line-height:var(--bp-lh-sm)}

/* --- Labels: bold, sentence case, NOT uppercase ------------------------ */
.bs-eyebrow{
  font-size:var(--bp-fs-sm);
  line-height:var(--bp-lh-sm);
  font-weight:var(--bp-w-bold);
  letter-spacing:normal;
  text-transform:none;
  margin-bottom:var(--bp-sp-md);
  display:block;
}
.bs-eyebrow::after,.bs-eyebrow::before{content:none;display:none}

.bs-btn{
  font-size:var(--bp-fs-base);
  line-height:var(--bp-lh-body);
  font-weight:var(--bp-w-bold);
  letter-spacing:normal;
  text-transform:none;
  padding:.75rem var(--bp-sp-lg);
  min-height:3rem;                 /* 48px */
}
.bs-btn--sm{font-size:var(--bp-fs-sm);line-height:var(--bp-lh-sm);padding:.5rem var(--bp-sp-base);min-height:2.5rem}
.bs-btn--lg{font-size:var(--bp-fs-lg);line-height:var(--bp-lh-h3);padding:1rem var(--bp-sp-xl);min-height:3.5rem}
.bs-link,.bs-footer__list a{
  font-size:var(--bp-fs-base);
  line-height:var(--bp-lh-body);
  font-weight:var(--bp-w-bold);
  letter-spacing:normal;
  text-transform:none;
}
.bs-nav__list a{
  font-size:var(--bp-fs-base);
  line-height:var(--bp-lh-body);
  font-weight:var(--bp-w-bold);
  letter-spacing:normal;
  text-transform:none;
}
.bs-header__phone{font-size:var(--bp-fs-base);line-height:var(--bp-lh-body);font-weight:var(--bp-w-bold)}
.bs-chip,.bs-badge,.bs-field label,.bs-stat span,.bs-testimonial__who,
.bs-gallery-hero__more,.bs-book__k{
  font-size:var(--bp-fs-sm);
  line-height:var(--bp-lh-sm);
  font-weight:var(--bp-w-bold);
  letter-spacing:normal;
  text-transform:none;
}
.bs-footer h4{font-size:var(--bp-fs-base);line-height:var(--bp-lh-body);font-weight:var(--bp-w-bold);letter-spacing:normal;text-transform:none}
.bs-footer,.bs-footer__list{font-size:var(--bp-fs-base);line-height:var(--bp-lh-body)}
.bs-footer__bar,.bs-pop__note,.bs-postlist__meta,.bs-stepper small{
  font-size:var(--bp-fs-sm);line-height:var(--bp-lh-sm)}
.bs-cal__legend,.bs-cal__clear{font-size:var(--bp-fs-sm);line-height:var(--bp-lh-sm);letter-spacing:normal;text-transform:none}

/* --- Booking widget --------------------------------------------------- */
.bs-book__v{
  font-family:var(--bs-font-body);
  font-size:var(--bp-fs-base);
  line-height:var(--bp-lh-body);
  font-weight:var(--bp-w-bold);
}
.bs-book__trigger{padding:.75rem var(--bp-sp-base)}
.bs-book__error{font-size:var(--bp-fs-sm);line-height:var(--bp-lh-sm)}
.bs-input,.bs-select{font-size:var(--bp-fs-base);line-height:var(--bp-lh-body);min-height:3rem;padding:.75rem var(--bp-sp-base)}
.bs-stepper strong{font-size:var(--bp-fs-base);line-height:var(--bp-lh-body);font-weight:var(--bp-w-bold)}
.bs-cal__day{font-size:var(--bp-fs-sm);line-height:var(--bp-lh-sm)}
.bs-cal__hint{font-size:var(--bp-fs-sm);line-height:var(--bp-lh-sm);letter-spacing:normal;text-transform:none}
.bs-cal__month h4{font-size:var(--bp-fs-base);line-height:var(--bp-lh-body);font-weight:var(--bp-w-bold)}

/* --- Numerals: black weight, hero line height -------------------------- */
.bs-stat strong{
  font-family:var(--bs-font-body);
  font-size:var(--bp-fs-xxxxl);
  line-height:var(--bp-lh-hero);
  font-weight:var(--bp-w-black);
}
.bs-bookcard__price strong{
  font-family:var(--bs-font-body);
  font-size:var(--bp-fs-xxl);
  line-height:var(--bp-lh-h1);
  font-weight:var(--bp-w-black);
}
.bs-bookcard__price span{font-size:var(--bp-fs-sm);line-height:var(--bp-lh-sm)}
.bs-walks strong{font-family:var(--bs-font-body);font-size:var(--bp-fs-xl);line-height:var(--bp-lh-h2);font-weight:var(--bp-w-bold)}
.bs-walks span{font-size:var(--bp-fs-sm);line-height:var(--bp-lh-sm)}
.bs-mobilebar__price strong{font-family:var(--bs-font-body);font-size:var(--bp-fs-lg);font-weight:var(--bp-w-bold)}
.bs-mobilebar__price span{font-size:var(--bp-fs-xs);line-height:var(--bp-lh-xs)}

/* --- Quotes: no italic serif; sentence case sans ----------------------- */
.bs-testimonial blockquote,.wp-block-quote{
  font-family:var(--bs-font-body);
  font-style:normal;
  font-size:clamp(1.25rem,1rem + 1.2vw,2rem);
  line-height:var(--bp-lh-h2);
  font-weight:var(--bp-w-book);
  max-width:34ch;
}
.wp-block-quote{font-size:var(--bp-fs-lg);line-height:var(--bp-lh-h3)}

/* --- Gutenberg ------------------------------------------------------- */
.wp-block-button__link,.wp-element-button{
  font-family:var(--bs-font-body);
  font-size:var(--bp-fs-base);
  line-height:var(--bp-lh-body);
  font-weight:var(--bp-w-bold);
  letter-spacing:normal;
  text-transform:none;
  padding:.75rem var(--bp-sp-lg);
}
.wp-block-details summary{font-family:var(--bs-font-body);font-size:var(--bp-fs-lg);line-height:var(--bp-lh-h3);font-weight:var(--bp-w-bold)}
.is-style-bs-eyebrow{font-size:var(--bp-fs-sm);font-weight:var(--bp-w-bold);letter-spacing:normal;text-transform:none}
.is-style-bs-lead{font-size:var(--bp-fs-lg);line-height:var(--bp-lh-h3);font-weight:var(--bp-w-book)}

/* --- Vertical rhythm on the 8px grid ---------------------------------- */
p{margin-block:0 var(--bp-sp-base)}
p:last-child{margin-bottom:0}
h1,h2,h3,h4,h5,h6{margin-block:0 var(--bp-sp-md)}
.bs-section__head{margin-bottom:var(--bp-sp-xl)}
.bs-section__cta{margin-top:var(--bp-sp-xl)}
.bs-prose h2,.bs-prose h3{margin-top:var(--bp-sp-xl)}
.bs-meta{padding-bottom:var(--bp-sp-md);margin-bottom:var(--bp-sp-base)}
.bs-card__body{padding-top:var(--bp-sp-base)}
.bs-card__text{margin-bottom:var(--bp-sp-base)}
.bs-hero__sub{margin-top:var(--bp-sp-base)}
.bs-hero__actions{margin-top:var(--bp-sp-lg)}
.bs-amenity-list{gap:var(--bp-sp-md)}
.bs-footer__list{gap:var(--bp-sp-md)}

/* Small screens: step the scale down one notch, staying on the grid */
@media (max-width:768px){
  .bs-lead,.bs-hero__sub{font-size:var(--bp-fs-base);line-height:var(--bp-lh-body)}
  .bs-btn--lg{font-size:var(--bp-fs-base);line-height:var(--bp-lh-body);min-height:3rem}
  .bs-stat strong{font-size:var(--bp-fs-xxl);line-height:var(--bp-lh-h1)}
}
