/*
Theme Name: AB Green Valleys Premium
Theme URI: https://www.abgreenvalleys.com/
Author: AB Green Valleys
Description: Premium nature-led real estate WordPress theme for AB Green Valleys / JDS Greens.
Version: 5.0.0
Text Domain: ab-green-valleys
*/
:root{--green:#063d2c;--green2:#0b5a40;--green3:#09271f;--gold:#d9aa45;--gold2:#f1cf72;--cream:#f7f3ea;--white:#fff;--ink:#173126;--muted:#6d766f;--line:rgba(9,39,31,.14);--shadow:0 20px 60px rgba(6,61,44,.13);--radius:24px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.6}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 20% 20%,rgba(217,170,69,.06),transparent 25%),radial-gradient(circle at 80% 70%,rgba(6,61,44,.06),transparent 28%);z-index:-1}a{text-decoration:none;color:inherit}img{max-width:100%;height:auto;display:block}button,input,select,textarea{font:inherit}.container{width:min(1180px,calc(100% - 40px));margin:auto}.eyebrow{display:inline-flex;align-items:center;gap:12px;color:var(--gold);font-size:12px;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.eyebrow:after{content:"";height:1px;width:42px;background:currentColor}.section{padding:92px 0}.section-head{text-align:center;max-width:800px;margin:0 auto 44px}.section-head h2{font-family:Georgia,serif;font-weight:500;font-size:clamp(34px,4vw,56px);line-height:1.08;margin:12px 0;color:var(--green3)}.section-head p{color:var(--muted);max-width:680px;margin:auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;border:1px solid transparent;border-radius:8px;padding:14px 22px;font-size:12px;font-weight:800;letter-spacing:.08em;transition:.35s ease;cursor:pointer}.btn-gold{background:linear-gradient(135deg,var(--gold2),var(--gold));color:#172a20;box-shadow:0 12px 28px rgba(217,170,69,.2)}.btn-gold:hover{transform:translateY(-3px);box-shadow:0 18px 38px rgba(217,170,69,.3)}.btn-outline{border-color:rgba(255,255,255,.5);color:#fff;background:rgba(255,255,255,.06)}.btn-outline:hover{background:#fff;color:var(--green)}
/* Header */
.site-header{position:fixed;top:0;left:0;right:0;z-index:1000;padding:14px 0;transition:.4s}.site-header.scrolled{background:rgba(3,28,21,.94);backdrop-filter:blur(14px);box-shadow:0 8px 30px rgba(0,0,0,.15)}.nav-wrap{display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:10px;color:#fff}.brand-mark{width:54px;height:54px;object-fit:contain;filter:drop-shadow(0 4px 10px rgba(0,0,0,.25))}.brand-text strong{font-family:Georgia,serif;display:block;font-size:20px;line-height:1;color:#f0c45d}.brand-text small{font-size:8px;letter-spacing:.22em;color:#fff}.nav{display:flex;align-items:center;gap:26px}.nav a{color:#fff;font-size:11px;font-weight:700;letter-spacing:.05em;position:relative;padding:12px 0}.nav a:after{content:"";position:absolute;left:0;bottom:5px;width:0;height:2px;background:var(--gold);transition:.3s}.nav a:hover:after,.nav a.active:after{width:100%}.nav-cta{padding:12px 18px!important;background:linear-gradient(135deg,var(--gold2),var(--gold));border-radius:7px;color:#173126!important}.nav-cta:after{display:none!important}.menu-toggle{display:none;border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;border-radius:8px;padding:9px 12px}
/* Hero */
.hero{min-height:760px;display:flex;align-items:flex-end;position:relative;overflow:hidden;color:#fff;background:var(--green3)}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,25,18,.86),rgba(2,25,18,.2) 58%,rgba(2,25,18,.5)),url('../images/gate-hero.jpg') center/cover;transform:scale(1.04);animation:heroZoom 14s ease-in-out infinite alternate}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(3,25,19,.9),transparent 38%)}.hero-inner{position:relative;z-index:2;display:grid;grid-template-columns:1.15fr .72fr;gap:50px;align-items:center;padding:150px 0 80px}.hero-copy{max-width:700px}.hero-copy h1{font-family:Georgia,serif;font-weight:500;font-size:clamp(48px,6vw,82px);line-height:.98;margin:16px 0 20px}.hero-copy h1 span{color:var(--gold2)}.hero-copy>p{font-size:22px;margin:0 0 8px}.hero-location{color:#f4d57d;margin:0 0 26px;font-weight:700}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.hero-features{display:flex;flex-wrap:wrap;gap:0;margin-top:55px;border-top:1px solid rgba(255,255,255,.18);padding-top:20px}.hero-feature{display:flex;align-items:center;gap:9px;padding:0 18px;border-right:1px solid rgba(255,255,255,.22);font-size:11px}.hero-feature:first-child{padding-left:0}.hero-feature i{color:var(--gold2);font-style:normal;font-size:18px}.hero-form{animation:floatY 6s ease-in-out infinite}.form-card{background:rgba(3,45,33,.92);border:1px solid rgba(217,170,69,.65);border-radius:20px;padding:26px;box-shadow:0 25px 80px rgba(0,0,0,.35);position:relative;overflow:hidden}.form-card:before{content:"";position:absolute;inset:-40% -30%;background:radial-gradient(circle,rgba(217,170,69,.16),transparent 55%);animation:formGlow 8s linear infinite}.form-card>*{position:relative}.form-card h3{font-family:Georgia,serif;font-size:25px;margin:0;color:#fff}.form-card>p{font-size:11px;color:#cfd9d3;margin:4px 0 16px}.field{margin-bottom:11px}.field label{display:block;color:#e7bf59;text-transform:uppercase;letter-spacing:.12em;font-size:9px;font-weight:800;margin:0 0 5px}.field input,.field select,.field textarea{width:100%;background:#fff;border:1px solid #dfe5e1;color:#173126;border-radius:7px;padding:12px 13px;outline:none;transition:.3s;box-shadow:0 0 0 0 rgba(217,170,69,0)}.field textarea{min-height:90px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(217,170,69,.14);transform:translateY(-1px)}.form-submit{width:100%;border:0;margin-top:4px}.form-note{font-size:9px!important;text-align:center;color:#aebeb6!important;margin:10px 0 0!important}.form-result{font-size:12px;margin-top:8px;text-align:center}.form-result.success{color:#8ee2ad}.form-result.error{color:#ffb2a7}
/* Stats */
.stats{background:var(--green);color:#fff;position:relative;z-index:3;margin-top:-1px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr)}.stat{text-align:center;padding:27px 16px;border-right:1px solid rgba(255,255,255,.2);position:relative}.stat:last-child{border-right:0}.stat .icon{color:var(--gold);font-size:25px}.stat strong{font-family:Georgia,serif;font-weight:500;font-size:42px;display:block;line-height:1.05;margin:3px 0}.stat span{font-size:12px;color:#d4dfd9}
/* Amenity cards */
.amenities{background:var(--cream)}.amenity-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.amenity-card{height:390px;border-radius:16px;overflow:hidden;position:relative;box-shadow:var(--shadow);background:#173126;transform:translateY(0);transition:.45s}.amenity-card:hover{transform:translateY(-10px)}.amenity-card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.8),rgba(0,0,0,.05) 70%)}.amenity-img{position:absolute;inset:0;background:var(--bg) center/cover;transition:1s}.amenity-card:hover .amenity-img{transform:scale(1.08)}.amenity-content{position:absolute;z-index:2;bottom:0;padding:24px;color:#fff}.amenity-icon{width:40px;height:40px;border:1px solid rgba(255,255,255,.65);border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.15);margin-bottom:10px}.amenity-content h3{font-family:Georgia,serif;margin:0;font-size:22px}.amenity-content p{margin:4px 0 0;font-size:11px;color:#e4e9e6}
/* Split / why */
.split{display:grid;grid-template-columns:1fr 1fr;min-height:520px}.split-copy{padding:70px clamp(30px,6vw,100px);display:flex;flex-direction:column;justify-content:center}.split-copy.dark{background:var(--green);color:#fff}.split-copy h2{font-family:Georgia,serif;font-size:52px;font-weight:500;line-height:1.02;margin:12px 0}.split-copy p{color:#c9d6cf;max-width:520px}.split-media{overflow:hidden}.split-media img{width:100%;height:100%;object-fit:cover;transition:1.2s}.split:hover .split-media img{transform:scale(1.04)}.why-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.info-card{padding:28px;border:1px solid var(--line);border-radius:16px;background:#fff;transition:.35s;box-shadow:0 12px 35px rgba(0,0,0,.04)}.info-card:hover{transform:translateY(-7px);box-shadow:var(--shadow);border-color:rgba(217,170,69,.45)}.check-icon{color:var(--gold);font-size:25px}.info-card h3{font-family:Georgia,serif;font-size:20px;margin:10px 0}.info-card p{font-size:12px;color:var(--muted);margin:0}
/* Construction */
.construction-wrap{background:#f0eee6}.construction-grid{display:grid;grid-template-columns:1.5fr .8fr;gap:22px}.updates-list{display:grid;gap:12px}.update-card{display:grid;grid-template-columns:150px 1fr 90px;gap:18px;align-items:center;background:#fff;padding:12px;border:1px solid var(--line);border-radius:14px;transition:.35s}.update-card:hover{transform:translateX(6px);box-shadow:var(--shadow)}.update-card img{width:150px;height:100px;object-fit:cover;border-radius:10px}.update-card h3{margin:5px 0 2px;font-family:Georgia,serif}.update-card p{font-size:12px;color:var(--muted);margin:0}.status{font-size:9px;text-transform:uppercase;font-weight:800;background:#e2f5e8;color:#18713e;border-radius:20px;padding:5px 9px}.update-date{text-align:right;color:var(--gold)}.update-date strong{font-family:Georgia,serif;font-size:30px;display:block}.update-date small{font-size:10px;text-transform:uppercase;color:var(--muted)}.construction-panel{border-radius:20px;padding:34px;background:var(--green);color:#fff;position:relative;overflow:hidden}.construction-panel:after{content:"";position:absolute;width:240px;height:240px;border-radius:50%;background:rgba(217,170,69,.1);right:-100px;bottom:-120px}.construction-panel h3{font-family:Georgia,serif;font-size:34px;line-height:1.05}.construction-panel p{color:#c7d6ce;font-size:13px}.progress{height:7px;background:rgba(255,255,255,.12);border-radius:20px;overflow:hidden;margin:24px 0 8px}.progress span{display:block;width:72%;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold2));animation:progress 2s ease both}
/* Testimonials */
.testimonials{background:linear-gradient(135deg,#042d21,#0a5039);color:#fff}.testimonials .section-head h2{color:#fff}.testimonial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.testimonial{padding:26px;border:1px solid rgba(217,170,69,.28);border-radius:16px;background:rgba(255,255,255,.05);transition:.35s}.testimonial:hover{transform:translateY(-7px);background:rgba(255,255,255,.08)}.stars{color:var(--gold2);letter-spacing:4px}.testimonial p{font-family:Georgia,serif;font-size:17px;color:#edf3ef}.person{display:flex;align-items:center;gap:10px}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--gold);color:var(--green);font-weight:900}.person strong{display:block;font-size:12px}.person span{font-size:10px;color:#b8c8c0}
/* Gallery */
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:190px;gap:12px}.gallery-item{overflow:hidden;border-radius:15px;position:relative}.gallery-item:nth-child(1){grid-row:span 2}.gallery-item:nth-child(5){grid-column:span 2}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:1s}.gallery-item:after{content:"View image ↗";position:absolute;inset:auto 14px 14px;opacity:0;transform:translateY(8px);color:#fff;font-size:11px;background:rgba(3,30,22,.8);padding:8px 12px;border-radius:20px;transition:.35s}.gallery-item:hover img{transform:scale(1.08)}.gallery-item:hover:after{opacity:1;transform:none}
/* Location */
.location{background:var(--cream)}.location-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:45px;align-items:stretch}.location-copy h2{font-family:Georgia,serif;font-size:52px;font-weight:500;line-height:1.02;margin:14px 0}.location-copy p{color:var(--muted)}.location-list{display:grid;gap:12px;margin:24px 0}.location-list div{padding:13px 16px;border-radius:10px;background:#fff;border:1px solid var(--line);font-size:12px}.map-box{min-height:450px;border-radius:20px;overflow:hidden;box-shadow:var(--shadow)}.map-box iframe{width:100%;height:100%;border:0;min-height:450px}
/* Sticky tools */
.quick-tools{position:fixed;right:18px;bottom:24px;z-index:990;display:flex;flex-direction:column;gap:8px}.quick-tool{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:10px;font-weight:800;text-align:center;box-shadow:0 12px 30px rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.4);transition:.3s}.quick-tool:hover{transform:translateY(-4px) scale(1.05)}.quick-tool.wa{background:#159447}.quick-tool.call{background:#0b6d4d}.quick-tool.visit{background:var(--gold);color:#173126}.quick-tool span{font-size:20px;display:block;line-height:1}.updates-sticky{position:fixed;right:18px;top:50%;transform:translateY(-50%);z-index:970;width:285px;background:rgba(255,255,255,.97);border:1px solid rgba(6,61,44,.15);box-shadow:0 25px 70px rgba(6,61,44,.22);border-radius:16px;overflow:hidden;backdrop-filter:blur(12px)}.updates-sticky-head{padding:16px 18px;background:var(--green);color:#fff}.updates-sticky-head small{color:var(--gold2);font-size:9px;font-weight:800;letter-spacing:.14em}.updates-sticky-head h3{font-family:Georgia,serif;font-size:20px;margin:4px 0}.sticky-update{display:grid;grid-template-columns:74px 1fr;gap:10px;padding:11px;border-bottom:1px solid var(--line)}.sticky-update img{width:74px;height:58px;object-fit:cover;border-radius:7px}.sticky-update h4{font-size:11px;margin:0 0 3px}.sticky-update p{font-size:9px;color:var(--muted);margin:0}.sticky-update time{font-size:8px;color:#8a6a23}.sticky-footer{padding:10px;text-align:center}.sticky-footer a{font-size:10px;font-weight:900;color:var(--green)}
/* Footer */
.site-footer{background:#03271d;color:#cbd8d1;padding:65px 0 20px;position:relative;overflow:hidden}.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1.2fr;gap:30px}.site-footer h3{font-family:Georgia,serif;color:#fff;font-size:18px}.site-footer p,.site-footer a{font-size:11px;color:#b9c8c1}.site-footer a:hover{color:var(--gold2)}.footer-links{display:grid;gap:8px}.footer-brand{color:#f0c45d;font-family:Georgia,serif;font-size:26px}.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:40px;padding-top:15px;text-align:center;font-size:10px}
/* Inner pages */
.page-hero{min-height:360px;display:flex;align-items:flex-end;padding:120px 0 55px;background:linear-gradient(90deg,rgba(2,30,21,.82),rgba(2,30,21,.28)),url('../images/gate-hero.jpg') center/cover;color:#fff}.page-hero h1{font-family:Georgia,serif;font-size:60px;font-weight:500;margin:8px 0}.page-content{padding:75px 0}.rich-content{max-width:900px;margin:auto}.rich-content h2{font-family:Georgia,serif;font-size:40px;color:var(--green)}.rich-content p{color:var(--muted)}.updates-page{background:#f4f1e9}.updates-page-grid{display:grid;grid-template-columns:1fr .75fr;gap:25px}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.filter{border:1px solid var(--line);background:#fff;border-radius:30px;padding:9px 15px;font-size:10px;font-weight:800}.filter.active{background:var(--green);color:#fff}.updates-page-card{display:grid;grid-template-columns:220px 1fr;gap:20px;background:#fff;border-radius:16px;padding:14px;margin-bottom:14px;border:1px solid var(--line)}.updates-page-card img{width:220px;height:150px;object-fit:cover;border-radius:10px}.contact-layout{display:grid;grid-template-columns:1fr .8fr;gap:30px}.contact-info{padding:32px;background:var(--green);color:#fff;border-radius:20px}.contact-info h2{font-family:Georgia,serif;font-size:42px}.contact-info p{color:#c8d6cf}.contact-detail{padding:16px 0;border-bottom:1px solid rgba(255,255,255,.13)}
/* Animations */
.reveal,.reveal-left,.reveal-right{opacity:0;transform:translateY(35px);transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1)}.reveal-left{transform:translateX(-45px)}.reveal-right{transform:translateX(45px)}.reveal.visible,.reveal-left.visible,.reveal-right.visible{opacity:1;transform:none}.stagger>*{opacity:0;transform:translateY(20px);animation:staggerIn .7s forwards}.stagger>*:nth-child(2){animation-delay:.08s}.stagger>*:nth-child(3){animation-delay:.16s}.stagger>*:nth-child(4){animation-delay:.24s}.stagger>*:nth-child(5){animation-delay:.32s}@keyframes heroZoom{from{transform:scale(1.02)}to{transform:scale(1.09)}}@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes formGlow{to{transform:rotate(360deg)}}@keyframes progress{from{width:0}to{width:72%}}@keyframes staggerIn{to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:1100px){.nav{gap:15px}.hero-inner{grid-template-columns:1fr .8fr}.amenity-grid{grid-template-columns:repeat(3,1fr)}.why-grid{grid-template-columns:repeat(2,1fr)}.updates-sticky{width:250px}.container{width:min(1100px,calc(100% - 30px))}}
@media(max-width:850px){.nav{position:absolute;top:74px;left:15px;right:15px;background:rgba(3,35,26,.98);display:none;flex-direction:column;align-items:stretch;padding:15px;border-radius:14px}.nav.open{display:flex}.nav a{padding:11px 14px}.menu-toggle{display:block}.hero{min-height:auto}.hero-inner{grid-template-columns:1fr;padding:130px 0 55px}.hero-form{max-width:560px}.hero-copy h1{font-size:52px}.stats-grid{grid-template-columns:repeat(2,1fr)}.stat:nth-child(2){border-right:0}.amenity-grid{grid-template-columns:repeat(2,1fr)}.split,.location-grid,.construction-grid,.updates-page-grid,.contact-layout{grid-template-columns:1fr}.testimonial-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:repeat(2,1fr)}.updates-sticky{position:fixed;top:auto;bottom:95px;right:10px;transform:none;width:calc(100% - 80px);max-width:330px;max-height:48vh;overflow:auto}.quick-tools{right:10px}.quick-tool{width:50px;height:50px}.footer-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.container{width:calc(100% - 24px)}.brand-text{display:none}.hero-copy h1{font-size:42px}.hero-copy>p{font-size:18px}.hero-features{display:grid;grid-template-columns:1fr 1fr;gap:10px}.hero-feature,.hero-feature:first-child{border:0;padding:0}.amenity-grid{grid-template-columns:1fr}.amenity-card{height:350px}.section{padding:65px 0}.split-copy h2,.location-copy h2{font-size:40px}.why-grid{grid-template-columns:1fr}.update-card{grid-template-columns:90px 1fr}.update-card img{width:90px;height:80px}.update-date{display:none}.gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:145px}.gallery-item:nth-child(1){grid-row:span 2}.gallery-item:nth-child(5){grid-column:span 2}.footer-grid{grid-template-columns:1fr}.page-hero h1{font-size:45px}.updates-page-card{grid-template-columns:1fr}.updates-page-card img{width:100%;height:210px}}
/* ABGV v3 two-column content + dynamic sidebar */
.abgv-layout{display:grid;grid-template-columns:minmax(0,1fr) 325px;gap:18px;max-width:1540px;margin:0 auto;padding:0 14px;background:#f7f5ef}.abgv-main{min-width:0}.abgv-sidebar{min-width:0;align-self:start}.sidebar-inner{position:sticky;top:82px;max-height:calc(100vh - 95px);overflow:auto;padding:0 0 18px;scrollbar-width:thin}.side-card{background:#fff;border:1px solid rgba(6,61,44,.13);border-radius:16px;padding:15px;margin:14px 0;box-shadow:0 12px 35px rgba(6,61,44,.10);animation:sideIn .8s ease both}.side-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}.side-head span{font-size:12px;font-weight:900;letter-spacing:.07em;color:#174b37}.side-head a{font-size:9px;color:#7d6a36;font-weight:800}.side-update{display:grid;grid-template-columns:90px 1fr;gap:10px;padding:10px 0;border-bottom:1px solid #ecebe5}.side-update:last-child,.side-news:last-child{border-bottom:0}.side-update img,.side-news img{width:90px;height:68px;object-fit:cover;border-radius:9px}.side-update h4,.side-news h4{font-size:11px;line-height:1.3;margin:0 0 4px;color:#1b3027}.side-update small,.side-news small{display:block;font-size:8px;color:#888;margin-top:4px}.side-status{display:inline-block;font-size:7px;font-weight:900;color:#fff;background:#2d6b4e;border-radius:20px;padding:3px 6px;margin-bottom:3px}.side-news{display:grid;grid-template-columns:74px 1fr;gap:9px;padding:10px 0;border-bottom:1px solid #ecebe5}.side-news img{width:74px;height:58px}.side-news p{font-size:9px;line-height:1.35;color:#7a817d;margin:0}.quick-enquiry .form-card{padding:4px 0 0;background:transparent;box-shadow:none;border:0}.quick-enquiry .form-card h3{font-size:23px}.quick-enquiry .form-card>p{font-size:10px}.quick-enquiry .field label{font-size:8px}.quick-enquiry .field input,.quick-enquiry .field select,.quick-enquiry .field textarea{padding:10px 11px;font-size:10px}.quick-enquiry .field{margin-bottom:9px}.quick-enquiry .form-note{font-size:8px}.quick-enquiry .form-orbit{display:none}
/* premium animated form */
.animated-form{position:relative;overflow:hidden}.animated-form:before{content:"";position:absolute;inset:-2px;border-radius:20px;padding:1px;background:conic-gradient(from 0deg,transparent 0 30%,rgba(218,174,72,.9),transparent 55% 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:formRing 7s linear infinite;pointer-events:none}.animated-form .field{animation:formField .65s both}.animated-form .field:nth-of-type(2){animation-delay:.06s}.animated-form .field:nth-of-type(3){animation-delay:.12s}.animated-form .field:nth-of-type(4){animation-delay:.18s}.animated-form .field:nth-of-type(5){animation-delay:.24s}.animated-form .field:nth-of-type(6){animation-delay:.30s}.animated-form .form-submit{position:relative;overflow:hidden}.animated-form .form-submit:after{content:"";position:absolute;top:-60%;left:-35%;width:25%;height:220%;background:rgba(255,255,255,.22);transform:rotate(20deg);animation:buttonShine 3.2s ease-in-out infinite}.animated-form .form-submit b{transition:transform .3s}.animated-form .form-submit:hover b{transform:translateX(5px)}.form-result.success{padding:10px 12px;margin-top:10px;border-radius:9px;background:#e9f6ee;color:#17613e;font-size:10px;animation:resultIn .4s ease}.form-result.error{padding:10px 12px;margin-top:10px;border-radius:9px;background:#fff0ee;color:#9b3c2f;font-size:10px;animation:resultIn .4s ease}.form-orbit{position:absolute;right:28px;top:20px;width:28px;height:28px;border:1px solid rgba(214,171,64,.5);border-radius:50%;animation:orbitFloat 3s ease-in-out infinite}.form-orbit span{position:absolute;left:50%;top:-3px;width:5px;height:5px;border-radius:50%;background:#e0b44e;box-shadow:0 0 12px #e0b44e}
.final-cta{background:linear-gradient(135deg,#052f22,#0a543b);color:#fff;text-align:center}.final-cta h2{font-family:Georgia,serif;font-weight:500;font-size:clamp(40px,5vw,64px);margin:15px 0}.final-cta p{max-width:650px;margin:0 auto 25px;color:#c8d6cf}.quick-tools{right:350px}.quick-tool{animation:toolFloat 4s ease-in-out infinite}.quick-tool:nth-child(2){animation-delay:.25s}.quick-tool:nth-child(3){animation-delay:.5s}
@keyframes sideIn{from{opacity:0;transform:translateX(25px)}to{opacity:1;transform:none}}@keyframes formRing{to{transform:rotate(360deg)}}@keyframes formField{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes buttonShine{0%,35%{left:-35%}65%,100%{left:125%}}@keyframes resultIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes orbitFloat{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-4px) rotate(180deg)}}@keyframes toolFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@media(max-width:1180px){.abgv-layout{grid-template-columns:minmax(0,1fr) 285px}.quick-tools{right:305px}.sidebar-inner{top:78px}}
@media(max-width:900px){.abgv-layout{display:block;padding:0}.abgv-sidebar{padding:0 12px}.sidebar-inner{position:relative;top:auto;max-height:none;overflow:visible;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.side-card{margin:0}.side-card.quick-enquiry{grid-column:1/-1}.quick-tools{right:10px}.abgv-sidebar .side-update{grid-template-columns:72px 1fr}.abgv-sidebar .side-update img{width:72px;height:58px}}
@media(max-width:560px){.sidebar-inner{grid-template-columns:1fr}.side-card.quick-enquiry{grid-column:auto}.quick-tools{right:8px;bottom:12px}.quick-tool{width:48px;height:48px}.hero-inner{padding-top:120px}.abgv-layout{background:#f7f5ef}.sidebar-inner{padding-bottom:12px}}
.hero{background-image:linear-gradient(90deg,rgba(2,29,20,.88),rgba(2,29,20,.34)),var(--hero-bg,url('../images/gate-hero.jpg'));background-position:center;background-size:cover}.brand-logo{width:88px;height:58px;object-fit:contain;display:block}.brand{display:flex;align-items:center}

.hero:before{background:linear-gradient(90deg,rgba(2,25,18,.86),rgba(2,25,18,.2) 58%,rgba(2,25,18,.5)),var(--hero-bg,url('../images/gate-hero.jpg')) center/cover}

/* =========================================================
   AB GREEN VALLEYS V5 - FULL SCREEN PREMIUM EXPERIENCE
   Existing approved contact form markup intentionally preserved.
   ========================================================= */
body{overflow-x:hidden}
.abgv-layout{display:block;max-width:none;margin:0;padding:0;background:transparent}
.abgv-main{min-width:0;width:100%}
.abgv-home{width:100%;overflow:hidden}

/* Bigger, more confident navigation */
.site-header{padding:18px 0}
.nav-wrap{width:min(1380px,calc(100% - 56px));}
.brand-logo{width:108px;height:68px;filter:drop-shadow(0 6px 14px rgba(0,0,0,.28))}
.brand-text strong{font-size:25px}
.brand-text small{font-size:9px}
.nav{gap:34px}
.nav a{font-size:13px;font-weight:800;letter-spacing:.08em;padding:14px 0;transition:color .3s,transform .3s}
.nav a:before{content:"";position:absolute;left:50%;bottom:1px;width:5px;height:5px;border-radius:50%;background:var(--gold2);opacity:0;transform:translate(-50%,8px) scale(.4);transition:.35s}
.nav a:hover,.nav a.active{color:#f5d477}
.nav a:hover{transform:translateY(-2px)}
.nav a:hover:before,.nav a.active:before{opacity:1;transform:translate(-50%,0) scale(1)}
.nav a:after{height:2px;bottom:0;box-shadow:0 0 12px rgba(241,207,114,.75)}
.nav-cta{padding:14px 22px!important;border-radius:10px!important;box-shadow:0 12px 30px rgba(217,170,69,.22);animation:ctaBreath 3.2s ease-in-out infinite}
.nav-cta:hover{transform:translateY(-3px) scale(1.02)!important}

/* Full-width hero */
.hero{min-height:820px;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
.hero:before{animation:heroZoom 18s ease-in-out infinite alternate,heroDrift 20s ease-in-out infinite alternate}
.hero-copy .eyebrow{animation:eyebrowIn .8s .15s both}
.hero-copy h1{animation:heroTitleIn 1s .25s both;text-shadow:0 8px 40px rgba(0,0,0,.28)}
.hero-copy>p,.hero-location,.hero-actions,.hero-features{animation:heroTextIn .8s .55s both}
.hero-actions .btn{position:relative;overflow:hidden}
.hero-actions .btn:after{content:"";position:absolute;inset:-40% auto -40% -30%;width:22%;background:rgba(255,255,255,.28);transform:rotate(22deg);animation:buttonSweep 4s 1.2s infinite}
.hero-features .hero-feature{animation:featureIn .7s both}
.hero-features .hero-feature:nth-child(2){animation-delay:.12s}.hero-features .hero-feature:nth-child(3){animation-delay:.24s}.hero-features .hero-feature:nth-child(4){animation-delay:.36s}.hero-features .hero-feature:nth-child(5){animation-delay:.48s}

/* Approved form styling stays structurally unchanged, only visual animation is enhanced */
.hero-form{animation:formFloat 6s ease-in-out infinite}
.animated-form:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.06) 48%,transparent 60%);transform:translateX(-120%);animation:formSweep 5.5s ease-in-out infinite;pointer-events:none}
.animated-form .field input:hover,.animated-form .field select:hover,.animated-form .field textarea:hover{box-shadow:0 0 0 3px rgba(217,170,69,.08)}

/* Stats: number + icon animation */
.stats{overflow:hidden}
.stat{overflow:hidden;transition:background .4s,transform .4s}
.stat:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent,rgba(217,170,69,.09),transparent);transform:translateX(-120%);animation:statSweep 5s ease-in-out infinite}
.stat:hover{background:rgba(255,255,255,.045)}
.stat .icon{display:inline-block;animation:iconPulse 2.6s ease-in-out infinite;filter:drop-shadow(0 0 7px rgba(217,170,69,.35))}
.stat:nth-child(2) .icon{animation-delay:.25s}.stat:nth-child(3) .icon{animation-delay:.5s}.stat:nth-child(4) .icon{animation-delay:.75s}
.stat-value{display:block;transform-origin:center;animation:statValue 1.2s cubic-bezier(.2,.8,.2,1) both}
.stat.visible .stat-value{animation:statValue 1s cubic-bezier(.2,.8,.2,1) both}
.stat span{position:relative;z-index:1}

/* Site Updates - replaces the old sidebar concept on homepage */
.site-updates-premium{background:linear-gradient(180deg,#f7f3ea,#fff);position:relative;overflow:hidden}
.site-updates-premium:before{content:"";position:absolute;width:520px;height:520px;border-radius:50%;right:-250px;top:-220px;background:radial-gradient(circle,rgba(217,170,69,.12),transparent 68%);animation:updateOrb 9s ease-in-out infinite}
.updates-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:30px;position:relative;z-index:1}
.updates-head h2{font-family:Georgia,serif;font-size:clamp(34px,4vw,54px);line-height:1.04;font-weight:500;margin:10px 0;color:var(--green3)}
.updates-head p{max-width:700px;color:var(--muted);margin:0}
.btn-outline-dark{border:1px solid rgba(6,61,44,.28);color:var(--green);background:#fff}
.btn-outline-dark:hover{background:var(--green);color:#fff;transform:translateY(-3px)}
.site-update-track{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;position:relative;z-index:1}
.site-update-card{background:#fff;border:1px solid rgba(6,61,44,.12);border-radius:20px;overflow:hidden;box-shadow:0 14px 40px rgba(6,61,44,.08);transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s,border-color .5s;transition-delay:var(--delay,0s)}
.site-update-card:hover{transform:translateY(-10px);box-shadow:0 24px 55px rgba(6,61,44,.16);border-color:rgba(217,170,69,.5)}
.site-update-image{display:block;height:220px;position:relative;overflow:hidden;background:var(--green3)}
.site-update-image img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.8,.2,1),filter .6s}
.site-update-card:hover .site-update-image img{transform:scale(1.09);filter:saturate(1.08)}
.update-kind{position:absolute;left:15px;top:15px;background:rgba(3,38,28,.9);color:#f5d477;border:1px solid rgba(241,207,114,.45);border-radius:30px;padding:6px 10px;font-size:8px;font-weight:900;letter-spacing:.12em}
.update-arrow{position:absolute;right:15px;bottom:15px;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--green);font-weight:900;transform:translateY(8px);opacity:0;transition:.4s;box-shadow:0 8px 20px rgba(0,0,0,.16)}
.site-update-card:hover .update-arrow{opacity:1;transform:none}
.site-update-body{padding:20px 20px 23px}
.site-update-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.site-update-meta span{color:#1d7046;background:#e9f7ee;border-radius:20px;padding:5px 9px;font-size:8px;font-weight:900;text-transform:uppercase}
.site-update-meta time{font-size:9px;color:#8a928d}
.site-update-body h3{font-family:Georgia,serif;font-size:23px;line-height:1.15;margin:6px 0 7px;color:var(--green3)}
.site-update-body h3 a{transition:color .3s}.site-update-body h3 a:hover{color:#b18a32}
.site-update-body p{font-size:11px;color:var(--muted);margin:0}
.site-update-card.reveal.visible{animation:cardPop .75s cubic-bezier(.2,.8,.2,1) both}
.site-update-empty{grid-column:1/-1;padding:60px;border:1px dashed rgba(6,61,44,.25);border-radius:20px;text-align:center;background:#fff}

/* Construction progress strip */
.construction-progress-section{background:#fff}
.construction-progress{display:grid;grid-template-columns:1.3fr .65fr auto;gap:28px;align-items:center;background:linear-gradient(135deg,#063d2c,#0b5a40);color:#fff;border-radius:24px;padding:36px 42px;box-shadow:0 22px 55px rgba(6,61,44,.18);position:relative;overflow:hidden}
.construction-progress:after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;right:-170px;top:-180px;background:rgba(217,170,69,.1);animation:updateOrb 8s ease-in-out infinite}
.construction-progress h2{font-family:Georgia,serif;font-weight:500;font-size:clamp(30px,3vw,46px);line-height:1.05;margin:10px 0}
.construction-progress p{color:#c8d8d0;max-width:600px;margin:0}
.progress-visual{display:flex;align-items:center;gap:14px;position:relative;z-index:1}
.progress-visual strong{display:block}.progress-visual small{display:block;color:#a9c1b6;font-size:10px;margin-top:3px}
.progress-ring{width:78px;height:78px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(241,207,114,.35);background:conic-gradient(var(--gold) 0 72%,rgba(255,255,255,.08) 72% 100%);box-shadow:inset 0 0 0 9px rgba(3,45,33,.75),0 0 28px rgba(217,170,69,.15);animation:ringPulse 2.8s ease-in-out infinite}
.progress-ring span{font-size:10px;font-weight:900;color:#f5d477}
.construction-progress .btn{position:relative;z-index:1;white-space:nowrap}

/* Floating actions - compact, premium, animated */
.quick-tools{position:fixed;right:22px;bottom:28px;z-index:1100;display:flex;flex-direction:column;gap:10px;align-items:flex-end}
.quick-tool{width:64px;height:64px;border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#fff!important;border:1px solid rgba(241,207,114,.5);box-shadow:0 14px 30px rgba(0,0,0,.22);font-size:8px;font-weight:900;letter-spacing:.05em;position:relative;overflow:hidden;transition:transform .35s,box-shadow .35s,background .35s}
.quick-tool:before{content:"";position:absolute;inset:-40%;background:radial-gradient(circle,rgba(255,255,255,.18),transparent 55%);transform:translateX(-60%);animation:quickShine 4s ease-in-out infinite}
.quick-tool span{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.55);font-size:13px;position:relative;z-index:1}
.quick-tool{background:linear-gradient(145deg,#0c6a48,#063d2c)}
.quick-tool.call{background:linear-gradient(145deg,#145e46,#0a392b)}
.quick-tool.visit{background:linear-gradient(145deg,#d9aa45,#a87924);color:#1a2b22!important}
.quick-tool:hover{transform:translateY(-6px) scale(1.05);box-shadow:0 20px 42px rgba(6,61,44,.3)}
.quick-tool:nth-child(1){animation:quickFloat 3.6s ease-in-out infinite}.quick-tool:nth-child(2){animation:quickFloat 3.6s .35s ease-in-out infinite}.quick-tool:nth-child(3){animation:quickFloat 3.6s .7s ease-in-out infinite}

/* More motion across the landing page */
.amenity-card,.info-card,.testimonial,.gallery-item,.update-card{will-change:transform}
.gallery-item img{transition:transform .8s cubic-bezier(.2,.8,.2,1),filter .5s}.gallery-item:hover img{transform:scale(1.07);filter:saturate(1.08)}
.testimonial{transition:transform .45s,box-shadow .45s}.testimonial:hover{transform:translateY(-8px);box-shadow:var(--shadow)}
.location-list>div{transition:transform .35s,color .35s}.location-list>div:hover{transform:translateX(8px);color:var(--green)}
.final-cta .btn{animation:ctaBreath 3.2s ease-in-out infinite}

@keyframes ctaBreath{0%,100%{box-shadow:0 10px 28px rgba(217,170,69,.18)}50%{box-shadow:0 16px 38px rgba(217,170,69,.36)}}
@keyframes heroDrift{0%{background-position:50% 50%}100%{background-position:53% 47%}}
@keyframes eyebrowIn{from{opacity:0;letter-spacing:.4em;transform:translateY(10px)}to{opacity:1;letter-spacing:.18em;transform:none}}
@keyframes heroTitleIn{from{opacity:0;transform:translateY(32px) scale(.98)}to{opacity:1;transform:none}}
@keyframes heroTextIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes featureIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes buttonSweep{0%,45%{left:-35%}65%,100%{left:125%}}
@keyframes formFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes formSweep{0%,55%{transform:translateX(-120%)}75%,100%{transform:translateX(120%)}}
@keyframes statSweep{0%,60%{transform:translateX(-120%)}80%,100%{transform:translateX(120%)}}
@keyframes iconPulse{0%,100%{transform:scale(1) rotate(0)}50%{transform:scale(1.12) rotate(4deg)}}
@keyframes statValue{from{opacity:0;transform:translateY(12px) scale(.88)}to{opacity:1;transform:none}}
@keyframes updateOrb{0%,100%{transform:translate(0,0)}50%{transform:translate(-18px,18px)}}
@keyframes cardPop{from{opacity:0;transform:translateY(25px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes ringPulse{0%,100%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.06);filter:brightness(1.15)}}
@keyframes quickFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes quickShine{0%,55%{transform:translateX(-70%)}75%,100%{transform:translateX(70%)}}

@media(max-width:1180px){.nav-wrap{width:min(1100px,calc(100% - 30px))}.nav{gap:20px}.nav a{font-size:12px}.site-update-track{grid-template-columns:repeat(2,1fr)}.construction-progress{grid-template-columns:1fr .7fr}.construction-progress .btn{grid-column:1/-1;justify-self:start}}
@media(max-width:850px){.site-header{padding:12px 0}.nav{gap:0}.hero{min-height:auto}.hero-inner{grid-template-columns:1fr;padding:130px 0 55px}.site-update-track{grid-template-columns:1fr}.updates-head{align-items:flex-start;flex-direction:column}.construction-progress{grid-template-columns:1fr;padding:30px}.quick-tools{right:12px;bottom:18px}.quick-tool{width:58px;height:58px}.quick-tool span{width:24px;height:24px}.site-update-image{height:210px}}
@media(max-width:560px){.nav-wrap{width:calc(100% - 22px)}.brand-logo{width:90px;height:58px}.nav-cta{display:none}.hero{min-height:auto}.hero-copy h1{font-size:42px}.stats-grid{grid-template-columns:repeat(2,1fr)}.stat strong{font-size:34px}.site-update-body{padding:17px}.site-update-body h3{font-size:20px}.quick-tools{right:8px;bottom:12px;gap:7px}.quick-tool{width:52px;height:52px;border-radius:16px;font-size:7px}.quick-tool span{width:22px;height:22px;font-size:11px}.construction-progress{border-radius:18px;padding:25px 20px}.progress-visual{margin:5px 0}.site-updates-premium{padding-top:68px}}
