/* ============ Nerya Realty — professional polish layer ============
   Calm, confident motion. No ambient loops, no gimmicks. */
:root{--ease:cubic-bezier(.22,.61,.36,1);--ease-out:cubic-bezier(.16,1,.3,1);--r:14px;--bar:76px;
 --hair:color-mix(in srgb,var(--ink) 12%,transparent)}
html{scroll-padding-top:calc(var(--bar) + 12px)}
body{font-feature-settings:"kern","liga";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3{letter-spacing:-.018em;text-wrap:balance}
p{text-wrap:pretty}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px;border-radius:6px}
.skip{position:fixed;left:16px;top:-64px;z-index:300;background:var(--forest);color:#fff;padding:12px 18px;border-radius:10px;font-weight:700;text-decoration:none;transition:top .2s}
.skip:focus{top:12px}
#progress{position:fixed;left:0;top:0;height:3px;width:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,var(--leaf),var(--orange));z-index:400;pointer-events:none}

/* ---- header ---- */
.topbar{transition:box-shadow .3s var(--ease),background-color .3s}
.nav{height:var(--bar);transition:height .3s var(--ease)}
.topbar.scrolled{box-shadow:0 10px 30px -18px rgba(8,40,30,.45)}
.topbar.scrolled .nav{height:62px}
.brand img{height:auto;width:auto;max-height:52px;max-width:96px;border-radius:9px;transition:max-height .3s var(--ease)}
.topbar.scrolled .brand img{max-height:42px}
.navlinks button{position:relative;border-radius:8px;transition:color .2s,background-color .2s}
.navlinks button:after{content:"";position:absolute;left:13px;right:13px;bottom:5px;height:2px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.navlinks button:hover{background:transparent;color:var(--forest-2)}
.navlinks button.active{background:transparent;color:var(--forest-2)}
.navlinks button:hover:after,.navlinks button.active:after{transform:scaleX(1)}
.nav-cta,.btn{animation:none!important;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background-color .25s,color .25s,border-color .25s}
.nav-cta{border-radius:10px;padding:11px 18px;box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 8px 18px -8px rgba(201,100,16,.6)}
.btn{border-radius:10px;letter-spacing:.005em}
.btn.primary,.nav-cta{background:linear-gradient(180deg,#f59644,#ee7f20)}
.btn.primary{box-shadow:0 1px 0 rgba(255,255,255,.28) inset,0 12px 22px -12px rgba(201,100,16,.7)}
.btn:hover,.nav-cta:hover{transform:translateY(-2px)}
.btn:active,.nav-cta:active{transform:translateY(0)}
.btn.primary:hover,.nav-cta:hover{box-shadow:0 1px 0 rgba(255,255,255,.28) inset,0 16px 28px -12px rgba(201,100,16,.8)}
.btn.primary:before,.hero-actions .btn.primary:before{display:none!important}
.btn.ghost{border-color:rgba(255,255,255,.5)}
.btn.green{background:var(--forest);color:#fff}
.btn.green:hover{background:var(--forest-2)}

/* ---- hero: split layout ---- */
.hero{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,1fr);min-height:min(720px,calc(100vh - var(--bar)));background:var(--forest)}
.hero-copy{min-height:0;align-items:flex-start;text-align:left;justify-content:center;padding:clamp(48px,7vw,96px) clamp(24px,5vw,72px) clamp(48px,7vw,96px) max(26px,calc((100vw - 1180px)/2));background:radial-gradient(900px 500px at 0% 0%,#14513f 0%,transparent 60%),var(--forest)}
.hero-copy:before,.hero-copy:after,.hero-media:before,.hero-spark,.float-badge{display:none!important}
.hero-copy .eyebrow{justify-content:flex-start}
.hero-copy h1,.hero-copy p{margin-left:0;margin-right:0}
.hero-copy .actions{justify-content:flex-start}
.hero-logo{width:min(190px,48%);height:auto;max-height:none;margin:0 0 30px;border-radius:0;box-shadow:none;align-self:flex-start;animation:rise .9s var(--ease-out) both}
.hero .eyebrow{color:#9fe0b8}
h1{font-size:clamp(2.5rem,4.6vw,4.4rem);line-height:1.04}
.hero-title span,.hero-title em{animation:rise .9s var(--ease-out) both!important}
.hero-title em{color:#7ee0a2;font-style:italic}
.hero-lede{max-width:520px;font-size:clamp(1rem,1.25vw,1.15rem);line-height:1.65;animation:rise .9s var(--ease-out) .35s both!important}
.hero-lede strong{color:#fff}
.hero-actions{animation:rise .9s var(--ease-out) .5s both!important;gap:12px}
.hero-actions .btn.primary{min-width:0}
.hero-kicker{animation:rise .8s var(--ease-out) .05s both!important}
.hero-media{height:auto;min-height:100%;overflow:hidden}
.hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.04);animation:heroZoom 2.4s var(--ease-out) both}
.hero-media:after{background:linear-gradient(90deg,rgba(13,63,50,.55) 0%,rgba(13,63,50,0) 38%),linear-gradient(0deg,rgba(6,30,23,.55) 0%,transparent 40%)}
.hero-note{animation:rise .9s var(--ease-out) .8s both!important;left:auto;right:clamp(18px,3vw,40px);bottom:clamp(18px,3vw,40px);transform:none;border-radius:12px;border:1px solid rgba(255,255,255,.6);backdrop-filter:blur(10px);background:rgba(255,253,248,.9);max-width:290px;padding:16px 18px}
.hero-note strong{font-size:1.05rem}
@keyframes rise{from{opacity:0;transform:translate3d(0,22px,0)}to{opacity:1;transform:none}}
@keyframes heroZoom{from{transform:scale(1.12);opacity:.0}to{transform:scale(1.02);opacity:1}}
@media(max-width:900px){
 .hero{grid-template-columns:1fr;min-height:0}
 .hero-media{min-height:340px;order:2}
 .hero-copy{padding:44px 22px 48px}
 h1{font-size:clamp(2.2rem,9vw,3rem)}
}

/* ---- ribbon + intro strip ---- */
.feature-ribbon{background:#0a3126;color:#cfe6da;border-block:1px solid rgba(255,255,255,.08)}
.feature-ribbon-track{animation-duration:46s!important}
.feature-ribbon-track span{font-size:.72rem;letter-spacing:.2em;color:#cfe6da}
.feature-ribbon-track span:after{color:var(--orange)}
.intro-strip{background:var(--cream)}
.intro-item{transition:background-color .3s}
.intro-item:hover{transform:none!important}

/* ---- section rhythm ---- */
section{padding-block:clamp(64px,8vw,104px)}
.section-head{margin-bottom:clamp(28px,4vw,44px);align-items:end}
.section-head h2{font-size:clamp(1.9rem,3.4vw,3rem);line-height:1.08}
.section-head p{max-width:46ch}
.eyebrow{letter-spacing:.16em;font-weight:700}

/* ---- cards ---- */
.listing,.service,.video-tile,.gallery figure,.quote,.floorplan{border-radius:var(--r)!important;transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s!important}
.listing{border:1px solid var(--line);box-shadow:0 1px 2px rgba(10,40,30,.04);overflow:hidden;background:var(--card)}
.listing:hover,.service:hover,.video-tile:hover{transform:translateY(-6px)!important;box-shadow:0 24px 44px -24px rgba(10,50,38,.4)!important;border-color:color-mix(in srgb,var(--forest-2) 30%,var(--line))}
.listing:nth-child(3n+2):hover,.service:nth-child(3n+2):hover,.quote:nth-child(3n+2):hover{transform:translateY(-6px)!important}
.listing-media{overflow:hidden;aspect-ratio:3/2}
.listing-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease-out)!important}
.listing:hover .listing-media img{transform:scale(1.05)!important}
.listing[data-listing-card]{cursor:pointer}
.listing-price{font-family:"Playfair Display",serif;font-weight:700}
.tag,.type{backdrop-filter:blur(6px);border-radius:8px;letter-spacing:.1em}
.service{border:1px solid var(--line);background:var(--cream)}
.service-icon{transition:transform .4s var(--ease),background-color .3s}
.service:hover .service-icon{transform:translateY(-2px)}
.service-icon svg *{stroke-dasharray:1;stroke-dashoffset:0}
.service.rv.in .service-icon svg *{animation:draw 1.3s var(--ease-out) both}
@keyframes draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
.gallery figure{overflow:hidden}
.gallery img{transition:transform 1.2s var(--ease-out)!important}
.gallery figure:hover img{transform:scale(1.05)!important}
.filter{border-radius:12px}
.filter button{transition:background-color .25s,color .25s,box-shadow .25s}
/* spotlight on pointer devices */
@media(hover:hover) and (pointer:fine){
 .service,.listing{position:relative}
 .service:before,.listing:before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(380px circle at var(--mx,50%) var(--my,50%),rgba(56,189,112,.13),transparent 60%);opacity:0;transition:opacity .35s;pointer-events:none;z-index:1}
 .service:hover:before,.listing:hover:before{opacity:1}
}

/* ---- video tiles / floorplan / quotes ---- */
.video-tile{overflow:hidden;box-shadow:0 1px 2px rgba(10,40,30,.06)}
.video-tile .play{transition:transform .35s var(--ease),background-color .3s}
.video-tile:hover .play{transform:scale(1.08)}
.floorplan{border:1px solid var(--line)}

/* ---- broker strip / footer ---- */
.broker-panel{border-radius:20px}
.footer{border-top:1px solid rgba(255,255,255,.08)}
.footer a{transition:color .2s}
.manage-link{display:none!important}
body.show-manage .manage-link{display:inline-block!important}

/* ---- floating whatsapp: calm ---- */
.contact-rail .wa,.contact-rail .wa svg,.wa:before{animation:none!important}
.contact-rail .wa{box-shadow:0 14px 28px -10px rgba(7,70,40,.55);transition:transform .3s var(--ease),box-shadow .3s}
.contact-rail .wa:hover{transform:translateY(-3px)}

/* ---- page transitions ---- */
.page.active{animation:pageIn .55s var(--ease-out) both}
@keyframes pageIn{from{opacity:0;transform:translate3d(0,14px,0)}to{opacity:1;transform:none}}

/* ---- scroll reveal (own system, one-shot) ---- */
.js .rv:not(.in){opacity:0;transform:translate3d(0,26px,0)}
.js .rv{transition:opacity .8s var(--ease-out) var(--rd,0ms),transform .8s var(--ease-out) var(--rd,0ms)}
.js .reveal,.js .reveal.seen,.js .reveal.settled{animation:none!important}
.js .rv.in{opacity:1!important;transform:none!important}

/* ---- forms ---- */
.field input,.field select,.field textarea{border-radius:10px;transition:border-color .2s,box-shadow .2s}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--forest-2);box-shadow:0 0 0 4px color-mix(in srgb,var(--leaf) 25%,transparent)}

/* ---- print ---- */
@media print{.topbar,.contact-rail,#progress,.feature-ribbon{display:none!important}}
/* ---- reduced motion ---- */
@media(prefers-reduced-motion:reduce){
 *,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .js .rv:not(.in){opacity:1;transform:none}
}
.realty-services .service{background:var(--card)}
.realty-service h3{font-size:1.2rem;white-space:nowrap}
@media(max-width:1100px){.realty-service h3{white-space:normal}}
/* mobile: WhatsApp becomes a compact floating button instead of a full-width bar */
@media(max-width:900px){
 .contact-rail{display:contents}
 .contact-rail .wa{position:fixed;right:14px;bottom:calc(16px + env(safe-area-inset-bottom,0px));width:56px;height:56px;min-width:0;flex:none;padding:0;border-radius:50%;justify-content:center;z-index:60;box-shadow:0 14px 28px -10px rgba(7,70,40,.6)}
 .contact-rail .wa span{display:none}
 .contact-rail .wa svg{width:30px;height:30px}
}
.navlinks.open{background:var(--paper)!important;opacity:1!important;box-shadow:0 24px 40px -20px rgba(8,40,30,.5);border-bottom:1px solid var(--line)}
.navlinks.open button:after{left:13px;right:auto;width:34px}
