@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap');

:root{
  --forest:#10231c; --forest-2:#173329; --cream:#f5f1e8; --paper:#fbfaf7;
  --gold:#cba55d; --gold-light:#e7c980; --ink:#17241e; --muted:#718078;
  --line:rgba(16,35,28,.12); --white:#fff; --shadow:0 28px 80px rgba(12,28,21,.15);
  --serif:"Playfair Display",Georgia,serif; --sans:"DM Sans",Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.6;overflow-x:hidden}
body.modal-open{overflow:hidden}
img,video{display:block;max-width:100%}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
::selection{background:var(--gold-light);color:var(--forest)}
.container{width:min(1180px,calc(100% - 44px));margin:auto}
.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}
.page-progress{position:fixed;left:0;top:0;height:3px;width:0;background:var(--gold-light);z-index:3000}

.site-header{position:fixed;left:0;right:0;top:0;z-index:2000;color:#fff;transition:.35s ease}
.site-header.scrolled{background:rgba(16,35,28,.93);backdrop-filter:blur(18px);box-shadow:0 12px 40px rgba(0,0,0,.14)}
.nav-wrap{height:88px;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:11px}
.brand-mark{width:46px;height:46px;border-radius:11px;background:#ead9aa;padding:4px;display:grid;place-items:center;flex:0 0 auto}
.brand-mark img{width:100%;height:100%;object-fit:contain;border-radius:7px}
.brand-text{display:flex;flex-direction:column;line-height:1}
.brand-text strong{font-size:16px;letter-spacing:.18em}
.brand-text small{font-size:8px;letter-spacing:.32em;opacity:.72;margin-top:5px}
.main-nav{display:flex;align-items:center;gap:23px;font-size:12px;font-weight:700}
.main-nav>a:not(.nav-cta){opacity:.82;position:relative;padding:10px 0}
.main-nav>a:not(.nav-cta):after{content:"";position:absolute;left:0;bottom:3px;width:0;height:1px;background:var(--gold-light);transition:.25s}
.main-nav>a:hover:after,.main-nav>a.active:after{width:100%}
.nav-cta{border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.08);padding:11px 16px;border-radius:999px}
.menu-toggle{display:none;background:none;border:0;color:#fff;width:46px;height:46px}
.menu-toggle span{display:block;width:23px;height:2px;background:currentColor;margin:5px auto;transition:.2s}

.hero{min-height:790px;height:100vh;max-height:980px;position:relative;display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:#183229}
.hero-media,.hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-media img{animation:heroZoom 16s ease-out both}
@keyframes heroZoom{from{transform:scale(1.06)}to{transform:scale(1)}}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,20,15,.84),rgba(7,20,15,.38) 55%,rgba(7,20,15,.08)),linear-gradient(0deg,rgba(7,20,15,.86),transparent 55%)}
.hero-content{position:relative;z-index:2;width:min(1240px,calc(100% - 44px));padding:150px 0 125px}
.hero-copy{max-width:780px}
.eyebrow,.section-label{font-size:10px;text-transform:uppercase;letter-spacing:.24em;font-weight:700;color:var(--gold-light)}
.hero h1{font-family:var(--serif);font-size:clamp(48px,5.8vw,84px);line-height:.96;letter-spacing:-.045em;margin:18px 0 18px}
.hero h1 em{font-style:normal;color:var(--gold-light)}
.hero p{max-width:650px;font-size:16px;color:rgba(255,255,255,.79);margin:0 0 25px}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap}
.btn{border:1px solid transparent;border-radius:999px;padding:13px 19px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:12px;font-weight:700;transition:.3s ease}
.btn span{font-size:15px}
.btn-gold{background:var(--gold-light);color:var(--forest)}
.btn-gold:hover{transform:translateY(-3px);box-shadow:0 15px 35px rgba(231,201,128,.23)}
.btn-light-outline{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.35);color:#fff}
.btn-light-outline:hover{background:#fff;color:var(--forest)}
.play{font-size:10px!important}
.property-search{width:min(100%,1060px);margin-top:42px;background:rgba(18,25,23,.8);border:1px solid rgba(255,255,255,.18);border-radius:16px 16px 7px 7px;padding:12px;box-shadow:0 25px 80px rgba(0,0,0,.22);backdrop-filter:blur(13px)}
.search-tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:12px}
.search-tab{border:0;background:rgba(255,255,255,.85);color:#1a241f;border-radius:3px;padding:12px 8px;font-weight:600;font-size:14px;position:relative;transition:.2s}
.search-tab:hover{background:#fff}
.search-tab.active{background:#fff}
.search-tab.active:after{content:"";position:absolute;bottom:-9px;left:50%;transform:translateX(-50%);border-left:9px solid transparent;border-right:9px solid transparent;border-top:9px solid #fff}
.search-bar{display:grid;grid-template-columns:210px 1fr 58px 165px;background:#fff;min-height:57px;border-radius:2px;overflow:hidden;color:#1a241f}
.select-field{display:flex;align-items:center;padding:0 16px;border-right:1px solid #ddd;gap:8px}
.select-field span{font-weight:700;font-size:12px;white-space:nowrap}
.select-field select{border:0;outline:0;background:transparent;font-size:12px;color:#53615a;min-width:0;width:100%;appearance:auto}
.locality-field{display:flex;align-items:center}
.locality-field input{border:0;outline:0;width:100%;height:100%;padding:0 16px;font-size:14px;color:var(--ink)}
.locate-btn{border:0;background:#fff;border-left:1px solid #ddd;font-size:25px;color:#2b332f}
.search-submit{border:0;background:#3276d5;color:#fff;font-weight:800;font-size:13px;letter-spacing:.02em}
.search-submit:hover{background:#2463b9}
.search-result{min-height:0;color:rgba(255,255,255,.8);font-size:11px;padding:0 4px;transition:.25s}
.search-result.show{padding-top:10px}
.hero-meta{position:absolute;bottom:0;left:0;right:0;border-top:1px solid rgba(255,255,255,.18);z-index:2}
.hero-meta-inner{height:58px;display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:.18em;color:rgba(255,255,255,.65)}

.section{padding:112px 0}
.intro-section{background:var(--paper);padding-top:40px}
.section-label{color:#9a7a42;margin-bottom:18px}
.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.intro-copy h2,.section-top h2,.video-heading h2,.location-copy h2,.contact-intro h2{font-family:var(--serif);font-weight:600;line-height:.98;letter-spacing:-.04em;font-size:clamp(42px,5.3vw,68px);margin:10px 0 23px}
h2 span{color:#8d713e}
.eyebrow.dark{color:#9a7a42}
.intro-copy .lead{font-size:17px;color:#4f5d56;max-width:590px}
.intro-copy p:not(.lead){font-size:14px;color:var(--muted);max-width:590px}
.text-link{display:inline-flex;gap:10px;margin-top:15px;border-bottom:1px solid var(--gold);padding-bottom:5px;font-size:12px;font-weight:800}
.text-link span{transition:.2s}
.text-link:hover span{transform:translateX(4px)}
.intro-visual{position:relative;padding:0 25px 25px 0}
.image-frame{position:relative;overflow:hidden;border-radius:26px;box-shadow:var(--shadow);transform:rotate(1deg);transition:transform .2s ease}
.image-frame img{width:100%;aspect-ratio:1.04/1;object-fit:cover}
.image-frame:after{content:"";position:absolute;inset:15px;border:1px solid rgba(255,255,255,.4);border-radius:17px;pointer-events:none}
.image-badge{position:absolute;left:22px;top:20px;z-index:2;background:rgba(16,35,28,.75);backdrop-filter:blur(8px);padding:8px 11px;border-radius:999px;font-size:9px;text-transform:uppercase;letter-spacing:.15em;color:#fff}
.image-badge span{color:var(--gold-light);margin-right:7px}
.floating-note{position:absolute;right:0;bottom:0;background:var(--forest);color:#fff;padding:20px 24px;border-radius:14px;box-shadow:var(--shadow);display:flex;flex-direction:column}
.floating-note strong{font-family:var(--serif);font-size:22px}
.floating-note span{font-size:10px;color:rgba(255,255,255,.6);letter-spacing:.1em;text-transform:uppercase}
.stats{margin-top:80px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr)}
.stats>div{padding:25px 18px;border-right:1px solid var(--line)}
.stats>div:last-child{border-right:0}
.stats strong{display:block;font-family:var(--serif);font-size:36px}
.stats span{font-size:11px;color:var(--muted)}

.project-section,.video-section,.contact-section{background:var(--forest);color:#fff}
.section-top{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:45px}
.section-top>p,.video-heading>p{max-width:430px;color:var(--muted);font-size:13px;margin:0}
.project-section .section-label,.video-section .section-label,.location-section .section-label,.contact-section .section-label{color:var(--gold-light)}
.project-section h2,.video-heading h2,.contact-intro h2{color:#fff}
.project-section h2 span,.video-heading h2 span,.contact-intro h2 span{color:var(--gold-light)}
.project-feature{display:grid;grid-template-columns:1.25fr .75fr;gap:16px}
.project-image{position:relative;min-height:600px;border-radius:25px;overflow:hidden}
.project-image img{width:100%;height:100%;object-fit:cover;transition:.8s}
.project-image:hover img{transform:scale(1.04)}
.image-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(7,19,14,.82),rgba(7,19,14,.05) 70%)}
.project-image-copy{position:absolute;left:32px;right:32px;bottom:28px;z-index:2}
.pill{display:inline-flex;padding:7px 10px;border:1px solid rgba(255,255,255,.28);border-radius:999px;font-size:9px;text-transform:uppercase;letter-spacing:.16em;color:rgba(255,255,255,.8);background:rgba(255,255,255,.05)}
.project-image-copy h3{font-family:var(--serif);font-size:48px;line-height:.9;margin:16px 0 0}
.ghost-circle{position:absolute;right:0;bottom:0;width:58px;height:58px;border:1px solid rgba(255,255,255,.4);border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:19px;transition:.25s}
.ghost-circle:hover{background:#fff;color:var(--forest);transform:rotate(8deg)}
.project-details{background:#172f25;border:1px solid rgba(255,255,255,.08);border-radius:25px;padding:35px;display:flex;flex-direction:column}
.mini-heading{font-size:9px;text-transform:uppercase;letter-spacing:.22em;color:var(--gold-light);font-weight:800}
.project-details h3{font-family:var(--serif);font-size:35px;line-height:1.02;margin:13px 0}
.project-details>p{color:rgba(255,255,255,.62);font-size:13px}
.detail-list{margin:18px 0 22px;border-top:1px solid rgba(255,255,255,.1)}
.detail-list button{display:grid;grid-template-columns:25px 1fr 20px;gap:9px;align-items:center;width:100%;padding:14px 0;background:none;color:#fff;border:0;border-bottom:1px solid rgba(255,255,255,.1);text-align:left}
.detail-list button>span{color:var(--gold-light)}
.detail-list strong{display:block;font-size:12px}
.detail-list small{display:block;color:rgba(255,255,255,.45);font-size:10px}
.detail-list b{color:rgba(255,255,255,.45);font-weight:400}
.dark-gold{margin-top:auto;align-self:flex-start}

.amenities-section{background:var(--cream)}
.amenity-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}
.amenity-card{min-height:225px;border:1px solid var(--line);background:rgba(255,255,255,.68);border-radius:19px;padding:25px;text-align:left;position:relative;overflow:hidden;transition:.35s;color:var(--ink)}
.amenity-card:before{content:"";position:absolute;width:150px;height:150px;border-radius:50%;border:1px solid rgba(203,165,93,.22);right:-85px;top:-80px}
.amenity-card:hover{background:#fff;transform:translateY(-7px);box-shadow:var(--shadow)}
.amenity-number{position:absolute;top:19px;right:22px;font-size:10px;color:#a28a62;letter-spacing:.12em}
.amenity-icon{font-size:27px;color:#ad8746}
.amenity-card h3{font-size:15.5px;margin:30px 0 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.amenity-card p{font-size:12px;color:var(--muted);max-width:270px;margin:0}
.card-arrow{position:absolute;bottom:20px;right:22px;font-size:16px;transition:.2s}
.amenity-card:hover .card-arrow{transform:translate(3px,-3px)}

.video-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:42px}
/* .video-slider, .video-main-card, .video-fullscreen, .video-thumbs
   — fully redefined in the VIDEO SLIDER section below; rules here are neutralised */
.video-slider{display:block;position:relative}
.video-main-card{position:relative;border-radius:25px;overflow:hidden;background:#07110d}
.video-main-card video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.video-vignette{position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,15,11,.9),transparent 62%),linear-gradient(90deg,rgba(5,15,11,.35),transparent 65%)}
.video-topline{position:absolute;left:24px;right:24px;top:22px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.17em;color:rgba(255,255,255,.62)}
.main-play{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);width:70px;height:70px;border-radius:50%;border:1px solid rgba(255,255,255,.5);background:rgba(255,255,255,.9);color:var(--forest);font-size:16px;padding-left:3px;box-shadow:0 20px 55px rgba(0,0,0,.3);transition:.25s;z-index:6}
.main-play:hover{transform:translate(-50%,-50%) scale(1.07)}
.video-main-copy{position:absolute;left:28px;right:180px;bottom:30px;z-index:6}
.video-main-copy h3{font-family:var(--serif);font-size:39px;line-height:1;margin:11px 0 5px}
.video-main-copy p{font-size:12px;color:rgba(255,255,255,.62);margin:0}
/* old circle fullscreen — replaced by pill button defined further below */
.video-controls{display:none}
.video-progress{display:none}
.video-thumbs{display:flex;gap:12px;overflow-x:auto;overflow-y:hidden;padding:14px 2px 6px;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:rgba(231,201,128,.55) rgba(255,255,255,.07)}
.video-thumb{flex:0 0 clamp(175px,19vw,230px);min-height:130px;scroll-snap-align:start;position:relative;border-radius:15px;overflow:hidden;border:1px solid rgba(255,255,255,.09);background:#172f25;color:#fff;padding:0;text-align:left;cursor:pointer;transition:.25s}
.video-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.56;transition:.3s}
.video-thumb:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(4,13,9,.85),transparent 70%)}
.video-thumb:hover img,.video-thumb.active img{opacity:.9;transform:scale(1.04)}
.video-thumb.active{outline:2px solid var(--gold-light);outline-offset:-2px;box-shadow:0 0 18px rgba(231,201,128,.25)}
.video-thumb-copy{position:absolute;z-index:2;left:13px;right:10px;bottom:10px}
.video-thumb-copy span{font-size:8px;color:var(--gold-light);letter-spacing:.12em;text-transform:uppercase}
.video-thumb-copy strong{display:block;font-size:12px;line-height:1.15;margin-top:3px}
.video-thumb .tiny-play{position:absolute;z-index:3;right:10px;top:10px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.9);color:var(--forest);font-size:9px}

.gallery-section{background:var(--paper)}
.gallery-grid{display:grid;grid-template-columns:1.1fr 1.4fr 1fr;grid-auto-rows:210px;gap:12px}
.gallery-item{position:relative;border:0;border-radius:19px;overflow:hidden;padding:0;background:#ddd;text-align:left}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:.6s}
.gallery-item:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(7,18,13,.75),transparent 60%)}
.gallery-item span{position:absolute;z-index:2;left:16px;bottom:14px;color:#fff;font-size:10px;letter-spacing:.06em}
.gallery-item:hover img{transform:scale(1.05)}
.gallery-item.tall{grid-row:span 2}
.gallery-item.wide{grid-column:span 2}

.location-section{background:var(--cream)}
.location-card{display:grid;grid-template-columns:.92fr 1.08fr;background:var(--forest);color:#fff;border-radius:27px;overflow:hidden;min-height:540px}
.location-copy{padding:52px}
.location-copy h2{color:#fff}
.location-copy p{color:rgba(255,255,255,.62);font-size:13px;max-width:520px}
.location-points{margin:28px 0;border-top:1px solid rgba(255,255,255,.1)}
.location-points>div{display:grid;grid-template-columns:35px 1fr;gap:10px;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.1)}
.location-points strong{font-size:10px;color:var(--gold-light)}
.location-points b{display:block;font-size:12px}
.location-points small{display:block;color:rgba(255,255,255,.45);font-size:10px}
.location-actions{display:flex;gap:9px;flex-wrap:wrap}
.location-map{position:relative;min-height:540px;background:#c8d4c0;overflow:hidden}
.location-map img{width:100%;height:100%;object-fit:contain;object-position:center;filter:saturate(.85)}
.map-label{position:absolute;left:22px;bottom:22px;background:rgba(16,35,28,.85);backdrop-filter:blur(8px);padding:12px 15px;border-radius:10px;color:#fff}
.map-label span{display:block;font-size:8px;color:var(--gold-light);letter-spacing:.18em}
.map-label strong{font-size:13px}
.context-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:13px}
.context-grid article{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.context-grid img{width:100%;height:170px;object-fit:cover}
.context-grid article>div{padding:18px}
.context-grid span{font-size:8px;text-transform:uppercase;letter-spacing:.15em;color:#a17e46;font-weight:800}
.context-grid h3{font-family:var(--serif);font-size:22px;margin:7px 0 5px}
.context-grid p{font-size:11px;color:var(--muted);margin:0}
.disclaimer{font-size:9px;color:#7e877f;margin:16px 2px 0}

.contact-wrap{display:grid;grid-template-columns:.92fr 1.08fr;gap:60px;align-items:start}
.contact-intro h2{margin-top:14px}
.contact-intro>p{max-width:530px;color:rgba(255,255,255,.6);font-size:14px}
.contact-facts{margin-top:38px;display:grid;gap:18px}
.contact-facts div{border-top:1px solid rgba(255,255,255,.11);padding-top:13px}
.contact-facts span{display:block;color:var(--gold-light);font-size:8px;letter-spacing:.18em}
.contact-facts strong{display:block;font-size:12px;margin-top:3px}
.contact-channels{margin-top:34px}
.contact-channel-heading{font-size:10px;text-transform:uppercase;letter-spacing:.2em;color:var(--gold-light);font-weight:800;margin-bottom:12px}
.contact-channel-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.contact-channel-grid a{display:grid;grid-template-columns:27px 1fr 13px;align-items:center;gap:8px;padding:12px 11px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:rgba(255,255,255,.035);transition:.25s}
.contact-channel-grid a:hover{background:rgba(231,201,128,.1);border-color:rgba(231,201,128,.5);transform:translateY(-2px)}
.channel-icon{width:25px;height:25px;display:grid;place-items:center;border:1px solid rgba(231,201,128,.55);border-radius:50%;color:var(--gold-light);font-size:12px;font-weight:700}
.contact-channel-grid small{display:block;color:rgba(255,255,255,.45);font-size:7px;letter-spacing:.14em;line-height:1.2}
.contact-channel-grid strong{display:block;color:#fff;font-size:10px;line-height:1.35;overflow-wrap:anywhere}
.contact-channel-grid b{color:var(--gold-light);font-size:13px;font-weight:400}
.enquiry-form{background:#fff;color:var(--ink);border-radius:22px;padding:32px;box-shadow:var(--shadow)}
.form-heading span{display:block;font-size:9px;color:#a17e46;text-transform:uppercase;letter-spacing:.2em;font-weight:800}
.form-heading strong{display:block;font-family:var(--serif);font-size:31px;line-height:1.05;margin:9px 0 24px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.form-grid label{display:block}
.form-grid label.full{grid-column:1/-1}
.form-grid label>span{display:block;font-size:10px;font-weight:800;margin-bottom:6px}
.form-grid input,.form-grid textarea,.form-grid select{width:100%;border:1px solid #dfe3df;border-radius:9px;background:#fafbf9;outline:0;padding:12px 13px;color:var(--ink);font-size:12px;transition:.2s}
.form-grid textarea{min-height:105px;resize:vertical}
.form-grid input:focus,.form-grid textarea:focus,.form-grid select:focus{border-color:#b8975d;box-shadow:0 0 0 3px rgba(203,165,93,.13)}
.form-note{font-size:9px;color:#88918c;margin:12px 0 0}
.form-success{margin-top:13px;border-radius:10px;background:#edf5ef;color:#31563e;padding:11px;font-size:11px}
.form-success.form-error{background:#fff0ed;color:#8f3c2e}
.enquiry-form button[disabled]{opacity:.7;cursor:wait;transform:none}
.footer{background:#0b1914;color:#fff;padding:30px 0 0}
.footer-top{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-bottom:28px}
.footer-links{display:flex;gap:20px;color:rgba(255,255,255,.55);font-size:10px}
.footer-links a:hover{color:#fff}
.footer-contact{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center;max-width:310px;color:rgba(255,255,255,.55);font-size:9px}
.footer-contact a{border-bottom:1px solid rgba(255,255,255,.16);padding-bottom:2px}
.footer-contact a:hover{color:var(--gold-light);border-color:var(--gold-light)}
.footer-contact .footer-social{width:27px;height:27px;border:1px solid rgba(231,201,128,.45);border-radius:50%;display:grid;place-items:center;padding:0;border-bottom:1px solid rgba(231,201,128,.45);font-size:14px;font-weight:700;color:var(--gold-light)}
.footer-contact .footer-social:hover{background:rgba(231,201,128,.12);border-color:var(--gold-light)}
.back-top{font-size:10px;border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:4px}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding:17px 0;display:flex;justify-content:space-between;font-size:9px;color:rgba(255,255,255,.38);letter-spacing:.03em}

.modal,.lightbox,.video-modal{position:fixed;inset:0;z-index:4000;display:none}
.modal.open,.lightbox.open,.video-modal.open{display:flex}
.modal{align-items:center;justify-content:center;padding:20px}
.modal-backdrop{position:absolute;inset:0;background:rgba(4,13,9,.76);backdrop-filter:blur(8px)}
.modal-box{position:relative;z-index:2;width:min(620px,100%);background:var(--paper);border-radius:22px;padding:40px;box-shadow:0 30px 100px rgba(0,0,0,.35)}
.modal-close,.lightbox-close{position:absolute;right:17px;top:14px;border:0;background:none;color:inherit;font-size:28px;line-height:1}
.modal-eyebrow{font-size:9px;color:#a17e46;letter-spacing:.2em;font-weight:800}
.modal-box h2{font-family:var(--serif);font-size:44px;line-height:1;margin:12px 0}
.modal-box p{color:var(--muted);font-size:13px}
.modal-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}
.modal-meta span{border:1px solid var(--line);padding:7px 9px;border-radius:999px;font-size:9px;color:#66736c}
.lightbox{align-items:center;justify-content:center;background:rgba(3,10,7,.94);padding:40px}
.lightbox-close{color:#fff;z-index:3}
.lightbox-inner{max-width:min(1000px,92vw);max-height:90vh}
.lightbox-inner img{max-width:100%;max-height:82vh;border-radius:14px;box-shadow:0 25px 100px rgba(0,0,0,.4)}
.lightbox-inner p{color:#fff;text-align:center;font-size:11px;margin:10px 0 0;letter-spacing:.06em}
.video-modal{background:rgba(3,10,7,.95);align-items:center;justify-content:center;padding:45px 25px;flex-direction:column}
.video-modal video{width:min(1100px,94vw);max-height:78vh;border-radius:14px;background:#000}
.modal-video-caption{width:min(1100px,94vw);color:#fff;display:flex;justify-content:space-between;gap:20px;margin-top:13px;font-size:11px}
.modal-video-caption span{color:rgba(255,255,255,.55)}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:#12251e;color:#fff;border:1px solid rgba(255,255,255,.13);padding:12px 17px;border-radius:999px;font-size:11px;z-index:5000;opacity:0;pointer-events:none;transition:.25s;box-shadow:0 18px 50px rgba(0,0,0,.25)}
.toast.show{opacity:1;transform:translate(-50%,0)}
/* Base reveal — slides up */
.reveal{
  opacity:0;
  transform:translateY(32px) scale(0.97);
  transition:opacity .75s cubic-bezier(.22,1,.36,1), transform .75s cubic-bezier(.22,1,.36,1);
}
.reveal.visible{opacity:1;transform:translateY(0) scale(1)}

/* Directional reveal — LEFT side slides in from left */
.reveal-left{
  opacity:0;
  transform:translateX(-60px) scale(0.97);
  transition:opacity .8s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1);
}
.reveal-left.visible{opacity:1;transform:translateX(0) scale(1)}

/* Directional reveal — RIGHT side slides in from right */
.reveal-right{
  opacity:0;
  transform:translateX(60px) scale(0.97);
  transition:opacity .8s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1);
}
.reveal-right.visible{opacity:1;transform:translateX(0) scale(1)}

@media (max-width:1050px){
  .main-nav{gap:15px}
  .hero-content{padding-bottom:110px}
  .property-search{margin-top:30px}
  .project-feature,.video-slider,.location-card,.contact-wrap{grid-template-columns:1fr}
  .video-thumbs{grid-template-columns:repeat(3,1fr)}
  .video-thumb{min-height:150px}
  .project-image{min-height:500px}
  .location-map{min-height:430px}
}
@media (max-width:820px){
  .main-nav{position:fixed;top:78px;left:14px;right:14px;background:rgba(16,35,28,.98);padding:16px;border-radius:16px;display:none;flex-direction:column;align-items:stretch;gap:3px;box-shadow:0 25px 60px rgba(0,0,0,.25)}
  .main-nav.open{display:flex}
  .main-nav>a{padding:12px 10px!important}
  .nav-cta{text-align:center}
  .menu-toggle{display:block}
  .hero{min-height:860px}
  .hero-content{padding-top:125px}
  .hero h1{font-size:clamp(45px,11vw,68px)}
  .property-search{margin-top:28px}
  .search-tabs{gap:5px}
  .search-tab{font-size:11px;padding:11px 4px}
  .search-bar{grid-template-columns:1fr 1.4fr 46px 105px}
  .select-field{padding:0 9px}
  .select-field span{display:none}
  .hero-meta-inner span:nth-child(2){display:none}
  .intro-grid{grid-template-columns:1fr;gap:45px}
  .intro-visual{max-width:650px}
  .amenity-grid{grid-template-columns:1fr 1fr}
  .gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:190px}
  .gallery-item.wide{grid-column:span 2}
  .footer-top{flex-wrap:wrap}
  .footer-links{order:3;width:100%;justify-content:center;flex-wrap:wrap}
  .footer-contact{order:4;width:100%;max-width:none}
}
@media (max-width:580px){
  .container{width:min(100% - 28px,1180px)}
  .nav-wrap{height:76px}
  .brand-mark{width:41px;height:41px}
  .brand-text strong{font-size:13px}
  .hero{min-height:900px}
  .hero-content{width:calc(100% - 28px);padding:110px 0 95px}
  .hero p{font-size:14px}
  .search-tabs{grid-template-columns:repeat(5,1fr)}
  .search-tab{font-size:9px}
  .search-bar{grid-template-columns:1fr 48px 95px}
  .select-field{grid-column:1/-1;height:45px;border-right:0;border-bottom:1px solid #ddd}
  .locality-field{min-height:50px}
  .search-submit{font-size:10px}
  .hero-meta-inner{height:50px;font-size:7px}
  .hero-meta-inner span:nth-child(3){display:none}
  .section{padding:78px 0}
  .section-top,.video-heading{display:block}
  .section-top>p,.video-heading>p{margin-top:20px}
  .intro-copy h2,.section-top h2,.video-heading h2,.location-copy h2,.contact-intro h2{font-size:45px}
  .stats{grid-template-columns:1fr 1fr;margin-top:55px}
  .stats>div:nth-child(2){border-right:0}
  .stats>div{border-bottom:1px solid var(--line)}
  .stats>div:nth-last-child(-n+2){border-bottom:0}
  .project-details{padding:25px}
  .project-image{min-height:440px}
  .project-image-copy h3{font-size:40px}
  .amenity-grid{grid-template-columns:1fr}
  .video-main-card{min-height:430px}
  .video-thumbs{grid-template-columns:1fr 1fr}
  .video-thumb{min-height:135px}
  .video-main-copy h3{font-size:32px}
  .gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:145px}
  .location-copy{padding:30px 24px}
  .location-map{min-height:330px}
  .context-grid{grid-template-columns:1fr}
  .contact-wrap{gap:35px}
  .enquiry-form{padding:23px}
  .form-grid{grid-template-columns:1fr}
  .form-grid label.full{grid-column:auto}
  .footer-top,.footer-bottom{display:flex;flex-direction:column;align-items:flex-start}
  .footer-links{justify-content:flex-start}
  .footer-contact{justify-content:flex-start}
  .modal-box{padding:30px 24px}
  .modal-box h2{font-size:36px}
}

/* =====================================================
   HERO SLIDESHOW refinements
   ===================================================== */
.hero-media{position:absolute;inset:0;overflow:hidden}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.4s ease;pointer-events:none}
.hero-slide.active{opacity:1}
.hero-slide img{width:100%;height:100%;object-fit:cover}
.hero-slide.active img{animation:heroPan 5.2s ease-in-out both}
.hero-slide:nth-child(even).active img{animation-name:heroPanReverse}
@keyframes heroPan{0%{transform:scale(1)}50%{transform:scale(1.075)}100%{transform:scale(1.02)}}
@keyframes heroPanReverse{0%{transform:scale(1.06)}50%{transform:scale(1.01)}100%{transform:scale(1.065)}}
.hero-slides-dots{position:absolute;z-index:4;right:30px;bottom:75px;display:flex;gap:6px}
.hero-slides-dots span{width:26px;height:2px;background:rgba(255,255,255,.28);transition:.35s}
.hero-slides-dots span.active{background:var(--gold-light);width:44px}
.hero-content{display:block;padding:142px 0 92px}
.hero-copy{max-width:1180px}
.hero-copy>p{max-width:690px}
.property-search{margin-top:28px;width:min(100%,1060px)}
.hero-actions{margin-bottom:0}
.hero-meta{background:linear-gradient(180deg,transparent,rgba(5,15,11,.15))}
@media(min-width:1051px){
  .hero{min-height:760px;height:100vh}
  .property-search{margin-top:28px}
}
@media(max-width:820px){
  .hero-content{padding:115px 0 80px}
  .hero-slides-dots{right:16px;bottom:63px}
}
@media(max-width:580px){
  .hero{min-height:860px}
  .hero-content{padding:102px 0 74px}
  .property-search{margin-top:24px}
  .hero-slides-dots{bottom:57px}
}

/* =====================================================
   VIDEO SLIDER — overlay arrows, dots, progress bar
   ===================================================== */

/* Full-width aspect ratio card */
.video-main-card{
  width:100%;
  aspect-ratio:16/9;
  min-height:0;
}

/* Overlay arrows */
.vslider-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:10;
  width:52px;height:52px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.45);
  background:rgba(16,35,28,.65);
  color:#fff;
  font-size:22px;
  display:grid;place-items:center;
  cursor:pointer;
  transition:.25s;
  backdrop-filter:blur(6px);
}
.vslider-arrow:hover{background:var(--gold-light);color:var(--forest);border-color:var(--gold-light);}
.vslider-prev{left:18px;}
.vslider-next{right:18px;}

/* Dot indicators */
.vslider-dots{display:flex;justify-content:center;gap:8px;margin-top:14px;}
.vslider-dot{
  width:28px;height:3px;border-radius:99px;
  background:rgba(255,255,255,.25);
  border:0;padding:0;cursor:pointer;
  transition:.35s;
}
.vslider-dot.active{background:var(--gold-light);width:46px;}

/* Slim progress bar */
.vslider-progress-bar{height:2px;background:rgba(255,255,255,.14);border-radius:99px;overflow:hidden;margin-top:10px;}
.vslider-progress-bar span{display:block;height:100%;width:0;background:var(--gold-light);transition:width .2s;}

@media(max-width:820px){
  .vslider-arrow{width:44px;height:44px;font-size:18px;}
  .vslider-prev{left:10px;}
  .vslider-next{right:10px;}
  .video-thumb{flex-basis:175px;min-height:115px}
}
@media(max-width:580px){
  .video-main-card{aspect-ratio:4/3;border-radius:18px}
  .vslider-arrow{width:38px;height:38px;font-size:15px;}
  .vslider-prev{left:7px;}
  .vslider-next{right:7px;}
  .video-main-copy h3{font-size:28px}
  .video-main-copy{right:130px}
  .video-thumb{flex-basis:155px;min-height:105px}
}

/* =====================================================
   GALLERY — uniform 3-col grid, no empty gaps
   ===================================================== */
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}
.gallery-item{
  position:relative;
  border:0;
  border-radius:19px;
  overflow:hidden;
  padding:0;
  background:#ddd;
  text-align:left;
  aspect-ratio:4/3;   /* every card same ratio — zero gaps */
  display:block;
  cursor:pointer;
}
/* Reset any old span/tall/wide overrides */
.gallery-item.tall,.gallery-item.wide{grid-row:auto;grid-column:auto}
.gallery-item:nth-child(n){aspect-ratio:4/3}

.gallery-item img{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  transition:.55s;
}
.gallery-item:after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(0deg,rgba(7,18,13,.72),transparent 58%);
}
.gallery-item span{
  position:absolute;z-index:2;
  left:16px;bottom:14px;
  color:#fff;font-size:10px;letter-spacing:.06em;
}
.gallery-item:hover img{transform:scale(1.06)}

@media(max-width:820px){
  .gallery-grid{grid-template-columns:repeat(2,1fr);gap:11px}
}
@media(max-width:480px){
  .gallery-grid{grid-template-columns:repeat(2,1fr);gap:8px}
  .gallery-item{border-radius:14px}
  .gallery-item:nth-child(n){aspect-ratio:4/3}
}

/* =====================================================
   FOOTER — developer credit inline on same line
   ===================================================== */
.footer{background:#0b1914;color:#fff;padding:46px 0 0}
.footer-top{
  display:flex;align-items:center;
  justify-content:space-between;gap:30px;
  padding-bottom:34px;
}
.footer-links{display:flex;gap:20px;color:rgba(255,255,255,.55);font-size:10px}
.footer-links a:hover{color:#fff}
.back-top{font-size:10px;border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:4px}

.footer-bottom{
  border-top:1px solid rgba(255,255,255,.08);
  padding:17px 0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  font-size:9px;
  color:rgba(255,255,255,.38);
  letter-spacing:.03em;
}
.footer-copy-group{
  display:flex;flex-wrap:wrap;align-items:center;gap:6px;
  font-size:9px;color:rgba(255,255,255,.38);
}
.footer-dev-inline{
  color:rgba(255,255,255,.42);
  font-size:9px;
}
.footer-dev-inline a{color:rgba(255,255,255,.8);transition:.2s}
.footer-dev-inline a:hover{color:var(--gold-light)}
.footer-assoc{margin:0 3px;opacity:.7}

/* Remove old separate developer-credit block if any */
.developer-credit{display:none}

@media(max-width:820px){
  .footer-top{flex-wrap:wrap}
  .footer-links{order:3;width:100%;justify-content:center;flex-wrap:wrap}
  .footer-bottom{
    flex-direction:row;
    flex-wrap:wrap;
    align-items:center;
    justify-content:space-between;
    gap:6px;
  }
  .footer-copy-group{
    flex-direction:row;
    flex-wrap:nowrap;
    align-items:center;
    gap:4px;
    font-size:8.5px;
  }
  .footer-dev-inline{display:none} /* hide on tablet, show on mobile separately */
}
@media(max-width:580px){
  .footer-bottom{
    flex-direction:column;
    align-items:flex-start;
    gap:5px;
    padding:14px 0 20px;
  }
  .footer-copy-group{
    flex-direction:row;
    flex-wrap:nowrap;
    align-items:center;
    white-space:nowrap;
    gap:4px;
    font-size:8px;
    line-height:1.5;
  }
  /* On mobile show dev credit on its own line below copyright */
  .footer-dev-inline{
    display:block;
    font-size:8px;
    line-height:1.8;
    white-space:normal;
    margin-top:1px;
  }
  /* Make sure ©2026 stays on one line */
  .footer-copy-group > span:first-child{
    white-space:nowrap;
  }
}

/* =====================================================
   ATTRACTIVE EFFECTS & TRANSITIONS
   ===================================================== */

/* --- Directional reveal (defined above in base styles, stagger here) --- */

/* Stagger children inside reveal containers */
.amenity-grid .reveal:nth-child(1){transition-delay:.05s}
.amenity-grid .reveal:nth-child(2){transition-delay:.12s}
.amenity-grid .reveal:nth-child(3){transition-delay:.19s}
.amenity-grid .reveal:nth-child(4){transition-delay:.26s}
.amenity-grid .reveal:nth-child(5){transition-delay:.33s}
.amenity-grid .reveal:nth-child(6){transition-delay:.40s}

/* --- Button gold glow on hover --- */
.btn-gold{
  position:relative;
  overflow:hidden;
  transition:.35s ease;
}
.btn-gold::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.28) 50%,transparent 70%);
  transform:translateX(-100%);
  transition:transform .55s ease;
}
.btn-gold:hover::before{transform:translateX(100%)}
.btn-gold:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 35px rgba(231,201,128,.40), 0 0 0 1px rgba(231,201,128,.25);
}

/* --- Nav CTA pulse ring --- */
.nav-cta{
  transition:.3s ease;
  position:relative;
}
.nav-cta:hover{
  background:var(--gold-light);
  color:var(--forest);
  border-color:var(--gold-light);
  box-shadow:0 0 0 4px rgba(231,201,128,.22);
}

/* --- Amenity cards: richer hover --- */
.amenity-card{
  transition:transform .35s cubic-bezier(.22,1,.36,1),
             box-shadow .35s ease,
             background .25s ease;
}
.amenity-card:hover{
  transform:translateY(-8px) scale(1.015);
  box-shadow:0 30px 70px rgba(12,28,21,.14), 0 2px 8px rgba(12,28,21,.06);
}
.amenity-card::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(135deg,rgba(203,165,93,.06),transparent);
  opacity:0;
  transition:opacity .35s;
  pointer-events:none;
}
.amenity-card:hover::after{opacity:1}

/* --- Gallery items: lift + gold border on hover --- */
.gallery-item{
  transition:transform .4s cubic-bezier(.22,1,.36,1),
             box-shadow .4s ease;
}
.gallery-item:hover{
  transform:translateY(-5px) scale(1.02);
  box-shadow:0 20px 50px rgba(12,28,21,.22), 0 0 0 2px rgba(231,201,128,.45);
  z-index:2;
}
.gallery-item img{transition:transform .6s cubic-bezier(.22,1,.36,1)}
.gallery-item:hover img{transform:scale(1.07)}

/* --- Video main card: subtle border glow --- */
.video-main-card{
  transition:box-shadow .4s ease;
  box-shadow:0 0 0 0 rgba(231,201,128,0);
}
.video-main-card:hover{
  box-shadow:0 0 0 2px rgba(231,201,128,.35), 0 30px 80px rgba(4,13,9,.4);
}

/* --- Arrow buttons: scale pop --- */
.vslider-arrow{
  transition:background .25s ease, color .25s ease,
             transform .2s cubic-bezier(.34,1.56,.64,1),
             box-shadow .25s ease;
}
.vslider-arrow:hover{
  transform:translateY(-50%) scale(1.12);
  box-shadow:0 8px 24px rgba(231,201,128,.35);
}

/* --- Video thumb active: gold shimmer border --- */
.video-thumb.active{
  outline:2px solid var(--gold-light);
  outline-offset:-2px;
  box-shadow:0 0 18px rgba(231,201,128,.25);
}

/* --- Stats counter numbers: colour highlight --- */
.stats strong{
  background:linear-gradient(135deg,var(--ink) 40%,var(--gold));
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}

/* --- Section headings: thin underline accent on hover --- */
.intro-copy h2,.section-top h2,.video-heading h2,.location-copy h2,.contact-intro h2{
  position:relative;
  display:inline-block;
}

/* --- Footer back-to-top: animated arrow --- */
.back-top{
  display:inline-flex;align-items:center;gap:5px;
  transition:color .25s, transform .25s;
}
.back-top:hover{
  color:var(--gold-light);
  transform:translateY(-2px);
}

/* --- Detail list row hover effect --- */
.detail-list button{
  transition:background .2s ease, padding-left .2s ease;
  border-radius:6px;
}
.detail-list button:hover{
  background:rgba(255,255,255,.05);
  padding-left:8px;
}

/* --- Location context articles: lift --- */
.context-grid article{
  transition:transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s ease;
}
.context-grid article:hover{
  transform:translateY(-6px);
  box-shadow:0 20px 50px rgba(12,28,21,.12);
}

/* --- Form inputs: smooth focus ring --- */
.form-grid input,.form-grid textarea,.form-grid select{
  transition:border-color .25s, box-shadow .25s, background .2s;
}

/* --- Page progress bar glow --- */
.page-progress{
  box-shadow:0 0 8px rgba(231,201,128,.55);
  transition:width .12s linear;
}

/* --- Mobile menu items: slide in --- */
.main-nav.open > a{
  animation:navItemIn .22s ease both;
}
.main-nav.open > a:nth-child(2){animation-delay:.04s}
.main-nav.open > a:nth-child(3){animation-delay:.08s}
.main-nav.open > a:nth-child(4){animation-delay:.12s}
.main-nav.open > a:nth-child(5){animation-delay:.16s}
.main-nav.open > a:nth-child(6){animation-delay:.20s}
.main-nav.open > a:nth-child(7){animation-delay:.24s}
.main-nav.open > a:nth-child(8){animation-delay:.28s}
@keyframes navItemIn{
  from{opacity:0;transform:translateX(-12px)}
  to{opacity:1;transform:none}
}

/* --- Floating note: subtle float animation --- */
.floating-note{
  animation:floatNote 4s ease-in-out infinite;
}
@keyframes floatNote{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-6px)}
}

/* --- Project image: shimmer overlay --- */
.project-image::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:3;
  background:linear-gradient(120deg,transparent 40%,rgba(255,255,255,.06) 55%,transparent 70%);
  transform:translateX(-100%);
  transition:transform 1s ease;
  pointer-events:none;
}
.project-image:hover::before{transform:translateX(100%)}

/* ---- Reduced motion: respect user preference ---- */
@media(prefers-reduced-motion:reduce){
  .reveal,.reveal-left,.reveal-right,
  .btn-gold,.amenity-card,.gallery-item,.vslider-arrow,
  .context-grid article,.floating-note,.project-image::before,
  .main-nav.open > a{
    animation:none!important;
    transition:none!important;
  }
}

/* =====================================================
   VIDEO FULLSCREEN BUTTON — prominent redesign
   ===================================================== */
.video-fullscreen{
  position:absolute;
  right:18px;
  bottom:24px;
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:10px 16px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.55);
  background:rgba(16,35,28,.72);
  color:#fff;
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
  backdrop-filter:blur(8px);
  cursor:pointer;
  transition:.25s ease;
  z-index:6;
}
.video-fullscreen svg{flex-shrink:0}
.video-fullscreen:hover{
  background:var(--gold-light);
  color:var(--forest);
  border-color:var(--gold-light);
  transform:scale(1.06);
  box-shadow:0 8px 24px rgba(231,201,128,.35);
}

/* "Click to watch" hint overlay — appears on hover over the video card */
.video-main-card::after{
  content:"Click to watch fullscreen";
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
  font-weight:700;
  letter-spacing:.08em;
  color:rgba(255,255,255,.9);
  background:rgba(7,17,13,.45);
  opacity:0;
  transition:opacity .3s ease;
  pointer-events:none;
  z-index:5;
  border-radius:inherit;
}
.video-main-card:hover::after{opacity:1}

/* =====================================================
   VIDEO MODAL — in-modal prev / next arrows
   ===================================================== */
.vmodal-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:50px;height:50px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.4);
  background:rgba(16,35,28,.7);
  color:#fff;
  font-size:22px;
  display:grid;place-items:center;
  cursor:pointer;
  transition:.25s;
  z-index:10;
  backdrop-filter:blur(6px);
}
.vmodal-arrow:hover{background:var(--gold-light);color:var(--forest);border-color:var(--gold-light);}
.vmodal-prev{left:14px;}
.vmodal-next{right:14px;}
@media(max-width:580px){
  .vmodal-arrow{width:40px;height:40px;font-size:16px;}
  .vmodal-prev{left:6px;}
  .vmodal-next{right:6px;}
  .video-fullscreen span{display:none} /* icon only on mobile */
  .video-fullscreen{padding:10px 12px}
}

/* Video card cursor hint — disable on mobile to avoid hover stuck */
@media(hover:none){
  .video-main-card::after{display:none}
}

/* Stagger delays for left/right reveals to feel natural */
.intro-copy.reveal-left  { transition-delay:.05s }
.intro-visual.reveal-right { transition-delay:.18s }
.project-image.reveal-left { transition-delay:.05s }
.project-details.reveal-right { transition-delay:.18s }
.location-copy.reveal-left { transition-delay:.05s }
.location-map.reveal-right { transition-delay:.18s }
.contact-intro.reveal-left { transition-delay:.05s }
.enquiry-form.reveal-right { transition-delay:.18s }

/* Gallery: stagger each column */
.gallery-item.reveal-left  { transition-delay:.04s }
.gallery-item.reveal       { transition-delay:.12s }
.gallery-item.reveal-right { transition-delay:.20s }

/* Context articles */
.context-grid .reveal-left  { transition-delay:.04s }
.context-grid .reveal       { transition-delay:.13s }
.context-grid .reveal-right { transition-delay:.22s }

/* =====================================================
   CONTACT PAGE — editorial cream and forest composition
   ===================================================== */
.contact-section{
  background:var(--cream);
  color:var(--ink);
  padding:76px 0 0;
  overflow:hidden;
}
.enquiry-section{
  background:var(--forest);
  color:#fff;
  padding:112px 0;
}
.enquiry-section .contact-wrap{width:auto;display:grid;grid-template-columns:.92fr 1.08fr;gap:60px;align-items:start;min-height:0}
.enquiry-section .contact-intro{padding:0}
.enquiry-section .contact-intro h2{color:#fff;font-size:clamp(42px,5.3vw,68px);margin:10px 0 23px}
.enquiry-section .contact-intro h2 span{color:var(--gold-light)}
.enquiry-section .contact-intro>p{max-width:530px;color:rgba(255,255,255,.6);font-size:14px}
.enquiry-section .contact-facts{margin-top:38px;display:grid;gap:18px}
.enquiry-section .contact-facts div{border-top:1px solid rgba(255,255,255,.11);padding-top:13px}
.enquiry-section .contact-facts span{display:block;color:var(--gold-light);font-size:8px;letter-spacing:.18em}
.enquiry-section .contact-facts strong{display:block;color:#fff;font-size:12px;margin-top:3px}
.enquiry-section .enquiry-form{background:#fff;color:var(--ink);border-radius:22px;padding:32px;box-shadow:var(--shadow)}
.contact-wrap{
  width:min(1320px,100%);
  display:grid;
  grid-template-columns:.84fr 1.16fr;
  gap:24px;
  align-items:center;
  min-height:490px;
}
.contact-intro{padding:34px 0 58px}
.contact-kicker{display:flex;align-items:center;gap:16px;color:#9a7a42;font-size:11px;font-weight:800;letter-spacing:.24em;margin-bottom:14px}
.contact-kicker i{display:block;width:68px;height:2px;background:#d8bd78}
.contact-intro h2{color:var(--ink);font-family:var(--serif);font-size:clamp(42px,4.8vw,68px);line-height:.98;letter-spacing:-.045em;margin:0 0 13px}
.contact-intro h2 em{color:#a17e46;font-style:italic;font-weight:500}
.contact-lead{font-size:16px;color:#59625d;max-width:650px;margin:0 0 28px}
.contact-channels{margin-top:0}
.contact-channel-heading{display:none}
.contact-channel-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;max-width:790px}
.contact-channel-grid a{
  grid-template-columns:50px 1fr 16px;
  min-height:76px;
  gap:12px;
  padding:12px 18px;
  border:1px solid rgba(141,113,62,.25);
  border-radius:15px;
  background:rgba(255,255,255,.28);
  color:var(--ink);
  box-shadow:0 8px 20px rgba(99,79,37,.04);
}
.contact-channel-grid a:hover{background:#fff;border-color:#cba55d;transform:translateY(-3px);box-shadow:0 13px 25px rgba(99,79,37,.1)}
.channel-icon{width:50px;height:50px;background:var(--forest);border:0;color:#fff;font-size:20px;box-shadow:inset 0 -5px 12px rgba(0,0,0,.18)}
.instagram-icon{position:relative}
.instagram-icon:before{content:"";width:19px;height:19px;border:2px solid currentColor;border-radius:6px;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
.instagram-icon:after{content:"";width:6px;height:6px;border:2px solid currentColor;border-radius:50%;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);box-shadow:7px -7px 0 -2px currentColor}
.contact-channel-grid small{color:#7b807c;font-size:9px;letter-spacing:.12em}
.contact-channel-grid strong{color:var(--ink);font-size:12px;margin-top:3px}
.contact-channel-grid b{color:#a17e46;font-size:18px}
.contact-presentation{align-self:stretch;display:grid;grid-template-columns:.5fr 1.5fr;min-height:490px;position:relative}
.contact-message{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;padding:45px 20px 45px 35px}
.message-rule{display:block;width:60px;height:2px;background:#a17e46;margin-bottom:18px}
.contact-message h3{font-family:var(--serif);font-weight:500;color:var(--ink);font-size:clamp(36px,3.5vw,55px);line-height:.98;letter-spacing:-.045em;margin:0 0 25px}
.contact-message h3 em{color:#a17e46;font-style:italic}
.contact-message p{max-width:290px;color:#59625d;font-size:14px;line-height:1.65;margin:0 0 25px}
.btn-dark-gold{align-self:flex-start;background:var(--forest);color:#fff;padding:13px 18px}
.btn-dark-gold:hover{background:#264b3c;color:#fff;transform:translateY(-3px);box-shadow:0 15px 30px rgba(16,35,28,.2)}
.contact-photo{position:relative;min-height:490px;overflow:hidden;clip-path:polygon(18% 0,100% 0,100% 100%,0 100%,34% 54%)}
.contact-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(16,35,28,.12),transparent 50%),linear-gradient(0deg,rgba(7,19,14,.65),transparent 38%)}
.contact-photo-slide{position:absolute;inset:0;opacity:0;transition:opacity 1s ease;pointer-events:none}
.contact-photo-slide.active{opacity:1}
.contact-photo-slide img{width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.9)}
.contact-photo-slide img[src*="contact-assistant"]{object-fit:contain;object-position:center center;background:#f4efe4}
.photo-caption{position:absolute;z-index:2;right:28px;bottom:32px;color:#fff;font-size:11px;line-height:1.55;letter-spacing:.12em;font-weight:600}
.photo-caption i{display:block;width:56px;height:2px;background:var(--gold-light);margin-top:11px}
.footer-contact .footer-social{width:42px;height:42px;font-size:18px}
.footer-social .instagram-icon:before{width:16px;height:16px}
.footer-social .instagram-icon:after{width:5px;height:5px}
.footer-contact{gap:14px;max-width:380px;font-size:11px}

@media(max-width:1050px){
  .contact-wrap{grid-template-columns:1fr;gap:0}
  .contact-intro{padding-bottom:35px}
  .contact-presentation{min-height:420px}
  .contact-photo{min-height:420px}
  .enquiry-section .contact-wrap{grid-template-columns:1fr}
}
@media(max-width:580px){
  .enquiry-section{padding:78px 0}
  .enquiry-section .contact-wrap{gap:35px}
  .enquiry-section .enquiry-form{padding:23px}
  .contact-section{padding-top:58px}
  .contact-intro{padding:10px 0 30px}
  .contact-kicker{font-size:9px}
  .contact-intro h2{font-size:45px}
  .contact-lead{font-size:14px}
  .contact-channel-grid{grid-template-columns:1fr;gap:9px}
  .contact-channel-grid a{min-height:67px;padding:9px 12px}
  .channel-icon{width:42px;height:42px;font-size:17px}
  .contact-presentation{grid-template-columns:1fr;min-height:auto}
  .contact-message{padding:45px 0 30px}
  .contact-message h3{font-size:42px}
  .contact-photo{min-height:330px;clip-path:polygon(0 10%,100% 0,100% 100%,0 100%)}
  .contact-photo-slide img[src*="contact-assistant"]{object-position:center center}
  .photo-caption{right:18px;bottom:24px;font-size:9px}
  .footer-contact{justify-content:flex-start;max-width:none}
}

/* =============================================
   NEW CONTACT CARDS — 3-equal-card layout
   ============================================= */
.contact-new-wrap{padding:20px 0 70px}

/* ── Header ── */
.contact-new-header{text-align:center;margin-bottom:52px}
.contact-new-header .contact-kicker{justify-content:center}
.contact-new-header h2{
  color:var(--ink);
  font-family:var(--serif);
  font-size:clamp(40px,4.8vw,66px);
  line-height:.98;
  letter-spacing:-.045em;
  margin:10px 0 18px;
}
.contact-new-header h2 em{color:#a17e46;font-style:italic;font-weight:500}
.contact-new-header .contact-lead{
  font-size:15.5px;
  color:#1e2b25;
  margin:0 auto;
  text-align:center;
  max-width:540px;
  line-height:1.7;
  font-weight:500;
  letter-spacing:.01em;
  text-shadow:none;
}

/* ── Grid ── */
.contact-cards-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
  align-items:stretch;
}

/* ── Individual card ── */
.ccard{
  background:#fff;
  border-radius:22px;
  padding:36px 30px 32px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  position:relative;
  overflow:hidden;
  transition:transform .3s ease, box-shadow .3s ease;
  box-shadow:0 4px 30px rgba(0,0,0,.18);
  border:none;
}
/* gold top accent bar */
.ccard:after{
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  height:4px;
  background:linear-gradient(90deg,#a17e46,#e7c980,#a17e46);
}
/* subtle corner decoration */
.ccard:before{
  content:"";
  position:absolute;
  width:200px;height:200px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(203,165,93,.07) 0%,transparent 70%);
  right:-60px;bottom:-60px;
  pointer-events:none;
}
.ccard:hover{
  transform:translateY(-8px);
  box-shadow:0 24px 55px rgba(0,0,0,.22);
}

/* ── Icon wrap ── */
.ccard-icon-wrap{
  width:64px;height:64px;
  background:linear-gradient(135deg,#10231c,#1e4035);
  border-radius:16px;
  display:flex;align-items:center;justify-content:center;
  margin-bottom:22px;
  flex-shrink:0;
  box-shadow:0 8px 22px rgba(16,35,28,.3);
  position:relative;
}
/* inner gold ring effect */
.ccard-icon-wrap:before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:16px;
  border:1px solid rgba(231,201,128,.3);
}
.ccard-icon{color:#e7c980;font-size:24px;line-height:1}

/* ── Social icon wrap ── */
.ccard-icon-wrap--social{
  width:auto;height:auto;
  background:transparent;
  border-radius:0;
  box-shadow:none;
  gap:12px;
  flex-direction:row;
  padding:0;
  margin-bottom:22px;
}
.ccard-icon-wrap--social:before{display:none}
.ccard-social-icon{
  width:56px;height:56px;
  border-radius:16px;
  display:flex;align-items:center;justify-content:center;
  transition:.25s;
  color:#fff;
  box-shadow:0 6px 20px rgba(0,0,0,.2);
  flex-shrink:0;
}
.ccard-fb{background:linear-gradient(145deg,#1877F2,#0d5fca)}
.ccard-fb:hover{background:linear-gradient(145deg,#0d5fca,#0a4ba0);transform:translateY(-4px);box-shadow:0 10px 28px rgba(24,119,242,.4)}
.ccard-ig{background:linear-gradient(145deg,#f09433,#e6683c 25%,#dc2743 50%,#cc2366 75%,#bc1888)}
.ccard-ig:hover{filter:brightness(1.12);transform:translateY(-4px);box-shadow:0 10px 28px rgba(188,24,136,.4)}
.ccard-wa{background:linear-gradient(145deg,#25D366,#128C7E)}
.ccard-wa:hover{background:linear-gradient(145deg,#1ebe58,#0f7a6c);transform:translateY(-4px);box-shadow:0 10px 28px rgba(37,211,102,.4)}

/* ── Text ── */
.ccard-label{
  font-size:9px;font-weight:800;
  letter-spacing:.24em;
  color:#a17e46;
  margin-bottom:7px;
  text-transform:uppercase;
}
.ccard-title{
  font-family:var(--serif);
  font-size:26px;
  font-weight:600;
  color:#0f1f19;
  margin:0 0 11px;
  line-height:1.1;
}
.ccard-desc{
  font-size:13px;
  color:#4a5550;
  line-height:1.7;
  margin:0;
  flex:1;
}

/* ── Divider ── */
.ccard-divider{
  width:44px;height:3px;
  background:linear-gradient(90deg,#a17e46,#e7c980);
  border-radius:3px;
  margin:20px 0 18px;
  flex-shrink:0;
}

/* ── Call number links ── */
.ccard-numbers{display:flex;flex-direction:column;gap:9px;width:100%}
.ccard-number-link{
  display:flex;align-items:center;justify-content:space-between;
  font-size:13.5px;font-weight:700;
  color:#0f1f19;
  text-decoration:none;
  padding:11px 15px;
  border-radius:11px;
  background:linear-gradient(135deg,rgba(16,35,28,.04),rgba(16,35,28,.02));
  border:1px solid rgba(161,126,70,.25);
  transition:.25s;
  letter-spacing:.015em;
}
.ccard-number-link span{
  width:28px;height:28px;
  background:#0f1f19;
  color:#e7c980;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:13px;
  flex-shrink:0;
  transition:.25s;
}
.ccard-number-link:hover{
  background:linear-gradient(135deg,#10231c,#1e4035);
  color:#fff;
  border-color:transparent;
  transform:translateX(4px);
}
.ccard-number-link:hover span{background:#a17e46;color:#fff}

/* ── Email link ── */
.ccard-email-link{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  font-size:12.5px;font-weight:700;
  color:#0f1f19;
  text-decoration:none;
  padding:11px 15px;
  border-radius:11px;
  background:linear-gradient(135deg,rgba(16,35,28,.04),rgba(16,35,28,.02));
  border:1px solid rgba(161,126,70,.25);
  transition:.25s;
  width:100%;
  white-space:nowrap;
  overflow:hidden;
}
.ccard-email-link span{
  width:28px;height:28px;
  background:#0f1f19;
  color:#e7c980;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:13px;
  flex-shrink:0;
  transition:.25s;
}
.ccard-email-link:hover{
  background:linear-gradient(135deg,#10231c,#1e4035);
  color:#fff;
  border-color:transparent;
}
.ccard-email-link:hover span{background:#a17e46;color:#fff}

/* ── Social handle link ── */
.ccard-handle-link{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  font-size:13px;font-weight:700;
  color:#0f1f19;
  text-decoration:none;
  padding:11px 15px;
  border-radius:11px;
  background:linear-gradient(135deg,rgba(16,35,28,.04),rgba(16,35,28,.02));
  border:1px solid rgba(161,126,70,.25);
  transition:.25s;
  width:100%;
}
.ccard-handle-link span{
  width:28px;height:28px;
  background:#0f1f19;
  color:#e7c980;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:13px;
  flex-shrink:0;
  transition:.25s;
}
.ccard-handle-link:hover{
  background:linear-gradient(135deg,#10231c,#1e4035);
  color:#fff;
  border-color:transparent;
}
.ccard-handle-link:hover span{background:#a17e46;color:#fff}

/* ── Office address text ── */
.ccard-address{
  font-size:12.5px;
  color:#4a5550;
  line-height:1.65;
  padding:11px 15px;
  border-radius:11px;
  background:linear-gradient(135deg,rgba(16,35,28,.04),rgba(16,35,28,.02));
  border:1px solid rgba(161,126,70,.25);
  width:100%;
  box-sizing:border-box;
  margin:0;
}
/* ── Clickable address link ── */
a.ccard-address-link{
  display:block;
  text-decoration:none;
  cursor:pointer;
  transition:.25s;
}
a.ccard-address-link:hover{
  background:linear-gradient(135deg,#10231c,#1e4035);
  color:#fff;
  border-color:transparent;
  transform:translateX(4px);
  box-shadow:0 6px 20px rgba(16,35,28,.2);
}

/* ── Responsive ── */
@media(max-width:900px){
  .contact-cards-grid{grid-template-columns:1fr 1fr}
  .contact-cards-grid .ccard:last-child{grid-column:1/-1;max-width:440px;margin:0 auto;width:100%}
}
@media(max-width:580px){
  .contact-new-wrap{padding:10px 0 45px}
  .contact-new-header{margin-bottom:32px}
  .contact-cards-grid{grid-template-columns:1fr}
  .contact-cards-grid .ccard:last-child{grid-column:auto;max-width:none}
  .ccard{padding:28px 22px 26px}
  .ccard-title{font-size:22px}
  .ccard-email-link{font-size:11.5px}
  .contact-new-header .contact-lead{font-size:14px}
}

/* =====================================================
   REGIONAL ADVANTAGES — क्षेत्र की मुख्य विशेषताएँ
   ===================================================== */

.reg-adv-section{
  background:var(--paper);
  padding:112px 0;
}

/* ── Section header ── */
.reg-adv-header{
  text-align:center;
  margin-bottom:60px;
}
.reg-adv-header h2{
  font-family:var(--serif);
  font-weight:600;
  font-size:clamp(38px,5vw,64px);
  line-height:.98;
  letter-spacing:-.04em;
  color:var(--ink);
  margin:10px 0 16px;
}
.reg-adv-header h2 span{color:#8d713e}
.reg-adv-subtitle{
  font-size:13px;
  color:var(--muted);
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:600;
  margin:0;
}

/* ── Two-column body ── */
.reg-adv-body{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
  align-items:stretch;
}

/* ── LEFT: map — renders as background-image so cream fills 100% ── */
.reg-adv-map{
  align-self:stretch;
}
.reg-adv-map-inner{
  position:relative;
  border-radius:25px;
  overflow:hidden;
  background-color:#ede9de;
  background-image:url('../assets/images/narwal_map.png');
  background-size:65%;
  background-repeat:no-repeat;
  background-position:center center;
  box-shadow:var(--shadow);
  width:100%;
  height:100%;
  min-height:520px;
}
/* hide the <img> tag — background-image handles display */
.reg-adv-map-inner img{
  display:none;
}
.reg-adv-map-badge{
  position:absolute;
  left:18px;
  bottom:18px;
  background:rgba(16,35,28,.82);
  backdrop-filter:blur(8px);
  padding:10px 14px;
  border-radius:10px;
  color:#fff;
}
.reg-adv-map-badge span{
  display:block;
  font-size:8px;
  color:var(--gold-light);
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:700;
}
.reg-adv-map-badge strong{
  display:block;
  font-size:13px;
  margin-top:2px;
}

/* ── RIGHT: cards stack ── */
.reg-adv-cards{
  display:flex;
  flex-direction:column;
  gap:16px;
  min-height:520px;
  justify-content:space-between;
}

.reg-adv-card{
  display:grid;
  grid-template-columns:130px 1fr;
  gap:0;
  border-radius:19px;
  overflow:hidden;
  background:#fff;
  flex:1;
  border:1px solid var(--line);
  box-shadow:0 6px 24px rgba(12,28,21,.07);
  transition:transform .35s cubic-bezier(.22,1,.36,1),
             box-shadow .35s ease;
}
.reg-adv-card:hover{
  transform:translateY(-5px);
  box-shadow:0 20px 50px rgba(12,28,21,.13);
}

.reg-adv-card-img{
  width:130px;
  flex-shrink:0;
  overflow:hidden;
  align-self:stretch;
}
.reg-adv-card-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .5s cubic-bezier(.22,1,.36,1);
  display:block;
}
.reg-adv-card:hover .reg-adv-card-img img{
  transform:scale(1.07);
}

.reg-adv-card-body{
  padding:20px 22px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.reg-adv-card-label{
  display:block;
  font-size:9px;
  font-weight:800;
  letter-spacing:.22em;
  color:#a17e46;
  text-transform:uppercase;
  margin-bottom:8px;
}
.reg-adv-card-body p{
  font-size:12.5px;
  color:var(--muted);
  margin:0;
  line-height:1.65;
}

/* ── Responsive — tablet ── */
@media(max-width:960px){
  .reg-adv-body{
    grid-template-columns:1fr;
    gap:24px;
    align-items:start;
  }
  .reg-adv-map{align-self:auto}
  .reg-adv-map-inner{
    height:380px;
    min-height:0;
    background-size:auto 90%;
  }
  .reg-adv-cards{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
    min-height:0;
    justify-content:normal;
  }
  .reg-adv-card{
    flex:none;
    grid-template-columns:1fr;
    grid-template-rows:150px auto;
  }
  .reg-adv-card-img{
    width:100%;
    height:150px;
    align-self:auto;
  }
}

/* ── Responsive — mobile ── */
@media(max-width:580px){
  .reg-adv-section{padding:78px 0}
  .reg-adv-header{margin-bottom:40px}
  .reg-adv-map-inner{height:280px;min-height:0;background-size:auto 85%}
  .reg-adv-cards{
    grid-template-columns:1fr;
    gap:10px;
    min-height:0;
    justify-content:normal;
  }
  .reg-adv-card{
    flex:none;
    grid-template-columns:100px 1fr;
    grid-template-rows:auto;
  }
  .reg-adv-card-img{
    width:100px;
    height:auto;
    min-height:95px;
    align-self:auto;
  }
  .reg-adv-card-body{padding:14px 14px}
}

/* =====================================================
   COMPREHENSIVE MOBILE RESPONSIVENESS — all devices
   ===================================================== */

/* ── Prevent horizontal overflow on all screens ── */
html, body {
  overflow-x: hidden;
  max-width: 100%;
}
*, *::before, *::after {
  max-width: 100%;
}

/* ── Tablet: 768px – 1024px ── */
@media (max-width: 1024px) {
  .container { width: min(100% - 40px, 1180px); }

  /* Hero search bar — collapse to stacked */
  .search-bar {
    grid-template-columns: 1fr 44px 100px;
  }
  .select-field { padding: 0 10px; }
  .select-field span { display: none; }

  /* Project two-col → single */
  .project-feature { grid-template-columns: 1fr; }
  .project-image { min-height: 480px; }

  /* Location card */
  .location-card { grid-template-columns: 1fr; }
  .location-map { min-height: 380px; }

  /* Enquiry form */
  .contact-wrap { grid-template-columns: 1fr; gap: 0; }

  /* Contact new layout */
  .contact-presentation { min-height: 380px; }
  .contact-photo { min-height: 380px; }
}

/* ── Mobile L: 480px – 767px ── */
@media (max-width: 767px) {
  .container { width: calc(100% - 32px); }

  /* Section headings — prevent overflow */
  h1, h2, h3 { word-break: break-word; overflow-wrap: break-word; }
  .hero h1 { font-size: clamp(38px, 10vw, 60px); }

  /* Hero search — fully stacked */
  .property-search { border-radius: 12px; padding: 10px; }
  .search-tabs { grid-template-columns: repeat(5, 1fr); gap: 4px; }
  .search-tab { font-size: 9px; padding: 9px 3px; letter-spacing: 0; }
  .search-bar {
    display: flex;
    flex-direction: column;
    border-radius: 4px;
    overflow: visible;
    gap: 0;
  }
  .select-field {
    border-right: 0;
    border-bottom: 1px solid #ddd;
    height: 46px;
    padding: 0 12px;
    grid-column: auto;
  }
  .select-field span { display: block; }
  .locality-field { min-height: 46px; border-bottom: 1px solid #ddd; }
  .locality-field input { padding: 0 12px; }
  .locate-btn { display: none; }
  .search-submit {
    padding: 13px;
    font-size: 11px;
    border-radius: 0 0 4px 4px;
  }

  /* Project section */
  .project-feature { grid-template-columns: 1fr; gap: 14px; }
  .project-image { min-height: 380px; }
  .project-image-copy h3 { font-size: 34px; }
  .project-details { padding: 22px; }
  .project-details h3 { font-size: 28px; }

  /* Amenities */
  .amenity-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .amenity-card { min-height: 190px; padding: 20px 16px; }
  .amenity-card h3 { font-size: 13px; }

  /* Location section */
  .location-card { grid-template-columns: 1fr; border-radius: 18px; }
  .location-copy { padding: 28px 22px; }
  .location-copy h2 { font-size: 38px; }
  .location-map { min-height: 300px; }
  .location-actions { flex-direction: column; gap: 8px; }
  .location-actions .btn { width: 100%; justify-content: center; }
  .context-grid { grid-template-columns: 1fr 1fr; }

  /* Contact cards */
  .contact-cards-grid { grid-template-columns: 1fr; gap: 16px; }
  .ccard { padding: 26px 20px 24px; }

  /* Contact presentation */
  .contact-presentation { grid-template-columns: 1fr; }
  .contact-message { padding: 32px 0 22px; }
  .contact-photo { min-height: 260px; clip-path: polygon(0 8%, 100% 0, 100% 100%, 0 100%); }

  /* Enquiry form */
  .enquiry-section { padding: 68px 0; }
  .enquiry-section .contact-wrap { grid-template-columns: 1fr; gap: 30px; }
  .enquiry-form { padding: 20px; }
  .form-grid { grid-template-columns: 1fr; gap: 12px; }
  .form-grid label.full { grid-column: auto; }
  .form-heading strong { font-size: 26px; }

  /* Footer */
  .footer-top { flex-direction: column; align-items: flex-start; gap: 20px; }
  .footer-links { flex-wrap: wrap; justify-content: flex-start; gap: 14px 20px; }
}

/* ── Mobile M: ≤ 480px ── */
@media (max-width: 480px) {
  .container { width: calc(100% - 24px); }

  /* Tighten section padding */
  .section { padding: 64px 0; }

  /* Hero */
  .hero { min-height: auto; height: auto; padding-bottom: 0; }
  .hero-content { padding: 100px 0 80px; }
  .hero h1 { font-size: clamp(34px, 9vw, 50px); line-height: 1.0; }
  .hero p { font-size: 13px; }
  .hero-actions { flex-direction: column; gap: 8px; }
  .hero-actions .btn { width: 100%; justify-content: center; }
  .hero-meta { display: none; }

  /* Property search */
  .search-tabs { grid-template-columns: repeat(3, 1fr) repeat(2, 1fr); }

  /* Stats */
  .stats { grid-template-columns: 1fr 1fr; }
  .stats strong { font-size: 28px; }

  /* Amenities — single column on small phones */
  .amenity-grid { grid-template-columns: 1fr; }
  .amenity-card { min-height: 160px; }

  /* Gallery */
  .gallery-grid { grid-template-columns: 1fr 1fr; gap: 7px; }
  .gallery-item { border-radius: 12px; }

  /* Videos */
  .video-main-copy { left: 16px; right: 100px; bottom: 20px; }
  .video-main-copy h3 { font-size: 24px; }
  .video-main-copy p { font-size: 11px; }
  .video-fullscreen { right: 10px; bottom: 16px; padding: 8px 11px; font-size: 10px; }
  .video-thumbs { gap: 8px; }
  .video-thumb { flex-basis: 140px; min-height: 95px; }

  /* Location */
  .location-copy h2 { font-size: 32px; }
  .context-grid { grid-template-columns: 1fr; }

  /* Regional advantages */
  .reg-adv-header h2 { font-size: clamp(30px, 7.5vw, 48px); }
  .reg-adv-body { grid-template-columns: 1fr; gap: 16px; }
  .reg-adv-map-inner { height: 260px; }
  .reg-adv-cards { grid-template-columns: 1fr; gap: 10px; }
  .reg-adv-card { grid-template-columns: 100px 1fr; }
  .reg-adv-card-img { width: 100px; min-height: 90px; }
  .reg-adv-card-body { padding: 14px; }
  .reg-adv-card-body p { font-size: 11.5px; }
  .reg-adv-card-label { font-size: 8px; }

  /* Contact new cards */
  .contact-cards-grid { grid-template-columns: 1fr; }
  .ccard { padding: 22px 18px; }
  .ccard-title { font-size: 21px; }

  /* Footer */
  .footer { padding: 36px 0 0; }
  .back-top { display: none; }
}

/* ── Mobile S: ≤ 360px (very small phones) ── */
@media (max-width: 360px) {
  .container { width: calc(100% - 20px); }
  .hero h1 { font-size: 30px; }
  .hero-actions .btn { font-size: 11px; padding: 11px 14px; }
  .amenity-card h3 { font-size: 14px; white-space: normal; }
  .reg-adv-card { grid-template-columns: 90px 1fr; }
  .reg-adv-card-img { width: 90px; min-height: 85px; }
  .ccard-title { font-size: 19px; }
}

/* ── Ensure property search never overflows ── */
@media (max-width: 580px) {
  .property-search { overflow: hidden; }
  .search-bar { overflow: visible; }
  .search-tabs { overflow: hidden; }
  .search-tab { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}

/* ── Fix contact channel grid on mid-sizes ── */
@media (max-width: 640px) {
  .contact-channel-grid { grid-template-columns: 1fr; }
}

/* ── Video section mobile fix — prevent horizontal scroll ── */
@media (max-width: 580px) {
  .video-slider { overflow: hidden; }
  .video-thumbs { padding-bottom: 8px; }
}

/*    FAQ — matching cream and forest editorial theme */
.faq-section{
  background:var(--cream);
  color:var(--ink);
  padding:96px 0 108px;
}
.faq-heading{
  max-width:800px;
  margin:0 auto 42px;
  text-align:center;
}
.faq-heading .contact-kicker{justify-content:center}
.faq-heading h2{
  font-family:var(--serif);
  font-size:clamp(36px,4.5vw,58px);
  font-weight:600;
  line-height:1.08;
  letter-spacing:-.04em;
  margin:0 0 16px;
}
.faq-heading h2 em{color:#9a7a42;font-style:normal}
.faq-heading>p{
  max-width:620px;
  margin:0 auto;
  color:#59625d;
  font-size:14px;
}
.faq-list{
  max-width:900px;
  margin:0 auto;
  display:grid;
  gap:12px;
}
.faq-item{
  overflow:hidden;
  border:1px solid rgba(141,113,62,.2);
  border-radius:14px;
  background:rgba(255,255,255,.72);
  box-shadow:0 8px 24px rgba(30,42,34,.035);
  transition:border-color .25s ease,box-shadow .25s ease,background .25s ease;
}
.faq-item[open]{
  border-color:rgba(161,126,70,.56);
  background:#fff;
  box-shadow:0 14px 32px rgba(30,42,34,.08);
}
.faq-item summary{
  min-height:76px;
  padding:17px 22px;
  display:grid;
  grid-template-columns:38px 1fr 28px;
  align-items:center;
  gap:15px;
  list-style:none;
  cursor:pointer;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-number{
  color:#a17e46;
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
}
.faq-question{
  color:var(--forest);
  font-family:var(--serif);
  font-size:18px;
  font-weight:600;
  line-height:1.35;
}
.faq-toggle{
  width:28px;
  height:28px;
  position:relative;
  display:grid;
  place-items:center;
  border:1px solid rgba(161,126,70,.35);
  border-radius:50%;
  color:#9a7a42;
  transition:transform .25s ease,background .25s ease,color .25s ease;
}
.faq-toggle:before,.faq-toggle:after{
  content:"";
  position:absolute;
  width:10px;
  height:1.5px;
  background:currentColor;
}
.faq-toggle:after{transform:rotate(90deg);transition:transform .25s ease}
.faq-item[open] .faq-toggle{
  transform:rotate(180deg);
  background:var(--forest);
  color:var(--gold-light);
}
.faq-item[open] .faq-toggle:after{transform:rotate(0)}
.faq-answer{
  padding:0 65px 22px 75px;
  animation:faqReveal .25s ease both;
}
.faq-answer p{
  margin:0;
  max-width:720px;
  color:#59625d;
  font-size:14px;
  line-height:1.75;
}
.faq-item summary:focus-visible{
  outline:2px solid #a17e46;
  outline-offset:-4px;
  border-radius:14px;
}
@keyframes faqReveal{
  from{opacity:0;transform:translateY(-4px)}
  to{opacity:1;transform:translateY(0)}
}
@media(max-width:580px){
  .faq-section{padding:68px 0}
  .faq-heading{margin-bottom:28px}
  .faq-heading h2{font-size:clamp(32px,8vw,42px)}
  .faq-heading>p{font-size:13px}
  .faq-list{gap:9px}
  .faq-item summary{
    min-height:68px;
    padding:14px;
    grid-template-columns:27px 1fr 26px;
    gap:10px;
  }
  .faq-question{font-size:16px}
  .faq-toggle{width:26px;height:26px}
  .faq-answer{padding:0 50px 18px 51px}
  .faq-answer p{font-size:13px}
}
@media(prefers-reduced-motion:reduce){
  .faq-item,.faq-toggle,.faq-toggle:after{transition:none}
  .faq-answer{animation:none}
}
/* Kalyan Infra Built - Blogs Section */
.kalyan-blogs {
  background: #f5f1e8;
  padding: 90px 0;
}

.blogs-header {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 42px;
}

.blogs-header h2 {
  color: #14291f;
  font-size: clamp(32px, 4vw, 48px);
  margin: 14px 0;
}

.blogs-header h2 em {
  color: #a68143;
}

.blogs-header p {
  color: #5f675f;
  line-height: 1.8;
}

.kalyan-blog-card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  max-width: 1050px;
  margin: 0 auto;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(166, 129, 67, .2);
  border-radius: 16px;
  box-shadow: 0 15px 40px rgba(20, 41, 31, .08);
}

.kalyan-blog-image-link {
  display: block;
  min-height: 330px;
  overflow: hidden;
}

.kalyan-blog-image {
  width: 100%;
  height: 100%;
  min-height: 330px;
  display: block;
  object-fit: cover;
  transition: transform .4s ease;
}

.kalyan-blog-image-link:hover .kalyan-blog-image {
  transform: scale(1.04);
}

.kalyan-blog-content {
  padding: 38px;
  align-self: center;
}

.kalyan-blog-category {
  color: #a68143;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 2px;
}

.kalyan-blog-content h3 {
  color: #14291f;
  font-size: clamp(23px, 2.5vw, 32px);
  line-height: 1.4;
  margin: 16px 0;
}

.kalyan-blog-content p {
  color: #5f675f;
  font-size: 15px;
  line-height: 1.9;
}

.kalyan-blog-button {
  margin-top: 14px;
}

@media (max-width: 700px) {
  .kalyan-blogs {
    padding: 60px 0;
  }

  .kalyan-blog-card {
    grid-template-columns: 1fr;
  }

  .kalyan-blog-image-link,
  .kalyan-blog-image {
    min-height: 230px;
    height: 230px;
  }

  .kalyan-blog-content {
    padding: 25px;
  }
}
/* Keep footer navigation in one horizontal line */
.footer-top {
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  align-items: center;
  gap: 24px;
}

.footer-links {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
  gap: 24px;
  white-space: nowrap;
}

.footer-links a {
  white-space: nowrap;
}

@media (max-width: 1100px) {
  .footer-top {
    grid-template-columns: 1fr;
    justify-items: center;
  }

  .footer-links {
    flex-wrap: wrap;
  }
}

/* Blog footer: keep everything in one row on desktop */
.footer .footer-top {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 18px !important;
}

.footer .footer-top > .brand {
  flex: 0 0 auto !important;
}

.footer .footer-links {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 18px !important;
  white-space: nowrap !important;
}

.footer .footer-links a {
  white-space: nowrap !important;
}

.footer .footer-contact {
  display: flex !important;
  flex: 0 0 auto !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 12px !important;
}

.footer .back-top {
  flex: 0 0 auto !important;
  white-space: nowrap !important;
}

/* Smaller screens: allow wrapping to avoid overflow */
@media (max-width: 1100px) {
  .footer .footer-top {
    flex-wrap: wrap !important;
    justify-content: center !important;
  }

  .footer .footer-links {
    flex-wrap: wrap !important;
  }

  .footer .footer-contact {
    flex-wrap: wrap !important;
    justify-content: center !important;
  }
}


