/* ============ Design tokens ============ */
  :root{
    --emerald-900:#0b3d31;
    --emerald-800:#11634f;
    --emerald-700:#157457;
    --emerald-600:#1b9572;
    --emerald-500:#21a37f;
    --emerald-400:#46be9b;
    --emerald-100:#e0f2ea;
    --emerald-50:#f2faf6;
    --sky-500:#68cdf0;
    --sky-400:#92e1f6;
    --sky-100:#e4f7fd;
    --ink:#122019;
    --ink-soft:#4a5b53;
    --line:#e7ece9;
    --sand:#f7f5f0;
    --white:#ffffff;
    --gold:#c9a24b;
    --gold-light:#ecd6a4;
    --shadow-sm:0 2px 8px rgba(11,61,49,.06);
    --shadow-md:0 12px 32px rgba(11,61,49,.10);
    --shadow-lg:0 24px 60px rgba(11,61,49,.16);
    --radius:18px;
    --radius-lg:26px;
    --maxw:1240px;
    --ease:cubic-bezier(.22,.61,.36,1);
  }
  *{box-sizing:border-box;margin:0;padding:0}
  /* .card sets display:block, which outranks the UA stylesheet's
     [hidden]{display:none} - so the attribute needs to win explicitly */
  [hidden]{display:none!important}
  html{scroll-behavior:smooth}
  body{
    font-family:"Montserrat",system-ui,sans-serif;
    color:var(--ink);
    background:var(--white);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  h1,h2,h3,h4{font-family:"Fraunces","Georgia",serif;font-weight:500;line-height:1.1;letter-spacing:-.01em;color:var(--emerald-900)}
  a{color:inherit;text-decoration:none}
  img{display:block;max-width:100%}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
  .eyebrow{font-family:"Montserrat";font-weight:700;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--emerald-600)}
  .btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-family:"Montserrat";font-weight:600;font-size:.95rem;border:0;cursor:pointer;border-radius:100px;padding:.95rem 1.7rem;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .25s var(--ease)}
  .btn-primary{background:linear-gradient(120deg,var(--emerald-600),var(--emerald-400));color:#fff;box-shadow:0 10px 24px rgba(27,149,114,.32)}
  .btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(27,149,114,.42)}
  .btn-ghost{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.4);backdrop-filter:blur(6px)}
  .btn-ghost:hover{background:rgba(255,255,255,.24)}
  .btn-dark{background:var(--emerald-900);color:#fff}
  .btn-dark:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
  .btn-outline{background:transparent;color:var(--emerald-800);border:1.5px solid var(--emerald-600)}
  .btn-outline:hover{background:var(--emerald-50)}

  /* ============ Header ============ */
  header.site{position:fixed;inset:0 0 auto 0;z-index:100;transition:background .35s var(--ease),box-shadow .35s var(--ease),padding .35s var(--ease);padding:20px 0}
  header.site .bar{display:flex;align-items:center;justify-content:space-between;gap:24px}
  .logo img{height:46px;width:auto;transition:filter .35s var(--ease)}
  header.site nav{display:flex;align-items:center;gap:30px}
  header.site nav a.navlink{font-weight:600;font-size:.92rem;color:#fff;position:relative;padding:4px 0;transition:color .25s}
  header.site nav a.navlink::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--emerald-400);transition:width .3s var(--ease)}
  header.site nav a.navlink:hover::after{width:100%}
  .hdr-actions{display:flex;align-items:center;gap:18px}
  .hdr-phone{display:flex;align-items:center;gap:.5rem;font-weight:700;color:#fff;font-size:.95rem}
  .fav-btn{display:flex;align-items:center;gap:.4rem;color:#fff;font-weight:600;font-size:.9rem}
  .fav-btn .count{background:var(--emerald-600);color:#fff;border-radius:100px;min-width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;padding:0 6px}
  /* scrolled state */
  header.site--solid,
  header.site.scrolled{background:rgba(255,255,255,.92);backdrop-filter:blur(14px);box-shadow:var(--shadow-sm);padding:12px 0}
  header.site--solid .logo img,
  header.site.scrolled .logo img{filter:none}
  header.site--solid nav a.navlink,
  header.site--solid .hdr-phone,
  header.site--solid .fav-btn,
  header.site.scrolled nav a.navlink,
  header.site.scrolled .hdr-phone,
  header.site.scrolled .fav-btn{color:var(--emerald-900)}
  header.site--solid .btn-ghost,
  header.site.scrolled .btn-ghost{background:var(--emerald-900);color:#fff;border-color:var(--emerald-900)}
  .burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px}
  .burger span{width:26px;height:2px;background:#fff;border-radius:2px;transition:.3s}
  header.site--solid .burger span,
  header.site.scrolled .burger span{background:var(--emerald-900)}

  /* ============ Hero ============ */
  /* Clip the animated photo, not the search popovers: Safari can clip fixed
     descendants of an isolated hero. Keep the hero above the following
     sections while leaving the fixed site header (z-index:100) above it. */
  .hero{position:relative;isolation:isolate;z-index:10;min-height:100vh;display:flex;align-items:center;color:#fff;padding:120px 0 60px;overflow:visible}
  .hero-bg{position:absolute;inset:0;z-index:0;overflow:hidden}
  .hero-bg img{width:100%;height:100%;object-fit:cover;animation:slowzoom 22s ease-out forwards}
  /* --- rotating hero ------------------------------------------------
     Slides are stacked and crossfaded on opacity alone - no layout work, so
     the transition stays on the compositor. Only the visible frame animates.
     Without JavaScript the first slide is the only one at opacity 1, so the
     hero looks exactly as it did before. */
  .hero-bg--carousel .hero-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;animation:none;transition:opacity 1.5s var(--ease);will-change:opacity}
  .hero-bg--carousel .hero-slide.is-active{opacity:1;animation:heroDrift 9s ease-out forwards}
  @keyframes heroDrift{from{transform:scale(1.06)}to{transform:scale(1)}}

  /* a vertical rail on the right edge: the bottom-left of the hero belongs to
     the search form and the bottom-right to .hero-stats, so a horizontal strip
     would collide with one or the other */
  .hero-dots{position:absolute;right:26px;top:50%;transform:translateY(-50%);z-index:3;display:flex;flex-direction:column;align-items:center;gap:11px}
  .hero-dot{width:22px;height:26px;padding:0;border:0;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center}
  .hero-dot span{display:block;width:3px;height:18px;border-radius:3px;background:rgba(255,255,255,.4);box-shadow:0 1px 3px rgba(3,16,13,.4);transition:background .35s var(--ease),height .35s var(--ease)}
  .hero-dot:hover span{background:rgba(255,255,255,.8)}
  .hero-dot.is-active span{background:#fff;height:30px}
  .hero-dot:focus-visible{outline:2px solid #fff;outline-offset:2px;border-radius:5px}
  @media(max-width:760px){.hero-dots{right:14px;gap:9px}.hero-dot span{height:14px}.hero-dot.is-active span{height:24px}}
  @keyframes slowzoom{from{transform:scale(1.08)}to{transform:scale(1)}}
  .hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(11,61,49,.55) 0%,rgba(11,61,49,.15) 35%,rgba(11,61,49,.35) 70%,rgba(11,61,49,.72) 100%)}
  /* Legibility comes from blurring what is behind the words, not from
     painting over them. The blur is masked with a soft ellipse so it has no
     edge, and it hugs the copy block, so the rest of the photograph - colour,
     brightness, subject - is untouched. Falls back to a faint tint where
     backdrop-filter is unsupported. */
  .hero-inner{max-width:820px;position:relative;z-index:2}
  .hero .kicker{display:inline-flex;align-items:center;gap:.6rem;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(8px);padding:.5rem 1rem;border-radius:100px;font-size:.78rem;font-weight:600;letter-spacing:.04em;margin-bottom:1.4rem}
  /* Tight and dense, not wide and soft. At this size the strokes are ~9px,
     so a 2-3px shadow hugs the edge and reads as definition; the original
     30px blur at .25 spread too thin to separate white from a bright wall. */
  .hero h1{font-size:clamp(2.6rem,6vw,4.7rem);color:#fff;font-weight:500;text-shadow:0 1px 2px rgba(0,0,0,.55),0 2px 9px rgba(0,0,0,.42),0 6px 28px rgba(0,0,0,.22)}
  .hero h1 em{font-style:italic;color:var(--sky-400);text-shadow:0 1px 2px rgba(0,0,0,.65),0 2px 10px rgba(0,0,0,.5),0 6px 28px rgba(0,0,0,.25)}
  /* The brand line, demoted out of the H1 but not out of the design: same
     family and colour as the emphasised word above it, sized between the
     heading and the lede so it still reads as part of the same sentence. */
  .hero .hero-tagline{font-family:"Fraunces","Georgia",serif;font-style:italic;font-weight:400;font-size:clamp(1.3rem,2.6vw,2.05rem);line-height:1.15;color:var(--sky-400);margin:.55rem 0 0;text-shadow:0 1px 2px rgba(0,0,0,.65),0 2px 10px rgba(0,0,0,.5),0 6px 28px rgba(0,0,0,.25)}
  /* Readability from the type, not from another layer over the picture:
     solid white instead of 94%, one step up in weight, and a tight dense
     shadow. A small radius sits hard against the letter edge and reads as
     contrast; a wide one just spreads grey haze. */
  .hero p.lede{font-size:clamp(1.08rem,1.62vw,1.32rem);max-width:620px;margin:1.4rem 0 0;color:#fff;font-weight:500;line-height:1.62;text-shadow:0 1px 2px rgba(0,0,0,.85),0 1px 6px rgba(0,0,0,.55)}

  /* ============ Search widget ============ */
  .searchbar{margin-top:2.4rem;background:rgba(255,255,255,.96);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:12px;display:flex;align-items:stretch;gap:6px;max-width:1020px}
  .search-field{flex:1;display:flex;flex-direction:column;gap:2px;padding:14px 18px;border-radius:16px;cursor:pointer;transition:background .2s;position:relative}
  .search-field + .search-field::before{content:"";position:absolute;left:0;top:18%;height:64%;width:1px;background:var(--line)}
  .search-field:hover{background:var(--emerald-50)}
  .search-field label{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--emerald-700)}
  .search-field input,.search-field select{border:0;background:transparent;font-family:"Montserrat";font-size:.98rem;font-weight:500;color:var(--ink);outline:none;width:100%;cursor:pointer}
  .search-field input::placeholder{color:#9aa8a1}
  .search-submit{flex:0 0 auto;display:flex;align-items:center}
  .search-submit .btn{height:100%;padding:0 2rem}
  .search-tags{display:flex;gap:10px;margin-top:1.2rem;flex-wrap:wrap}
  .search-tags a{font-size:.82rem;font-weight:600;color:#fff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.28);padding:.45rem .95rem;border-radius:100px;backdrop-filter:blur(6px);transition:.25s}
  .search-tags a:hover{background:#fff;color:var(--emerald-800)}
  .hero-stats{position:absolute;right:28px;bottom:34px;display:flex;gap:34px;z-index:1}
  .hero-stats .st{text-align:right}
  .hero-stats .st b{font-family:"Fraunces";font-size:1.9rem;color:#fff;display:block;line-height:1}
  .hero-stats .st span{font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.8)}

  /* ============ Section scaffolding ============ */
  section{position:relative}
  .sec{padding:96px 0}
  .sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:44px}
  .sec-head h2{font-size:clamp(2rem,3.4vw,2.9rem)}
  .sec-head p{color:var(--ink-soft);max-width:520px;margin-top:.7rem}
  .sec-head .link{font-weight:600;color:var(--emerald-700);white-space:nowrap;display:inline-flex;align-items:center;gap:.4rem}
  .sec-head .link:hover{gap:.7rem}

  /* trust strip */
  .trustbar{background:var(--emerald-900);color:rgba(255,255,255,.85)}
  .trustbar .wrap{display:grid;grid-template-columns:repeat(4,1fr);align-items:start;gap:16px 30px;padding-top:22px;padding-bottom:22px}
  .trustbar .ti{display:flex;align-items:flex-start;gap:.6rem;font-size:.84rem;font-weight:500;line-height:1.45}
  .trustbar .ti svg{color:var(--emerald-400);flex:0 0 auto;margin-top:1px}
  @media(max-width:1080px){.trustbar .wrap{grid-template-columns:repeat(2,1fr);gap:18px 30px}}
  @media(max-width:620px){.trustbar .wrap{grid-template-columns:1fr}}

  /* ============ Category pills ============ */
  .cats{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:36px}
  .cat{display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1.25rem;border-radius:100px;border:1.5px solid var(--line);background:#fff;font-weight:600;font-size:.9rem;color:var(--ink-soft);cursor:pointer;transition:.25s var(--ease)}
  .cat:hover{border-color:var(--emerald-400);color:var(--emerald-800)}
  .cat.active{background:var(--emerald-900);border-color:var(--emerald-900);color:#fff}

  /* ============ Property cards ============ */
  .grid{display:grid;grid-template-columns:repeat(4,1fr);align-items:start;gap:26px}
  /* position:relative so the favourite button, now a sibling of the link
     rather than a child of it, still anchors to the card's top-right corner. */
  .card{position:relative;display:flex;flex-direction:column;background:#fff;border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
  /* The link still wraps the whole card, so it is one large tap target; what
     changed is that the favourite button is now its sibling rather than its
     child. It takes over the column layout the card itself used to do. */
  .card-link{display:flex;flex-direction:column;flex:1 1 auto;color:inherit}
  .card-link:focus-visible{outline:2px solid var(--emerald-600);outline-offset:3px;border-radius:var(--radius)}
  .card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md)}
  .card-media{position:relative;aspect-ratio:4/3.2;overflow:hidden;border-radius:var(--radius)}
  .card-media img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
  .card:hover .card-media img{transform:scale(1.07)}
  .card-badge{pointer-events:none;position:absolute;z-index:2;top:14px;left:14px;background:rgba(255,255,255,.94);color:var(--emerald-900);font-size:.72rem;font-weight:700;letter-spacing:.02em;padding:.4rem .75rem;border-radius:100px;box-shadow:var(--shadow-sm)}
  /* Platinum: a restrained dark-glass pill with soft gold type. Flat base, so
     the only highlight is the light that passes across it. */
  /* Tier pills share one type treatment; colour carries the hierarchy and only
     Platinum animates. */
  .card-badge.gold,.card-badge.tier-gold,.card-badge.tier-silver{
    border:0;font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
    padding:.44rem .82rem}
  /* Gold: solid brand green, no movement */
  .card-badge.tier-gold{
    background:var(--emerald-800);color:#fff;
    box-shadow:0 2px 10px rgba(11,61,49,.35)}
  /* Silver: quiet neutral, no movement */
  .card-badge.tier-silver{
    background:rgba(255,255,255,.94);color:var(--emerald-900);
    box-shadow:var(--shadow-sm)}

  /* Platinum: flat gold so it reads instantly against photography. No gradient
     on the base - the only light on the pill is the pass that sweeps across. */
  .card-badge.gold{
    background:var(--gold);
    color:#fff;
    border:0;
    font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
    padding:.44rem .82rem;
    text-shadow:0 1px 2px rgba(84,58,0,.5);
    -webkit-backdrop-filter:none;backdrop-filter:none;
    box-shadow:0 2px 12px rgba(201,162,75,.5);
    overflow:hidden}
  /* one narrow pass of light, ~every 5s; transform-based so it stays on the compositor */
  .card-badge.gold::after{
    content:"";position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.7) 50%,transparent 62%);
    transform:translateX(-140%);
    animation:badge-sheen 5s ease-in-out infinite}
  @keyframes badge-sheen{0%,72%{transform:translateX(-140%)}100%{transform:translateX(140%)}}
  .card:hover .card-badge.gold{box-shadow:0 3px 18px rgba(201,162,75,.72)}
  @media(prefers-reduced-motion:reduce){.card-badge.gold::after{display:none}}
  .heart{position:absolute;z-index:3;top:12px;right:12px;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.85);display:flex;align-items:center;justify-content:center;border:0;cursor:pointer;transition:.25s}
  .heart:hover{background:#fff;transform:scale(1.08)}
  .heart svg{width:19px;height:19px;stroke:var(--emerald-900);fill:none;stroke-width:2;transition:.2s}
  .heart.on svg{fill:#e5484d;stroke:#e5484d}
  .card-body{padding:16px 4px 6px;display:flex;flex-direction:column;flex:1 1 auto}
  .card-loc{display:flex;justify-content:space-between;align-items:center;gap:8px}
  .card-loc .place{font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--emerald-600)}
  .card-loc .rate{display:flex;align-items:center;gap:.25rem;font-weight:600;font-size:.88rem;color:var(--ink)}
  .card-loc .rate svg{width:14px;height:14px;fill:var(--gold)}
  .card h3{font-size:1.18rem;margin:.35rem 0 .2rem;font-weight:600}
  .card .meta{font-size:.85rem;color:var(--ink-soft)}
  .card .price{margin-top:auto;padding-top:.7rem;font-size:.95rem;color:var(--ink-soft)}
  .card .price b{display:block;font-family:"Fraunces";font-size:1.25rem;line-height:1.2;color:var(--emerald-900);font-weight:600;white-space:nowrap}

  /* ============ Destinations mosaic ============ */
  .dest-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
  .dest{display:block;position:relative;aspect-ratio:4/3;border-radius:var(--radius);overflow:hidden;cursor:pointer;color:#fff}
  .dest img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
  .dest:hover img{transform:scale(1.08)}
  .dest::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,61,49,0) 30%,rgba(11,61,49,.78))}
  .dest .lbl{position:absolute;left:22px;bottom:20px;z-index:2}
  .dest .lbl b{font-family:"Fraunces";font-size:1.5rem;display:block;line-height:1.05}
  .dest .lbl span{font-size:.8rem;opacity:.9}

  /* ============ Why us ============ */
  .why{background:var(--sand)}
  .why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}
  .feat{background:#fff;border-radius:var(--radius);padding:34px 28px;box-shadow:var(--shadow-sm);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
  .feat:hover{transform:translateY(-5px);box-shadow:var(--shadow-md)}
  .feat .ic{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--emerald-100),var(--sky-100));margin-bottom:18px}
  .feat .ic svg{width:28px;height:28px;stroke:var(--emerald-700);fill:none;stroke-width:1.8}
  .feat h3{font-size:1.22rem;margin-bottom:.5rem;font-weight:600}
  .feat p{font-size:.9rem;color:var(--ink-soft)}

  /* ============ Emerald Kite Rate Advantage ============ */
  .rate-advantage-home{background:#fff}
  .rate-advantage-panel{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:58px;align-items:center;border-radius:32px;padding:58px 62px;background:linear-gradient(135deg,var(--emerald-900),var(--emerald-800));box-shadow:var(--shadow-lg);color:#fff}
  .rate-advantage-panel::before{content:"";position:absolute;z-index:-1;right:-140px;top:-180px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(146,225,246,.26),rgba(70,190,155,.08) 48%,transparent 70%)}
  .rate-advantage-panel .eyebrow{color:var(--sky-400)}
  .rate-advantage-copy h2{color:#fff;font-size:clamp(2rem,3.4vw,3.05rem);max-width:760px;margin:.55rem 0 1rem}
  .rate-advantage-copy > p:not(.rate-advantage-disclosure){max-width:690px;color:rgba(255,255,255,.9);font-size:1.05rem;line-height:1.75}
  .rate-advantage-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:1.7rem}
  .rate-advantage-disclosure{max-width:720px;margin-top:1.25rem;color:rgba(255,255,255,.67);font-size:.75rem;line-height:1.65}
  .rate-advantage-steps{list-style:none;display:grid;gap:12px}
  .rate-advantage-steps li{display:flex;align-items:flex-start;gap:14px;padding:18px 20px;border:1px solid rgba(255,255,255,.16);border-radius:16px;background:rgba(255,255,255,.08);backdrop-filter:blur(6px)}
  .rate-advantage-steps li > span{display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:32px;height:32px;border-radius:50%;background:var(--sky-400);color:var(--emerald-900);font-weight:800;font-size:.82rem}
  .rate-advantage-steps b{display:block;color:#fff;font-size:.92rem}
  .rate-advantage-steps p{margin-top:.2rem;color:rgba(255,255,255,.76);font-size:.82rem;line-height:1.55}
  @media(max-width:920px){
    .rate-advantage-panel{grid-template-columns:1fr;gap:34px;padding:48px 42px}
    .rate-advantage-steps{grid-template-columns:repeat(3,1fr)}
    .rate-advantage-steps li{display:block}
    .rate-advantage-steps li > span{margin-bottom:12px}
  }
  @media(max-width:680px){
    .rate-advantage-panel{padding:38px 24px;border-radius:var(--radius-lg)}
    .rate-advantage-steps{grid-template-columns:1fr}
    .rate-advantage-steps li{display:flex}
    .rate-advantage-steps li > span{margin-bottom:0}
    .rate-advantage-actions .btn{width:100%}
  }

  /* ============ Split feature (concierge) ============ */
  .split{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:64px}
  .split-media{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg)}
  .split-media img{width:100%;height:100%;object-fit:cover;aspect-ratio:5/4}
  .split-media .float{position:absolute;left:24px;bottom:24px;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border-radius:16px;padding:16px 20px;box-shadow:var(--shadow-md);display:flex;align-items:center;gap:14px}
  .split-media .float .av{display:flex}
  .split-media .float .av span{width:34px;height:34px;border-radius:50%;border:2px solid #fff;background:var(--emerald-400);margin-left:-10px;display:inline-block;background-size:cover}
  .split-media .float b{font-family:"Fraunces";font-size:1.1rem;color:var(--emerald-900)}
  .split-media .float small{display:block;color:var(--ink-soft);font-size:.78rem}
  .split ul.checks{list-style:none;margin-top:1.6rem;display:grid;gap:14px}
  .split ul.checks li{display:flex;gap:.8rem;font-size:.98rem;color:var(--ink)}
  .split ul.checks li svg{flex:0 0 auto;width:22px;height:22px;color:var(--emerald-600)}

  /* ============ Collections band ============ */
  .colls{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
  .coll{position:relative;isolation:isolate;border-radius:var(--radius);overflow:hidden;color:#fff;min-height:340px;display:flex;align-items:flex-end;padding:30px;cursor:pointer}
  .coll img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;transition:transform .8s var(--ease)}
  .coll::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(11,61,49,.05),rgba(11,61,49,.8))}
  .coll:hover img{transform:scale(1.07)}
  .coll .c-in{position:relative;z-index:2}
  .coll .c-in h3{color:#fff;font-size:1.6rem}
  .coll .c-in p{font-size:.88rem;opacity:.92;margin-top:.3rem}
  .coll .c-in .pill{display:inline-block;margin-top:1rem;font-size:.82rem;font-weight:600;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.4);padding:.45rem 1rem;border-radius:100px;backdrop-filter:blur(6px)}

  /* ============ Testimonials ============ */
  .tests{background:linear-gradient(160deg,var(--emerald-900),var(--emerald-800));color:#fff}
  .tests .sec-head h2{color:#fff}
  .tests .sec-head p{color:rgba(255,255,255,.8)}
  .test-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
  .test{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);padding:30px;backdrop-filter:blur(6px)}
  .test .stars{color:var(--gold);letter-spacing:2px;margin-bottom:14px}
  .test p{font-size:1.02rem;line-height:1.65;color:rgba(255,255,255,.95)}
  .test .who{margin-top:20px;display:flex;align-items:center;gap:12px}
  .test .who .dot{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--emerald-400),var(--sky-500));display:flex;align-items:center;justify-content:center;font-weight:700;color:#06251d}
  .test .who b{font-size:.92rem}
  .test .who small{display:block;opacity:.75;font-size:.78rem}

  /* ============ Editorial / guides ============ */
  .guides{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
  .guide{cursor:pointer}
  .guide .gm{border-radius:var(--radius);overflow:hidden;aspect-ratio:16/10}
  .guide .gm img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
  .guide:hover .gm img{transform:scale(1.06)}
  .guide .tag{margin:16px 0 6px;font-size:.74rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--emerald-600)}
  .guide h3{font-size:1.28rem;font-weight:600}
  .guide p{font-size:.9rem;color:var(--ink-soft);margin-top:.4rem}
  .guide-topic-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-top:38px;border:1px solid var(--line);background:var(--line)}
  .guide-topic-links a{display:block;background:#fff;padding:20px 22px;font-size:.9rem;font-weight:600;color:var(--emerald-900);line-height:1.45;transition:background .2s,color .2s}
  .guide-topic-links a:hover{background:var(--emerald-50);color:var(--emerald-700)}
  .guide-topic-links span{display:block;margin-bottom:5px;font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;color:var(--emerald-600)}
  @media(max-width:900px){.guide-topic-links{grid-template-columns:repeat(2,minmax(0,1fr))}}
  @media(max-width:560px){.guide-topic-links{grid-template-columns:1fr}}

  /* ============ CTA band ============ */
  .cta{position:relative;isolation:isolate;overflow:hidden;color:#fff;text-align:center;padding:110px 0}
  .cta img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
  .cta::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(120deg,rgba(11,61,49,.86),rgba(21,116,87,.7))}
  .cta .wrap{position:relative;z-index:2}
  .cta h2{color:#fff;font-size:clamp(2.1rem,4vw,3.3rem);max-width:760px;margin:0 auto}
  .cta p{max-width:560px;margin:1.2rem auto 2rem;color:rgba(255,255,255,.92);font-size:1.08rem}
  .cta .btns{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}

  /* ============ Footer ============ */
  footer.site{background:var(--emerald-900);color:rgba(255,255,255,.7);padding:70px 0 34px}
  .foot-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,.12)}
  /* width:auto is required now the img carries width/height attributes,
     otherwise the 414px attribute width stretches it against the 52px height */
  footer.site .flogo{filter:brightness(0) invert(1);height:52px;width:auto;margin-bottom:18px}
  .foot-top p{font-size:.9rem;max-width:300px}
  .newsletter{margin-top:20px;display:flex;gap:8px;max-width:340px}
  .newsletter input{flex:1;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:#fff;border-radius:100px;padding:.75rem 1.1rem;font-family:"Montserrat";font-size:.88rem;outline:none}
  .newsletter input::placeholder{color:rgba(255,255,255,.5)}
  .foot-col h4{color:#fff;font-family:"Montserrat";font-weight:700;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:16px}
  .foot-col a,.foot-col .footer-cookie-settings{display:block;font-size:.9rem;padding:6px 0;transition:color .2s}
  .foot-col .footer-cookie-settings{margin:0;border:0;background:none;color:inherit;font-family:inherit;text-align:left;cursor:pointer}
  .foot-col a:hover,.foot-col .footer-cookie-settings:hover{color:var(--emerald-400)}
  .foot-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;padding-top:26px;font-size:.82rem}
  .foot-social{display:flex;gap:14px}
  .foot-social a{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;transition:.25s}
  .foot-social a:hover{background:var(--emerald-500);color:#fff}
  .foot-social svg{width:17px;height:17px;fill:currentColor}
  .foot-badges{display:flex;align-items:center;gap:18px}
  /* asta.png / iatan.png are opaque RGB files with no alpha, so the old
     brightness(0) invert(1) turned the whole rectangle white. Show the real
     logos on a light chip instead. */
  .foot-badges img{height:34px;width:auto;background:#fff;border-radius:6px;padding:4px 7px;opacity:.92;filter:none}

  /* ============ Reveal animation ============ */
  .reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
  .reveal.in{opacity:1;transform:none}

  /* ============ Mobile menu ============ */
  .mobile-nav{position:fixed;inset:0;z-index:200;background:var(--emerald-900);display:flex;flex-direction:column;padding:80px 32px;gap:8px;transform:translateX(100%);transition:transform .4s var(--ease)}
  .mobile-nav.open{transform:none}
  .mobile-nav a{color:#fff;font-family:"Fraunces";font-size:1.8rem;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.1)}
  .mobile-nav .close{position:absolute;top:26px;right:26px;background:none;border:0;color:#fff;font-size:2rem;cursor:pointer}

  /* ============ Primary nav dropdowns (dev.emeraldkite.com menu) ============ */
  header.site nav .navitem{position:relative;display:flex;align-items:center}
  header.site nav button.navlink{background:none;border:0;cursor:pointer;font-family:"Montserrat";font-weight:600;font-size:.92rem;color:#fff;display:inline-flex;align-items:center;gap:.4rem;padding:4px 0;position:relative;transition:color .25s}
  header.site nav button.navlink::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--emerald-400);transition:width .3s var(--ease)}
  header.site nav button.navlink:hover::after,header.site nav .navitem.open button.navlink::after{width:100%}
  header.site nav .caret{width:9px;height:9px;fill:none;stroke:currentColor;stroke-width:2.6;transition:transform .25s var(--ease)}
  header.site nav .navitem.open .caret{transform:rotate(180deg)}
  header.site.scrolled nav button.navlink{color:var(--emerald-900)}
  .navpanel{position:absolute;top:calc(100% + 18px);left:50%;transform:translate(-50%,10px);background:#fff;color:var(--ink);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:26px 30px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s var(--ease),transform .25s var(--ease),visibility .25s;z-index:130}
  .navitem.open .navpanel{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
  .navpanel--mega{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:26px 34px;width:max-content;max-width:min(92vw,940px);max-height:min(70vh,560px);overflow-y:auto}
  .navpanel--compact{min-width:230px}
  .navpanel .navgroup{font-family:"Montserrat";font-weight:700;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--emerald-600);line-height:1.1;margin:0 0 10px}
  .navpanel .navgroup.second{margin-top:20px}
  .navpanel ul{list-style:none}
  .navpanel a{display:block;font-size:.88rem;font-weight:500;color:var(--ink-soft);padding:5px 0;transition:color .2s,padding-left .2s}
  .navpanel a:hover{color:var(--emerald-700);padding-left:5px}
  .navpanel .cols{columns:2;column-gap:28px}
  .navpanel .cols li{break-inside:avoid}

  .more-wrap{display:flex;justify-content:center;margin-top:38px}

  /* ============ All destinations index ============ */
  .alldest-intro{margin-bottom:32px}
  .alldest-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px 40px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:34px 38px;box-shadow:var(--shadow-sm)}
  .alldest-priority{grid-column:1/-1;padding-bottom:25px;border-bottom:1px solid var(--line)}
  .priority-market-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px;margin-top:18px}
  .priority-market{min-width:0}
  .alldest-grid .priority-market h4{font-size:1.28rem;letter-spacing:0;text-transform:none;margin:0 0 18px;color:var(--emerald-900)}
  .alldest-grid .priority-market h4 a{font:inherit;color:inherit;padding:0}
  .priority-destinations{display:grid;gap:20px}
  .alldest-grid .priority-destination h5{font-family:"Montserrat";font-size:.9rem;line-height:1.4;margin:0 0 5px;color:var(--emerald-900)}
  .alldest-grid .priority-destination h5 a{font:inherit;color:inherit;padding:0}
  .alldest-grid .bedroom-links{display:flex;flex-wrap:wrap;gap:2px 12px}
  .alldest-grid .bedroom-links li{margin:0}
  .alldest-grid .bedroom-links a{font-size:.78rem;line-height:1.45;padding:3px 0;color:var(--emerald-700);border-bottom:1px solid transparent}
  .alldest-grid .bedroom-links a:hover{padding-left:0;border-bottom-color:currentColor}
  .alldest-grid h3{font-family:"Montserrat";font-weight:700;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--emerald-600);margin-bottom:12px}
  .alldest-grid ul{list-style:none}
  .alldest-grid ul.two{columns:2;column-gap:26px}
  .alldest-grid ul.two li{break-inside:avoid}
  .alldest-grid a{display:block;font-size:.9rem;font-weight:500;color:var(--ink-soft);padding:5px 0;transition:color .2s,padding-left .2s}
  .alldest-grid a:hover{color:var(--emerald-700);padding-left:5px}
  @media(max-width:980px){.priority-market-groups{grid-template-columns:repeat(2,minmax(0,1fr))}.priority-market:last-child{grid-column:1/-1}}
  @media(max-width:860px){.alldest-grid{grid-template-columns:1fr;padding:26px 24px}.priority-market-groups{grid-template-columns:1fr}.priority-market:last-child{grid-column:auto}}

  /* ============ Mobile nav groups ============ */
  .mobile-nav{overflow-y:auto;padding-bottom:48px}
  .mgroup{border-bottom:1px solid rgba(255,255,255,.1)}
  .mgroup > button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;background:none;border:0;color:#fff;font-family:"Fraunces";font-size:1.8rem;line-height:1.2;padding:12px 0;cursor:pointer;text-align:left}
  .mgroup > button .caret{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.4;flex:0 0 auto;transition:transform .25s var(--ease)}
  .mgroup.open > button .caret{transform:rotate(180deg)}
  .mgroup .msub{display:none;padding:0 0 16px}
  .mgroup.open .msub{display:block}
  .mgroup .msub .msubgroup{font-family:"Montserrat";font-weight:700;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--emerald-400);margin:14px 0 2px}
  /* These are direct children of a block .msub, so without display:block
     they lay out inline and run together as one paragraph of text. */
  .mobile-nav .mgroup .msub a{display:block;font-family:"Montserrat";font-size:1rem;font-weight:500;color:rgba(255,255,255,.82);padding:11px 0;min-height:44px;border-bottom:1px solid rgba(255,255,255,.07)}
  .mobile-nav .mgroup .msub a:last-child{border-bottom:0}
  .mobile-nav .mgroup .msub a:active{color:#fff}

  /* ============ Search widget ============ */
  /* No ancestor of .searchbar may set backdrop-filter/filter/transform: the
     popovers are position:fixed and would be trapped inside it. */
  /* destination holds the longest strings ("Anna Maria Island & Holmes Beach"),
     guests the shortest, so weight the fields instead of splitting them evenly */
  #f-dest{flex:1.75}
  #f-in,#f-out{flex:1.05}
  #f-guests{flex:.95}
  @media(max-width:760px){#f-dest,#f-in,#f-out,#f-guests{flex:1}}
  .search-field{justify-content:center}
  .search-field.open{background:var(--emerald-50)}
  .search-field .val{display:block;width:100%;text-align:left;background:transparent;border:0;padding:0;margin:0;font-family:"Montserrat";font-size:.98rem;font-weight:500;color:var(--ink);cursor:pointer;line-height:1.55;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .search-field .val.empty{color:#9aa8a1;font-weight:400}
  .search-field .val:focus-visible{outline:2px solid var(--emerald-500);outline-offset:3px;border-radius:4px}
  .search-field input.val{cursor:text}
  .search-field .clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:22px;height:22px;border:0;border-radius:50%;background:var(--line);color:var(--ink-soft);cursor:pointer;display:none;align-items:center;justify-content:center;font-size:.8rem;line-height:1}
  .search-field.has-value .clear{display:flex}
  .search-field .clear:hover{background:var(--emerald-100);color:var(--emerald-800)}

  .pop{position:fixed;z-index:500;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:14px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .18s var(--ease),transform .18s var(--ease),visibility .18s}
  .pop.open{opacity:1;visibility:visible;transform:none}

  /* destination combobox */
  .pop-dest{width:380px;max-height:min(60vh,400px);overflow-y:auto;padding:8px}
  .dest-group{font-family:"Montserrat";font-weight:700;font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--emerald-600);padding:14px 12px 6px}
  .dest-group:first-child{padding-top:6px}
  .dest-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;padding:9px 12px;border-radius:12px;cursor:pointer;font-family:"Montserrat";font-size:.92rem;font-weight:500;color:var(--ink)}
  .dest-item svg{width:16px;height:16px;flex:0 0 auto;fill:none;stroke:var(--emerald-500);stroke-width:1.8}
  .dest-item small{display:block;font-size:.74rem;color:var(--ink-soft);font-weight:400}
  .dest-item:hover,.dest-item.hl{background:var(--emerald-50)}
  .dest-item[aria-selected="true"]{background:var(--emerald-100)}
  .dest-empty{padding:18px 12px;color:var(--ink-soft);font-size:.9rem;text-align:center}

  /* calendar */
  .pop-cal{padding:18px 20px 14px}
  .cal-top{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:6px}
  .cal-nav{width:34px;height:34px;border:0;border-radius:50%;background:none;cursor:pointer;color:var(--emerald-800);display:flex;align-items:center;justify-content:center}
  .cal-nav:hover:not(:disabled){background:var(--emerald-50)}
  .cal-nav:disabled{color:#c7d0cb;cursor:default}
  .cal-nav svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2}
  .cal-months{display:flex;gap:30px}
  .cal-month{width:252px}
  .cal-title{text-align:center;font-family:"Fraunces";font-weight:500;font-size:1.02rem;color:var(--emerald-900);margin-bottom:10px}
  .cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}
  .cal-dow{font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);text-align:center;padding:0 0 8px}
  .cal-day{position:relative;height:36px;border:0;background:none;font-family:"Montserrat";font-size:.84rem;font-weight:500;color:var(--ink);cursor:pointer;border-radius:10px}
  .cal-day.pad{visibility:hidden;pointer-events:none}
  .cal-day:disabled{color:#c9d2cd;cursor:default}
  .cal-day:hover:not(:disabled):not(.sel){background:var(--emerald-100)}
  .cal-day.rng{background:var(--emerald-50);border-radius:0}
  .cal-day.sel{background:var(--emerald-600);color:#fff}
  .cal-day.sel.s{border-radius:12px 0 0 12px}
  .cal-day.sel.e{border-radius:0 12px 12px 0}
  .cal-day.sel.s.e{border-radius:12px}
  .cal-day.today:not(.sel)::after{content:"";position:absolute;left:50%;bottom:5px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--emerald-500)}
  .cal-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding-top:12px;border-top:1px solid var(--line)}
  .cal-hint{font-size:.8rem;color:var(--ink-soft)}
  .cal-actions{display:flex;gap:8px}
  .cal-btn{border:0;background:none;font-family:"Montserrat";font-weight:600;font-size:.85rem;color:var(--emerald-800);padding:.5rem .9rem;border-radius:100px;cursor:pointer}
  .cal-btn:hover{background:var(--emerald-50)}
  .cal-btn.primary{background:var(--emerald-600);color:#fff}
  .cal-btn.primary:hover{background:var(--emerald-700)}

  /* guests stepper */
  .pop-guests{width:290px;padding:8px 6px}
  .guest-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 14px}
  .guest-row b{font-size:.95rem;font-weight:600;color:var(--ink);display:block}
  .guest-row small{font-size:.78rem;color:var(--ink-soft)}
  .stepper{display:flex;align-items:center;gap:14px}
  .stepper button{width:34px;height:34px;border-radius:50%;border:1.4px solid var(--line);background:#fff;color:var(--emerald-800);font-size:1.1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
  .stepper button:hover:not(:disabled){border-color:var(--emerald-500);background:var(--emerald-50)}
  .stepper button:disabled{color:#c9d2cd;cursor:default}
  .stepper output{min-width:26px;text-align:center;font-weight:700;font-size:1rem;color:var(--emerald-900)}
  .guest-foot{display:flex;justify-content:flex-end;padding:4px 10px 8px}

  @media(max-width:760px){
    .pop{left:12px!important;right:12px!important;width:auto!important;max-width:none}
    .cal-months{gap:0}
    .cal-month{width:100%}
    .cal-month + .cal-month{display:none}
    .pop-cal,.pop-dest,.pop-guests{width:auto}
  }
  .searchbar .search-field select[disabled]{cursor:default;opacity:.6}

  /* ============ Responsive ============ */
  /* The desktop nav stops fitting below 1110px: "Travel Guide" and "Why Us"
     wrap onto a second line and the header grows from 97px to 121px. The
     burger used to take over only at 760px, which left 761-1109px with a
     broken header - the band a phone in Chrome's "Desktop site" mode lands
     in (1080px), and tablets in portrait. Hand those widths the burger too.
     >=1110px is untouched. */
  @media(max-width:1109px){
    header.site nav{display:none}
    .burger{display:flex}
  }
  @media(max-width:1080px){
    .grid{grid-template-columns:repeat(2,1fr)}
    .why-grid{grid-template-columns:repeat(2,1fr)}
    .dest-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .test-grid,.guides,.colls{grid-template-columns:1fr 1fr}
    .split{grid-template-columns:1fr;gap:36px}
    .foot-top{grid-template-columns:1fr 1fr}
    .hero-stats{display:none}
  }
  @media(max-width:760px){
    .wrap{padding:0 18px}
    header.site .bar{gap:12px}
    .hdr-actions{gap:10px}
    .hdr-actions .fav-btn,.hdr-actions #callBack{display:none}
    .hdr-actions .hdr-phone{display:flex;gap:.35rem;white-space:nowrap;font-size:.8rem}
    .hdr-actions .hdr-phone svg{width:15px;height:15px}
    .searchbar{flex-direction:column;padding:10px}
    .search-field + .search-field::before{display:none}
    .search-field{border-bottom:1px solid var(--line);border-radius:0}
    .search-submit .btn{width:100%;justify-content:center;padding:1rem;margin-top:6px}
    .sec{padding:64px 0}
    .sec-head{flex-direction:column;align-items:flex-start}
    .grid,.why-grid,.test-grid,.guides,.colls{grid-template-columns:1fr}
    .dest-grid{grid-template-columns:1fr}
    .foot-top{grid-template-columns:1fr}
  }

/* ============================================================
   Region pages (/region/florida)
   ============================================================ */
.hero--region{min-height:min(88vh,760px);padding:150px 0 80px}
.hero--region h1{font-size:clamp(2.4rem,5.2vw,4.1rem)}
.crumbs{display:flex;align-items:center;gap:10px;font-size:.82rem;font-weight:600;color:#fff;margin-bottom:1.1rem;text-shadow:0 1px 2px rgba(0,0,0,.8),0 1px 5px rgba(0,0,0,.5)}
.crumbs a{color:#fff;border-bottom:1px solid rgba(255,255,255,.45);padding-bottom:1px;transition:color .2s,border-color .2s}
.crumbs a:hover{color:#fff;border-color:#fff}
.crumbs span[aria-current]{color:#fff}

/* coastline cards */
.coasts{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
/* markets with a single implicit group (Colorado, Utah, Wyoming, Italy, Arizona) */
.coasts--single{grid-template-columns:1fr}
.coasts--single .coast-areas{grid-template-columns:repeat(3,1fr)}
@media(max-width:860px){.coasts--single .coast-areas{grid-template-columns:repeat(2,1fr)}}
.coast{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:30px 32px;box-shadow:var(--shadow-sm);transition:box-shadow .3s var(--ease),transform .3s var(--ease)}
.coast:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}
.coast header{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:10px}
.coast h3{font-size:1.42rem;font-weight:500}
.coast-count{flex:0 0 auto;font-family:"Montserrat";font-weight:700;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--emerald-600);background:var(--emerald-50);border-radius:100px;padding:.35rem .75rem}
.coast > p{font-size:.94rem;color:var(--ink-soft);line-height:1.65}
.coast-areas{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:2px 18px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.coast-areas a{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:.9rem;font-weight:500;color:var(--ink);padding:7px 0;transition:color .2s,padding-left .2s}
.coast-areas a:hover{color:var(--emerald-700);padding-left:4px}
.coast-areas em{font-style:normal;font-size:.76rem;font-weight:600;color:var(--ink-soft)}

/* planning cards */
.plan-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}
.plan{background:var(--sand);border-radius:var(--radius);padding:30px 32px;border-left:3px solid var(--emerald-500)}
.plan h3{font-size:1.24rem;font-weight:600;margin-bottom:.6rem}
.plan p{font-size:.94rem;color:var(--ink-soft);line-height:1.7}

/* faq */
.faq{max-width:860px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.faq details{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:box-shadow .25s var(--ease)}
.faq details[open]{box-shadow:var(--shadow-sm)}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 26px;font-family:"Montserrat";font-weight:600;font-size:1rem;color:var(--emerald-900)}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{background:var(--emerald-50)}
.faq .chev{flex:0 0 auto;width:11px;height:11px;border-right:2px solid var(--emerald-600);border-bottom:2px solid var(--emerald-600);transform:rotate(45deg);transition:transform .25s var(--ease)}
.faq details[open] .chev{transform:rotate(-135deg)}
.faq .faq-a{padding:0 26px 22px}
.faq .faq-a p{font-size:.95rem;color:var(--ink-soft);line-height:1.75}

@media(max-width:980px){
  .coasts,.plan-grid{grid-template-columns:1fr}
}
@media(max-width:560px){
  .coast-areas{grid-template-columns:1fr}
  .coast,.plan{padding:24px 22px}
}

/* scoped destination picker (region pages) */
.dest-all{display:block;width:100%;text-align:left;margin-top:6px;padding:12px 12px;border:0;border-top:1px solid var(--line);background:none;cursor:pointer;font-family:"Montserrat";font-weight:600;font-size:.86rem;color:var(--emerald-700);border-radius:0 0 12px 12px}
.dest-all:hover{background:var(--emerald-50)}

/* skip link */
.skip{position:absolute;left:-9999px;top:0;z-index:1000;background:var(--emerald-900);color:#fff;font-weight:600;font-size:.9rem;padding:.8rem 1.2rem;border-radius:0 0 10px 0}
.skip:focus{left:0}

/* ============================================================
   Area pages (/area/anna-maria-island-holmes-beach-vacation-rentals)
   ============================================================ */
.hero--area{min-height:min(86vh,740px);padding:150px 0 80px}
.hero--area h1{font-size:clamp(2.4rem,5.4vw,4.3rem)}
.hero--area .eyebrow{color:var(--sky-400);display:block;margin-bottom:.35rem}

/* inventory pills in the hero - counts, never claims */
.hero-facts{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 26px}
.hfact{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(8px);padding:.5rem 1rem;border-radius:100px;font-size:.84rem;font-weight:600;color:#fff}
.hfact svg{flex:0 0 auto;width:16px;height:16px;stroke:var(--sky-400)}

/* stat band */
.statband{background:var(--emerald-900);color:#fff}
.statband .in{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding:38px 0}
.stat{text-align:center;position:relative}
.stat + .stat::before{content:"";position:absolute;left:0;top:15%;height:70%;width:1px;background:rgba(255,255,255,.14)}
.stat b{font-family:"Fraunces",Georgia,serif;font-size:clamp(1.9rem,3.2vw,2.8rem);display:block;line-height:1;color:#fff}
.stat span{font-size:.76rem;letter-spacing:.07em;text-transform:uppercase;color:rgba(255,255,255,.75);margin-top:8px;display:block}

/* intro editorial + photo collage */
.intro{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center}
.intro .copy h2{font-size:clamp(1.9rem,3.2vw,2.7rem);margin:.5rem 0 1.2rem}
.intro .copy p{color:var(--ink);font-size:1.03rem;line-height:1.75;margin-bottom:1.05rem;max-width:60ch}
.intro .copy p:first-of-type::first-letter{font-family:"Fraunces",Georgia,serif;font-size:3.5rem;font-weight:600;float:left;line-height:.82;padding:6px 12px 0 0;color:var(--emerald-600)}
.intro-pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:1.4rem}
.intro-pills span{background:var(--emerald-50);border:1px solid var(--emerald-100);color:var(--emerald-800);font-weight:600;font-size:.83rem;padding:.5rem 1rem;border-radius:100px}
.collage{position:relative;height:520px}
.collage img{position:absolute;border-radius:var(--radius);object-fit:cover;box-shadow:var(--shadow-md)}
.collage .c1{width:66%;height:74%;top:0;right:0;z-index:1}
.collage .c2{width:52%;height:52%;bottom:0;left:0;z-index:2;border:6px solid #fff}
.collage .tag{position:absolute;left:6%;top:6%;z-index:3;background:#fff;border-radius:16px;padding:14px 18px;box-shadow:var(--shadow-md);max-width:44%}
.collage .tag b{font-family:"Fraunces",Georgia,serif;font-size:1.5rem;color:var(--emerald-900);display:block;line-height:1}
.collage .tag span{font-size:.74rem;color:var(--ink-soft);line-height:1.35;display:block;margin-top:2px}

/* destination agent - the legacy "Call Our Local Agents" block, redesigned.
   The photograph is the personal touch, so it leads and it is large enough to
   read as a person rather than a thumbnail. */
.agentband{padding:0 0 28px}
.agent-in{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:26px 44px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:26px 34px;position:relative;overflow:hidden}
.agent-in::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--emerald-500),var(--sky-500))}
.agent-who{display:flex;align-items:center;gap:22px;min-width:0}
.agent-frame{flex:0 0 auto;display:block;width:104px;height:104px;border-radius:50%;padding:4px;background:linear-gradient(135deg,var(--emerald-400),var(--sky-500));box-shadow:0 10px 26px rgba(11,61,49,.18)}
.agent-photo{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:center 32%;border:3px solid #fff;display:block}
.agent-copy{min-width:0}
.agent-copy .eyebrow{display:block;margin-bottom:.3rem}
.agent-copy h2{font-size:1.7rem;line-height:1.15;margin:0 0 .35rem}
.agent-name{color:var(--emerald-600);font-style:italic}
.agent-copy p{font-size:.93rem;color:var(--ink-soft);line-height:1.6;max-width:60ch}
.agent-lines{display:grid;grid-template-columns:1fr 1fr;align-content:center;border:1px solid var(--emerald-100);border-radius:16px;background:var(--emerald-50);overflow:hidden}
.agent-tel{display:flex;align-items:center;gap:.7rem;padding:.85rem 1.25rem;background:transparent;border:0;transition:background .25s var(--ease)}
.agent-tel + .agent-tel{border-left:1px solid var(--emerald-100)}
.agent-tel:hover{background:#fff}
.agent-tel svg{flex:0 0 auto;width:19px;height:19px;color:var(--emerald-600)}
.agent-tel small{display:block;font-size:.64rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--emerald-700)}
.agent-tel b{display:block;font-family:"Fraunces",Georgia,serif;font-size:1.12rem;line-height:1.2;color:var(--emerald-900);white-space:nowrap}
.agent-cta{grid-column:1/-1;border-radius:0;border-top:1px solid var(--emerald-100);padding:.9rem 1.5rem;font-size:.9rem}

/* neighbourhood cards */
.hoods{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.hood{position:relative;border-radius:var(--radius);overflow:hidden;min-height:420px;display:flex;align-items:flex-end;color:#fff;isolation:isolate}
.hood img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;transition:transform .8s var(--ease)}
.hood::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(11,61,49,.08) 28%,rgba(11,61,49,.88))}
.hood--plain{background:linear-gradient(150deg,var(--emerald-800),var(--emerald-600))}
.hood:hover img{transform:scale(1.05)}
.hood .h-in{position:relative;z-index:2;padding:28px}
.hood .h-in .n{font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--sky-400)}
.hood .h-in h3{color:#fff;font-size:1.65rem;margin:.3rem 0 .45rem}
.hood .h-in p{font-size:.9rem;line-height:1.65;color:rgba(255,255,255,.92)}

/* experience cards */
.exp{background:var(--emerald-50)}
.exp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.xcard{position:relative;border-radius:var(--radius);overflow:hidden;min-height:300px;isolation:isolate;display:flex;align-items:flex-end;padding:26px;color:#fff}
.xcard.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;transition:transform .7s var(--ease)}
.xcard.photo::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(11,61,49,.1) 38%,rgba(11,61,49,.85))}
.xcard.photo:hover img{transform:scale(1.06)}
.xcard.tile{background:linear-gradient(150deg,var(--emerald-700),var(--emerald-500))}
.xcard.tile.alt{background:linear-gradient(150deg,var(--emerald-800),var(--sky-500))}
.xcard .x-in{position:relative;z-index:2}
.xcard .ic{width:46px;height:46px;border-radius:14px;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.xcard .ic svg{width:24px;height:24px;stroke:#fff}
.xcard h3{color:#fff;font-size:1.3rem}
.xcard p{font-size:.89rem;line-height:1.6;color:rgba(255,255,255,.92);margin-top:.4rem}

/* centred section heading */
.sec-head--center{flex-direction:column;align-items:center;text-align:center}
.sec-head--center p{margin-left:auto;margin-right:auto}

/* nearby destination tiles */
.nearby-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.near{position:relative;display:flex;align-items:flex-end;min-height:150px;padding:22px;border-radius:var(--radius);overflow:hidden;color:#fff;isolation:isolate;background:linear-gradient(150deg,var(--emerald-800),var(--emerald-600));transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.near::before{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(120% 110% at 100% 0%,rgba(146,225,246,.3),transparent 62%)}
.near img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;transition:transform .7s var(--ease)}
.near:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.near .lbl{position:relative;z-index:2}
.near .lbl b{font-family:"Fraunces",Georgia,serif;font-size:1.3rem;display:block;line-height:1.1;color:#fff}
.near .lbl span{display:block;font-size:.78rem;margin-top:.25rem;color:rgba(255,255,255,.85)}

/* testimonial attribution mark, in place of the mock-up's invented names */
.test .who .dot svg{width:19px;height:19px;color:#06251d}

/* Crawlable destination collection hub. This is intentionally separate from
   the JavaScript card filters: every choice is a normal HTML link to one
   reviewed search landing, so it works for visitors and crawlers alike. */
.area-seo-hub{background:linear-gradient(145deg,#f7fbf8 0%,#eef8f5 58%,#f8f3e9 100%);border-top:1px solid rgba(21,116,87,.08);border-bottom:1px solid rgba(21,116,87,.08)}
.area-seo-hub__head{margin-bottom:28px}
.area-seo-hub__head>div{max-width:850px}
.area-seo-hub__head p{max-width:78ch}
.area-browse-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start}
.area-browse-panel{padding:26px;border:1px solid rgba(21,116,87,.14);border-radius:var(--radius-lg);background:rgba(255,255,255,.9);box-shadow:0 14px 40px rgba(11,61,49,.06)}
.area-browse-panel--features{background:linear-gradient(155deg,#fff 0%,rgba(224,245,238,.8) 100%)}
.area-browse-kicker{display:block;margin-bottom:7px;color:var(--emerald-600);font-size:.67rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.area-browse-panel h3{margin:0 0 18px;font-size:1.35rem;line-height:1.2}
.area-seo-links{display:grid;gap:10px}
.area-seo-links--bedrooms{grid-template-columns:repeat(2,minmax(0,1fr))}
.area-seo-links--features{grid-template-columns:repeat(2,minmax(0,1fr))}
.area-seo-link{display:flex;min-width:0;flex-direction:column;justify-content:center;gap:6px;padding:13px 15px;border:1px solid rgba(21,116,87,.14);border-radius:13px;background:#fff;color:var(--emerald-900);transition:border-color .2s var(--ease),box-shadow .2s var(--ease),transform .2s var(--ease),background .2s var(--ease)}
.area-seo-link b{font-size:.83rem;line-height:1.35}
.area-seo-link span{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--ink-soft);font-size:.72rem;line-height:1.35}
.area-seo-link i{color:var(--emerald-600);font-size:1rem;font-style:normal;transition:transform .2s var(--ease)}
.area-seo-link:hover{border-color:var(--emerald-400);background:#fff;box-shadow:0 9px 24px rgba(11,61,49,.09);transform:translateY(-2px)}
.area-seo-link:hover i{transform:translateX(3px)}
.area-seo-link:focus-visible{outline:3px solid var(--emerald-400);outline-offset:3px}
.area-page-jumps{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:22px;padding-top:20px;border-top:1px solid rgba(21,116,87,.13)}
.area-page-jumps::before{content:"Destination guide";margin-right:4px;color:var(--emerald-700);font-size:.66rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.area-page-jumps a{display:inline-flex;align-items:center;min-height:34px;padding:7px 12px;border:1px solid rgba(21,116,87,.17);border-radius:999px;background:rgba(255,255,255,.72);color:var(--emerald-800);font-size:.72rem;font-weight:700;transition:background .2s,border-color .2s,color .2s}
.area-page-jumps a:hover{background:#fff;border-color:var(--emerald-400);color:var(--emerald-600)}
.area-page-jumps a:focus-visible{outline:3px solid var(--emerald-400);outline-offset:2px}

@media(max-width:1080px){
  .intro{grid-template-columns:1fr;gap:38px}
  .hoods,.exp-grid,.nearby-grid{grid-template-columns:1fr 1fr}
  .collage{height:420px}
  .agent-in{grid-template-columns:minmax(0,1fr);gap:24px}
  .area-browse-layout{grid-template-columns:1fr}
}
@media(max-width:760px){
  .statband .in{grid-template-columns:1fr 1fr;gap:26px}
  .stat:nth-child(3)::before{display:none}
  .hoods,.exp-grid,.nearby-grid{grid-template-columns:1fr}
  .hood{min-height:320px}
  .collage{height:340px}
  .agent-in{padding:24px 22px}
  .agent-who{gap:16px}
  .agent-frame{width:84px;height:84px}
  .agent-copy h2{font-size:1.45rem}
  .agent-lines{grid-template-columns:1fr}
  .agent-tel + .agent-tel{border-left:0;border-top:1px solid var(--emerald-100)}
  .area-seo-hub__head{margin-bottom:22px}
  .area-browse-panel{padding:21px 18px}
  .area-seo-links--bedrooms,.area-seo-links--features{grid-template-columns:1fr}
}

/* --- browse by bedroom count (area pages) --------------------------------
   The legacy area page listed homes in "Our Most Popular N Bedroom" bands.
   The bands stay, because a group that needs six bedrooms wants to see six
   bedrooms - but they gain a sticky size selector with live counts, so the
   choice is one click rather than a scroll. */
.browse{margin-bottom:34px}
.sizenav{position:sticky;top:78px;z-index:20;display:flex;gap:10px;flex-wrap:wrap;padding:14px 0;background:var(--emerald-50)}
.sizechip{display:inline-flex;flex-direction:column;gap:2px;min-width:112px;padding:.6rem 1.1rem;border-radius:14px;border:1.5px solid var(--line);background:#fff;transition:border-color .25s var(--ease),transform .25s var(--ease),box-shadow .25s var(--ease),background .25s var(--ease)}
.sizechip b{font-size:.9rem;font-weight:700;color:var(--emerald-900);line-height:1.2}
.sizechip span{font-size:.73rem;color:var(--ink-soft)}
.sizechip:hover{border-color:var(--emerald-400);transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.sizechip.is-current{background:var(--emerald-900);border-color:var(--emerald-900)}
.sizechip.is-current b{color:#fff}
.sizechip.is-current span{color:rgba(255,255,255,.72)}
.sizechip.is-off{opacity:.38;pointer-events:none}
.browse .cats{margin:16px 0 0}

.sizeband{scroll-margin-top:150px}
.sizeband + .sizeband{margin-top:50px;padding-top:42px;border-top:1px solid var(--emerald-100)}
.sizeband-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:22px}
.sizeband-head h3{font-size:1.45rem;font-weight:500;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.sizeband-head .count{font-family:"Montserrat";font-weight:700;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--emerald-700);background:#fff;border:1px solid var(--emerald-100);border-radius:100px;padding:.32rem .75rem}
.grid-empty{text-align:center;color:var(--ink-soft);padding:46px 0 10px}

@media(max-width:760px){
  .sizenav{position:static;flex-wrap:nowrap;overflow-x:auto;padding:2px 0 10px;scrollbar-width:none}
  .sizenav::-webkit-scrollbar{display:none}
  .sizechip{flex:0 0 auto}
  .sizeband + .sizeband{margin-top:38px;padding-top:32px}
}

/* ============================================================
   Property pages (/vacation-rentals/<slug>/)
   ============================================================ */
.propertypage{padding-top:96px}
.crumbs--dark{color:var(--ink-soft);text-shadow:none;padding:18px 0 4px;flex-wrap:wrap}
.crumbs--dark a{color:var(--emerald-700);border-bottom-color:rgba(21,116,87,.28)}
.crumbs--dark a:hover{color:var(--emerald-900);border-bottom-color:var(--emerald-700)}
.crumbs--dark span[aria-current]{color:var(--ink)}

.titlebar{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;padding-bottom:18px}
.titlebar h1{font-size:clamp(1.8rem,3.2vw,2.6rem);line-height:1.12}
/* Keep the reference readable and selectable wherever a guest can call. */
.property-reference{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;margin-top:16px}
.property-number{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px 12px;max-width:100%;margin:0;padding:9px 14px;border:1px solid #c6ded2;border-radius:10px;background:var(--emerald-50);color:var(--emerald-900);line-height:1.35}
.property-number span{font-size:.8125rem;font-weight:600}
.property-number strong{font-size:1.375rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.035em;white-space:nowrap;user-select:all;-webkit-user-select:all}
.book-property-reference{text-align:center;margin:0 0 14px}
.book-property-reference .property-number{padding:0;border:0;border-radius:0;background:transparent;justify-content:center;gap:4px 8px}
.book-property-reference .property-number strong{font-size:1.25rem}
.title-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px;font-size:.92rem;color:var(--ink)}
.title-meta .badge{display:inline-flex;align-items:center;background:var(--emerald-50);color:var(--emerald-800);font-weight:700;font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;padding:.32rem .75rem;border-radius:100px;border:1px solid var(--emerald-100)}
.title-meta .loc{color:var(--ink-soft)}
.title-meta .loc-link{color:var(--emerald-700);font-weight:600;border-bottom:1px solid rgba(21,116,87,.28)}
.title-meta .loc-link:hover{border-bottom-color:var(--emerald-700)}
.title-actions{display:flex;gap:10px}
.chip-btn{display:inline-flex;align-items:center;gap:.45rem;background:none;border:0;cursor:pointer;font-family:"Montserrat";font-weight:600;font-size:.88rem;color:var(--emerald-900);padding:.55rem .9rem;border-radius:100px;transition:background .2s;position:static;width:auto;height:auto}
.chip-btn:hover{background:var(--emerald-50);transform:none}
.chip-btn svg{width:18px;height:18px;stroke:var(--emerald-900);fill:none;stroke-width:2}
.chip-btn.on svg{fill:#e5484d;stroke:#e5484d}

/* gallery */
.gallery{display:grid;grid-template-columns:1.6fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:10px;height:520px;border-radius:var(--radius-lg);overflow:hidden;position:relative}
.gallery .g{position:relative;overflow:hidden;cursor:pointer;background:var(--emerald-50);border:0;padding:0;display:block}
.gallery .g img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.gallery .g:hover img{transform:scale(1.05)}
.gallery .g:first-child{grid-row:1/3}
.gallery .g::after{content:"";position:absolute;inset:0;background:rgba(11,61,49,0);transition:background .3s}
.gallery .g:hover::after{background:rgba(11,61,49,.08)}
.gallery .g:focus-visible{outline:3px solid var(--emerald-600);outline-offset:-3px}
.show-all{position:absolute;right:18px;bottom:18px;background:#fff;border:1px solid var(--emerald-900);border-radius:12px;padding:.65rem 1.1rem;font-family:"Montserrat";font-weight:600;font-size:.88rem;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;box-shadow:var(--shadow-sm);transition:transform .2s}
.show-all:hover{transform:translateY(-2px)}

/* two-column body */
.layout{display:grid;grid-template-columns:minmax(0,1fr) 372px;gap:60px;padding:44px 0 20px;align-items:start}
.col-main{min-width:0}
.block{padding:34px 0;border-bottom:1px solid var(--line)}
.block:first-child{padding-top:0}
.block:last-child{border-bottom:0}
.block h2{font-size:1.5rem;margin-bottom:6px}
.block h3{font-size:1.1rem;font-weight:600}
.block-sub{color:var(--ink-soft);font-size:.93rem;line-height:1.65;max-width:66ch;margin-top:6px}

.host-strip .h-left h2{margin-bottom:2px}
.host-strip .h-left p{color:var(--ink-soft);font-size:.94rem}
.specs{display:flex;gap:26px;flex-wrap:wrap;margin-top:20px}
.specs .s{display:flex;align-items:center;gap:.6rem;font-size:.95rem;color:var(--ink)}
.specs .s svg{width:24px;height:24px;stroke:var(--emerald-700);fill:none;flex:0 0 auto}

.highlights{display:grid;gap:20px;margin-top:4px}
.hl{display:flex;gap:16px;align-items:flex-start}
.hl .ic{width:28px;flex:0 0 auto;color:var(--emerald-700)}
.hl .ic svg{width:26px;height:26px;stroke:currentColor;fill:none}
.hl b{display:block;font-size:1rem}
.hl span{font-size:.9rem;color:var(--ink-soft);line-height:1.6}

.desc{margin-top:10px}
.desc h3{margin:1.4rem 0 .5rem}
.desc p{color:var(--ink);font-size:1rem;line-height:1.75;margin-bottom:1rem;max-width:66ch}
.desc.clamped .more-text{display:none}
.read-more{background:none;border:0;font-family:"Montserrat";font-weight:700;color:var(--emerald-900);cursor:pointer;text-decoration:underline;font-size:.94rem;padding:0}
.read-more:hover{color:var(--emerald-700)}

.amen-head{margin:22px 0 12px;font-size:.76rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--emerald-700);font-family:"Montserrat"}
.amen-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 30px}
.amen{display:flex;align-items:center;gap:14px;font-size:.97rem;padding:5px 0}
.amen svg{width:22px;height:22px;stroke:var(--emerald-700);fill:none;flex:0 0 auto}
.amen.off{color:#9aa8a1;text-decoration:line-through}
.amen.off svg{stroke:#c3ccc7}
.amen-extra,.amen-extra-head{display:none}
body.amen-open .amen-extra{display:flex}
body.amen-open .amen-extra-head{display:block}
#showAmen{margin-top:24px}

.sleep-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:18px;margin-top:16px}
.bedcard{border:1px solid var(--line);border-radius:var(--radius);padding:20px;transition:box-shadow .3s var(--ease),transform .3s var(--ease)}
.bedcard:hover{box-shadow:var(--shadow-sm);transform:translateY(-3px)}
.bedcard svg{width:28px;height:28px;stroke:var(--emerald-700);fill:none;margin-bottom:12px}
.bedcard b{display:block;font-size:1rem}
.bedcard span{font-size:.88rem;color:var(--ink-soft)}

/* location map */
.mapbox{margin-top:18px;border-radius:var(--radius);overflow:hidden;position:relative;height:360px;background:linear-gradient(135deg,var(--emerald-100),var(--sky-100));border:1px solid var(--line)}
.mapbox #map{width:100%;height:100%}
.mapbox[hidden]{display:none}

/* Emerald Kite's own assessment, in place of the mock-up's invented reviews */
.rev-bars{display:grid;grid-template-columns:1fr 1fr;gap:14px 44px;margin-top:22px}
.rbar{display:flex;align-items:center;gap:14px;font-size:.92rem}
.rbar .lbl{width:150px;flex:0 0 auto;color:var(--ink)}
.rbar .track{flex:1;height:6px;background:var(--line);border-radius:4px;overflow:hidden}
.rbar .fill{display:block;height:100%;background:linear-gradient(90deg,var(--emerald-600),var(--emerald-400));border-radius:4px;width:0;transition:width 1s var(--ease)}
.rbar .val{width:38px;text-align:right;font-weight:700;color:var(--emerald-900)}

/* enquiry card - the mock-up's booking widget, without the invented pricing */
.booking{position:static}
.rate-card-mobile{display:none;min-width:0}
.book-card{border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:26px;background:#fff}
.book-eyebrow{display:block;font-size:.66rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--emerald-600)}
.book-title{font-size:1.55rem;margin:.35rem 0 .75rem}
.book-rate-copy{font-size:.86rem;line-height:1.62;color:var(--ink);margin-bottom:18px}
.book-specialist-cta{margin:18px 0 16px;padding:14px;border:1px solid var(--emerald-100);border-radius:16px;background:linear-gradient(145deg,var(--emerald-50),#fff);box-shadow:0 10px 28px rgba(11,61,49,.08)}
.book-specialist-cta .book-agent{align-items:center;gap:16px;margin:0 0 12px;padding:0;border:0;background:transparent}
.book-specialist-cta .book-agent b{font-family:"Fraunces",Georgia,serif;font-size:1.12rem;line-height:1.15}
.book-specialist-cta .book-agent small{max-width:180px;margin-top:4px;font-size:.78rem;line-height:1.45}
.book-specialist-call{min-height:58px;margin-top:0;gap:11px;justify-content:center;text-align:left}
.book-specialist-call > span{display:flex;flex-direction:column;line-height:1.1}
.book-specialist-call strong{font-size:.9rem}
.book-specialist-call small{margin-top:4px;color:rgba(255,255,255,.88);font-size:.74rem;font-weight:600}
.book-direct-line{margin-top:10px;text-align:center;color:var(--emerald-800);font-size:.75rem;line-height:1.5}
.book-specialist-meta{display:grid;gap:5px;margin-top:11px;text-align:center;color:var(--ink-soft);font-size:.72rem;line-height:1.45}
.book-specialist-meta a{color:var(--emerald-700);font-weight:700}
.book-choice{display:flex;align-items:center;gap:10px;margin:16px 0;color:var(--ink-soft);font-size:.66rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.book-choice::before,.book-choice::after{content:"";height:1px;flex:1;background:var(--line)}
.book-choice span{white-space:nowrap}
.book-price{padding-top:16px;border-top:1px solid var(--line)}
.book-choice + .book-price{padding-top:0;border-top:0}
.book-rate-label{display:block;margin-bottom:3px;font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
.book-price .p{font-family:"Fraunces",Georgia,serif;font-size:1.75rem;color:var(--emerald-900);line-height:1.15}
.book-price .p small{font-family:"Montserrat";font-size:.9rem;font-weight:500;color:var(--ink-soft)}
.book-meta{margin-top:6px;font-size:.84rem;font-weight:600;color:var(--emerald-700)}
.book-note{margin-top:12px;font-size:.84rem;color:var(--ink-soft);line-height:1.6}
.rate-card,.rate-request-form,.rate-form-success{scroll-margin-top:100px}
.rate-request-form{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.rate-form-heading{font-family:"Fraunces",Georgia,serif;font-size:1.35rem;font-weight:600;color:var(--emerald-900);margin-bottom:10px}
.rate-property-summary{margin-bottom:16px;padding:12px;border-radius:11px;background:var(--emerald-50);color:var(--ink-soft);font-size:.7rem;line-height:1.5}
.rate-property-summary strong,.rate-property-summary span{display:block}
.rate-property-summary strong{font-size:.83rem;color:var(--emerald-900)}
.rate-property-summary span{margin:3px 0 6px}
.rate-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rate-form-grid label{display:block;min-width:0;font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--emerald-700)}
.rate-form-grid .rate-field-wide{grid-column:1/-1}
.rate-form-grid label small{font-size:.65rem;letter-spacing:0;text-transform:none;font-weight:500}
.rate-form-grid input,.rate-form-grid textarea{display:block;width:100%;min-width:0;height:46px;margin-top:5px;padding:0 10px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);font-family:"Montserrat",system-ui,sans-serif;font-size:1rem;font-weight:500;text-transform:none;letter-spacing:0;outline:none}
.rate-form-grid textarea{height:auto;min-height:88px;padding:10px;resize:vertical;line-height:1.45}
.rate-form-grid input:focus,.rate-form-grid textarea:focus{border-color:var(--emerald-500);box-shadow:0 0 0 3px rgba(33,163,127,.13)}
.rate-form-grid .rate-question-help{display:block;margin-top:6px;color:var(--ink-soft);line-height:1.55}
.rate-form-options{margin-top:16px;padding-top:2px;border-top:1px solid var(--line)}
.rate-form-options>p{margin:14px 0 7px;font-size:.77rem;font-weight:600;color:var(--emerald-900);line-height:1.5}
.rate-checkbox{display:flex;align-items:center;gap:10px;min-height:44px;font-size:.81rem;cursor:pointer}
.rate-checkbox input{flex:0 0 auto;width:20px;height:20px;accent-color:var(--emerald-700)}
.rate-option-details{margin:8px 0 12px}
.rate-captcha{display:flex;justify-content:center;align-items:center;min-width:0;min-height:78px;margin-top:18px;max-width:100%;overflow:hidden}
.rate-captcha>span{font-size:.71rem;color:var(--ink-soft)}
.rate-form-status{min-height:20px;margin:8px 0;color:#a63b2e;font-size:.77rem;font-weight:600;line-height:1.5}
.rate-request-submit{text-align:center;justify-content:center;min-height:50px;font-size:.79rem;text-transform:uppercase;white-space:normal}
.rate-request-submit:disabled{opacity:.65;cursor:wait}
.rate-form-success{margin-top:20px;padding:20px 16px;border:1px solid var(--emerald-100);border-radius:14px;background:var(--emerald-50)}
.rate-form-success h3{font-size:1.35rem;margin-bottom:8px}
.rate-form-success p{font-size:.86rem;line-height:1.6;color:var(--ink-soft)}
.rate-request-form[hidden],.rate-form-success[hidden],.rate-option-details[hidden]{display:none}
.rate-form-help{margin-top:9px;color:var(--ink-soft);font-size:.72rem;line-height:1.5}
.book-agent{display:flex;align-items:center;gap:12px;margin:18px 0 4px;padding:12px;border-radius:14px;background:var(--emerald-50);border:1px solid var(--emerald-100)}
.book-agent b{display:block;font-size:.95rem;color:var(--emerald-900)}
.book-agent small{display:block;font-size:.76rem;color:var(--ink-soft)}
.agent-frame--sm{width:88px;height:88px;padding:4px;box-shadow:0 10px 24px rgba(11,61,49,.2)}
.btn-block{display:flex;width:100%;margin-top:12px}
.book-help{margin-top:12px;text-align:center;font-size:.82rem;color:var(--ink-soft)}
.book-help a{color:var(--emerald-700);font-weight:700}
.rate-disclosure{margin-top:16px;color:var(--ink-soft);font-size:.7rem;line-height:1.55;text-align:center}
.assure{display:flex;gap:12px;align-items:flex-start;margin-top:20px;background:var(--sand);border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.assure svg{width:24px;height:24px;stroke:var(--emerald-700);fill:none;flex:0 0 auto}
.assure b{display:block;font-size:.86rem;color:var(--emerald-900)}
.assure span{font-size:.78rem;color:var(--ink-soft);line-height:1.55}

/* why book band */
.hostband{background:var(--sand);border-top:1px solid var(--line)}
.hostband .in{padding:64px 0}
.hostband h2{font-size:clamp(1.6rem,2.6vw,2.1rem);margin-top:.3rem}
.host-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px 44px;margin-top:32px}
.host-item{display:flex;gap:14px;align-items:flex-start}
.host-item svg{width:24px;height:24px;stroke:var(--emerald-600);fill:none;flex:0 0 auto;margin-top:2px}
.host-item b{display:block;font-size:1rem;color:var(--emerald-900)}
.host-item span{font-size:.91rem;color:var(--ink-soft);line-height:1.65}

.similar{background:#fff}
.property-inquiry-page .similar .sec-head .link{max-width:100%;white-space:normal}
.property-inquiry-page footer.site .foot-top>div{min-width:0}
.property-inquiry-page .newsletter input{min-width:0}

/* A compact escape route for a guest who likes the destination but not this
   exact home. Filter URLs remain customer-search pages unless separately
   approved by the finite SEO landing policy. */
.property-discovery{background:linear-gradient(145deg,var(--emerald-900),#126b56);color:#fff}
.property-discovery-card{display:grid;grid-template-columns:minmax(0,.9fr) minmax(520px,1.1fr);gap:54px;align-items:start}
.property-discovery .eyebrow{color:var(--sky-300)}
.property-discovery h2{margin:.35rem 0 .75rem;color:#fff;font-size:clamp(1.8rem,3.2vw,2.7rem)}
.property-discovery-copy>p{max-width:58ch;color:rgba(255,255,255,.84);line-height:1.7}
.property-browse-links{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}
.property-browse-links a{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:8px 12px;border:1px solid rgba(255,255,255,.24);border-radius:999px;color:#fff;font-size:.74rem;font-weight:700;transition:background .2s,border-color .2s}
.property-browse-links a:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.5)}
.property-discovery-form{padding:22px;border-radius:20px;background:#fff;color:var(--ink);box-shadow:0 18px 50px rgba(0,0,0,.18)}
.property-discovery-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.property-discovery-fields label{display:flex;min-width:0;flex-direction:column;gap:6px;color:var(--emerald-700);font-size:.65rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.property-discovery-fields input,.property-discovery-fields select{width:100%;height:46px;padding:0 12px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);font:500 .8rem "Montserrat",system-ui,sans-serif;letter-spacing:0;text-transform:none;outline:0}
.property-discovery-fields input:focus,.property-discovery-fields select:focus{border-color:var(--emerald-500);box-shadow:0 0 0 3px rgba(33,163,127,.13)}
.property-discovery-form .btn{justify-content:center;min-height:48px;margin-top:14px}

/* sticky call bar, small screens only */
.mobar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:90;background:#fff;border-top:1px solid var(--line);padding:12px 18px;justify-content:space-between;align-items:center;gap:16px;box-shadow:0 -8px 24px rgba(11,61,49,.08)}
.mobar .p b{font-family:"Fraunces",Georgia,serif;font-size:1.2rem;color:var(--emerald-900);display:block;line-height:1.1}
.mobar .p span{font-size:.78rem;color:var(--ink-soft);display:block}
.mobar--inquiry{flex-wrap:wrap;gap:8px 10px;padding-bottom:max(12px,env(safe-area-inset-bottom))}
.mobar-property-number{flex:0 0 100%;justify-content:center;padding:0;border:0;border-radius:0;background:transparent;gap:8px}
.mobar-property-number strong{font-size:1.125rem}
.mobar--inquiry .btn{flex:1;min-width:0;min-height:46px;padding:11px 8px;text-align:center;justify-content:center;font-size:.76rem;line-height:1.3}

/* lightbox */
.lightbox{position:fixed;inset:0;z-index:300;background:rgba(8,26,20,.96);display:none;flex-direction:column;padding:22px}
.lightbox.open{display:flex}
.lb-top{display:flex;justify-content:space-between;align-items:center;color:#fff;margin-bottom:16px;gap:16px}
.lb-top button{background:rgba(255,255,255,.12);border:0;color:#fff;cursor:pointer;font-family:"Montserrat";font-weight:600;font-size:.88rem;padding:.6rem 1rem;border-radius:100px;display:inline-flex;align-items:center;gap:.5rem}
.lb-top button:hover{background:rgba(255,255,255,.22)}
.lb-title{font-family:"Fraunces",Georgia,serif;font-size:1.05rem;text-align:center;flex:1;min-width:0}
.lb-spacer{width:96px;flex:0 0 auto}
.lb-stage{flex:1;display:flex;align-items:center;justify-content:center;gap:18px;min-height:0}
.lb-stage img{max-width:min(1100px,88vw);max-height:78vh;border-radius:12px;object-fit:contain}
.lb-nav{background:rgba(255,255,255,.14);border:0;color:#fff;width:52px;height:52px;border-radius:50%;cursor:pointer;font-size:1.6rem;line-height:1;flex:0 0 auto;transition:background .2s}
.lb-nav:hover{background:rgba(255,255,255,.28)}
.lb-count{text-align:center;color:rgba(255,255,255,.75);margin-top:14px;font-size:.9rem}

@media(max-width:1080px){
  .layout{grid-template-columns:minmax(0,1fr);gap:0;padding-bottom:0}
  .booking{display:none;position:static}
  .book-card{display:block}
  .rate-card-mobile{display:block;width:100%;max-width:680px;margin:0 auto 38px}
  .host-grid{grid-template-columns:1fr}
  .property-discovery-card{grid-template-columns:1fr;gap:30px}
  .mobar{display:flex}
  body{padding-bottom:78px}
  body.property-inquiry-page{padding-bottom:calc(7.25rem + env(safe-area-inset-bottom,0px))}
}
@media(max-width:760px){
  .propertypage{padding-top:82px}
  .gallery{grid-template-columns:1fr 1fr;grid-template-rows:200px 120px;height:auto;gap:6px}
  .gallery .g:first-child{grid-row:1;grid-column:1/3}
  .gallery .g:nth-child(4),.gallery .g:nth-child(5){display:none}
  .rate-card-mobile .book-card{padding:22px}
  .rate-form-grid{grid-template-columns:1fr}
  .rate-form-grid .rate-field-wide{grid-column:auto}
  .amen-grid,.rev-bars{grid-template-columns:1fr}
  .rbar .lbl{width:126px}
  .specs{gap:16px}
  .lb-title,.lb-spacer{display:none}
  .property-discovery-fields{grid-template-columns:1fr}
  .property-discovery-form{padding:18px}
}

/* ============================================================
   Search results (/property-search)
   ============================================================ */
.searchpage{padding:112px 0 90px}
.search-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin:6px 0 22px}
.search-head h1{font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.15}
.search-sub{color:var(--ink-soft);font-size:.94rem;margin-top:.5rem}

/* A compact results toolbar, deliberately distinct from the large homepage
   search. It keeps the current destination and dates in hidden fields. */
.search-refine{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  align-items:end;
  gap:10px;
  margin:0 0 18px;
  padding:12px 14px;
  border:1px solid rgba(11,61,49,.12);
  border-radius:16px;
  background:var(--emerald-50);
  box-shadow:0 8px 24px rgba(11,61,49,.06)}
.search-refine-intro{grid-column:1/-1;display:flex;align-items:center;gap:10px;min-height:36px;color:var(--emerald-800)}
.search-refine-intro svg{width:22px;height:22px;flex:0 0 auto;color:var(--emerald-600)}
.search-refine-intro span{display:flex;flex-direction:column;line-height:1.2}
.search-refine-intro strong{font-size:.82rem}
.search-refine-intro small{margin-top:3px;font-size:.68rem;color:var(--ink-soft)}
.search-refine-field{position:relative;display:flex;flex-direction:column;gap:4px;min-width:0}
.search-refine-field>span{
  padding-left:3px;
  color:var(--emerald-700);
  font-size:.62rem;
  font-weight:700;
  letter-spacing:.09em;
  line-height:1.2;
  text-transform:uppercase}
.search-refine-field::after{
  content:"";
  position:absolute;
  right:15px;
  bottom:17px;
  width:7px;
  height:7px;
  border-right:1.5px solid var(--emerald-700);
  border-bottom:1.5px solid var(--emerald-700);
  transform:rotate(45deg);
  pointer-events:none}
.search-refine select{
  width:100%;
  height:44px;
  padding:0 34px 0 13px;
  border:1px solid var(--line);
  border-radius:11px;
  outline:0;
  appearance:none;
  background:#fff;
  color:var(--ink);
  font:600 .78rem "Montserrat",system-ui,sans-serif;
  cursor:pointer;
  transition:border-color .2s,box-shadow .2s}
.search-refine select:hover{border-color:var(--emerald-400)}
.search-refine select:focus-visible{border-color:var(--emerald-600);box-shadow:0 0 0 3px rgba(27,149,114,.14)}
.search-refine-submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  height:44px;
  padding:0 18px;
  border:0;
  border-radius:11px;
  background:var(--emerald-800);
  color:#fff;
  font:700 .78rem "Montserrat",system-ui,sans-serif;
  white-space:nowrap;
  cursor:pointer;
  box-shadow:0 7px 18px rgba(11,61,49,.18);
  transition:background .2s,transform .2s var(--ease),box-shadow .2s}
.search-refine-submit{width:100%}
.search-refine-submit svg{width:17px;height:17px}
.search-refine-submit:hover{background:var(--emerald-600);transform:translateY(-1px);box-shadow:0 10px 22px rgba(11,61,49,.23)}
.search-refine-submit:focus-visible{outline:3px solid var(--emerald-400);outline-offset:3px}

/* active filters */
.search-chips{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:20px}
.chips-label{font-family:"Montserrat";font-weight:700;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--emerald-700)}
.fchip{display:inline-flex;align-items:center;gap:.5rem;padding:.42rem .85rem;border-radius:100px;border:1px solid var(--emerald-100);background:var(--emerald-50);color:var(--emerald-800);font-weight:600;font-size:.85rem;transition:border-color .2s,background .2s}
.fchip:hover{border-color:var(--emerald-400);background:#fff}
.fchip span[aria-hidden]{font-size:1.05rem;line-height:1;color:var(--emerald-600)}
.fchip--clear{background:none;border-color:var(--line);color:var(--ink-soft)}
.fchip--clear:hover{border-color:var(--emerald-400);color:var(--emerald-800)}

/* the dates a visitor typed, which the search cannot filter on */
.search-dates{display:flex;align-items:flex-start;gap:.7rem;background:var(--sand);border:1px solid var(--line);border-radius:14px;padding:.85rem 1.1rem;margin-bottom:26px;font-size:.88rem;color:var(--ink-soft);line-height:1.6}
.search-dates svg{flex:0 0 auto;width:19px;height:19px;color:var(--emerald-600);margin-top:1px}
.search-dates b{color:var(--emerald-900)}

.search-grid{margin-bottom:12px}

/* Search cards end with the next action instead of making visitors hunt for
   a generic contact link. These rules are intentionally scoped to the search
   grid so homepage, destination and related-property cards do not change. */
.search-grid .card{
  cursor:default;
  border:1px solid rgba(11,61,49,.1);
  box-shadow:0 10px 30px rgba(11,61,49,.07)}
.search-grid .card:hover{box-shadow:0 18px 44px rgba(11,61,49,.14)}
.search-grid .card-media{border-radius:var(--radius) var(--radius) 0 0}
.search-grid .card-body{padding:14px 12px 8px}
.card-lead{
  display:grid;
  gap:3px;
  margin-top:auto;
  padding:7px 10px 8px;
  border-top:1px solid rgba(11,61,49,.09);
  background:linear-gradient(180deg,#fff 0%,var(--emerald-50) 100%)}
.card-lead-call{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:46px;
  padding:7px 10px;
  border-radius:12px;
  background:var(--emerald-800);
  color:#fff;
  box-shadow:0 7px 18px rgba(11,61,49,.2);
  transition:background .2s var(--ease),transform .2s var(--ease),box-shadow .2s var(--ease)}
.card-lead-call svg{width:18px;height:18px;flex:0 0 auto}
.card-lead-call span{display:flex;flex-direction:column;min-width:0;line-height:1.1}
.card-lead-call strong{font-family:"Montserrat";font-size:.73rem;font-weight:700;letter-spacing:.01em}
.card-lead-call small{margin-top:2px;font-size:.66rem;font-weight:500;color:rgba(255,255,255,.8)}
.card-lead-call:hover{
  background:var(--emerald-600);
  color:#fff;
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(11,61,49,.26)}
.card-lead-request{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:29px;
  padding:3px 7px;
  border-radius:8px;
  color:var(--emerald-800);
  font-size:.71rem;
  font-weight:700;
  text-align:center;
  transition:color .2s,background .2s}
.card-lead-request:hover{color:var(--emerald-600);background:rgba(255,255,255,.72)}
.card-lead-call:focus-visible,.card-lead-request:focus-visible{
  outline:3px solid var(--emerald-400);
  outline-offset:3px}

/* pagination */
.pager{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:46px;padding-top:34px;border-top:1px solid var(--line)}
.pager-nums{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pager-num,.pager-step{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 .85rem;border-radius:12px;border:1px solid var(--line);background:#fff;font-weight:600;font-size:.92rem;color:var(--emerald-900);transition:border-color .2s,background .2s,transform .2s var(--ease)}
.pager-num:hover,.pager-step:hover{border-color:var(--emerald-500);background:var(--emerald-50);transform:translateY(-2px)}
.pager-num.is-current{background:var(--emerald-900);border-color:var(--emerald-900);color:#fff;cursor:default}
.pager-num.is-current:hover{transform:none;background:var(--emerald-900)}
.pager-step.is-off{color:#b6c1bb;border-color:var(--line);background:var(--sand);cursor:default}
.pager-step.is-off:hover{transform:none;border-color:var(--line);background:var(--sand)}
.pager-gap{color:var(--ink-soft);padding:0 .2rem}

.search-empty{text-align:center;padding:70px 0 40px;max-width:560px;margin:0 auto}
.search-empty h2{font-size:1.7rem;margin-bottom:.7rem}
.search-empty p{color:var(--ink-soft);line-height:1.7;margin-bottom:1.6rem}
.search-empty .btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

@media(max-width:760px){
  .searchpage{padding:92px 0 70px}
  .search-head{align-items:flex-start}
  .search-refine{grid-template-columns:1fr 1fr;padding:12px;gap:10px}
  .search-refine-intro{grid-column:1/-1;min-height:36px}
  .search-refine-submit{grid-column:1/-1;width:100%}
  .card-lead{padding:8px 12px 9px;gap:4px}
  .card-lead-call{min-height:48px}
  .card-lead-request{min-height:32px}
  .pager-num,.pager-step{min-width:38px;height:38px;font-size:.86rem}
}

@media(max-width:520px){
  .search-refine{grid-template-columns:1fr}
  .search-refine-intro,.search-refine-submit{grid-column:1}
}

@media(min-width:761px) and (max-width:1040px){
  .search-refine{grid-template-columns:repeat(4,minmax(0,1fr))}
  .search-refine-intro{grid-column:1/-1;min-height:36px}
  .search-refine-submit{grid-column:1/-1;width:100%}
}

/* ============================================================
   Saved rentals
   ============================================================ */
.favorites-page{background:var(--sand)}
.favorites-main{padding-top:78px;min-height:75vh;background:linear-gradient(180deg,#fff 0,#fff 270px,var(--sand) 270px,var(--sand) 100%)}
.favorites-hero{padding:38px 0 58px;border-bottom:1px solid var(--line)}
.favorites-hero .crumbs{margin:0 0 34px;padding:0}
.favorites-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:48px}
.favorites-intro h1{font-size:clamp(2.5rem,5vw,4.25rem);margin:.45rem 0 .8rem}
.favorites-lede{max-width:720px;color:var(--ink-soft);font-size:1.03rem;line-height:1.75}
.favorites-intro-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;min-width:280px}
.favorites-count-pill{display:inline-flex;align-items:baseline;gap:6px;min-height:52px;padding:12px 18px;border:1px solid var(--emerald-100);border-radius:999px;background:var(--emerald-50);color:var(--emerald-800);font-size:.82rem;font-weight:600;white-space:nowrap}
.favorites-count-pill strong{font-family:"Fraunces",Georgia,serif;font-size:1.42rem;line-height:1;color:var(--emerald-900)}
.favorites-content{padding:58px 0 96px}
.favorites-notice{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 28px;padding:16px 18px;border:1px solid #eadfbd;border-radius:14px;background:#fffaf0;color:#66552a;font-size:.82rem;line-height:1.5}
.favorites-notice strong,.favorites-notice span{display:block}
.favorites-clean{flex:0 0 auto;border:0;border-bottom:1px solid currentColor;background:none;color:var(--emerald-800);font:700 .76rem/1.4 "Montserrat",system-ui,sans-serif;cursor:pointer}
.favorites-layout{display:grid;grid-template-columns:minmax(0,1fr) 382px;gap:46px;align-items:start}
.favorites-list{min-width:0}
.favorites-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px}
.favorites-section-head h2{font-size:1.8rem;margin-bottom:5px}
.favorites-section-head p{color:var(--ink-soft);font-size:.84rem}
.favorites-jump{display:none;color:var(--emerald-700);font-size:.8rem;font-weight:700;border-bottom:1px solid rgba(21,116,87,.3)}
.favorites-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:28px 24px}
.favorites-grid .card{height:100%;border:1px solid var(--line);box-shadow:var(--shadow-sm)}
.favorites-grid .card[data-cat~="noimage"] .card-media{display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,var(--emerald-50),var(--sky-100))}
.favorites-grid .card[data-cat~="noimage"] .card-media img{width:62%;height:62%;object-fit:contain;filter:none}
.favorites-sidebar{position:sticky;top:96px}
.favorites-request-card{padding:28px}
.favorites-call-label{margin-bottom:9px;color:var(--emerald-800);font-size:.72rem;font-weight:700;text-align:center}
.favorites-form-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.favorites-form-fields label{display:flex;min-width:0;flex-direction:column;gap:6px;color:var(--emerald-700);font-size:.65rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.favorites-form-fields label.wide{grid-column:1/-1}
.favorites-form-fields label small{color:var(--ink-soft);font-size:.64rem;font-weight:500;letter-spacing:0;text-transform:none}
.favorites-form-fields input,.favorites-form-fields textarea{width:100%;min-width:0;border:1px solid #dce6e1;border-radius:11px;background:#fff;color:var(--ink);font:500 .82rem/1.45 "Montserrat",system-ui,sans-serif;letter-spacing:0;text-transform:none;outline:0;transition:border-color .2s,box-shadow .2s}
.favorites-form-fields input{height:44px;padding:0 11px}
.favorites-form-fields textarea{min-height:92px;padding:11px;resize:vertical}
.favorites-form-fields input:focus,.favorites-form-fields textarea:focus{border-color:var(--emerald-500);box-shadow:0 0 0 3px rgba(33,163,127,.13)}
.favorites-limit{margin:13px 0 0;padding:10px 12px;border-radius:10px;background:#fff3ef;color:#983b2e;font-size:.72rem;line-height:1.5}
.favorites-form-status{min-height:20px;margin:10px 0 0;color:#983b2e;font-size:.74rem;font-weight:600;text-align:center}
.favorites-form[aria-busy="true"] button{opacity:.62;cursor:wait;transform:none;box-shadow:none}
.favorites-disclosure{margin-top:11px;color:var(--ink-soft);font-size:.69rem;line-height:1.55;text-align:center}
.favorites-success{text-align:center;padding:18px 2px 6px}
.favorites-success>svg{width:54px;height:54px;margin:0 auto 16px;padding:12px;border-radius:50%;background:var(--emerald-100);fill:none;stroke:var(--emerald-700);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.favorites-success h3{font-size:1.45rem;margin-bottom:8px}
.favorites-success p{color:var(--ink-soft);font-size:.83rem;line-height:1.6}
.favorites-success .btn{margin-top:18px}
.favorites-empty{max-width:720px;margin:12px auto 0;padding:64px 48px;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;text-align:center;box-shadow:var(--shadow-sm)}
.favorites-empty-icon{display:flex;align-items:center;justify-content:center;width:70px;height:70px;margin:0 auto 20px;border-radius:50%;background:linear-gradient(145deg,var(--emerald-100),var(--sky-100))}
.favorites-empty-icon svg{width:30px;height:30px;fill:none;stroke:var(--emerald-700);stroke-width:1.8}
.favorites-empty h2{font-size:clamp(1.8rem,3vw,2.35rem);margin:.4rem 0 .75rem}
.favorites-empty>p:not(.eyebrow){max-width:560px;margin:0 auto;color:var(--ink-soft);line-height:1.7}
.favorites-empty-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:26px}

/* ============================================================
   Contact, rate-request handoff and confirmation
   ============================================================ */
.contact-page,.contact-thanks-page{background:var(--sand)}
.contact-main{padding-top:70px;background:var(--sand)}
.contact-hero{position:relative;isolation:isolate;height:340px;display:flex;align-items:center;overflow:hidden;color:#fff}
.contact-hero>img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:center}
.contact-hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(7,48,38,.92) 0%,rgba(11,61,49,.78) 46%,rgba(11,61,49,.18) 100%)}
.contact-hero-inner{width:100%}
.contact-hero .eyebrow{color:var(--sky-400);margin-bottom:8px}
.contact-hero h1{max-width:760px;color:#fff;font-size:clamp(2.45rem,5.2vw,4.2rem);text-shadow:0 2px 12px rgba(0,0,0,.25)}
.contact-hero-inner>p:last-child{max-width:650px;margin-top:14px;color:rgba(255,255,255,.94);font-size:1.02rem;line-height:1.72;text-shadow:0 1px 6px rgba(0,0,0,.25)}
.contact-actions-wrap{position:relative;z-index:2;margin-top:-42px}
.contact-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.contact-action{display:grid;grid-template-columns:50px minmax(0,1fr) auto;align-items:center;gap:14px;min-height:94px;padding:18px 20px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow-md);transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s}
.contact-action:hover{transform:translateY(-4px);border-color:var(--emerald-100);box-shadow:var(--shadow-lg)}
.contact-action-icon{display:flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:15px;background:var(--emerald-50);color:var(--emerald-700)}
.contact-action-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.contact-action small{display:block;color:var(--ink-soft);font-size:.68rem;font-weight:600;line-height:1.35}
.contact-action strong{display:block;margin-top:3px;color:var(--emerald-900);font-family:"Fraunces",Georgia,serif;font-size:1.08rem;line-height:1.25}
.contact-action-arrow{color:var(--emerald-600);font-weight:700}
.contact-action--primary{border-color:var(--emerald-800);background:linear-gradient(135deg,var(--emerald-900),var(--emerald-800))}
.contact-action--primary .contact-action-icon{background:rgba(255,255,255,.11);color:var(--sky-400)}
.contact-action--primary small{color:rgba(255,255,255,.7)}
.contact-action--primary strong,.contact-action--primary .contact-action-arrow{color:#fff}
.contact-content{padding:72px 0 100px}
.contact-layout{display:grid;grid-template-columns:minmax(0,1fr) 348px;gap:46px;align-items:start}
.contact-form-card{min-width:0;padding:42px;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-md);scroll-margin-top:100px}
.contact-form-heading{margin-bottom:28px}
.contact-form-heading h2{font-size:clamp(1.9rem,3vw,2.55rem);margin:.35rem 0 .6rem}
.contact-form-heading>p:last-child{color:var(--ink-soft);font-size:.87rem;line-height:1.6}
.contact-property-summary{display:grid;grid-template-columns:154px minmax(0,1fr);gap:20px;margin:0 0 26px;padding:14px;border:1px solid var(--emerald-100);border-radius:18px;background:linear-gradient(145deg,var(--emerald-50),#fff)}
.contact-property-image{display:block;border-radius:13px;overflow:hidden;aspect-ratio:4/3}
.contact-property-image img{width:100%;height:100%;object-fit:cover}
.contact-property-copy{align-self:center;min-width:0}
.contact-property-copy>span{color:var(--emerald-600);font-size:.65rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.contact-property-copy h3{font-size:1.25rem;margin:.28rem 0 .3rem}
.contact-property-copy h3 a:hover{color:var(--emerald-700)}
.contact-property-copy>p{color:var(--ink-soft);font-size:.8rem}
.contact-trip-chips{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.contact-trip-chips span{padding:5px 9px;border:1px solid var(--emerald-100);border-radius:999px;background:#fff;color:var(--emerald-800);font-size:.68rem;font-weight:600}
.contact-error{display:flex;flex-direction:column;gap:3px;margin:0 0 24px;padding:15px 17px;border-left:4px solid #b44b3e;border-radius:10px;background:#fff3ef;color:#7d3128;font-size:.82rem;line-height:1.5}
.contact-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.contact-field{display:flex;min-width:0;flex-direction:column;gap:7px}
.contact-field--wide{grid-column:1/-1}
.contact-field>span{color:var(--emerald-700);font-size:.69rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.contact-field input,.contact-field textarea{width:100%;min-width:0;border:1px solid #dce6e1;border-radius:13px;background:#fff;color:var(--ink);font:500 .94rem/1.55 "Montserrat",system-ui,sans-serif;outline:0;transition:border-color .2s,box-shadow .2s}
.contact-field input{height:52px;padding:0 15px}
.contact-field textarea{min-height:170px;padding:14px 15px;resize:vertical}
.contact-field input:focus,.contact-field textarea:focus{border-color:var(--emerald-500);box-shadow:0 0 0 3px rgba(33,163,127,.14)}
.contact-captcha-wrap{margin:24px 0 16px;overflow:hidden}
.contact-captcha{min-height:78px;display:flex;align-items:center;justify-content:flex-start;transform-origin:left top}
.contact-captcha>span{color:var(--ink-soft);font-size:.78rem}
#contactCaptchaStatus{min-height:18px;margin-top:4px;color:#983b2e;font-size:.75rem;font-weight:600}
.contact-submit{width:100%;min-height:54px}
.contact-form-foot{display:flex;justify-content:space-between;gap:22px;margin-top:14px;color:var(--ink-soft);font-size:.72rem;line-height:1.55}
.contact-form-foot p{max-width:600px}
.contact-form-foot a{flex:0 0 auto;color:var(--emerald-700);font-weight:700;border-bottom:1px solid currentColor}
.contact-sidebar{position:sticky;top:96px;display:grid;gap:18px}
.contact-info-card,.contact-help-card{padding:27px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow-sm)}
.contact-info-card h2{font-size:1.45rem;margin:.35rem 0 .8rem}
.contact-info-card>p:not(.eyebrow),.contact-info-card address,.contact-help-card p{color:var(--ink-soft);font-size:.84rem;line-height:1.65;font-style:normal}
.contact-info-phone{display:block;margin-top:18px;color:var(--emerald-800);font-family:"Fraunces",Georgia,serif;font-size:1.75rem;font-weight:600;line-height:1.2}
.contact-info-link{display:inline-block;margin-top:7px;color:var(--emerald-700);font-size:.75rem;font-weight:700}
.contact-info-card--dark{border-color:var(--emerald-900);background:linear-gradient(145deg,var(--emerald-900),var(--emerald-800));color:#fff;box-shadow:var(--shadow-md)}
.contact-info-card--dark .eyebrow{color:var(--sky-400)}
.contact-info-card--dark h2,.contact-info-card--dark .contact-info-phone{color:#fff}
.contact-info-card--dark>p:not(.eyebrow){color:rgba(255,255,255,.78)}
.contact-info-card--dark .contact-info-link{color:var(--sky-400)}
.contact-fax{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.contact-help-card h3{font-size:1.18rem;margin-bottom:.5rem}
.contact-help-card a{display:inline-flex;gap:6px;margin-top:12px;color:var(--emerald-700);font-size:.8rem;font-weight:700}
.contact-thanks-main{min-height:72vh;padding:154px 0 92px;background:radial-gradient(circle at 50% 20%,var(--emerald-50),var(--sand) 58%)}
.contact-thanks-card{max-width:760px;margin:0 auto;padding:58px 58px 50px;border:1px solid var(--line);border-radius:30px;background:#fff;box-shadow:var(--shadow-lg);text-align:center}
.contact-thanks-icon{display:flex;align-items:center;justify-content:center;width:74px;height:74px;margin:0 auto 20px;border-radius:50%;background:var(--emerald-100)}
.contact-thanks-icon svg{width:34px;height:34px;fill:none;stroke:var(--emerald-700);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.contact-thanks-card h1{font-size:clamp(2.2rem,4.5vw,3.35rem);margin:.4rem 0 1rem}
.contact-thanks-card>p{max-width:600px;margin:0 auto;color:var(--ink-soft);font-size:.98rem;line-height:1.75}
.contact-reference{display:inline-flex;align-items:baseline;gap:7px;margin:24px 0 20px;padding:11px 17px;border-radius:999px;background:var(--emerald-50);color:var(--emerald-800);font-size:.82rem;font-weight:600}
.contact-reference strong{font-family:"Fraunces",Georgia,serif;font-size:1.2rem;color:var(--emerald-900)}
.contact-thanks-note{font-size:.78rem!important}
.contact-thanks-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:28px}
.contact-thanks-hours{display:block;margin-top:24px;color:var(--ink-soft);font-size:.72rem}

@media(max-width:1040px){
  .favorites-layout{grid-template-columns:1fr}
  .favorites-sidebar{position:static;max-width:720px;width:100%;margin:0 auto}
  .favorites-jump{display:inline-flex}
  .contact-actions{grid-template-columns:1fr}
  .contact-action{min-height:82px}
  .contact-layout{grid-template-columns:1fr}
  .contact-sidebar{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}
  .contact-help-card{grid-column:1/-1}
}
@media(max-width:760px){
  .favorites-main{padding-top:72px;background:var(--sand)}
  .favorites-hero{padding:24px 0 38px;background:#fff}
  .favorites-hero .crumbs{margin-bottom:24px}
  .favorites-intro{display:block}
  .favorites-intro h1{font-size:2.55rem}
  .favorites-intro-actions{justify-content:flex-start;min-width:0;margin-top:24px}
  .favorites-content{padding:34px 0 68px}
  .favorites-notice{align-items:flex-start;flex-direction:column;gap:10px}
  .favorites-section-head{align-items:flex-start;flex-direction:column}
  .favorites-grid{grid-template-columns:1fr}
  .favorites-form-fields{grid-template-columns:1fr}
  .favorites-form-fields label.wide{grid-column:auto}
  .favorites-empty{padding:44px 22px}
  .favorites-empty-actions .btn{width:100%}
  .contact-main{padding-top:68px}
  .contact-hero{height:300px}
  .contact-hero-shade{background:linear-gradient(90deg,rgba(7,48,38,.93),rgba(11,61,49,.67))}
  .contact-actions-wrap{margin-top:-28px}
  .contact-content{padding:48px 0 72px}
  .contact-form-card{padding:28px 22px}
  .contact-form-grid{grid-template-columns:1fr;gap:14px}
  .contact-field--wide{grid-column:auto}
  .contact-sidebar{grid-template-columns:1fr}
  .contact-help-card{grid-column:auto}
  .contact-form-foot{flex-direction:column;gap:8px}
  .contact-property-summary{grid-template-columns:110px minmax(0,1fr);gap:14px}
  .contact-thanks-main{padding:122px 0 70px}
  .contact-thanks-card{padding:44px 23px 38px}
}
@media(max-width:420px){
  .favorites-intro-actions>*{width:100%;justify-content:center}
  .contact-hero{height:325px}
  .contact-hero h1{font-size:2.45rem}
  .contact-action{grid-template-columns:46px minmax(0,1fr) auto;padding:15px}
  .contact-action-icon{width:46px;height:46px}
  .contact-property-summary{grid-template-columns:1fr}
  .contact-property-image{max-height:180px}
  .contact-captcha{transform:scale(.88);margin-bottom:-9px}
  .contact-thanks-actions .btn{width:100%}
}

/* Chrome/Android desktop-site mode uses this class rather than mobile media
   queries. Keep these two personalised flows comfortably single-column. */
html.ek-zoomout .favorites-layout,html.ek-zoomout .contact-layout,html.ek-zoomout .contact-actions{grid-template-columns:1fr}
html.ek-zoomout .favorites-sidebar,html.ek-zoomout .contact-sidebar{position:static}
html.ek-zoomout .favorites-grid{grid-template-columns:1fr}
html.ek-zoomout .contact-sidebar{grid-template-columns:1fr}
html.ek-zoomout .contact-form-grid,html.ek-zoomout .favorites-form-fields{grid-template-columns:1fr}
html.ek-zoomout .contact-field--wide,html.ek-zoomout .favorites-form-fields label.wide{grid-column:auto}

/* ============================================================
   Reduced motion: honour the OS setting across the whole site,
   not just the badge. Reveal blocks must end up visible.
   ============================================================ */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
    transition-delay:0ms!important}
  .reveal{opacity:1!important;transform:none!important}
  .hero-bg img{animation:none!important;transform:none!important}
  .hero-bg--carousel .hero-slide{transition:none!important}
  .card:hover{transform:none}
  .card:hover .card-media img,.dest:hover img,.coll:hover img,.guide:hover .gm img{transform:none}
  .hood:hover img,.xcard.photo:hover img{transform:none}
  .near:hover,.agent-tel:hover{transform:none}
  .pager-num:hover,.pager-step:hover{transform:none}
  .gallery .g:hover img,.bedcard:hover{transform:none}
}

/* ============================================================
   Touch device stuck at a desktop-width viewport
   ------------------------------------------------------------
   Chrome for Android's "Desktop site" ignores the viewport meta and lays out
   at ~980-1080 CSS px, so the phone gets the desktop grid at a third of the
   apparent size. It also MISREPORTS the interaction media features - it can
   claim pointer:fine - so a media-query-only gate does not fire. head.php
   therefore sets html.ek-zoomout from navigator.maxTouchPoints, which is backed
   by the hardware and survives desktop mode, and everything below keys off
   that class. A real desktop never gets the class, so no desktop window can
   be affected no matter how narrow it is.

   The rules below are the site's own mobile rules, re-emitted scoped to
   html.ek-zoomout, plus a vw type scale that restores physical readability.
   Must stay LAST in the file.
   ============================================================ */
@media(min-width:761px) and (max-width:1109px){
  html.ek-zoomout .hero-dots{right:14px;gap:9px}
  html.ek-zoomout .hero-dot span{height:14px}
  html.ek-zoomout .hero-dot.is-active span{height:24px}
  html.ek-zoomout .trustbar .wrap{grid-template-columns:repeat(2,1fr);gap:18px 30px}
  html.ek-zoomout .trustbar .wrap{grid-template-columns:1fr}
  html.ek-zoomout .alldest-grid{grid-template-columns:1fr;padding:26px 24px}
  html.ek-zoomout .priority-market-groups{grid-template-columns:1fr}
  html.ek-zoomout #f-dest,html.ek-zoomout #f-in,html.ek-zoomout #f-out,html.ek-zoomout #f-guests{flex:1}
  html.ek-zoomout .pop{left:12px!important;right:12px!important;width:auto!important;max-width:none}
  html.ek-zoomout .cal-months{gap:0}
  html.ek-zoomout .cal-month{width:100%}
  html.ek-zoomout .cal-month + .cal-month{display:none}
  html.ek-zoomout .pop-cal,html.ek-zoomout .pop-dest,html.ek-zoomout .pop-guests{width:auto}
  html.ek-zoomout .grid{grid-template-columns:repeat(2,1fr)}
  html.ek-zoomout .why-grid{grid-template-columns:repeat(2,1fr)}
  html.ek-zoomout .dest-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  html.ek-zoomout .test-grid,html.ek-zoomout .guides,html.ek-zoomout .colls{grid-template-columns:1fr 1fr}
  html.ek-zoomout .split{grid-template-columns:1fr;gap:36px}
  html.ek-zoomout .foot-top{grid-template-columns:1fr 1fr}
  html.ek-zoomout .hero-stats{display:none}
  html.ek-zoomout .wrap{padding:0 18px}
  html.ek-zoomout header.site .bar{gap:12px}
  html.ek-zoomout .hdr-actions{gap:10px}
  html.ek-zoomout .hdr-actions .fav-btn,html.ek-zoomout .hdr-actions #callBack{display:none}
  html.ek-zoomout .hdr-actions .hdr-phone{display:flex;gap:.35rem;white-space:nowrap;font-size:.8rem}
  html.ek-zoomout .hdr-actions .hdr-phone svg{width:15px;height:15px}
  html.ek-zoomout .searchbar{flex-direction:column;padding:10px}
  html.ek-zoomout .search-field + .search-field::before{display:none}
  html.ek-zoomout .search-field{border-bottom:1px solid var(--line);border-radius:0}
  html.ek-zoomout .search-submit .btn{width:100%;justify-content:center;padding:1rem;margin-top:6px}
  html.ek-zoomout .sec{padding:64px 0}
  html.ek-zoomout .sec-head{flex-direction:column;align-items:flex-start}
  html.ek-zoomout .grid,html.ek-zoomout .why-grid,html.ek-zoomout .test-grid,html.ek-zoomout .guides,html.ek-zoomout .colls{grid-template-columns:1fr}
  html.ek-zoomout .dest-grid{grid-template-columns:1fr}
  html.ek-zoomout .foot-top{grid-template-columns:1fr}
  html.ek-zoomout .coasts--single .coast-areas{grid-template-columns:repeat(2,1fr)}
  html.ek-zoomout .coasts,html.ek-zoomout .plan-grid{grid-template-columns:1fr}
  html.ek-zoomout .coast-areas{grid-template-columns:1fr}
  html.ek-zoomout .coast,html.ek-zoomout .plan{padding:24px 22px}
  html.ek-zoomout .area-browse-layout,html.ek-zoomout .area-seo-links--bedrooms,html.ek-zoomout .area-seo-links--features{grid-template-columns:1fr}
  html.ek-zoomout .area-browse-panel{padding:21px 18px}
  html.ek-zoomout .intro{grid-template-columns:1fr;gap:38px}
  html.ek-zoomout .hoods,html.ek-zoomout .exp-grid,html.ek-zoomout .nearby-grid{grid-template-columns:1fr 1fr}
  html.ek-zoomout .collage{height:420px}
  html.ek-zoomout .agent-in{grid-template-columns:minmax(0,1fr);gap:24px}
  html.ek-zoomout .statband .in{grid-template-columns:1fr 1fr;gap:26px}
  html.ek-zoomout .stat:nth-child(3)::before{display:none}
  html.ek-zoomout .hoods,html.ek-zoomout .exp-grid,html.ek-zoomout .nearby-grid{grid-template-columns:1fr}
  html.ek-zoomout .hood{min-height:320px}
  html.ek-zoomout .collage{height:340px}
  html.ek-zoomout .agent-in{padding:24px 22px}
  html.ek-zoomout .agent-who{gap:16px}
  html.ek-zoomout .agent-frame{width:84px;height:84px}
  html.ek-zoomout .agent-copy h2{font-size:1.45rem}
  html.ek-zoomout .agent-lines{grid-template-columns:1fr}
  html.ek-zoomout .agent-tel + .agent-tel{border-left:0;border-top:1px solid var(--emerald-100)}
  html.ek-zoomout .sizenav{position:static;flex-wrap:nowrap;overflow-x:auto;padding:2px 0 10px;scrollbar-width:none}
  html.ek-zoomout .sizenav::-webkit-scrollbar{display:none}
  html.ek-zoomout .sizechip{flex:0 0 auto}
  html.ek-zoomout .sizeband + .sizeband{margin-top:38px;padding-top:32px}
  html.ek-zoomout .layout{grid-template-columns:minmax(0,1fr);gap:0;padding-bottom:0}
  html.ek-zoomout .booking{display:none;position:static}
  html.ek-zoomout .book-card{display:block}
  html.ek-zoomout .rate-card-mobile{display:block;width:100%;max-width:680px;margin:0 auto 38px}
  html.ek-zoomout .host-grid{grid-template-columns:1fr}
  html.ek-zoomout .mobar{display:flex}
  html.ek-zoomout body{padding-bottom:78px}
  html.ek-zoomout body.property-inquiry-page{padding-bottom:calc(7.25rem + env(safe-area-inset-bottom,0px))}
  html.ek-zoomout .propertypage{padding-top:82px}
  html.ek-zoomout .gallery{grid-template-columns:1fr 1fr;grid-template-rows:200px 120px;height:auto;gap:6px}
  html.ek-zoomout .gallery .g:first-child{grid-row:1;grid-column:1/3}
  html.ek-zoomout .gallery .g:nth-child(4),html.ek-zoomout .gallery .g:nth-child(5){display:none}
  html.ek-zoomout .amen-grid,html.ek-zoomout .rev-bars{grid-template-columns:1fr}
  html.ek-zoomout .rbar .lbl{width:126px}
  html.ek-zoomout .specs{gap:16px}
  html.ek-zoomout .lb-title,html.ek-zoomout .lb-spacer{display:none}
  html.ek-zoomout .searchpage{padding:92px 0 70px}
  html.ek-zoomout .search-head{align-items:flex-start}
  html.ek-zoomout .pager-num,html.ek-zoomout .pager-step{min-width:38px;height:38px;font-size:.86rem}
  html.ek-zoomout{font-size:2.9vw}
  html.ek-zoomout .wrap{padding:0 4.62vw}
  html.ek-zoomout .logo img{height:11.79vw}
  html.ek-zoomout footer.site .flogo{height:13.33vw}
  html.ek-zoomout .hdr-actions{gap:4.62vw}
  html.ek-zoomout .burger{padding:1.54vw}
  html.ek-zoomout .burger span{width:6.67vw;height:0.51vw}
  html.ek-zoomout .mobile-nav{padding:20.51vw 8.21vw}
  html.ek-zoomout .mobile-nav .close{top:6.67vw;right:6.67vw;font-size:8.21vw}
}

  /* ============ Quick call-back dialog ============ */
  body.quick-contact-open{overflow:hidden}
  .quick-contact-dialog{position:fixed;inset:0;width:min(620px,calc(100% - 32px));max-width:none;max-height:calc(100dvh - 32px);margin:auto;padding:0;border:0;border-radius:var(--radius-lg);background:#fff;color:var(--ink);box-shadow:0 28px 90px rgba(3,29,22,.3);overflow:hidden}
  .quick-contact-dialog[open]{animation:quickContactIn .24s var(--ease)}
  .quick-contact-dialog::backdrop{background:rgba(4,31,24,.72);backdrop-filter:blur(5px)}
  .quick-contact-shell{position:relative;max-height:calc(100dvh - 32px);overflow-y:auto;padding:36px 38px 24px}
  .quick-contact-close{position:absolute;z-index:2;top:18px;right:18px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--emerald-900);cursor:pointer;transition:background .2s,border-color .2s}
  .quick-contact-close:hover{background:var(--emerald-50);border-color:var(--emerald-100)}
  .quick-contact-close svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
  .quick-contact-heading{padding-right:48px;margin-bottom:24px}
  .quick-contact-heading .eyebrow{margin:0 0 8px}
  .quick-contact-heading h2{font-size:clamp(1.8rem,4vw,2.35rem);margin:0 0 10px}
  .quick-contact-heading > p:last-child{max-width:52ch;color:var(--ink-soft);font-size:.94rem;line-height:1.65}
  .quick-contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .quick-contact-field{display:flex;flex-direction:column;gap:7px}
  .quick-contact-field > span{font-size:.69rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--emerald-700)}
  .quick-contact-field small{font-size:.66rem;font-weight:500;letter-spacing:0;text-transform:none;color:var(--ink-soft)}
  .quick-contact-field input{width:100%;height:50px;border:1px solid #dce6e1;border-radius:13px;background:#fff;padding:0 14px;font:500 .94rem/1.2 "Montserrat",system-ui,sans-serif;color:var(--ink);outline:0;transition:border-color .2s,box-shadow .2s}
  .quick-contact-field input:focus{border-color:var(--emerald-500);box-shadow:0 0 0 3px rgba(33,163,127,.14)}
  .quick-contact-sms{margin:17px 0 16px;color:var(--ink-soft);font-size:.74rem;line-height:1.55}
  .quick-contact-captcha{min-height:78px;display:flex;align-items:center;justify-content:center;padding:4px 0;overflow-x:auto}
  .quick-contact-captcha > span{font-size:.78rem;color:var(--ink-soft)}
  .quick-contact-status{min-height:22px;margin:8px 0 4px;text-align:center;color:#a63b2e;font-size:.8rem;font-weight:600}
  .quick-contact-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .quick-contact-actions .btn{width:100%;padding:.9rem 1rem;font-size:.88rem}
  .quick-contact-form[aria-busy="true"] .btn{opacity:.62;cursor:wait;transform:none;box-shadow:none}
  .quick-contact-success{text-align:center;padding:24px 8px 16px}
  .quick-contact-success > svg{width:54px;height:54px;margin:0 auto 17px;padding:12px;border-radius:50%;background:var(--emerald-100);fill:none;stroke:var(--emerald-700);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
  .quick-contact-success h3{font-size:1.55rem;margin-bottom:9px}
  .quick-contact-success p{max-width:42ch;margin:0 auto 22px;color:var(--ink-soft);font-size:.9rem}
  .quick-contact-hours{margin:19px 0 0;padding-top:16px;border-top:1px solid var(--line);text-align:center;color:var(--ink-soft);font-size:.73rem}
  .quick-contact-fallback{margin:6px 0 0;text-align:center;color:var(--ink-soft);font-size:.73rem}
  .quick-contact-fallback a{color:var(--emerald-700);font-weight:700;border-bottom:1px solid currentColor}
  @keyframes quickContactIn{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
  @media(max-width:600px){
    .quick-contact-dialog{width:calc(100% - 20px);max-height:calc(100dvh - 20px);border-radius:22px}
    .quick-contact-shell{max-height:calc(100dvh - 20px);padding:30px 20px 20px}
    .quick-contact-close{top:13px;right:13px}
    .quick-contact-heading{padding-right:36px;margin-bottom:20px}
    .quick-contact-fields{grid-template-columns:1fr;gap:12px}
    .quick-contact-field input{height:48px}
    .quick-contact-actions{grid-template-columns:1fr}
  }
  @media(prefers-reduced-motion:reduce){.quick-contact-dialog[open]{animation:none}}

  /* ============ 404 ============ */
  .notfound{padding:150px 0 90px;background:var(--sand)}
  .notfound .nf-code{font-family:"Fraunces";font-size:clamp(3.2rem,9vw,5.4rem);line-height:1;color:var(--emerald-400);margin:0 0 6px}
  .notfound h1{font-family:"Fraunces";font-size:clamp(1.7rem,4vw,2.6rem);margin:0 0 14px;color:var(--emerald-900)}
  .notfound .nf-lede{max-width:60ch;font-size:1.02rem;line-height:1.65;color:var(--ink-soft);margin:0 0 26px}
  .notfound .nf-btns{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:54px}
  .notfound .nf-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:38px;border-top:1px solid rgba(21,116,87,.14);padding-top:34px}
  .notfound .nf-col h2{font-family:"Montserrat";font-weight:700;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--emerald-600);margin:0 0 12px}
  .notfound .nf-col h2.second{margin-top:26px}
  .notfound .nf-col ul{list-style:none;margin:0;padding:0}
  .notfound .nf-col ul.nf-cols2{columns:2;column-gap:26px}
  .notfound .nf-col li{margin:0 0 7px;break-inside:avoid}
  .notfound .nf-col a{color:var(--emerald-800);font-size:.94rem;border-bottom:1px solid transparent;transition:border-color .2s}
  .notfound .nf-col a:hover{border-bottom-color:var(--emerald-400)}
  @media (max-width:900px){
    .notfound{padding:120px 0 70px}
    .notfound .nf-cols{grid-template-columns:1fr;gap:30px}
    .notfound .nf-col ul.nf-cols2{columns:1}
  }
