:root{
      --paper:#F2ECE4;
      --ink:#3E2F26;
      --green:#5C6E58;
      --gold:#C5A065;
      --white:#ffffff;
      --shadow: 0 14px 40px rgba(62,47,38,.14);
      --shadow-soft: 0 10px 30px rgba(62,47,38,.10);
      --radius: 18px;
      --serif: "Cormorant Garamond", serif;
      --sans: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
      --container: 1180px;
    }

    *{ box-sizing:border-box; }
    html,body{ height:100%; }
    body{ margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); overflow-x:hidden; }
    a{ color:inherit; text-decoration:none; }
    .container{ max-width:var(--container); margin:0 auto; padding:0 18px; }

    .topbar{
      position:sticky; top:0; z-index:60;
      backdrop-filter: blur(10px);
      background: rgba(242,236,228,.82);
      border-bottom: 1px solid rgba(62,47,38,.10);
    }
    .topbar__inner{ display:flex; align-items:center; justify-content:space-between; gap:14px; padding:10px 0; }

    .brand{ display:flex; align-items:center; gap:10px; font-family:var(--serif); letter-spacing:.2px; }
    .brand__dot{ width:34px;height:34px;border-radius:12px; background: radial-gradient(circle at 30% 30%, rgba(197,160,101,.55), rgba(92,110,88,.40) 55%, rgba(62,47,38,.18)); box-shadow: var(--shadow-soft); position:relative; }
    .brand__dot:after{ content:""; position:absolute; inset:8px; border:1px solid rgba(62,47,38,.25); border-radius:10px; }
    .brand__name{ display:flex; flex-direction:column; line-height:1.05; }
    .brand__name strong{ font-weight:600; font-size:1.02rem; }
    .brand__name span{ font-family:var(--sans); font-size:.78rem; opacity:.78; }

    .nav{ display:flex; align-items:center; gap:10px; }
    .pill{
      display:inline-flex; align-items:center; gap:8px;
      padding:10px 12px; border-radius:999px;
      border:1px solid rgba(62,47,38,.18);
      background: rgba(255,255,255,.35);
      box-shadow: 0 6px 18px rgba(62,47,38,.08);
      font-size:.88rem;
    }
    .pill i{ color: var(--green); }

    .grid{ display:flex; flex-direction:column; gap:18px; padding: 18px 0 34px; }
    @media (min-width: 980px){ .grid{ display:grid; grid-template-columns: minmax(0, 1fr) 380px; gap:28px; padding: 26px 0 60px; } }

    /* cards */
    .card{ background: rgba(255,255,255,.60); border:1px solid rgba(62,47,38,.14); border-radius: var(--radius); box-shadow: var(--shadow); overflow:hidden; }
    .card__pad{ padding:16px; }
    .card__head{ padding:16px; border-bottom:1px solid rgba(62,47,38,.10); background: linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,255,255,.45)); }
    .small{ font-size:.88rem; opacity:.84; line-height:1.45; }

    /* Fullscreen hero */
    .heroFull{
      position: relative;
      min-height: 62vh;
      margin: 14px 0 18px;
      border-radius: 22px;
      overflow: hidden;
      border: 1px solid rgba(62,47,38,.14);
      box-shadow: var(--shadow);
    }
    .heroFull__bg{
      position:absolute; inset:0;
      background-image: url("../photos/p01-51f87829-ef6f-4417-b5da-19d573f36c7e.jpeg");
      background-size: cover;
      background-position: center;
      transform: scale(1.02);
    }
    .heroFull__overlay{
      position:absolute; inset:0;
      background: linear-gradient(90deg, rgba(16,12,10,.78) 0%, rgba(16,12,10,.45) 48%, rgba(16,12,10,.12) 100%);
    }
    .heroFull__content{
      position:relative;
      padding: 22px;
      color: rgba(255,255,255,.96);
      max-width: 640px;
    }
    .heroKicker{ margin:0; font-size:.9rem; letter-spacing:.18px; opacity:.92; display:inline-flex; gap:10px; align-items:center; }
    .heroKicker i{ color: rgba(197,160,101,.95); }
    .heroTitle{ font-family:var(--serif); margin: 10px 0 8px; font-weight:600; font-size: clamp(2.0rem, 6vw, 3.2rem); line-height: 1.02; }
    .heroSubtitle{ margin:0; opacity:.92; line-height:1.55; font-size: 1.02rem; max-width: 60ch; }

.heroQuote{
  margin: 14px 0 6px;
  padding: 12px 14px;
  max-width: 72ch;
  border-left: 4px solid rgba(255,255,255,.7);
  background: rgba(0,0,0,.18);
  backdrop-filter: blur(6px);
  color: rgba(255,255,255,.95);
  font-style: italic;
  line-height: 1.55;
  border-radius: 12px;
}

.heroStoryLink{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-top: 14px;
  padding: 10px 12px;
  max-width: 72ch;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(0,0,0,.14);
  backdrop-filter: blur(6px);
  color: rgba(255,255,255,.95);
  font-weight: 850;
  letter-spacing: .2px;
  text-decoration: none;
}
.heroStoryLink:hover{ background: rgba(0,0,0,.20); }

    .heroChips{ display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
    .chip{
      display:inline-flex; align-items:center; gap:8px;
      padding:10px 12px;
      border-radius:999px;
      background: rgba(255,255,255,.14);
      border:1px solid rgba(255,255,255,.16);
      backdrop-filter: blur(8px);
      font-size:.9rem;
      white-space: nowrap;
    }
    .chip i{ color: rgba(197,160,101,.95); }

    .heroPrice{
      margin-top: 16px;
      padding: 12px 14px;
      border-radius: 16px;
      background: rgba(255,255,255,.14);
      border:1px solid rgba(255,255,255,.16);
      backdrop-filter: blur(10px);
      font-size:.95rem;
      line-height: 1.35;
    }
    .heroPrice .muted{ opacity: .9; }

    @media (max-width: 560px){
      .heroFull{ min-height: 92vh; border-radius: 18px; }
      .heroFull__overlay{
        background: linear-gradient(180deg, rgba(16,12,10,.72) 0%, rgba(16,12,10,.35) 55%, rgba(16,12,10,.12) 100%);
      }
      .heroFull__content{ max-width: none; padding: 18px; }
    }

    /* Desktop optimisation: keep booking visible without scrolling */
    @media (min-width: 980px){
      .heroFull{ min-height: 46vh; }
      .heroFull__content{ padding: 28px; max-width: 720px; }

      /* Pull the booking card up into the hero area */
      .grid{ padding-top: 0; }
      .grid > aside{ margin-top: -140px; position: relative; z-index: 5; }
      .grid > div{ margin-top: 12px; }
    }

    /* Gallery */
    .gallery{ display:grid; grid-template-columns: 1fr 1fr; gap:10px; }
    /* Uniform photo tiles on desktop */
    @media (min-width: 720px){ .gallery{ grid-template-columns: repeat(3, 1fr); } }
    @media (min-width: 1100px){ .gallery{ grid-template-columns: repeat(4, 1fr); } }
    .tile{ position:relative; border-radius:16px; overflow:hidden; border:1px solid rgba(62,47,38,.10); background:#fff; cursor:pointer; }
    .tile img{ width:100%; height:100%; display:block; object-fit:cover; aspect-ratio: 4/3; }
    /* Uniform tiles on desktop too (no special “big” tile) */
    .tile.big img{ aspect-ratio: 4/3; }
    .tile:after{ content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0), rgba(0,0,0,.18)); opacity:.45; }

    .modal{ position:fixed; inset:0; background: rgba(0,0,0,.72); display:none; align-items:center; justify-content:center; padding:18px; z-index:100; }
    .modal.open{ display:flex; }
    .modal__inner{ max-width: 1100px; width:100%; }
    .modal__img{ width:100%; max-height: 80vh; object-fit:contain; border-radius: 18px; background:#111; }
    .modal__bar{ margin-top:10px; display:flex; justify-content:space-between; gap:10px; color:#fff; font-size:.9rem; opacity:.9; }
    .mBtn{ background: rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.16); color:#fff; padding:10px 12px; border-radius:12px; cursor:pointer; }

    /* Lists */
    .sectionTitle{ font-family:var(--sans); margin:0 0 10px; font-size: 1.05rem; font-weight:800; letter-spacing:.2px; }
    .twoCol{ display:grid; grid-template-columns: 1fr; gap:12px; }
    @media (min-width: 720px){ .twoCol{ grid-template-columns: 1fr 1fr; } }

    .box{ background:#fff; border:1px solid rgba(62,47,38,.10); border-radius: 16px; padding: 14px; }
    .box h4{ margin:0 0 10px; font-size:.92rem; letter-spacing:.2px; text-transform: uppercase; opacity:.75; }
    .list{ margin:0; padding:0; list-style:none; display:grid; gap:10px; }
    .list li{ display:flex; gap:10px; align-items:flex-start; line-height:1.45; font-size:.95rem; }
    .list i{ color: var(--gold); margin-top:2px; }

    .warning{ border:1px solid rgba(198,90,74,.35); background: rgba(198,90,74,.06); border-radius: 16px; padding: 14px; }
    .warning h4{ margin:0 0 8px; font-size:.95rem; display:flex; align-items:center; gap:10px; }
    .warning h4 i{ color:#C65A4A; }
    .warning ul{ margin:0; padding-left:18px; line-height:1.55; font-size:.95rem; }

    /* booking sticky */
    @media (min-width: 980px){ .sticky{ position: sticky; top: 76px; } }
    /* On mobile, show booking card early (right after hero) */
    @media (max-width: 979px){
      .grid > aside{ order: 0; }
      .grid > div{ order: 1; }
    }

    .kpis{ display:grid; grid-template-columns: 1fr 1fr; gap:10px; margin-top:12px; }

/* Mini price summary in booking card */
.priceTool{
  margin-top: 12px;
  padding: 12px;
  border-radius: 14px;
  border: 1px solid rgba(47,35,29,.12);
  background: rgba(255,255,255,.72);
}
.priceTool__top{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.priceTool__label{ font-size:.82rem; opacity:.78; }
.priceTool__value{ font-size:1.28rem; font-weight:900; letter-spacing:.2px; }
.priceTool__toggle{
  margin-top:8px;
  width:100%;
  border:1px solid rgba(47,35,29,.14);
  background: rgba(62,91,69,.10);
  border-radius: 12px;
  padding:10px 12px;
  font-weight:700;
  cursor:pointer;
}
.priceTool__detail{ margin-top:10px; }

.priceMini__row{ display:flex; justify-content:space-between; gap:10px; font-size:.9rem; line-height:1.35; margin-top:6px; }
.priceMini__row:first-child{ margin-top:0; }
#pmTaxDetail{ margin-top:8px; opacity:.78; }
    .kpi{ background: rgba(242,236,228,.55); border:1px solid rgba(62,47,38,.12); border-radius:14px; padding:10px; display:flex; gap:10px; align-items:flex-start; min-height:54px; }
    .kpi i{ color: var(--gold); margin-top:2px; }
    .kpi b{ display:block; font-size:.9rem; }
    .kpi span{ display:block; font-size:.78rem; opacity:.78; margin-top:2px; }

    .btn{ display:flex; align-items:center; justify-content:center; gap:10px; padding:12px 14px; border-radius:14px; border:1px solid rgba(62,47,38,.14); background: rgba(92,110,88,.12); font-weight:700; font-size:.95rem; cursor:pointer; transition: transform .12s ease, background .12s ease; }
    .btn:hover{ transform: translateY(-1px); background: rgba(92,110,88,.16); }
    .btn:focus-visible{ outline: 3px solid rgba(197,160,101,.95); outline-offset: 3px; }
    .btn.primary{ background: linear-gradient(135deg, rgba(92,110,88,.95), rgba(62,47,38,.85)); color:#fff; border-color: rgba(255,255,255,.12); }
    .btn.primary:hover{ filter: brightness(1.03); }
    .btn.disabled{ opacity:.55; cursor:not-allowed; transform:none !important; filter:none !important; }

    .dot{ width:8px;height:8px;border-radius:50%; background:#999; display:inline-block; margin-right:8px; transform: translateY(1px); }
    .dot.ok{ background: #3BAA5C; }
    .dot.warn{ background: #C5A065; }
    .dot.bad{ background: #C65A4A; }

    .flatpickr-calendar.inline{ box-shadow:none !important; border:1px solid rgba(62,47,38,.10); background: rgba(255,255,255,.55); border-radius:16px; overflow:hidden; width:100%; }
    .flatpickr-months{ background: rgba(242,236,228,.55); border-bottom: 1px solid rgba(62,47,38,.10); }
    .flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange, .flatpickr-day.inRange{ background: rgba(92,110,88,.90); border-color: rgba(92,110,88,.90); }
    .flatpickr-day.today{ border-color: rgba(197,160,101,.9); }
    .flatpickr-day.flatpickr-disabled{ opacity:.35; text-decoration: line-through; }

    .form{ display:grid; gap:10px; margin-top:12px; }
    .field{ display:grid; gap:6px; }
    .field label{ font-size:.82rem; opacity:.78; }
    .field input, .field select{ width:100%; padding:12px 12px; border-radius:12px; border:1px solid rgba(62,47,38,.16); background: rgba(255,255,255,.70); font-family:var(--sans); }
    .checkRow{ display:flex; gap:10px; align-items:flex-start; margin-top:10px; }
    .checkRow input{ margin-top:4px; }

    .legal{ font-size:.82rem; opacity:.72; line-height:1.55; margin-top:12px; }
    .anchor{ scroll-margin-top: 90px; }

    /* Post-submit toast */
    .sbToast{ position: fixed; right: 16px; bottom: 16px; z-index: 9999; max-width: 420px; width: calc(100% - 32px); display:none; }
    .sbToast[aria-hidden="false"]{ display:block; }
    .sbToast__card{ background: #fff; border: 1px solid rgba(0,0,0,.12); border-radius: 14px; padding: 14px; box-shadow: 0 18px 40px rgba(0,0,0,.18); }
    .sbToast__title{ font-weight: 800; margin-bottom: 6px; }
    .sbToast__text{ color: rgba(0,0,0,.75); margin-bottom: 12px; }
    .sbToast__actions{ display:flex; gap:10px; flex-wrap:wrap; }

    /* Skip link */
    .skip-link{
      position:absolute;
      left:-9999px;
      top:10px;
      background:#fff;
      color:var(--ink);
      border:2px solid var(--gold);
      padding:10px 12px;
      border-radius:12px;
      z-index:9999;
    }
    .skip-link:focus{ left:10px; }

    /* Make gallery items keyboard-focusable */
    .tileBtn{ all: unset; display:block; width:100%; }
    .tileBtn:focus-visible{ outline: 3px solid rgba(197,160,101,.95); outline-offset: 3px; border-radius: 18px; }
    .mBtn:focus-visible{ outline: 3px solid rgba(197,160,101,.95); outline-offset: 2px; }

    /* Cinematic intro */
    .sbIntro{ position:fixed; inset:0; z-index:10000; display:grid; place-items:center; background: radial-gradient(1200px 900px at 25% 20%, rgba(255,255,255,.10), rgba(0,0,0,0)), linear-gradient(135deg, rgba(31,26,22,.92), rgba(31,26,22,.78)); color:#fff; }
    .sbIntro__inner{ width:min(980px, calc(100% - 40px)); position:relative; padding: 28px 26px; }
@media (min-width: 980px){ .sbIntro__inner{ padding: 34px 34px; } }
    /* Lottie background: full-screen, responsive, very subtle */
    .sbIntro__lottie{
      position:absolute;
      /* Rounded frame BEHIND all the intro text */
      inset: 0;
      border-radius: 28px;
      pointer-events:none;
      z-index:0;
      opacity:.48;
      mix-blend-mode: screen;
      filter: blur(0px) saturate(1.15) contrast(1.15);
      overflow:hidden;
    }
    /* add a subtle glass plate so text is always readable */
    .sbIntro__lottie::after{
      content:"";
      position:absolute; inset:0;
      background: rgba(0,0,0,.22);
      backdrop-filter: blur(3px);
    }
    .sbIntro__lottie > *{ width:100%; height:100%; }
    .sbIntro__lottie svg{ width:100% !important; height:100% !important; }
    .sbIntro__kicker,.sbIntro__title,.sbIntro__line,.sbIntro__actions{ position:relative; z-index:1; }
    .sbIntro__kicker{ font-family: var(--sans); letter-spacing:.18em; text-transform:uppercase; font-size:.78rem; opacity:.78; margin:0 0 10px; }
    .sbIntro__title{ font-family: var(--serif); font-weight:600; font-size: clamp(2.2rem, 6.5vw, 4.2rem); line-height:1.02; margin:0; }
    .sbIntro__line{ font-family: var(--sans); font-size: 1.05rem; opacity:.86; margin: 14px 0 0; max-width: 56ch; }
    .sbIntro__actions{ display:flex; justify-content:space-between; gap:14px; align-items:center; margin-top: 26px; }
    .sbIntro__skip{ display:inline-flex; align-items:center; gap:10px; padding:10px 14px; border-radius:999px; border:1px solid rgba(255,255,255,.22); background: rgba(255,255,255,.08); color:#fff; font-weight:700; }
    .sbIntro__skip:hover{ background: rgba(255,255,255,.12); }
    .sbIntro__hint{ font-size:.86rem; opacity:.62; }

    /* Animations */
    .sbIntro{ animation: sbIntroFadeIn .6s ease both; }
    .sbIntro__kicker{ animation: sbIntroUp .7s .10s cubic-bezier(.2,.8,.2,1) both; }
    .sbIntro__title{ animation: sbIntroUp .9s .20s cubic-bezier(.2,.8,.2,1) both; }
    .sbIntro__line{ animation: sbIntroUp .9s .36s cubic-bezier(.2,.8,.2,1) both; }
    .sbIntro__actions{ animation: sbIntroUp .9s .52s cubic-bezier(.2,.8,.2,1) both; }
    .sbIntro--out{ animation: sbIntroFadeOut .65s ease both; }

    @keyframes sbIntroFadeIn{ from{ opacity:0; } to{ opacity:1; } }
    @keyframes sbIntroFadeOut{ from{ opacity:1; } to{ opacity:0; } }
    @keyframes sbIntroUp{ from{ opacity:0; transform: translateY(14px); filter: blur(6px); } to{ opacity:1; transform: translateY(0); filter: blur(0); } }

    @media (prefers-reduced-motion: reduce){
      *{ scroll-behavior:auto !important; }
      .btn{ transition:none; }
      .btn:hover{ transform:none; }
      .sbIntro{ display:none !important; }
    }

    /* --- Premium warm refinement (Airbnb × Apple) --- */
    body{
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
    }

    .heroCtas{ display:flex; flex-wrap:wrap; gap:10px; margin-top: 14px; }
    .heroCtas .btn{ padding: 12px 14px; }

    /* Story band (quote moved out of hero) */
    .storyBand{
      margin: 0 0 18px;
      border-radius: 22px;
      overflow:hidden;
      border: 1px solid rgba(62,47,38,.14);
      box-shadow: var(--shadow);
      background: linear-gradient(180deg, rgba(255,255,255,.74), rgba(255,255,255,.54));
    }
    .storyBand__inner{ display:grid; grid-template-columns: 1fr; }
    .storyBand__text{ padding: 18px; }
    .storyEyebrow{ margin:0 0 10px; display:inline-flex; align-items:center; gap:10px; font-size:.88rem; letter-spacing:.2px; opacity:.84; }
    .storyEyebrow i{ color: var(--green); }
    .storyTitle{ margin:0 0 10px; font-family: var(--serif); font-weight: 650; letter-spacing: .2px; font-size: clamp(1.35rem, 3vw, 1.9rem); line-height: 1.08; }
    .storyLead{ margin:0 0 12px; max-width: 70ch; line-height: 1.6; }
    .storyQuote{
      margin: 0;
      padding: 14px 14px;
      border-radius: 16px;
      border: 1px solid rgba(62,47,38,.12);
      background: rgba(242,236,228,.55);
      box-shadow: 0 10px 30px rgba(62,47,38,.08);
      font-style: italic;
      line-height: 1.65;
      max-width: 78ch;
    }
    .storyActions{ display:flex; flex-wrap:wrap; gap:10px; margin-top: 14px; }

    .storyBand__media{
      min-height: 220px;
      background-image:
        linear-gradient(120deg, rgba(16,12,10,.10), rgba(16,12,10,.25)),
        url("../photos/p02-8ba90f22-72ea-43e2-9ef2-dc98f4a03b4c.jpeg");
      background-size: cover;
      background-position: center;
    }

    @media (min-width: 980px){
      .storyBand__inner{ grid-template-columns: 1.25fr .75fr; }
      .storyBand__text{ padding: 22px; }
      .storyBand__media{ min-height: 100%; }
    }

    /* Slightly more "Apple" feel: calmer pills & cards */
    .pill{ background: rgba(255,255,255,.50); }
    .card{ background: rgba(255,255,255,.68); }
    .btn{ box-shadow: 0 10px 26px rgba(62,47,38,.10); }
    .btn.primary{ box-shadow: 0 18px 46px rgba(62,47,38,.18); }

    @media (max-width: 560px){
      .storyBand{ border-radius: 18px; }
      .storyBand__text{ padding: 16px; }
    }
