:root{
  --bg:#f4f1ea;
  --bg-2:#ece7dc;
  --panel:#ffffff;
  --gold:#b08d3c;
  --gold-soft:#96762f;
  /* Darker gold for icons & small text on light backgrounds — --gold only hits
     ~2.6:1 contrast on cream, --gold-ink hits ~4.9:1 and still reads as gold. */
  --gold-ink:#7a5f21;
  /* Light gold for gold text sitting ON the dark hero photo, where --gold/--gold-soft
     are far too dark to read against the overlay. */
  --gold-light:#e8cf96;
  --gold-line:rgba(176,141,60,0.28);
  --cream:#2a2620;
  --text:#4a453c;
  --muted:#6b6455;
  --faint:#9a9384;
  --serif:'Cormorant Garamond', Georgia, serif;
  --sans:'Inter', system-ui, sans-serif;
  --maxw:1200px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);color:var(--text);font-family:var(--sans);
  font-weight:300;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
.eyebrow{font-size:11px;letter-spacing:2.5px;color:var(--gold-soft);text-transform:uppercase;font-weight:400;}
h1,h2,h3{font-family:var(--serif);font-weight:500;color:var(--cream);line-height:1.15;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}

.btn{display:inline-block;font-family:var(--sans);font-size:12px;letter-spacing:1px;text-transform:uppercase;
  font-weight:500;padding:13px 28px;border-radius:2px;cursor:pointer;transition:all .25s ease;border:1px solid transparent;}
.btn-gold{background:var(--gold);color:var(--cream);}
.btn-gold:hover{background:var(--cream);color:#f4ece0;transform:translateY(-2px);}
.btn-ghost{background:transparent;color:var(--cream);border-color:#3a332e;}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold);}

/* NAV */
header{position:sticky;top:0;z-index:50;background:rgba(244,241,234,0.88);backdrop-filter:blur(12px);border-bottom:1px solid var(--gold-line);}
nav{display:flex;align-items:center;justify-content:space-between;height:88px;}
.brand{display:flex;align-items:center;gap:12px;}
.brand-mark{width:40px;height:40px;border-radius:50%;border:1px solid var(--gold);display:flex;align-items:center;justify-content:center;color:var(--gold);font-size:19px;}
/* Full lockup, transparent background, scaled to the largest size that still
   clears the circle. Needs ~64px+ to stay legible — smaller and the wordmark
   turns to mush. */
.brand-logo{width:64px;height:64px;aspect-ratio:1/1;flex-shrink:0;border-radius:50%;
  object-fit:contain;box-shadow:0 0 0 1px var(--gold-line);}
/* Needs an explicit weight: body sets 300, which left the brand name the
   lightest text on the page (and 300 isn't even in the loaded font). */
.brand-name{font-family:var(--serif);font-weight:600;font-size:20px;letter-spacing:2px;
  color:var(--cream);white-space:nowrap;}
.nav-links{display:flex;gap:30px;font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:var(--text);}
.nav-links a{transition:color .2s;}
.nav-links a:hover,.nav-links a.active{color:var(--gold);}
.nav-toggle{display:none;font-size:22px;color:var(--gold);background:none;border:none;cursor:pointer;}
.social-nav{color:var(--gold-ink);font-size:19px;display:flex;align-items:center;transition:color .2s,transform .2s;}
.social-nav:hover{color:var(--cream);transform:translateY(-2px);}
.foot-social{display:flex;gap:16px;margin-top:18px;}
.foot-social a{width:44px;height:44px;border:1px solid var(--gold-line);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gold-ink);font-size:18px;transition:all .25s;}
.foot-social a:hover{border-color:var(--gold-ink);color:var(--cream);transform:translateY(-2px);}

/* HERO */
.hero{position:relative;min-height:600px;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.hero-bg{position:absolute;inset:0;background-position:center 30%;background-size:cover;background-repeat:no-repeat;}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,16,12,.55) 0%,rgba(20,16,12,.4) 45%,rgba(20,16,12,.72) 100%);}
.hero-inner{position:relative;z-index:3;text-align:center;max-width:640px;padding:80px 24px;}
.hero .rule{width:64px;height:1px;background:var(--gold-light);margin:0 auto 22px;}
/* Gold-on-photo: use the light gold + a soft shadow so it stays legible
   wherever the hero image happens to be bright. */
.hero .eyebrow{color:var(--gold-light);text-shadow:0 1px 6px rgba(12,9,6,.75);}
.hero h1{font-size:clamp(38px,6vw,64px);margin:18px 0;font-weight:500;color:#f4ece0;
  text-shadow:0 2px 14px rgba(12,9,6,.55);}
.hero h1 em{font-style:italic;color:var(--gold-light);}
.hero p{text-shadow:0 1px 8px rgba(12,9,6,.6);}
.hero p{color:#ece5da;font-size:16px;max-width:480px;margin:0 auto 30px;line-height:1.7;
  text-shadow:0 1px 8px rgba(12,9,6,.6);}
.hero-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
/* The default ghost button is dark-on-light; on the hero photo it must invert. */
.hero-cta .btn-ghost{color:#f4ece0;border-color:rgba(244,236,224,.55);}
.hero-cta .btn-ghost:hover{color:var(--gold-light);border-color:var(--gold-light);background:rgba(12,9,6,.25);}

/* PAGE HEADER (inner pages) */
.page-head{padding:70px 0 40px;text-align:center;border-bottom:1px solid var(--gold-line);background:var(--bg-2);}
.page-head h1{font-size:clamp(32px,5vw,48px);margin-top:10px;}
.page-head h1 em{font-style:italic;color:var(--gold);}

/* TRUST STRIP */
.trust{border-top:1px solid var(--gold-line);border-bottom:1px solid var(--gold-line);background:var(--bg-2);}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);}
.trust-item{padding:26px 18px;text-align:center;border-right:1px solid var(--gold-line);transition:background .25s;}
.trust-item:last-child{border-right:none;}
.trust-item:hover{background:var(--panel);}
.trust-item i{font-size:22px;color:var(--gold-ink);}
.trust-item p{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--text);margin-top:10px;}

/* STATS */
.stats{display:grid;grid-template-columns:repeat(3,1fr);padding:52px 0;text-align:center;gap:20px;}
.stat-num{font-family:var(--serif);font-size:52px;color:var(--gold);font-weight:500;line-height:1;}
.stat-label{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-top:10px;}
.stat-div{position:relative;}
.stat-div::before,.stat-div::after{content:'';position:absolute;top:15%;height:70%;width:1px;background:var(--gold-line);}
.stat-div::before{left:0;} .stat-div::after{right:0;}
/* Two-stat variant: only the divider between the pair, not on the outer edge. */
.stats-2{grid-template-columns:repeat(2,1fr);}
.stats-2 .stat-div::after{display:none;}

/* SECTION */
.sec{padding:72px 0;}
.sec-head{text-align:center;margin-bottom:46px;}
.sec-head .eyebrow{display:block;margin-bottom:10px;}
.sec-head h2{font-size:34px;}

/* PROPERTIES */
.prop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.prop{background:var(--panel);border:1px solid var(--gold-line);border-radius:4px;overflow:hidden;transition:transform .3s ease,border-color .3s ease;}
.prop:hover{transform:translateY(-6px);border-color:var(--gold);}
.prop-img{height:200px;background:linear-gradient(135deg,#ece7dc,#e0dace);display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--gold);position:relative;overflow:hidden;}
.prop-img img{width:100%;height:100%;object-fit:cover;}
.prop-img .placeholder{font-size:34px;color:#4a3a1e;}
.prop-tag{position:absolute;top:12px;left:12px;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--gold-ink);border:1px solid var(--gold-line);padding:4px 10px;border-radius:2px;background:rgba(255,255,255,.85);z-index:2;}
.prop-body{padding:18px;}
.prop-body h3{font-family:var(--sans);font-size:16px;font-weight:500;color:var(--cream);}
.prop-loc{font-size:13px;color:var(--muted);margin:6px 0 12px;display:flex;align-items:center;gap:6px;}
.prop-meta{display:flex;gap:16px;font-size:12px;color:var(--muted);margin-bottom:12px;}
.prop-meta span{display:flex;align-items:center;gap:5px;}
.prop-price{font-size:18px;font-weight:500;color:var(--gold);font-family:var(--serif);}

/* FILTERS */
.filters{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-bottom:40px;}
.filters input,.filters select{background:var(--panel);border:1px solid var(--gold-line);color:var(--cream);
  padding:11px 14px;border-radius:2px;font-family:var(--sans);font-size:13px;min-width:160px;}
.filters input:focus,.filters select:focus{outline:none;border-color:var(--gold);}
.filters button{background:var(--gold);color:var(--cream);border:none;padding:11px 22px;border-radius:2px;font-size:12px;letter-spacing:1px;text-transform:uppercase;cursor:pointer;font-weight:500;}

/* SERVICES */
.services{background:var(--bg-2);border-top:1px solid var(--gold-line);border-bottom:1px solid var(--gold-line);}
.svc-list{max-width:760px;margin:0 auto;}
.svc{display:flex;align-items:center;gap:24px;padding:22px 0;border-bottom:1px solid var(--gold-line);transition:padding-left .3s ease;}
.svc:hover{padding-left:14px;}
.svc:last-child{border-bottom:none;}
.svc-num{font-family:var(--serif);font-size:22px;color:var(--faint);width:40px;flex-shrink:0;}
.svc-icon{font-size:22px;color:var(--gold-ink);width:30px;flex-shrink:0;}
.svc-title{font-family:var(--serif);font-size:24px;color:var(--cream);flex:1;}
.svc-desc{font-size:13px;color:var(--muted);flex:2;display:none;}
.svc-arrow{color:var(--gold-ink);font-size:18px;opacity:0;transform:translateX(-8px);transition:all .3s;}
.svc:hover .svc-arrow{opacity:1;transform:translateX(0);}

/* SERVICE CARDS (services page) */
.svc-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;}
.svc-card{background:var(--panel);border:1px solid var(--gold-line);border-radius:4px;padding:28px;transition:border-color .3s;}
.svc-card:hover{border-color:var(--gold);}
.svc-card i{font-size:28px;color:var(--gold-ink);}
.svc-card h3{font-family:var(--serif);font-size:22px;margin:14px 0 10px;}
.svc-card p{font-size:14px;color:var(--text);line-height:1.7;}

/* PROPERTY DETAIL */
.detail-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:start;}
.detail-photo{height:340px;border:1px solid var(--gold-line);border-radius:4px;overflow:hidden;
  background:linear-gradient(135deg,#1c1410,#241a12);display:flex;align-items:center;
  justify-content:center;margin-bottom:20px;}
.detail-photo img{width:100%;height:100%;object-fit:cover;cursor:zoom-in;}
.detail-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.detail-thumbs img{height:80px;width:100%;object-fit:cover;border:1px solid var(--gold-line);
  border-radius:3px;cursor:zoom-in;}
.detail-card{background:var(--panel);border:1px solid var(--gold-line);border-radius:5px;
  padding:28px;position:sticky;top:104px;}

/* LIGHTBOX (property gallery) */
.lightbox{display:none;position:fixed;inset:0;background:rgba(5,3,4,.94);z-index:200;
  align-items:center;justify-content:center;}
.lightbox.open{display:flex;}
.lightbox img{max-width:86%;max-height:86%;border-radius:4px;border:1px solid var(--gold-line);}
.lb-close{position:absolute;top:18px;right:26px;color:#f4ece0;font-size:34px;line-height:1;
  cursor:pointer;z-index:2;padding:6px 10px;}
.lb-close:hover{color:var(--gold-light);}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:2;
  background:rgba(244,236,224,.10);border:1px solid rgba(244,236,224,.35);color:#f4ece0;
  font-size:26px;transition:background .2s,border-color .2s;}
.lb-nav:hover{background:rgba(244,236,224,.22);border-color:var(--gold-light);color:var(--gold-light);}
.lb-prev{left:22px;} .lb-next{right:22px;}
.lb-count{position:absolute;bottom:22px;left:0;right:0;text-align:center;color:#e5ddd0;
  font-size:12px;letter-spacing:1.5px;}

/* ABOUT */
.about{display:grid;grid-template-columns:1.4fr 1fr;gap:48px;align-items:center;}
.about h2{font-size:30px;margin:8px 0 16px;}
.about p{color:var(--text);line-height:1.8;font-size:15px;margin-bottom:14px;}
.about-list{list-style:none;margin-top:18px;}
.about-intro{max-width:860px;margin:0 auto;}
.about-intro p{font-size:16px;line-height:1.9;color:var(--text);margin-bottom:22px;}
.about-intro p:last-child{margin-bottom:0;}
.check-grid{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:14px 32px;max-width:900px;margin:0 auto;padding:0;}
.check-grid li{display:flex;align-items:flex-start;gap:10px;font-size:15px;color:var(--text);line-height:1.6;}
.check-grid i{color:var(--gold-ink);font-size:17px;flex-shrink:0;margin-top:3px;}
.closing-line{max-width:760px;margin:44px auto 0;text-align:center;font-family:var(--serif);font-size:20px;font-style:italic;color:var(--cream);line-height:1.7;padding-top:32px;border-top:1px solid var(--gold-line);}
.why-choose{margin-top:52px;padding-top:40px;border-top:1px solid var(--gold-line);}
.why-choose h3{font-family:var(--serif);font-size:26px;text-align:center;margin-bottom:26px;}
.about-list li{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--text);margin-bottom:10px;}
.about-list i{color:var(--gold-ink);font-size:16px;}

/* TESTIMONIALS */
.testi{background:var(--bg-2);border-top:1px solid var(--gold-line);border-bottom:1px solid var(--gold-line);}
.testi-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;}
.quote{background:var(--bg);border:1px solid var(--gold-line);border-radius:4px;padding:28px;position:relative;}
.quote-mark{font-family:var(--serif);font-size:60px;color:var(--gold-line);line-height:.5;position:absolute;top:28px;right:24px;}
.stars{display:flex;gap:3px;margin-bottom:14px;color:var(--gold-ink);font-size:14px;}
.quote p{font-size:15px;color:var(--text);line-height:1.8;font-style:italic;font-family:var(--serif);margin-bottom:16px;}
.quote cite{font-size:12px;color:var(--muted);font-style:normal;letter-spacing:.5px;}

/* CTA */
.cta{text-align:center;padding:80px 0;}
.cta h2{font-size:40px;margin-bottom:14px;}
.cta h2 em{font-style:italic;color:var(--gold);}
.cta p{color:var(--muted);margin-bottom:26px;}

/* CONTACT */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;}
.contact-info h3{font-family:var(--serif);font-size:24px;margin-bottom:20px;}
.contact-info .row{display:flex;gap:14px;margin-bottom:20px;align-items:flex-start;}
.contact-info .row i{color:var(--gold-ink);font-size:20px;margin-top:2px;}
.contact-info .row strong{color:var(--cream);font-weight:500;display:block;font-size:14px;}
.contact-info .row span{font-size:13px;color:var(--muted);}
.form-field{margin-bottom:18px;}
.form-field label{display:block;font-size:12px;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);margin-bottom:8px;}
.form-field input,.form-field textarea{width:100%;background:var(--panel);border:1px solid var(--gold-line);color:var(--cream);padding:12px 14px;border-radius:2px;font-family:var(--sans);font-size:14px;}
.form-field input:focus,.form-field textarea:focus{outline:none;border-color:var(--gold);}
.form-field textarea{min-height:120px;resize:vertical;}

/* FLASH MESSAGES */
.flash{padding:14px 20px;border-radius:2px;margin-bottom:20px;font-size:14px;}
.flash.success{background:rgba(224,169,74,.12);border:1px solid var(--gold-line);color:var(--gold);}
.flash.error{background:rgba(200,80,80,.12);border:1px solid rgba(200,80,80,.3);color:#e0a0a0;}

/* FOOTER */
footer{background:var(--bg-2);border-top:1px solid var(--gold);padding:48px 0 32px;}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;}
.foot-brand .brand-name{font-size:24px;}
.foot-brand .brand-logo{width:80px;height:80px;}
.foot-brand p{font-size:13px;color:var(--muted);margin-top:14px;max-width:280px;line-height:1.7;}
.foot-col h4{font-family:var(--sans);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold-soft);font-weight:500;margin-bottom:16px;}
.foot-col p{font-size:13px;color:var(--text);margin-bottom:8px;display:flex;align-items:center;gap:8px;}
.foot-col i{color:var(--gold-ink);font-size:15px;}
.foot-bottom{border-top:1px solid var(--gold-line);margin-top:40px;padding-top:22px;display:flex;justify-content:space-between;font-size:11px;color:var(--faint);letter-spacing:.5px;flex-wrap:wrap;gap:10px;}

/* FLOATING WHATSAPP */
.wa{position:fixed;bottom:24px;right:24px;width:56px;height:56px;border-radius:50%;background:var(--gold);color:var(--cream);display:flex;align-items:center;justify-content:center;font-size:26px;z-index:60;box-shadow:0 6px 24px rgba(224,169,74,.35);transition:transform .25s;}
.wa:hover{transform:scale(1.08);}

/* Nav collapses earlier than the content grids: below ~1000px the brand,
   the links and the Enquire button run out of room and start colliding. */
@media(max-width:1000px){
  .nav-links{display:none;}
  .social-nav{display:none;}
  .nav-enquire{display:none;}
  .brand-name{font-size:17px;letter-spacing:1.2px;}
  .brand-logo{width:54px;height:54px;}
  .foot-brand .brand-logo{width:64px;height:64px;}
  nav{height:76px;}
  .nav-links.open{display:flex;position:absolute;top:76px;left:0;right:0;flex-direction:column;background:var(--bg-2);padding:12px 32px;gap:2px;border-bottom:1px solid var(--gold-line);}
  /* Links were 19px tall — below the ~44px minimum touch target. The gap is
     folded into per-link padding so the tappable area grows, not just the space. */
  .nav-links.open a{padding:13px 0;display:block;}
  .nav-toggle{display:block;padding:11px;margin-right:-11px;line-height:1;}
}
@media(max-width:860px){
  /* iOS Safari force-zooms the page when a focused field is under 16px.
     Must be exactly 16px or more — 15px still triggers it. */
  .form-field input,.form-field textarea,
  .filters input,.filters select{font-size:16px;}
  .filters input,.filters select,.filters button{min-height:44px;}
  .trust-grid{grid-template-columns:repeat(2,1fr);}
  .trust-item:nth-child(2){border-right:none;}
  .trust-item:nth-child(1),.trust-item:nth-child(2){border-bottom:1px solid var(--gold-line);}
  .prop-grid{grid-template-columns:1fr;}
  .svc-cards{grid-template-columns:1fr;}
  /* Property detail: stack, unstick the info card, shorter photo on a phone. */
  /* Arrows sit closer in and the image gets more room on a phone. */
  .lightbox img{max-width:92%;max-height:78%;}
  .lb-nav{width:44px;height:44px;font-size:22px;}
  .lb-prev{left:10px;} .lb-next{right:10px;}
  .detail-grid{grid-template-columns:1fr;gap:24px;}
  .detail-card{position:static;padding:22px;}
  .detail-photo{height:230px;}
  .about{grid-template-columns:1fr;gap:28px;}
  .check-grid{grid-template-columns:1fr;gap:12px;}
  .about-intro p{font-size:15px;}
  .closing-line{font-size:17px;}
  .testi-grid{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr;gap:32px;}
  .foot-grid{grid-template-columns:1fr;gap:28px;}
  .stats{grid-template-columns:1fr;gap:36px;}
  .stat-div::before,.stat-div::after{display:none;}
  .stat-div{border-top:1px solid var(--gold-line);border-bottom:1px solid var(--gold-line);padding:36px 0;}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;}}
