/* ============ GOOGLE SANS FLEX (self-hosted) ============ */
@font-face{
  font-family:'Google Sans Flex';
  src: url('../Google_Sans_Flex/GoogleSansFlex-Variable.ttf') format('truetype');
  font-weight:100 900;
  font-style:normal;
  font-display:swap;
}

/* ============ TOKENS ============ */
:root{
  --cream:        #fcfcfb;
  --cream-deep:   #eef3f3;
  --stone:        #dde6e6;
  --ink:          #2c3438;
  --ink-soft:     #5a6367;
  --anacapri:     #598AA5;
  --anacapri-dp:  #3B6D94;
  --anacapri-br:  #6D97B5;
  --gold:         #c9a66b;
  --gold-soft:    #dcc9a3;
  --line:         rgba(44,52,56,0.12);
  --white:        #ffffff;
}

*{ box-sizing: border-box; margin:0; padding:0; }
html{ scroll-behavior: smooth; }

body{
  background: var(--cream);
  color: var(--ink);
  font-family:'Google Sans Flex', sans-serif;
  font-weight:400;
  font-size:19px;
  line-height:1.65;
  -webkit-font-smoothing: antialiased;
}

h1,h2,h3,.serif{
  font-family:'Cormorant Garamond', serif;
  font-weight:400;
  letter-spacing:0.01em;
}

a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; }

.eyebrow{
  font-family:'Google Sans Flex',sans-serif;
  font-size:0.78rem;
  letter-spacing:0.28em;
  text-transform:uppercase;
  color: var(--anacapri-br);
  font-weight:500;
}

.wrap{ max-width:1180px; margin:0 auto; padding:0 32px; }
:focus-visible{ outline:2px solid var(--anacapri); outline-offset:3px; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.001ms !important; transition-duration:0.001ms !important; }
}

.peak-divider{ width:100%; display:flex; justify-content:center; padding: 6px 0; }
.peak-divider svg{ width:46px; height:auto; opacity:0.55; }

/* ============ NAV ============ */
header{
  position:fixed; top:0; left:0; right:0; z-index:200;
  background: rgba(250,246,240,0.92);
  backdrop-filter: blur(10px);
  border-bottom:1px solid var(--line);
  transition: box-shadow .3s ease;
}
.nav-inner{
  max-width:1180px; margin:0 auto; padding: 16px 32px;
  display:flex; align-items:center; justify-content:space-between;
}
.brand{ display:flex; align-items:center; gap:10px; }
.brand img{ width:46px; height:auto; }
.brand-name{ font-family:'Cormorant Garamond',serif; font-size:1.5rem; letter-spacing:0.02em; color:var(--ink); }
nav.main-links ul{ list-style:none; display:flex; gap:28px; flex-wrap:wrap; }
nav.main-links a{ font-size:0.86rem; letter-spacing:0.05em; text-transform:uppercase; color:var(--ink-soft); transition:color .2s; padding-bottom:4px; border-bottom:2px solid transparent; }
nav.main-links a:hover{ color:var(--anacapri-dp); }
nav.main-links a.active{ color:var(--anacapri-dp); border-bottom-color:var(--anacapri-dp); }
.nav-cta{
  display:inline-block; padding:11px 22px; border:1px solid var(--ink);
  font-size:0.82rem; letter-spacing:0.08em; text-transform:uppercase; white-space:nowrap;
}
.nav-cta:hover{ background:var(--ink); color:var(--cream); }
.mobile-toggle{ display:none; background:none; border:none; padding:8px; }
.mobile-toggle svg{ width:24px; height:24px; color:var(--ink); }

@media(max-width:900px){
  nav.main-links{
    display:none; position:fixed; top:64px; left:0; right:0; bottom:0;
    background:var(--cream); flex-direction:column; padding:30px; overflow-y:auto; z-index:150;
  }
  nav.main-links.open{ display:flex; }
  nav.main-links ul{ flex-direction:column; gap:22px; }
  nav.main-links a{ font-size:1rem; }
  .mobile-toggle{ display:block; }
  .nav-cta{ padding:9px 16px; font-size:0.7rem; }
}

/* ============ PAGE HERO (interior pages) ============ */
.page-hero{
  padding: 160px 0 70px; background: var(--cream-deep); text-align:center;
}
.page-hero h1{ font-size:clamp(2.2rem,4.5vw,3.2rem); margin-top:14px; }
.page-hero p{ max-width:640px; margin:16px auto 0; color:var(--ink-soft); }

/* ============ MAIN HERO (home) ============ */
.hero{ position:relative; min-height:100vh; display:flex; align-items:flex-end; padding-bottom: 90px; overflow:hidden; }
.hero-photo{
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(30,38,42,0.15) 0%, rgba(24,32,36,0.35) 55%, rgba(18,24,28,0.82) 100%), url('../photos/exterior-hero.jpg');
  background-size:cover; background-position:center;
}
.hero-content{ position:relative; z-index:2; color:var(--white); max-width:1180px; margin:0 auto; padding:0 32px; width:100%; }
.hero-badge{
  display:inline-block; background: var(--gold); color:var(--ink); font-size:0.78rem;
  letter-spacing:0.15em; text-transform:uppercase; padding:7px 16px; margin-bottom:18px; font-weight:500;
}
.hero-content h1{ font-size: clamp(2.6rem, 6vw, 5rem); font-weight:400; line-height:1.04; max-width:820px; margin-bottom:14px; }
.hero-content h1 em{ font-style:italic; color: var(--gold-soft); }
.hero-content .tagline{ font-size:1.35rem; font-weight:500; max-width:520px; color:rgba(255,255,255,0.95); margin-bottom:6px; }
.hero-content .price-line{ font-size:1.5rem; font-family:'Cormorant Garamond',serif; font-style:italic; color:var(--gold-soft); margin-bottom:32px; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:16px; align-items:center; }
.btn-primary{
  display:inline-flex; align-items:center; gap:10px; background: var(--white); color: var(--ink);
  padding:16px 30px; font-size:0.84rem; letter-spacing:0.1em; text-transform:uppercase;
  transition: background .25s ease, color .25s ease, transform .25s ease;
}
.btn-primary:hover{ background:var(--gold); color:var(--ink); transform:translateY(-1px); }
.btn-ghost{
  display:inline-flex; align-items:center; gap:8px; color:var(--white); padding:16px 6px;
  font-size:0.84rem; letter-spacing:0.1em; text-transform:uppercase; border-bottom:1px solid rgba(255,255,255,0.5);
}
.btn-ghost:hover{ border-color:var(--white); }
.hero-scroll{
  position:absolute; bottom:28px; left:50%; transform:translateX(-50%); z-index:2; color:rgba(255,255,255,0.7);
  font-size:0.68rem; letter-spacing:0.2em; text-transform:uppercase; display:flex; flex-direction:column; align-items:center; gap:8px;
}
.hero-scroll .line{ width:1px; height:34px; background:rgba(255,255,255,0.5); animation: scrollLine 2s ease-in-out infinite; }
@keyframes scrollLine{ 0%{transform:scaleY(0); transform-origin:top;} 50%{transform:scaleY(1); transform-origin:top;} 51%{transform-origin:bottom;} 100%{transform:scaleY(0); transform-origin:bottom;} }

/* ============ PROMO POPUP ============ */
.promo-overlay{
  position:fixed; inset:0; background:rgba(20,26,29,0.72); z-index:500;
  display:flex; align-items:center; justify-content:center; padding:24px;
  opacity:0; pointer-events:none; transition:opacity .3s ease;
}
.promo-overlay.show{ opacity:1; pointer-events:auto; }
.promo-card{
  position:relative; max-width:640px; width:100%; aspect-ratio:4/5; max-height:88vh;
  background: linear-gradient(180deg, rgba(20,26,29,0.05) 0%, rgba(16,22,25,0.35) 55%, rgba(12,17,20,0.88) 100%), url('../photos/living-2.jpg');
  background-size:cover; background-position:center;
  transform: scale(0.94); transition: transform .35s ease;
  box-shadow: 0 40px 90px -30px rgba(0,0,0,0.6);
}
.promo-overlay.show .promo-card{ transform:scale(1); }
.promo-close{
  position:absolute; top:16px; right:16px; width:36px; height:36px; border-radius:50%;
  background:rgba(255,255,255,0.9); display:flex; align-items:center; justify-content:center; z-index:2;
}
.promo-close svg{ width:16px; height:16px; color:var(--ink); }
.promo-price-tag{
  position:absolute; top:24px; left:24px; background:var(--white); color:var(--ink-soft);
  padding:9px 16px; font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase;
}
.promo-price-tag strong{ color:var(--anacapri-dp); font-weight:600; }
.promo-text{ position:absolute; left:0; right:0; bottom:0; padding:36px 32px; color:var(--white); }
.promo-text .promo-eyebrow{ color:var(--gold-soft); font-size:0.72rem; letter-spacing:0.24em; text-transform:uppercase; margin-bottom:10px; display:block; }
.promo-text h2{ font-size:clamp(2rem,5vw,2.8rem); margin-bottom:12px; }
.promo-text .promo-tags{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:22px; }
.promo-text .promo-tags span{
  border:1px solid rgba(255,255,255,0.5); padding:6px 14px; font-size:0.7rem; letter-spacing:0.08em; text-transform:uppercase;
}
.promo-text .btn-primary{ padding:13px 26px; }

/* ============ SECTION HEAD ============ */
.section-head{ text-align:center; margin-bottom:60px; }
.section-head::before{
  content:''; display:block; width:44px; height:2px; background:var(--anacapri);
  margin:0 auto 18px;
}
.section-head .eyebrow{ display:block; margin-bottom:14px; }
.section-head h2{ font-size:clamp(2rem,3.6vw,2.8rem); font-weight:400; }

/* ============ INTRO / FEATURES (home) ============ */
.intro{ background: var(--cream); padding: 96px 0 70px; text-align:center; }
.intro .eyebrow{ display:block; margin-bottom:20px; }
.intro h2{ font-size: clamp(1.9rem, 3.4vw, 2.7rem); max-width:760px; margin:0 auto 26px; line-height:1.25; font-style:italic; color: var(--anacapri-dp); }
.intro p{ max-width:680px; margin:0 auto 18px; color:var(--ink-soft); font-size:1.08rem; }
.intro-tagline{
  font-family:'Google Sans Flex',sans-serif !important; font-weight:600 !important; letter-spacing:0.02em;
  color:var(--anacapri-dp) !important; font-size:1.05rem !important; text-transform:uppercase; margin:0 auto 30px !important; max-width:560px !important;
}

.feature-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:2px; background:var(--line); border:1px solid var(--line); margin-top:20px;
}
.feature-card{ background:var(--white); padding:44px 38px; text-align:left; }
.feature-card h3{ font-size:1.5rem; margin-bottom:12px; font-weight:500; }
.feature-card p{ color:var(--ink-soft); font-size:1.02rem; }
.feature-card ul{ margin-top:14px; padding-left:18px; color:var(--ink-soft); font-size:0.98rem; }
.feature-card li{ margin-bottom:8px; }
@media(max-width:760px){ .feature-grid{ grid-template-columns:1fr; } }

/* ============ TEASER CARDS (home links to sub-pages) ============ */
.teasers{ padding: 20px 0 110px; background: var(--cream); }
.teaser-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.teaser-card{ position:relative; aspect-ratio:3/4; overflow:hidden; display:block; }
.teaser-card img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.teaser-card:hover img{ transform:scale(1.06); }
.teaser-card::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,0.65) 100%); }
.teaser-label{ position:absolute; left:18px; bottom:18px; z-index:2; color:#fff; font-family:'Cormorant Garamond',serif; font-size:1.4rem; }
@media(max-width:900px){ .teaser-grid{ grid-template-columns:repeat(2,1fr); } }

/* ============ HIGHLIGHTS (legacy 3-col, still used on amenities/location) ============ */
.highlights{ padding: 90px 0 110px; }
.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background: var(--line); border:1px solid var(--line); }
.highlight-card{ background: var(--white); padding:52px 40px; text-align:left; }
.highlight-card .icon{ width:42px; height:42px; margin-bottom:28px; color:var(--anacapri); }
.highlight-card h3{ font-size:1.6rem; margin-bottom:14px; font-weight:500; }
.highlight-card p{ color:var(--ink-soft); font-size:1.02rem; }
@media(max-width:860px){ .grid-3{ grid-template-columns:1fr; } .highlight-card{ padding:40px 26px; } }

/* ============ VIDEO ============ */
.video-section{ padding: 90px 0 110px; background: var(--cream); }
.video-frame{ max-width:920px; margin:0 auto; position:relative; width:100%; aspect-ratio:16/9; background:var(--ink); border:1px solid var(--line); box-shadow: 0 30px 60px -30px rgba(44,52,56,0.35); overflow:hidden; }
.video-frame iframe{ position:absolute; inset:0; width:100%; height:100%; border:none; }

/* ============ GALLERY ============ */
.gallery-section{ padding: 90px 0 110px; background: var(--cream); }
.gallery-grid{ display:grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 220px; grid-auto-flow: dense; gap:10px; }
.gallery-grid a{ display:block; overflow:hidden; position:relative; }
.gallery-grid img{ width:100%; height:100%; object-fit:cover; display:block; transition: transform .5s ease; }
.gallery-grid a:hover img{ transform: scale(1.05); }
.gallery-grid .tall{ grid-row: span 2; }
.gallery-grid .wide{ grid-column: span 2; }
.gallery-caption{ position:absolute; left:14px; bottom:12px; color:#fff; font-size:0.68rem; letter-spacing:0.14em; text-transform:uppercase; text-shadow:0 1px 6px rgba(0,0,0,0.5); }
@media(max-width:860px){ .gallery-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:190px; } .gallery-grid .wide{ grid-column: span 2; } .gallery-grid .tall{ grid-row: span 1; } }

/* ============ AMENITIES STRIP ============ */
.amenities-section{ padding: 20px 0 110px; background: var(--cream-deep); }
.amenity-strip{ display:grid; grid-template-columns:repeat(5,1fr); gap:16px; }
.amenity-item{ text-align:center; }
.amenity-item .amenity-photo{ aspect-ratio:1/1; overflow:hidden; margin-bottom:14px; border:1px solid var(--line); }
.amenity-item img{ width:100%; height:100%; object-fit:cover; display:block; }
.amenity-item span{ font-size:0.84rem; letter-spacing:0.04em; color:var(--ink-soft); }
@media(max-width:860px){ .amenity-strip{ grid-template-columns:repeat(2,1fr); } }

/* ============ FLOORPLANS ============ */
.floorplans{ background: var(--cream-deep); padding:90px 0 110px; }
.filters{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-bottom:44px; }
.filter-btn{ padding:11px 26px; border:1px solid var(--ink); font-size:0.84rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink); background:transparent; transition: all .25s ease; }
.filter-btn:hover{ border-color:var(--anacapri-dp); color:var(--anacapri-dp); }
.filter-btn.active{ background:var(--ink); color:var(--cream); border-color:var(--ink); }

.plan-scroll-wrap{ position:relative; }
.plan-grid{
  display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:20px;
  -webkit-overflow-scrolling:touch;
}
.plan-grid::-webkit-scrollbar{ height:8px; }
.plan-grid::-webkit-scrollbar-thumb{ background:var(--anacapri); border-radius:4px; }
.plan-card{
  background:var(--white); border:1px solid var(--line); flex: 0 0 400px; scroll-snap-align:start;
  transition: opacity .35s ease, transform .35s ease;
}
.plan-card.hide{ display:none; }
.plan-card.fade-in{ animation: fadeUp .45s ease both; }
@keyframes fadeUp{ from{ opacity:0; transform:translateY(10px);} to{ opacity:1; transform:translateY(0);} }
.plan-visual{ aspect-ratio:1100/781; background:#ffffff; display:flex; align-items:center; justify-content:center; position:relative; border-bottom:1px solid var(--line); overflow:hidden; }
.plan-visual img{ width:100%; height:100%; object-fit:contain; padding:10px; }
.plan-tag{ position:absolute; top:14px; left:14px; background:var(--white); font-size:0.66rem; letter-spacing:0.1em; text-transform:uppercase; padding:6px 11px; color:var(--anacapri-dp); border:1px solid var(--line); }
.plan-body{ padding:26px; }
.plan-body h3{ font-size:1.6rem; font-weight:500; margin-bottom:6px; }
.plan-meta{ display:flex; gap:14px; font-size:0.86rem; color:var(--ink-soft); margin-bottom:16px; flex-wrap:wrap; }
.plan-meta span{ padding-right:14px; border-right:1px solid var(--line); }
.plan-meta span:last-child{ border-right:none; padding-right:0; }
.plan-price{ font-family:'Cormorant Garamond',serif; font-size:1.15rem; color:var(--anacapri-dp); margin-bottom:18px; font-style:italic; }
.plan-download{ display:inline-flex; align-items:center; gap:8px; width:100%; justify-content:center; border:1px solid var(--ink); padding:12px; font-size:0.80rem; letter-spacing:0.08em; text-transform:uppercase; transition:.25s ease; }
.plan-download:hover{ background:var(--ink); color:var(--cream); }
.plan-note{ text-align:center; color:var(--ink-soft); font-size:0.85rem; margin-top:36px; font-style:italic; }
.scroll-hint{ text-align:center; font-size:0.75rem; color:var(--ink-soft); letter-spacing:0.08em; text-transform:uppercase; margin-bottom:20px; }
@media(min-width:760px){ .plan-card{ flex-basis:460px; } }

/* ============ KEY PLAN ============ */
.keyplan-section{ padding: 20px 0 110px; background: var(--cream); }
.keyplan-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.keyplan-item{ text-align:center; }
.keyplan-item img{ border:1px solid var(--line); background:#fff; padding:14px; }
.keyplan-item span{ display:block; margin-top:14px; font-size:0.8rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-soft); }
@media(max-width:760px){ .keyplan-grid{ grid-template-columns:1fr; } }

/* ============ LOCATION PAGE ============ */
.location-block{ padding:90px 0; }
.location-inner{ display:grid; grid-template-columns:1fr; gap:40px; align-items:flex-start; max-width:800px; margin:0 auto; }
.location-inner h2{ font-size:clamp(1.8rem,3.2vw,2.4rem); margin-bottom:20px; }
.location-inner p{ color:var(--ink-soft); margin-bottom:16px; }
.location-inner img{ border:1px solid var(--line); width:100%; }

/* ============ INFO / AGENT BAND ============ */
.info-band{ background: var(--anacapri-dp); color:var(--cream); padding:90px 0; }
.info-grid{ display:grid; grid-template-columns:1.2fr 1fr; gap:60px; align-items:center; }
.info-grid .eyebrow{ color: var(--gold-soft); }
.info-grid h2{ font-size:clamp(1.8rem,3vw,2.4rem); margin:16px 0 20px; font-style:italic; }
.info-grid p{ color:rgba(250,246,240,0.82); max-width:460px; }
.address-card{ background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.18); padding:32px; }
.address-card h4{ font-family:'Google Sans Flex',sans-serif; font-size:0.80rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold-soft); margin-bottom:16px; }
.address-card .agent{ font-size:0.88rem; line-height:1.85; }
.address-card .agent strong{ font-weight:500; display:block; font-size:0.95rem; margin-bottom:4px; color:var(--cream); }
@media(max-width:860px){ .info-grid{ grid-template-columns:1fr; } }

/* ============ REGISTRATION ============ */
.register{ padding:100px 0 110px; }
.register-inner{ display:grid; grid-template-columns:1fr 1.15fr; gap:70px; align-items:flex-start; }
.register-copy .eyebrow{ display:block; margin-bottom:18px; }
.register-copy h2{ font-size:clamp(2rem,3.6vw,2.7rem); margin-bottom:22px; }
.register-copy p{ color:var(--ink-soft); margin-bottom:16px; }
.register-copy ul{ list-style:none; margin-top:28px; }
.register-copy li{ display:flex; gap:14px; padding:14px 0; border-top:1px solid var(--line); font-size:1.0rem; color:var(--ink-soft); }
.register-copy li:last-child{ border-bottom:1px solid var(--line); }
.register-copy li svg{ width:16px; height:16px; flex-shrink:0; margin-top:3px; color:var(--anacapri); }
form{ background:var(--white); border:1px solid var(--line); padding:48px; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.field{ margin-bottom:24px; }
.field label{ display:block; font-size:0.80rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:10px; }
.field input[type=text], .field input[type=email], .field input[type=tel]{
  width:100%; padding:14px 4px; border:none; border-bottom:1px solid var(--line); background:transparent; font-family:'Google Sans Flex',sans-serif; font-size:1.02rem; color:var(--ink); transition:border-color .2s ease;
}
.field input:focus{ border-color:var(--anacapri); }
.checkbox-row{ display:flex; align-items:center; gap:12px; margin: 30px 0 32px; padding:16px 18px; background:var(--cream-deep); border:1px solid var(--line); }
.checkbox-row input{ width:18px; height:18px; accent-color:var(--anacapri-dp); }
.checkbox-row label{ font-size:0.98rem; color:var(--ink); }
.submit-btn{ width:100%; padding:17px; background:var(--ink); color:var(--cream); font-size:0.88rem; letter-spacing:0.1em; text-transform:uppercase; transition:background .25s ease; }
.submit-btn:hover{ background:var(--anacapri-dp); }
.form-success{ display:none; text-align:center; padding:40px 10px; }
.form-success.show{ display:block; }
.form-success svg{ width:40px; height:40px; color:var(--anacapri-dp); margin:0 auto 18px; }
.form-success h3{ font-size:1.6rem; margin-bottom:8px; }
.form-success p{ color:var(--ink-soft); font-size:0.92rem; }
@media(max-width:860px){ .register-inner{ grid-template-columns:1fr; gap:44px; } .form-row{ grid-template-columns:1fr; } form{ padding:32px 24px; } }

/* ============ FOOTER ============ */
footer{ background:var(--anacapri-dp); color:rgba(250,246,240,0.7); padding:60px 0 30px; }
.footer-top{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:30px; padding-bottom:36px; border-bottom:1px solid rgba(250,246,240,0.14); margin-bottom:26px; }
.footer-brand{ display:flex; align-items:center; gap:10px; }
.footer-brand img{ width:28px; height:auto; }
.footer-brand span{ font-family:'Cormorant Garamond',serif; font-size:1.3rem; color:var(--cream); }
.footer-agent{ font-size:0.92rem; line-height:1.8; text-align:right; }
.footer-agent strong{ color:var(--cream); font-weight:500; }
.disclaimer{ font-size:0.80rem; line-height:1.8; color:var(--ink-soft); max-width:900px; margin-bottom:22px; }
.copyright{ font-size:0.80rem; color:var(--ink-soft); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; }
@media(max-width:860px){ .footer-top{ flex-direction:column; } .footer-agent{ text-align:left; } }
@media(max-width:520px){ .wrap{ padding:0 20px; } }

/* ============ LISTINGS SECTION ============ */
.listings-section{ padding:90px 0 110px; background:var(--cream-deep); }
.listings-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.listing-card{
  background:var(--white); border:1px solid var(--line); display:block;
  transition: transform .3s ease, box-shadow .3s ease; overflow:hidden;
}
.listing-card:hover{ transform:translateY(-4px); box-shadow:0 16px 40px rgba(0,0,0,0.1); }
.listing-img{ position:relative; aspect-ratio:1/1; overflow:hidden; }
.listing-img img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.listing-card:hover .listing-img img{ transform:scale(1.05); }
.listing-badge{
  position:absolute; top:14px; left:14px; background:var(--white); color:var(--anacapri-dp);
  font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; padding:6px 12px; border:1px solid var(--line);
}
.listing-info{ padding:22px 24px 26px; }
.listing-info h3{ font-size:1.4rem; font-weight:500; margin-bottom:4px; }
.listing-specs{ font-size:0.86rem; color:var(--ink-soft); margin-bottom:8px; }
.listing-price{ font-family:'Cormorant Garamond',serif; font-size:1.3rem; color:var(--anacapri-dp); font-style:italic; margin-bottom:14px; }
.listing-cta{
  display:inline-flex; align-items:center; gap:6px; font-size:0.78rem; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--ink); border-bottom:1px solid var(--line); padding-bottom:2px;
}
.listing-card:hover .listing-cta{ color:var(--anacapri-dp); border-color:var(--anacapri-dp); }
@media(max-width:900px){ .listings-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .listings-grid{ grid-template-columns:1fr; } }

/* ============ KINGDOM PROPERTY DEVELOPER SECTION ============ */
.developer-section{ padding:80px 0; background:var(--cream-deep); }
.developer-inner{ display:flex; align-items:center; gap:50px; max-width:900px; margin:0 auto; }
.developer-logo{ flex-shrink:0; }
.developer-logo img{ width:120px; height:auto; }
.developer-text h2{ font-size:clamp(1.6rem,3vw,2.2rem); margin-bottom:14px; }
.developer-text p{ color:var(--ink-soft); font-size:1.02rem; margin-bottom:16px; }
.developer-text .developer-link{
  display:inline-flex; align-items:center; gap:8px; color:var(--anacapri-dp);
  font-size:0.88rem; letter-spacing:0.06em; text-transform:uppercase; font-weight:500;
  border-bottom:1px solid var(--anacapri-dp); padding-bottom:2px; transition:color .2s;
}
.developer-text .developer-link:hover{ color:var(--gold); border-color:var(--gold); }
@media(max-width:760px){ .developer-inner{ flex-direction:column; text-align:center; } }

/* ============ STICKY CONTACT BUTTON ============ */
.sticky-contact{
  position:fixed; bottom:28px; right:28px; z-index:300;
  width:58px; height:58px; border-radius:50%; background:var(--anacapri-dp); color:var(--white);
  display:flex; align-items:center; justify-content:center; box-shadow:0 6px 24px rgba(0,0,0,0.25);
  transition: transform .25s ease, background .25s ease; cursor:pointer; border:none;
}
.sticky-contact:hover{ transform:scale(1.08); background:var(--gold); }
.sticky-contact svg{ width:26px; height:26px; }

/* ============ QUICK CONTACT MODAL ============ */
.quick-contact-overlay{
  position:fixed; inset:0; background:rgba(20,26,29,0.6); z-index:400;
  display:flex; align-items:flex-end; justify-content:flex-end; padding:24px;
  opacity:0; pointer-events:none; transition:opacity .25s ease;
}
.quick-contact-overlay.show{ opacity:1; pointer-events:auto; }
.quick-contact-card{
  background:var(--white); border:1px solid var(--line); padding:36px; max-width:380px; width:100%;
  box-shadow:0 20px 60px rgba(0,0,0,0.2); transform:translateY(20px); transition:transform .3s ease;
}
.quick-contact-overlay.show .quick-contact-card{ transform:translateY(0); }
.quick-contact-card h3{ font-size:1.4rem; margin-bottom:6px; }
.quick-contact-card p{ font-size:0.9rem; color:var(--ink-soft); margin-bottom:20px; }
.quick-contact-card .field{ margin-bottom:16px; }
.quick-contact-close{ position:absolute; top:12px; right:12px; background:none; border:none; cursor:pointer; }
.quick-contact-close svg{ width:20px; height:20px; color:var(--ink-soft); }

/* ============ BROCHURE GATE MODAL ============ */
.brochure-gate-overlay{
  position:fixed; inset:0; background:rgba(20,26,29,0.72); z-index:500;
  display:flex; align-items:center; justify-content:center; padding:24px;
  opacity:0; pointer-events:none; transition:opacity .3s ease;
}
.brochure-gate-overlay.show{ opacity:1; pointer-events:auto; }
.brochure-gate-card{
  background:var(--white); padding:48px; max-width:460px; width:100%;
  box-shadow:0 30px 80px rgba(0,0,0,0.3); text-align:center;
}
.brochure-gate-card h3{ font-size:1.5rem; margin-bottom:8px; }
.brochure-gate-card p{ font-size:0.92rem; color:var(--ink-soft); margin-bottom:24px; }
.brochure-gate-card .field{ text-align:left; margin-bottom:16px; }

/* ============ reCAPTCHA BADGE SHIFT ============ */
.grecaptcha-badge{ visibility:hidden; }
