/* Green Valley — mockup homepage styles (scoped .gvx) */
.gvx *{box-sizing:border-box}
.gvx{--forest:#1B4332;--forest-deep:#0A1F16;--forest-soft:#2C4D39;--gold:#C9A96A;--gold-deep:#B08D4F;--gold-soft:#E6D3AC;--ivory:#FCFAF4;--bg:#F7F3EA;--beige:#EFE8DA;--ink:#1F2A1D;--text:#5A6454;--line:rgba(27,67,50,.12);--f-display:'Cormorant Garamond',Georgia,serif;--f-sans:'Manrope',system-ui,sans-serif;--f-body:'Inter',system-ui,sans-serif;--f-script:'Pinyon Script',cursive;--maxw:1200px;--r:16px;--ease:cubic-bezier(.22,.61,.36,1);font-family:var(--f-body);color:var(--text);line-height:1.6}
.gvx img{max-width:100%;display:block}
.gvx a{color:inherit;text-decoration:none}
.gvx .wrap{width:min(100% - 40px,var(--maxw));margin-inline:auto}
.gvx .eyebrow{font-family:var(--f-sans);text-transform:uppercase;letter-spacing:.28em;font-size:.72rem;font-weight:700;color:var(--gold-deep)}
.gvx h1,.gvx h2,.gvx h3{font-family:var(--f-display);color:var(--ink);font-weight:600;line-height:1.05;margin:0}
.gvx .sec-title{font-size:clamp(2rem,4.4vw,3.2rem)}
.gvx .btn{display:inline-flex;align-items:center;gap:.55em;font-family:var(--f-sans);font-weight:700;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;padding:15px 26px;border-radius:10px;cursor:pointer;border:1.5px solid transparent;transition:.35s var(--ease)}
.gvx .btn--gold{background:var(--gold);color:#241c0b}.gvx .btn--gold:hover{background:var(--gold-deep);transform:translateY(-2px)}
.gvx .btn--forest{background:var(--forest);color:#fff}.gvx .btn--forest:hover{background:var(--forest-deep);transform:translateY(-2px)}
.gvx .btn--ghost{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.45);backdrop-filter:blur(4px)}.gvx .btn--ghost:hover{background:rgba(255,255,255,.16)}
.gvx .btn--sm{padding:11px 18px;font-size:.72rem}
/* HERO */
.gvx-hero{position:relative;min-height:100vh;display:flex;align-items:center;color:#fff;overflow:hidden;padding:150px 0 70px}
.gvx-hero__bg{position:absolute;inset:0;z-index:0}
.gvx-hero__bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.05)}
.gvx-hero__bg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,31,22,.55)0%,rgba(10,31,22,.25)40%,rgba(10,31,22,.75)100%),linear-gradient(90deg,rgba(10,31,22,.65),transparent 60%)}
.gvx-hero .wrap{position:relative;z-index:2;display:grid;grid-template-columns:1.3fr .95fr;gap:40px;align-items:center;width:min(100% - 40px,1240px)}
.gvx-hero__eyebrow{color:var(--gold-soft);font-family:var(--f-sans);text-transform:uppercase;letter-spacing:.25em;font-weight:700;font-size:.85rem;margin-bottom:8px}
.gvx-hero__title{font-family:var(--f-display);font-weight:600;font-size:clamp(3rem,8vw,6.4rem);line-height:.98;letter-spacing:.01em;color:#fff}
.gvx-hero__script{font-family:var(--f-script);font-size:clamp(1.8rem,3.6vw,2.8rem);color:var(--gold-soft);margin:6px 0 18px}
.gvx-hero__lead{font-family:var(--f-sans);font-weight:700;letter-spacing:.02em;font-size:1.05rem;color:#fff}
.gvx-hero__sub{color:rgba(255,255,255,.85);margin-bottom:24px}
.gvx-hero__actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:34px}
.gvx-hero__stats{display:grid;grid-template-columns:repeat(4,auto);gap:26px}
.gvx-hero__stats .n{font-family:var(--f-display);font-size:2rem;color:var(--gold-soft);font-weight:600;line-height:1}
.gvx-hero__stats .l{font-size:.72rem;color:rgba(255,255,255,.8);font-family:var(--f-sans);text-transform:uppercase;letter-spacing:.08em;margin-top:4px}
/* enquire card */
.gvx-enquire{background:rgba(10,31,22,.72);border:1px solid rgba(201,169,106,.45);border-radius:18px;padding:26px 24px;backdrop-filter:blur(10px);box-shadow:0 30px 60px rgba(0,0,0,.35)}
.gvx-enquire h3{color:#fff;font-family:var(--f-display);font-size:1.7rem;text-align:center;display:flex;align-items:center;justify-content:center;gap:10px}
.gvx-enquire h3::before,.gvx-enquire h3::after{content:'';width:26px;height:1px;background:var(--gold)}
.gvx-enquire p{text-align:center;color:var(--gold-soft);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;font-family:var(--f-sans);margin:4px 0 16px}
.gvx-enquire input,.gvx-enquire select{width:100%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.22);border-radius:10px;padding:13px 14px;color:#fff;margin-bottom:11px;font-family:var(--f-body);font-size:.92rem}
.gvx-enquire input::placeholder{color:rgba(255,255,255,.6)}
.gvx-enquire select{color:rgba(255,255,255,.7)}
.gvx-enquire .btn{width:100%;justify-content:center;margin-top:3px}
.gvx-enquire__trust{display:flex;justify-content:center;gap:16px;margin-top:14px;color:rgba(255,255,255,.75);font-size:.68rem;font-family:var(--f-sans);letter-spacing:.04em}
.gvx-enquire__trust span{display:flex;align-items:center;gap:5px}
.gvx-hero__scroll{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);z-index:2;text-align:center;color:rgba(255,255,255,.8);font-family:var(--f-sans);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase}
.gvx-hero__scroll .mouse{width:22px;height:36px;border:2px solid rgba(255,255,255,.6);border-radius:12px;margin:0 auto 8px;position:relative}
.gvx-hero__scroll .mouse::after{content:'';position:absolute;left:50%;top:7px;width:3px;height:7px;background:#fff;border-radius:2px;transform:translateX(-50%);animation:gvxwheel 1.6s infinite}
@keyframes gvxwheel{0%{opacity:0;transform:translate(-50%,0)}40%{opacity:1}100%{opacity:0;transform:translate(-50%,12px)}}
/* SECTION base */
.gvx-sec{padding:92px 0;background:var(--bg)}
.gvx-sec--beige{background:var(--beige)}
.gvx-sec--forest{background:var(--forest);color:#fff}
.gvx-head{text-align:center;margin-bottom:44px}
.gvx-head .eyebrow{display:block;margin-bottom:10px}
.gvx-head .sec-title{color:inherit}
/* ABOUT */
.gvx-about{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.gvx-about__media{position:relative;border-radius:var(--r);overflow:hidden;box-shadow:0 30px 60px rgba(27,67,50,.18)}
.gvx-about__media img{width:100%;height:440px;object-fit:cover}
.gvx-about__play{position:absolute;inset:0;margin:auto;width:74px;height:74px;border-radius:50%;background:rgba(255,255,255,.9);display:grid;place-items:center;cursor:pointer}
.gvx-about__play::after{content:'';border-left:20px solid var(--forest);border-top:12px solid transparent;border-bottom:12px solid transparent;margin-left:5px}
.gvx-about h2{font-size:clamp(2rem,4vw,3rem);margin:10px 0 16px}
.gvx-about__features{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:26px 0}
.gvx-about__features .f{text-align:center}
.gvx-about__features .ic{width:46px;height:46px;margin:0 auto 8px;color:var(--forest)}
.gvx-about__features .t{font-family:var(--f-sans);font-weight:700;font-size:.82rem;color:var(--ink)}
/* PROJECTS */
.gvx-proj{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.gvx-card{background:#fff;border-radius:var(--r);overflow:hidden;box-shadow:0 16px 40px rgba(27,67,50,.12);transition:.4s var(--ease)}
.gvx-card:hover{transform:translateY(-6px);box-shadow:0 26px 60px rgba(27,67,50,.2)}
.gvx-card__img{height:210px;overflow:hidden}.gvx-card__img img{width:100%;height:100%;object-fit:cover;transition:.6s var(--ease)}.gvx-card:hover .gvx-card__img img{transform:scale(1.07)}
.gvx-card__body{padding:22px}
.gvx-card__body h3{font-size:1.4rem;color:var(--forest)}
.gvx-card__loc{font-family:var(--f-sans);font-size:.8rem;color:var(--text);margin:4px 0 12px}
.gvx-card__tags{display:flex;gap:8px;margin-bottom:14px}
.gvx-card__tags span{background:var(--beige);color:var(--forest);font-family:var(--f-sans);font-size:.68rem;font-weight:700;padding:5px 10px;border-radius:6px}
/* AMENITIES */
.gvx-amen{display:grid;grid-template-columns:repeat(9,1fr);gap:18px}
.gvx-amen .a{text-align:center}
.gvx-amen .ic{width:56px;height:56px;margin:0 auto 10px;border-radius:50%;border:1px solid rgba(255,255,255,.3);display:grid;place-items:center;color:var(--gold-soft);transition:.35s}
.gvx-amen .a:hover .ic{background:var(--gold);color:var(--forest-deep);border-color:var(--gold)}
.gvx-amen .t{font-family:var(--f-sans);font-size:.72rem;color:rgba(255,255,255,.9)}
/* INVESTMENT */
.gvx-invest{display:grid;grid-template-columns:1fr 1fr 1fr;gap:30px;align-items:center}
.gvx-invest__points li{list-style:none;display:flex;gap:10px;align-items:flex-start;margin-bottom:14px;font-family:var(--f-sans);color:var(--ink);font-weight:600;font-size:.95rem}
.gvx-invest__points li::before{content:'';flex:none;width:20px;height:20px;margin-top:2px;border-radius:50%;background:var(--gold);box-shadow:inset 0 0 0 4px var(--forest)}
.gvx-invest__photo{border-radius:var(--r);overflow:hidden;box-shadow:0 20px 50px rgba(27,67,50,.18)}.gvx-invest__photo img{width:100%;height:340px;object-fit:cover}
.gvx-roi{background:#fff;border-radius:var(--r);padding:26px;box-shadow:0 20px 50px rgba(27,67,50,.14);border:1px solid var(--line)}
.gvx-roi h4{font-family:var(--f-sans);text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;color:var(--gold-deep);margin:0 0 16px}
.gvx-roi label{display:flex;justify-content:space-between;align-items:center;font-family:var(--f-sans);font-size:.8rem;color:var(--text);margin-bottom:14px;gap:12px}
.gvx-roi input,.gvx-roi select{font-family:var(--f-sans);font-weight:700;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:9px 12px;text-align:right;width:130px;background:var(--bg)}
.gvx-roi__out{margin-top:8px;padding-top:16px;border-top:1px dashed var(--line)}
.gvx-roi__out .lab{font-family:var(--f-sans);font-size:.78rem;color:var(--text)}
.gvx-roi__out strong{display:block;font-family:var(--f-display);font-size:2.2rem;color:var(--forest)}
.gvx-roi .btn{width:100%;justify-content:center;margin-top:16px}
/* MASTER LAYOUT */
.gvx-layout{display:grid;grid-template-columns:230px 1fr;gap:30px;align-items:center}
.gvx-legend li{list-style:none;display:flex;align-items:center;gap:10px;font-family:var(--f-sans);font-size:.85rem;color:var(--text);margin-bottom:12px}
.gvx-legend .dot{width:14px;height:14px;border-radius:50%}
.gvx-legend .dot--a{background:#6ba86d}.gvx-legend .dot--b{background:#c0463b}.gvx-legend .dot--c{background:var(--gold)}
.gvx-legend .tool{color:var(--forest);opacity:.75}
.gvx-map{background:#eef1e6;border-radius:var(--r);padding:20px;box-shadow:inset 0 0 0 1px var(--line)}
.gvx-map svg{width:100%;height:auto}
.gvx-plot rect{cursor:pointer;transition:.2s}
.gvx-plot.is-active rect{stroke:var(--forest-deep);stroke-width:2.5}
.gvx-tip{margin-top:12px;text-align:center;font-family:var(--f-sans);font-size:.85rem;color:var(--forest);font-weight:700;min-height:1.2em}
/* GALLERY */
.gvx-filters{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-bottom:26px}
.gvx-chip{font-family:var(--f-sans);font-size:.78rem;font-weight:700;padding:9px 18px;border-radius:30px;border:1px solid var(--line);background:transparent;color:var(--text);cursor:pointer;transition:.3s}
.gvx-chip.is-active{background:var(--forest);color:#fff;border-color:var(--forest)}
.gvx-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;grid-auto-rows:200px}
.gvx-grid .g{position:relative;border-radius:12px;overflow:hidden}
.gvx-grid .g img{width:100%;height:100%;object-fit:cover;transition:.6s var(--ease)}
.gvx-grid .g:hover img{transform:scale(1.08)}
.gvx-grid .g--tall{grid-row:span 2}
.gvx-grid .g.is-hidden{display:none}
/* LOCATION */
.gvx-loc{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:stretch}
.gvx-loc__map iframe{width:100%;height:100%;min-height:330px;border:0;border-radius:var(--r)}
.gvx-near h4{color:#fff;font-family:var(--f-display);font-size:1.4rem;margin-bottom:16px}
.gvx-near .n{display:flex;gap:12px;align-items:center;margin-bottom:14px}
.gvx-near .n img{width:56px;height:56px;border-radius:10px;object-fit:cover;flex:none}
.gvx-near .n .t{font-family:var(--f-sans);font-weight:700;color:#fff;font-size:.92rem}
.gvx-near .n .d{font-size:.78rem;color:var(--gold-soft)}
.gvx-loc__wild{border-radius:var(--r);overflow:hidden}.gvx-loc__wild img{width:100%;height:100%;object-fit:cover}
/* TESTIMONIALS */
.gvx-testi{position:relative;text-align:center;max-width:720px;margin:0 auto}
.gvx-testi__q{font-family:var(--f-display);font-style:italic;font-size:1.5rem;color:var(--ink);line-height:1.5}
.gvx-testi__who{margin-top:18px;font-family:var(--f-sans);font-weight:700;color:var(--forest)}
.gvx-testi__city{font-size:.8rem;color:var(--text)}
.gvx-testi .swiper-slide{opacity:0;transition:.4s}.gvx-testi .swiper-slide-active{opacity:1}
.gvx-dots{display:flex;justify-content:center;gap:8px;margin-top:22px}
.gvx-dots .swiper-pagination-bullet{width:8px;height:8px;background:var(--gold);opacity:.4}
.gvx-dots .swiper-pagination-bullet-active{opacity:1;width:22px;border-radius:4px}
/* CTA strip */
.gvx-cta{position:relative;padding:70px 0;color:#fff;text-align:center;overflow:hidden}
.gvx-cta__bg{position:absolute;inset:0;z-index:0}.gvx-cta__bg img{width:100%;height:100%;object-fit:cover}
.gvx-cta__bg::after{content:'';position:absolute;inset:0;background:rgba(10,31,22,.78)}
.gvx-cta .wrap{position:relative;z-index:1}
.gvx-cta h2{color:#fff;font-size:clamp(1.8rem,4vw,2.8rem);margin-bottom:8px}
.gvx-cta p{color:var(--gold-soft);margin-bottom:22px}
.gvx-cta__actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
/* HEADER (xpro) */
.gvx-header{position:fixed;top:0;left:0;width:100%;z-index:999;transition:.4s var(--ease)}
.gvx-header__in{display:flex;align-items:center;gap:24px;padding:18px 0}
.gvx-header.is-scrolled{background:var(--ivory);box-shadow:0 8px 30px rgba(27,67,50,.1)}
.gvx-brand{display:flex;align-items:center;gap:10px;color:#fff}
.gvx-header.is-scrolled .gvx-brand{color:var(--forest)}
.gvx-brand .ic{width:38px;height:38px;color:var(--gold)}
.gvx-brand b{font-family:var(--f-display);font-size:1.25rem;line-height:1;display:block;letter-spacing:.02em}
.gvx-brand small{font-family:var(--f-sans);font-size:.62rem;letter-spacing:.34em;text-transform:uppercase;opacity:.8}
.gvx-nav{display:flex;gap:26px;margin-left:auto}
.gvx-nav a{font-family:var(--f-sans);font-size:.82rem;font-weight:600;color:#fff;letter-spacing:.03em;position:relative}
.gvx-header.is-scrolled .gvx-nav a{color:var(--ink)}
.gvx-nav a::after{content:'';position:absolute;left:0;bottom:-6px;width:0;height:2px;background:var(--gold);transition:.3s}
.gvx-nav a:hover::after,.gvx-nav a.is-active::after{width:100%}
.gvx-header__phone{background:var(--gold);color:#241c0b;font-family:var(--f-sans);font-weight:700;font-size:.82rem;padding:11px 18px;border-radius:10px;display:flex;align-items:center;gap:8px}
.gvx-burger{display:none;margin-left:auto;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer}
.gvx-burger span{width:26px;height:2px;background:#fff}.gvx-header.is-scrolled .gvx-burger span{background:var(--forest)}
.gvx-mnav{position:fixed;inset:0 0 0 auto;width:min(80vw,320px);background:var(--forest-deep);z-index:1000;transform:translateX(100%);transition:.4s var(--ease);padding:90px 30px;display:flex;flex-direction:column;gap:18px}
.gvx-mnav.is-open{transform:none}
.gvx-mnav a{color:#fff;font-family:var(--f-sans);font-weight:600;font-size:1.05rem}
.gvx-mnav__close{position:absolute;top:24px;right:26px;color:#fff;font-size:1.6rem;background:none;border:0;cursor:pointer}
/* FOOTER (xpro) */
.gvx-footer{background:var(--forest-deep);color:rgba(255,255,255,.8);padding:70px 0 24px}
.gvx-footer__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr 1.4fr;gap:34px}
.gvx-footer h5{font-family:var(--f-sans);text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;color:var(--gold-soft);margin:0 0 16px}
.gvx-footer a{color:rgba(255,255,255,.8);font-size:.9rem;display:block;margin-bottom:9px}.gvx-footer a:hover{color:var(--gold)}
.gvx-footer .gvx-brand{color:#fff;margin-bottom:14px}
.gvx-footer__soc{display:flex;gap:10px;margin-top:14px}
.gvx-footer__soc a{width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.2);display:grid;place-items:center;margin:0}
.gvx-footer__soc a:hover{background:var(--gold);color:var(--forest-deep)}
.gvx-news input{width:100%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);border-radius:30px;padding:12px 16px;color:#fff;margin-bottom:10px}
.gvx-news .btn{border-radius:30px}
.gvx-footer__bar{border-top:1px solid rgba(255,255,255,.12);margin-top:40px;padding-top:20px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:.8rem}
/* FLOAT */
.gvx-wa{position:fixed;right:22px;bottom:22px;width:56px;height:56px;border-radius:50%;background:#25d366;display:grid;place-items:center;z-index:900;box-shadow:0 10px 30px rgba(0,0,0,.25);color:#fff}
.gvx-top{position:fixed;right:24px;bottom:88px;width:46px;height:46px;border-radius:50%;background:var(--forest);color:#fff;display:grid;place-items:center;z-index:900;opacity:0;pointer-events:none;transition:.3s;cursor:pointer}
.gvx-top.is-show{opacity:1;pointer-events:auto}
[data-reveal]{opacity:0;transform:translateY(26px);transition:.8s var(--ease)}
[data-reveal].is-in{opacity:1;transform:none}
@media(max-width:1024px){
.gvx-nav,.gvx-header__phone{display:none}.gvx-burger{display:flex}
.gvx-hero .wrap{grid-template-columns:1fr}.gvx-enquire{max-width:460px}
.gvx-about{grid-template-columns:1fr;gap:34px}
.gvx-proj{grid-template-columns:1fr}
.gvx-amen{grid-template-columns:repeat(5,1fr);gap:22px}
.gvx-invest{grid-template-columns:1fr}
.gvx-layout{grid-template-columns:1fr}
.gvx-loc{grid-template-columns:1fr}
.gvx-footer__grid{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
.gvx-hero__stats{grid-template-columns:1fr 1fr;gap:18px}
.gvx-about__features{grid-template-columns:1fr 1fr}
.gvx-amen{grid-template-columns:repeat(3,1fr)}
.gvx-grid{grid-template-columns:1fr 1fr;grid-auto-rows:150px}
.gvx-footer__grid{grid-template-columns:1fr}
.gvx-hero__actions .btn{flex:1}
}