    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    :root {
      --bg:      #FFFFFF;
      --surface: #F5F7F9;
      --text:    #0F1318;
      --muted:   #5A6B7A;
      --border:  #D4DCE4;
      --dark:    #0F1318;
      --dark-t:  #FFFFFF;
      --accent-green: #2D7B5A;
      --accent-gold: #C9A961;
      --err: #B23A2E;
      --serif:   'Cormorant Garamond', Georgia, serif;
      --sans:    'DM Sans', system-ui, sans-serif;
      --px:      clamp(28px, 6vw, 96px);
      --py:      clamp(88px, 11vw, 152px);
    }

    html { scroll-behavior: smooth; }
    body {
      font-family: var(--sans);
      background: var(--bg);
      color: var(--text);
      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility;
      overflow-x: hidden;
    }

    /* ── NAV ── */
    .nav {
      position: fixed; inset: 0 0 auto 0; z-index: 50;
      display: flex; align-items: center;
      padding: 26px var(--px);
      transition: background .4s, border-color .4s;
      border-bottom: 1px solid transparent;
    }
    .nav::before {
      content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
      background: linear-gradient(to bottom, rgba(14,12,10,.5), transparent);
      transition: opacity .4s;
    }
    .nav.scrolled::before { opacity: 0; }
    .nav.scrolled {
      background: color-mix(in srgb, var(--bg) 93%, transparent);
      backdrop-filter: blur(16px);
      border-bottom-color: var(--border);
    }
    .nav-logo {
      font-family: var(--serif); font-size: 15px; font-weight: 400;
      letter-spacing: .05em; color: white; text-decoration: none;
      transition: color .3s; text-shadow: 0 1px 12px rgba(0,0,0,.4);
    }
    .nav.scrolled .nav-logo { color: var(--text); text-shadow: none; }
    .nav-spacer { flex: 1; }
    .nav-links { display: flex; gap: 30px; list-style: none; }
    .nav-links a {
      font-size: 10.5px; letter-spacing: .15em; text-transform: uppercase;
      color: rgba(255,255,255,.92); text-decoration: none; transition: color .2s; text-shadow: 0 1px 10px rgba(0,0,0,.45);
    }
    .nav.scrolled .nav-links a { color: var(--muted); text-shadow: none; }
    .nav-links a:hover { color: white; }
    .nav.scrolled .nav-links a:hover { color: var(--text); }
    .nav-cta {
      font-family: var(--sans); font-size: 10.5px; letter-spacing: .14em;
      text-transform: uppercase; padding: 10px 24px;
      border: 1px solid rgba(255,255,255,.4); background: none;
      color: white; cursor: pointer; transition: all .2s; margin-left: 24px;
    }
    .nav-cta.green { background: #2A8A5E; border-color: #2A8A5E; color: white; }
    .nav-cta.green:hover { background: #1F6B47; border-color: #1F6B47; }
    .nav-cta:hover { background: white; color: var(--text); }
    .nav-cta.gold { background: var(--accent-gold); border-color: var(--accent-gold); color: white; }
    .nav-cta.gold:hover { background: #b8945a; border-color: #b8945a; }
    .nav.scrolled .nav-cta { border-color: var(--border); color: var(--text); }
    .nav.scrolled .nav-cta.green { background: #2A8A5E; border-color: #2A8A5E; color: white; }
    .nav.scrolled .nav-cta.green:hover { background: #1F6B47; border-color: #1F6B47; }
    .nav.scrolled .nav-cta.gold { background: var(--accent-gold); border-color: var(--accent-gold); color: white; }
    .nav.scrolled .nav-cta.gold:hover { background: #b8945a; border-color: #b8945a; }
    .nav.scrolled .nav-cta:hover { background: var(--text); color: var(--bg); border-color: var(--text); }

    /* ── HERO ── */
    .hero { position: relative; height: 100svh; min-height: 640px; overflow: hidden; }
    .hero-slides { position: absolute; inset: 0; }
    .hero-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.8s ease; }
    .hero-slide.active { opacity: 1; }
    .hero-slide img { width: 100%; height: 100%; object-fit: cover; object-position: center 50%; display: block; filter: contrast(1.05) brightness(1.02); image-rendering: crisp-edges; }
    .hero-veil {
      position: absolute; inset: 0;
      background: linear-gradient(to top, rgba(14,12,10,.82) 0%, rgba(14,12,10,.22) 44%, transparent 68%), linear-gradient(to bottom, rgba(14,12,10,.55) 0%, rgba(14,12,10,.12) 18%, transparent 30%);
    }
    .hero-foot {
      position: absolute; bottom: 0; left: 0; right: 0;
      padding: 0 var(--px) clamp(56px, 6.5vw, 96px);
      display: flex; justify-content: space-between; align-items: flex-end;
    }
    .hero-title {
      font-family: var(--serif);
      font-size: clamp(56px, 9vw, 140px);
      font-weight: 300; color: #F5F3EF;
      line-height: .88; letter-spacing: -.025em;
    }
    .hero-title em { font-style: italic; }
    .hero-aside {
      display: flex; flex-direction: column; align-items: flex-end; gap: 7px; padding-bottom: 10px;
    }
    .hero-aside span { font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: rgba(245,243,239,.85); text-shadow: 0 1px 10px rgba(0,0,0,.5); }
    .hero-aside .hero-price { font-family: var(--serif); font-style: italic; font-size: 30px; letter-spacing: 0; text-transform: none; color: var(--dark-t); margin-top: 14px; line-height: 1; text-shadow: 0 1px 14px rgba(0,0,0,.55); }
    .hero-aside .hero-price small { font-family: var(--sans); font-style: normal; font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: rgba(245,243,239,.7); }
    .hero-counter {
      position: absolute; bottom: clamp(56px,6.5vw,96px); left: 50%;
      transform: translateX(-50%);
      font-size: 10px; letter-spacing: .2em; color: rgba(245,243,239,.38); z-index: 2;
    }
    .hero-progress {
      position: absolute; bottom: 0; left: 0; right: 0; height: 2px; z-index: 2;
      background: rgba(245,243,239,.08);
    }
    .hero-progress-fill {
      height: 100%; background: rgba(245,243,239,.45); width: 0%;
      transition: width 5s linear;
    }

    /* ── SHARED ── */
    .inner { max-width: 1440px; margin: 0 auto; padding-inline: var(--px); }
    .lbl {
      font-size: 10px; letter-spacing: .22em; text-transform: uppercase;
      color: var(--muted); display: flex; align-items: center; gap: 16px; margin-bottom: 56px;
    }
    .lbl::before { content: ''; width: 28px; height: 1px; background: var(--border); flex-shrink: 0; }

    /* ── ABOUT ── */
    .s-about { padding: var(--py) var(--px); max-width: 1440px; margin: 0 auto; border-top: 1px solid var(--border); }
    .about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(56px, 8vw, 128px); align-items: start; }
    .about-left { position: sticky; top: 120px; }
    .about-h {
      font-family: var(--serif);
      font-size: clamp(44px, 5.5vw, 80px);
      font-weight: 300; line-height: 1.02; letter-spacing: -.015em;
    }
    .about-h em { font-style: italic; }
    .about-body { color: var(--muted); font-size: 16px; line-height: 1.84; font-weight: 300; }
    .about-body p + p { margin-top: 20px; }
    .stats {
      display: grid; grid-template-columns: repeat(4,1fr);
      margin-top: 64px; border-top: 1px solid var(--border); border-left: 1px solid var(--border);
    }
    .stat { padding: 24px 16px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
    .stat-n { display: block; font-family: var(--serif); font-size: 52px; font-weight: 300; line-height: 1; }
    .stat-l { display: block; font-size: 10px; letter-spacing: .13em; text-transform: uppercase; color: var(--muted); margin-top: 7px; }

    /* ── PANORAMA BREAK ── */
    .s-panorama { width: 100%; aspect-ratio: 21/8; overflow: hidden; display: block; }
    .s-panorama img { width: 100%; height: 100%; object-fit: cover; object-position: center 55%; display: block; filter: contrast(1.05) brightness(1.02); image-rendering: crisp-edges; }

    /* ── GALLERY ── */
    .s-gallery { padding: var(--py) var(--px); max-width: 1440px; margin: 0 auto; border-top: 1px solid var(--border); }
    .gallery-grid {
      display: grid;
      grid-template-columns: 1.55fr 1fr;
      grid-template-rows: 1fr 1fr;
      gap: 3px; height: 82vh; min-height: 560px;
    }
    .g-main { grid-row: 1 / 3; overflow: hidden; cursor: pointer; }
    .g-secondary { overflow: hidden; cursor: pointer; }
    .gallery-grid img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .7s cubic-bezier(.25,.46,.45,.94); filter: contrast(1.05) brightness(1.02); image-rendering: crisp-edges; }
    .g-main:hover img, .g-secondary:hover img { transform: scale(1.04); }
    .gallery-footer { display: flex; justify-content: flex-end; margin-top: 20px; }
    .gallery-all {
      font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase;
      color: var(--muted); text-decoration: none; cursor: pointer;
      display: flex; align-items: center; gap: 12px; transition: color .2s; background: none; border: none;
      font-family: var(--sans);
    }
    .gallery-all::after { content: ''; width: 36px; height: 1px; background: currentColor; transition: width .3s; }
    .gallery-all:hover { color: var(--text); }
    .gallery-all:hover::after { width: 60px; }

    /* ── AMENITIES ── */
    .s-amenities { border-top: 1px solid var(--border); overflow: hidden; }
    .amenities-wrap { display: grid; grid-template-columns: 1fr 1fr; min-height: 640px; }
    .amenities-photo { overflow: hidden; }
    .amenities-photo img { width: 100%; height: 100%; object-fit: cover; display: block; filter: contrast(1.05) brightness(1.02); image-rendering: crisp-edges; }
    .amenities-body {
      background: var(--surface);
      padding: clamp(52px, 7vw, 108px);
      display: flex; flex-direction: column; justify-content: center;
    }
    .amenities-h {
      font-family: var(--serif); font-size: clamp(30px, 3.2vw, 48px);
      font-weight: 300; font-style: italic; margin-bottom: 44px; line-height: 1.1;
    }
    .am-grid {
      display: grid; grid-template-columns: 1fr 1fr;
      border-top: 1px solid var(--border); border-left: 1px solid var(--border);
    }
    .am-item {
      padding: 14px 14px; border-bottom: 1px solid var(--border); border-right: 1px solid var(--border);
      font-size: 13px; letter-spacing: .01em; display: flex; align-items: center;
      gap: 11px; font-weight: 300; color: var(--text);
    }
    .am-item svg { flex-shrink: 0; opacity: .5; }

    /* ── EDITORIAL ── */
    .s-editorial {
      position: relative; height: 100vh; min-height: 640px; overflow: hidden;
      border-top: none;
    }
    .s-editorial img { width: 100%; height: 100%; object-fit: cover; object-position: center 100%; display: block; filter: brightness(1.18) contrast(0.95); image-rendering: crisp-edges; }
    .s-editorial-veil {
      position: absolute; inset: 0;
      background: linear-gradient(to right, rgba(14,12,10,.45) 0%, rgba(14,12,10,.08) 58%, transparent);
    }
    .s-editorial-text {
      position: absolute; inset: 0; display: flex; flex-direction: column;
      justify-content: center; padding: 0 var(--px); max-width: 700px;
    }
    .s-editorial-q {
      font-family: var(--serif); font-size: clamp(40px, 5.5vw, 74px);
      font-weight: 300; font-style: italic; color: #F5F3EF; line-height: 1.06;
    }
    .s-editorial-attr {
      font-size: 10px; letter-spacing: .2em; text-transform: uppercase;
      color: rgba(245,243,239,.42); margin-top: 24px;
    }

    /* ── LOCATION ── */
    .s-location { background: var(--surface); padding: var(--py) 0; border-top: 1px solid var(--border); }
    .loc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(52px, 7vw, 120px); }
    .loc-stmt {
      font-family: var(--serif); font-size: clamp(30px, 3.8vw, 54px);
      font-weight: 300; line-height: 1.1; margin-bottom: 30px;
    }
    .loc-stmt em { font-style: italic; }
    .loc-body { font-size: 15px; color: var(--muted); line-height: 1.82; margin-bottom: 44px; font-weight: 300; }
    .near { list-style: none; border-top: 1px solid var(--border); }
    .near li { display: flex; justify-content: space-between; align-items: baseline; padding: 16px 0; border-bottom: 1px solid var(--border); font-size: 14px; font-weight: 300; }
    .near .pl { color: var(--text); }
    .near .dt { font-size: 10.5px; letter-spacing: .07em; color: var(--muted); }
    .map-card {
      position: relative; overflow: hidden; border: 1px solid var(--border); aspect-ratio: 1;
    }
    .map-open-link {
      position: absolute; bottom: 12px; right: 12px;
      background: var(--bg); color: var(--text); text-decoration: none;
      font-size: 11px; letter-spacing: .05em; padding: 7px 12px;
      border: 1px solid var(--border); transition: background .2s;
    }
    .map-open-link:hover { background: var(--surface); }

    /* ── CTA ── */
    .s-cta { background: var(--dark); padding: clamp(100px, 12vw, 190px) 0; }
    .cta-inner { display: flex; align-items: flex-end; justify-content: space-between; gap: 60px; }
    .cta-h {
      font-family: var(--serif); font-size: clamp(60px, 9vw, 130px);
      font-weight: 300; color: var(--dark-t); line-height: .9; letter-spacing: -.02em;
    }
    .cta-h em { font-style: italic; }
    .cta-right { flex-shrink: 0; display: flex; flex-direction: column; align-items: flex-end; gap: 20px; padding-bottom: 10px; }
    .cta-sub { font-size: 10.5px; letter-spacing: .1em; color: rgba(245,243,239,.32); text-transform: uppercase; text-align: right; line-height: 1.7; }
    .btn-res {
      font-family: var(--sans); font-size: 10.5px; letter-spacing: .15em; text-transform: uppercase;
      padding: 16px 40px; border: 1px solid rgba(245,243,239,.22);
      background: none; color: var(--dark-t); cursor: pointer; transition: all .2s;
    }
    .btn-res { background: var(--accent-green); border-color: var(--accent-green); color: white; }
    .btn-res:hover { background: #1f5940; border-color: #1f5940; }
    
    .btn-res.gold { background: var(--accent-gold); border-color: var(--accent-gold); }
    .btn-res.gold:hover { background: #b8945a; border-color: #b8945a; }

    /* ── FOOTER ── */
    .footer {
      border-top: 1px solid var(--border); padding: 64px var(--px);
      display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 40px;
      max-width: 1440px; margin: 0 auto;
    }
    .ft-brand { font-family: var(--serif); font-size: 20px; font-weight: 400; margin-bottom: 8px; }
    .ft-sub { font-size: 13px; color: var(--muted); font-style: italic; font-family: var(--serif); }
    .ft-head { font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); margin-bottom: 14px; }
    .ft-links { list-style: none; display: flex; flex-direction: column; gap: 10px; }
    .ft-links a { font-size: 14px; color: var(--text); text-decoration: none; transition: opacity .2s; font-weight: 300; }
    .ft-links a:hover { opacity: .45; }
    .ft-copy { grid-column: 1/-1; padding-top: 40px; border-top: 1px solid var(--border); font-size: 11.5px; color: var(--muted); }

    /* ── BOOKING OVERLAY ── */
    .bk { position: fixed; inset: 0; z-index: 200; background: var(--bg); display: flex; transform: translateY(100%); transition: transform .55s cubic-bezier(.16,1,.3,1); overflow: hidden; }
    .bk.open { transform: translateY(0); }
    .bk-close {
      position: absolute; top: 28px; right: var(--px); background: none; border: none; z-index: 1;
      font-family: var(--sans); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase;
      color: var(--muted); cursor: pointer; transition: color .2s;
    }
    .bk-close:hover { color: var(--text); }
    .bk-left { flex: 1; padding: 88px var(--px); overflow-y: auto; border-right: 1px solid var(--border); }
    .bk-right { width: 380px; flex-shrink: 0; padding: 88px 52px; display: flex; flex-direction: column; }
    .bk-title { font-family: var(--serif); font-size: clamp(32px,3.5vw,52px); font-weight: 300; font-style: italic; line-height: .95; margin-bottom: 56px; }
    .fg { margin-bottom: 28px; }
    .fg label { display: block; font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); margin-bottom: 10px; }
    .fg input, .fg select {
      width: 100%; border: none; border-bottom: 1px solid var(--border);
      background: transparent; padding: 10px 0; font-family: var(--sans); font-size: 15px;
      color: var(--text); outline: none; transition: border-color .2s; appearance: none; font-weight: 300;
    }
    .fg input:focus, .fg select:focus { border-bottom-color: var(--text); }
    .stripe-el { width: 100%; border: none; border-bottom: 1px solid var(--border); background: transparent; padding: 10px 0; transition: border-color .2s; }
    .stripe-el.StripeElement--focus { border-bottom-color: var(--text); }
    .stripe-el.StripeElement--invalid { border-bottom-color: var(--err); }
    .fg-row { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
    .stepper { display: flex; align-items: center; gap: 16px; border-bottom: 1px solid var(--border); padding: 6px 0; }
    .step-btn { width: 36px; height: 36px; flex-shrink: 0; border: 1px solid var(--border); background: none; color: var(--text); font-size: 18px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all .2s; }
    .step-btn:hover:not(:disabled) { background: var(--text); color: var(--bg); border-color: var(--text); }
    .step-btn:disabled { opacity: .28; cursor: not-allowed; }
    .step-val { flex: 1; text-align: center; font-size: 15px; font-weight: 300; color: var(--text); }
    .ptabs { display: flex; border-bottom: 1px solid var(--border); margin-top: 32px; }
    .ptab { flex: 1; background: none; border: none; border-bottom: 2px solid transparent; margin-bottom: -1px; padding: 12px 0; font-family: var(--sans); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); cursor: pointer; transition: color .2s, border-color .2s; }
    .ptab.on { color: var(--text); border-bottom-color: var(--text); }
    .card-f { display: none; margin-top: 20px; }
    .card-f.show { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
    .bank-note { display: none; font-size: 13px; color: var(--muted); margin-top: 20px; line-height: 1.68; }
    .bank-note.show { display: block; }

    /* ── FIELD VALIDATION ── */
    .fg-err { display: none; font-size: 12px; line-height: 1.5; color: var(--err); margin-top: 8px; letter-spacing: .01em; }
    .fg-err.show { display: block; }
    .fg input.invalid, .fg select.invalid { border-bottom-color: var(--err); }
    .fg input.valid { border-bottom-color: var(--accent-green); }

    /* ── AVAILABILITY CALENDAR ── */
    .cal { border: 1px solid var(--border); padding: 18px 18px 14px; margin-top: 4px; }
    .cal-nav-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
    .cal-month-title { font-family: var(--serif); font-style: italic; font-size: 19px; text-align: center; margin-bottom: 12px; }
    .cal-panels { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
    .cal-nav { width: 32px; height: 32px; border: 1px solid var(--border); background: none; cursor: pointer; font-size: 16px; color: var(--text); display: flex; align-items: center; justify-content: center; transition: all .2s; }
    .cal-nav:hover:not(:disabled) { background: var(--text); color: var(--bg); border-color: var(--text); }
    .cal-nav:disabled { opacity: .28; cursor: not-allowed; }
    .cal-dows { display: grid; grid-template-columns: repeat(7,1fr); gap: 2px; margin-bottom: 4px; }
    .cal-dows span { text-align: center; font-size: 9px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); padding: 4px 0; }
    .cal-grid { display: grid; grid-template-columns: repeat(7,1fr); gap: 2px; }
    .cal-day { aspect-ratio: 1; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 300; cursor: pointer; border: 1px solid transparent; transition: background .15s, color .15s; user-select: none; }
    .cal-day:hover:not(.disabled):not(.booked):not(.empty) { background: color-mix(in srgb, var(--text) 9%, transparent); }
    .cal-day.empty { cursor: default; }
    .cal-day.disabled { color: var(--border); cursor: not-allowed; }
    .cal-day.booked { color: var(--border); cursor: not-allowed; text-decoration: line-through; }
    .cal-day.in-range { background: color-mix(in srgb, var(--accent-gold) 20%, transparent); }
    .cal-day.start, .cal-day.end { background: var(--text); color: var(--bg); font-weight: 400; }
    .cal-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border); }
    .cal-legend { display: flex; align-items: center; gap: 7px; font-size: 11px; color: var(--muted); }
    .cal-legend s { color: var(--border); }
    .cal-sel { font-size: 11px; letter-spacing: .03em; color: var(--text); text-align: right; }
    .cal-loading { font-size: 12px; color: var(--muted); padding: 28px 0; text-align: center; }
    .btn-sub { width: 100%; margin-top: 28px; padding: 16px; background: var(--accent-gold); color: white; border: none; cursor: pointer; font-family: var(--sans); font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; transition: background .2s, opacity .2s; }
    .btn-sub:hover { background: #b8945a; }
    .btn-sub.green { background: var(--accent-green); }
    .btn-sub.green:hover { background: #1f5940; }
    .sum-title { font-family: var(--serif); font-size: 24px; font-style: italic; font-weight: 300; margin-bottom: 32px; }
    .sum-lines { border-top: 1px solid var(--border); }
    .sum-line { display: flex; justify-content: space-between; align-items: baseline; padding: 14px 0; border-bottom: 1px solid var(--border); font-size: 14px; font-weight: 300; }
    .sum-line .ll { color: var(--muted); }
    .sum-line.tot { border-bottom: none; padding-top: 20px; font-size: 16px; font-weight: 500; }
    .sum-line.tot .ll { color: var(--text); }
    .sum-note { font-size: 12px; color: var(--muted); margin-top: 20px; line-height: 1.62; }
    .bk-ok { display: none; padding: 40px 0; }
    .bk-ok.show { display: block; }
    .bk-ok-mark { font-family: var(--serif); font-size: 72px; color: var(--muted); font-style: italic; display: block; margin-bottom: 24px; line-height: 1; }
    .bk-ok p { font-size: 15px; color: var(--muted); line-height: 1.72; }

    /* ── GALLERY MODAL ── */
    .gm { position: fixed; inset: 0; z-index: 300; background: rgba(10,9,8,.97); display: flex; align-items: center; justify-content: center; opacity: 0; pointer-events: none; transition: opacity .3s; }
    .gm.open { opacity: 1; pointer-events: all; }
    .gm-img { max-width: 90vw; max-height: 90vh; object-fit: contain; display: block; }
    .gm-close { position: absolute; top: 28px; right: 28px; background: none; border: none; color: rgba(245,243,239,.55); font-family: var(--sans); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
    .gm-prev, .gm-next { position: absolute; top: 50%; transform: translateY(-50%); background: none; border: none; color: rgba(245,243,239,.45); font-family: var(--serif); font-size: 44px; cursor: pointer; padding: 20px; transition: color .2s; }
    .gm-prev:hover, .gm-next:hover { color: white; }
    .gm-prev { left: 8px; } .gm-next { right: 8px; }
    .gm-counter { position: absolute; bottom: 28px; left: 50%; transform: translateX(-50%); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: rgba(245,243,239,.38); }

    /* ── TWEAKS ── */
    .tweaks-bar { position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%); z-index: 400; background: var(--dark); display: flex; align-items: center; gap: 2px; padding: 6px 6px 6px 14px; opacity: 1; pointer-events: all; transition: opacity .3s; white-space: nowrap; }
    .tweaks-bar.show { opacity: 1; pointer-events: all; }
    .twk-lbl { font-size: 9.5px; letter-spacing: .15em; text-transform: uppercase; color: rgba(245,243,239,.35); padding-right: 8px; }
    .twk-btn { background: none; border: none; padding: 8px 14px; font-family: var(--sans); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: rgba(245,243,239,.5); cursor: pointer; transition: all .2s; }
    .twk-btn.on { background: rgba(245,243,239,.1); color: var(--dark-t); }
    .twk-btn:hover { color: var(--dark-t); }

    /* ── RESPONSIVE ── */
    @media (max-width: 960px) {
      .about-grid { grid-template-columns: 1fr; }
      .about-left { position: static; }
      .stats { grid-template-columns: repeat(2,1fr); }
      .gallery-grid { grid-template-columns: 1fr; height: auto; }
      .g-main { grid-row: auto; aspect-ratio: 4/3; }
      .g-secondary { aspect-ratio: 4/3; }
      .amenities-wrap { grid-template-columns: 1fr; }
      .amenities-photo { aspect-ratio: 3/2; height: auto; }
      .amenities-photo img { object-position: center 30%; }
      .loc-grid { grid-template-columns: 1fr; }
      .cta-inner { flex-direction: column; align-items: flex-start; }
      .footer { grid-template-columns: 1fr 1fr; }
      .bk-right { display: none; }
      .nav-links { display: none; }
    }
    @media (max-width: 600px) {
      .hero-foot { flex-direction: column; align-items: flex-start; gap: 16px; }
      .hero-aside { display: flex; flex-direction: row; align-items: baseline; gap: 12px; padding-bottom: 0; }
      .hero-aside span { display: none; }
      .hero-aside .hero-price { display: block; margin-top: 0; font-size: 26px; }
      .hero-counter { display: none; }
      .s-panorama { aspect-ratio: 4/3; }
      .footer { grid-template-columns: 1fr; }
      .fg-row { grid-template-columns: 1fr; }
      .card-f.show { grid-template-columns: 1fr; }
      .bk-left { padding: 76px var(--px) 48px; }
      .cal-panels { grid-template-columns: 1fr; max-height: 520px; overflow-y: auto; -webkit-overflow-scrolling: touch; scroll-snap-type: y mandatory; gap: 0; }
      .cal-panel { scroll-snap-align: start; padding-bottom: 28px; }
      .cal-nav-row { display: none; }
      .stats { grid-template-columns: repeat(2,1fr); }
    }

    /* keep the design tweaks bar usable on small screens */
    @media (max-width: 700px) {
      .tweaks-bar { max-width: calc(100vw - 24px); overflow-x: auto; -webkit-overflow-scrolling: touch; }
    }