/* GIRVI V5 — layout correction + coordinated micro-motion layer */
:root{--ease-spring:cubic-bezier(.2,.85,.25,1);--ease-soft:cubic-bezier(.22,1,.36,1);--mx:50vw;--my:30vh}

/* 1) Remove the blank band below the header. Main content starts immediately. */
.site-header{padding:10px 0;transition:padding .35s var(--ease-soft),background .35s,border-color .35s,box-shadow .35s}
.header-inner{height:58px}
.site-header.scrolled{padding:7px 0}
.hero.section-pad{padding-top:18px;padding-bottom:72px}
.hero-grid{align-items:start}
.hero-copy{padding-top:26px}
.hero-showcase{align-self:start}
@media(max-width:1280px){.hero.section-pad{padding-top:16px}.hero-copy{padding-top:22px}}
@media(max-width:1040px){.hero.section-pad{padding-top:14px}.hero-copy{padding-top:10px}.hero-grid{gap:34px}}
@media(max-width:760px){.hero.section-pad{padding-top:12px;padding-bottom:58px}.hero-copy{padding-top:6px}}

/* 2) Ambient ultra-micro texture */
.micro-grid{position:fixed;inset:0;z-index:-2;pointer-events:none;opacity:.42;background-image:linear-gradient(rgba(143,103,22,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(19,143,146,.024) 1px,transparent 1px);background-size:46px 46px;mask-image:radial-gradient(circle at 55% 24%,#000 0,transparent 72%);animation:gridDrift 26s linear infinite}
@keyframes gridDrift{to{background-position:46px 46px,-46px -46px}}
.page-glow{will-change:transform;animation:ambientFloat 14s ease-in-out infinite alternate}
.page-glow-b{animation-delay:-5s;animation-duration:18s}
@keyframes ambientFloat{0%{transform:translate3d(-12px,-8px,0) scale(.96)}100%{transform:translate3d(22px,24px,0) scale(1.08)}}
.hero{position:relative;isolation:isolate}
.hero:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at 14% 24%,rgba(247,215,120,.16),transparent 24%),radial-gradient(circle at 76% 18%,rgba(19,143,146,.08),transparent 26%);animation:heroAura 10s ease-in-out infinite alternate}
@keyframes heroAura{to{filter:saturate(1.18);transform:scale(1.015)}}
.hero-ambient{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.hero-ambient i{position:absolute;width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 20px rgba(220,167,43,.34);opacity:.34;animation:particleFloat 9s ease-in-out infinite}
.hero-ambient i:nth-child(1){left:9%;top:16%}.hero-ambient i:nth-child(2){left:48%;top:8%;animation-delay:-3s;background:var(--teal)}.hero-ambient i:nth-child(3){right:8%;top:35%;animation-delay:-5s}.hero-ambient i:nth-child(4){left:41%;bottom:10%;animation-delay:-7s;background:var(--teal)}
@keyframes particleFloat{50%{transform:translate3d(12px,-18px,0) scale(1.5);opacity:.7}}

/* 3) Header + brand */
.site-header{animation:headerDrop .7s var(--ease-soft) both}
@keyframes headerDrop{from{opacity:0;transform:translateY(-18px)}to{opacity:1;transform:none}}
.brand-mark{position:relative;transition:transform .5s var(--ease-spring),box-shadow .4s,border-color .4s}
.brand-mark:after{content:"";position:absolute;inset:-6px;border:1px solid color-mix(in srgb,var(--gold) 24%,transparent);border-radius:10px;opacity:0;transform:scale(.7);transition:.45s var(--ease-spring)}
.brand:hover .brand-mark{transform:rotate(75deg) scale(1.06);box-shadow:0 0 24px rgba(220,167,43,.18)}
.brand:hover .brand-mark:after{opacity:1;transform:scale(1)}
.brand-word{background:linear-gradient(90deg,var(--ink) 0 42%,var(--gold-deep) 50%,var(--ink) 58% 100%);background-size:260% 100%;background-position:100% 0;-webkit-background-clip:text;color:transparent;transition:background-position .7s ease,letter-spacing .35s}
.brand:hover .brand-word{background-position:0 0;letter-spacing:5.7px}
.desktop-nav a{position:relative;padding:8px 0;transition:color .25s,transform .25s}
.desktop-nav a:after{content:"";position:absolute;left:50%;right:50%;bottom:1px;height:2px;border-radius:99px;background:linear-gradient(90deg,var(--gold),var(--teal));transition:left .28s var(--ease-soft),right .28s var(--ease-soft)}
.desktop-nav a:hover{transform:translateY(-1px)}.desktop-nav a:hover:after,.desktop-nav a.is-active:after{left:0;right:0}
.theme-btn{transition:transform .45s var(--ease-spring),box-shadow .3s,background .3s}.theme-btn:hover{transform:rotate(12deg) scale(1.06);box-shadow:0 12px 28px rgba(75,55,20,.10)}
.theme-btn span{display:inline-block;transition:transform .45s var(--ease-spring)}.theme-btn:hover span{transform:rotate(85deg)}
.menu-btn span{transition:transform .35s var(--ease-spring),top .35s,opacity .35s}.site-header.open .menu-btn span:first-child{top:21px;transform:rotate(45deg)}.site-header.open .menu-btn span:last-child{top:21px;transform:rotate(-45deg)}

/* 4) Buttons: gradient motion, sheen, magnetic micro movement, click ripple */
.btn{position:relative;overflow:hidden;isolation:isolate;--mag-x:0px;--mag-y:0px;transform:translate3d(var(--mag-x),var(--mag-y),0);transition:transform .28s var(--ease-spring),box-shadow .28s,border-color .28s,filter .28s}
.btn:before{content:"";position:absolute;inset:-1px;z-index:-1;background:linear-gradient(105deg,transparent 20%,rgba(255,255,255,.5) 46%,transparent 70%);transform:translateX(-150%) skewX(-16deg);transition:transform .72s var(--ease-soft)}
.btn:hover{transform:translate3d(var(--mag-x),calc(var(--mag-y) - 3px),0);filter:saturate(1.08)}
.btn:hover:before{transform:translateX(150%) skewX(-16deg)}
.btn>span:last-child{display:inline-block;transition:transform .3s var(--ease-spring)}.btn:hover>span:last-child{transform:translate(3px,-3px) rotate(4deg)}
.btn:active{transform:translate3d(var(--mag-x),calc(var(--mag-y) + 1px),0) scale(.985)}
.fx-ripple{position:absolute;width:12px;height:12px;border-radius:50%;pointer-events:none;background:rgba(255,255,255,.56);transform:translate(-50%,-50%) scale(0);animation:ripple .72s ease-out forwards;z-index:5}
@keyframes ripple{to{transform:translate(-50%,-50%) scale(18);opacity:0}}

/* 5) Hero copy — micro typography motion */
.eyebrow{overflow:hidden}.eyebrow>span{position:relative;overflow:hidden}.eyebrow>span:after{content:"";position:absolute;inset:0;background:var(--teal);transform:translateX(-110%);animation:eyebrowPulse 3.4s ease-in-out infinite}
@keyframes eyebrowPulse{45%,100%{transform:translateX(115%)}}
.hero-copy h1{animation:headlineIn .85s .08s var(--ease-soft) both}
.hero-copy h1>span{background-size:180% 100%;animation:gradientTravel 7s ease-in-out infinite alternate}
@keyframes headlineIn{from{opacity:0;transform:translateY(18px);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}
@keyframes gradientTravel{to{background-position:100% 0}}
.hero-lead{animation:fadeSlide .7s .2s var(--ease-soft) both}.hero-actions{animation:fadeSlide .7s .3s var(--ease-soft) both}.hero-trust{animation:fadeSlide .7s .42s var(--ease-soft) both}
@keyframes fadeSlide{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.hero-trust>div{position:relative;transition:transform .3s var(--ease-spring),border-color .3s}.hero-trust>div:before{content:"";position:absolute;top:-1px;left:0;width:0;height:1px;background:linear-gradient(90deg,var(--gold),var(--teal));transition:width .5s var(--ease-soft)}.hero-trust>div:hover{transform:translateY(-3px)}.hero-trust>div:hover:before{width:100%}

/* 6) Showcase */
.hero-showcase{perspective:1200px}
.model-card,.mini-card,.action-card,.product-card,.trust-card,.process-shell,.estimate-card,.eligibility-card,.partner-shell,.partner-board,.final-card{--spot-x:50%;--spot-y:50%;position:relative;transition:transform .35s var(--ease-spring),box-shadow .35s,border-color .35s,background-color .35s}
.model-card:after,.mini-card:after,.action-card:after,.product-card:after,.trust-card:after,.process-shell:after,.estimate-card:after,.eligibility-card:after,.partner-shell:after,.partner-board:after,.final-card:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:0;background:radial-gradient(250px circle at var(--spot-x) var(--spot-y),rgba(255,255,255,.22),transparent 60%);opacity:0;transition:opacity .25s}
.model-card:hover:after,.mini-card:hover:after,.action-card:hover:after,.product-card:hover:after,.trust-card:hover:after,.process-shell:hover:after,.estimate-card:hover:after,.eligibility-card:hover:after,.partner-shell:hover:after,.partner-board:hover:after,.final-card:hover:after{opacity:.72}
.model-card>* ,.mini-card>* ,.action-card>* ,.product-card>* ,.trust-card>* ,.process-shell>* ,.estimate-card>* ,.eligibility-card>* ,.partner-shell>* ,.partner-board>* ,.final-card>*{position:relative;z-index:1}
.model-card{transform:translateZ(0)}.model-card:hover{transform:translateY(-4px);box-shadow:0 36px 90px rgba(79,55,19,.16)}
.model-halo{animation:haloBreath 5.2s ease-in-out infinite alternate}@keyframes haloBreath{to{transform:scale(1.08);filter:saturate(1.15);opacity:.86}}
.model-visual img{transform-origin:50% 100%;animation:modelFloat 5.5s ease-in-out infinite,modelGlow 7s ease-in-out infinite alternate}@keyframes modelGlow{to{filter:drop-shadow(0 30px 34px rgba(80,48,13,.21)) saturate(1.06)}}
.model-meta i,.status-dot,.live-badge i{animation:livePulse 1.8s ease-in-out infinite}@keyframes livePulse{50%{transform:scale(1.35);box-shadow:0 0 0 6px rgba(25,166,107,0)}}
.mini-card:hover{transform:translateY(-5px) scale(1.01);border-color:color-mix(in srgb,var(--gold) 35%,var(--line))}
.mini-card>a span,.text-link span{display:inline-block;transition:transform .3s var(--ease-spring)}.mini-card>a:hover span,.text-link:hover span{transform:translate(4px,-3px)}
.mini-bars i{transform-origin:bottom;animation:barDance 3.6s ease-in-out infinite}.mini-bars i:nth-child(2){animation-delay:-.5s}.mini-bars i:nth-child(3){animation-delay:-1s}.mini-bars i:nth-child(4){animation-delay:-1.5s}.mini-bars i:nth-child(5){animation-delay:-2s}.mini-bars i:nth-child(6){animation-delay:-2.5s}@keyframes barDance{50%{transform:scaleY(1.18);filter:brightness(1.12)}}
.support-icon,.action-icon,.product-symbol,.trust-card>i{transition:transform .45s var(--ease-spring),box-shadow .35s,background .35s}.support-card:hover .support-icon,.action-card:hover .action-icon,.product-card:hover .product-symbol,.trust-card:hover>i{transform:translateY(-3px) rotate(-4deg) scale(1.08);box-shadow:0 10px 24px rgba(19,143,146,.15)}

/* 7) Rate band */
.rate-band{position:relative;overflow:hidden}.rate-band:before{content:"";position:absolute;inset:0;background:linear-gradient(95deg,transparent 15%,rgba(247,215,120,.14) 42%,rgba(19,143,146,.08) 56%,transparent 82%);transform:translateX(-110%);animation:rateSheen 9s ease-in-out infinite}@keyframes rateSheen{0%,72%,100%{transform:translateX(-110%)}84%{transform:translateX(110%)}}
.rate-band-grid>*{position:relative;z-index:1}.rate-tile,.rate-time{transition:background .3s,transform .3s var(--ease-spring)}.rate-tile:hover,.rate-time:hover{background:color-mix(in srgb,var(--surface-2) 45%,transparent);transform:translateY(-2px)}
.rate-tile b{display:inline-block;transition:transform .25s,color .25s}.rate-tile:hover b{transform:scale(1.035);color:var(--gold-deep)}

/* 8) All content cards */
.action-card{overflow:hidden}.action-card:hover{transform:translateY(-7px);box-shadow:0 26px 58px rgba(77,57,23,.14);border-color:color-mix(in srgb,var(--gold) 28%,var(--line))}.action-card>b{transition:transform .35s var(--ease-spring)}.action-card:hover>b{transform:translate(4px,-4px) rotate(5deg)}
.product-card{overflow:hidden}.product-card:hover{transform:translateY(-7px);box-shadow:0 28px 64px rgba(77,57,23,.13)}.product-card li{transition:transform .25s,color .25s}.product-card:hover li:nth-child(1){transform:translateX(3px)}.product-card:hover li:nth-child(2){transform:translateX(6px)}.product-card:hover li:nth-child(3){transform:translateX(9px)}
.product-number{transition:letter-spacing .35s,color .35s}.product-card:hover .product-number{letter-spacing:2px;color:var(--gold-deep)}
.process-list article{transition:transform .3s var(--ease-spring),background .3s,border-color .3s}.process-list article:hover{transform:translateX(6px);background:color-mix(in srgb,var(--surface-2) 38%,transparent)}.process-list article>b{transition:transform .4s var(--ease-spring)}.process-list article:hover>b{transform:rotate(-6deg) scale(1.08)}
.value-photo-card{transition:transform .45s var(--ease-spring),box-shadow .35s}.value-photo-card:hover{transform:translateY(-5px);box-shadow:0 30px 70px rgba(76,52,18,.15)}.value-photo-card img{transition:transform .8s var(--ease-soft),filter .5s}.value-photo-card:hover img{transform:scale(1.035);filter:saturate(1.06)}
.estimate-card select,.estimate-card input,.eligibility-card input{transition:box-shadow .3s,border-color .3s,filter .3s}.estimate-card select:focus,.estimate-card input:focus,.eligibility-card input:focus{outline:none;box-shadow:0 0 0 4px rgba(220,167,43,.12);border-color:var(--gold)}
input[type="range"]{accent-color:var(--gold)}
.estimate-result strong{display:inline-block;transition:transform .3s,color .3s}.estimate-card:hover .estimate-result strong{transform:translateY(-2px);color:var(--gold-deep)}
.eligibility-step[data-step="1"] button{position:relative;overflow:hidden;transition:transform .25s var(--ease-spring),border-color .25s,background .25s}.eligibility-step[data-step="1"] button:hover{transform:translateX(5px);background:#132a40}.eligibility-step[data-step="1"] button i{transition:transform .35s var(--ease-spring)}.eligibility-step[data-step="1"] button:hover i{transform:rotate(-6deg) scale(1.08)}
.progress{position:relative}.progress:after{content:"";position:absolute;top:0;bottom:0;width:42px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.68),transparent);animation:progressShine 2.8s linear infinite}@keyframes progressShine{from{left:-50px}to{left:110%}}
.trust-card{overflow:hidden}.trust-card:hover{transform:translateY(-6px);box-shadow:0 24px 56px rgba(74,55,22,.10)}
.partner-row span{transition:transform .28s var(--ease-spring),border-color .28s,box-shadow .28s}.partner-row span:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--teal) 26%,var(--line));box-shadow:0 16px 30px rgba(19,143,146,.09)}
.partner-core .brand-mark{animation:coreSpin 14s linear infinite}@keyframes coreSpin{to{transform:rotate(390deg)}}
.final-card{overflow:hidden}.final-card:before{content:"";position:absolute;width:440px;height:440px;border-radius:50%;right:-200px;top:-220px;background:radial-gradient(circle,rgba(247,215,120,.14),transparent 66%);animation:finalGlow 6s ease-in-out infinite alternate}.final-card>*{position:relative;z-index:1}@keyframes finalGlow{to{transform:translate(-35px,34px) scale(1.14)}}

/* 9) Links + footer micro interactions */
.text-link,.footer-grid a{position:relative}.footer-grid a:after{content:"";position:absolute;left:0;bottom:-3px;width:0;height:1px;background:linear-gradient(90deg,var(--gold),var(--teal));transition:width .3s}.footer-grid a:hover:after{width:100%}
.footer-grid a{transition:color .25s,transform .25s}.footer-grid a:hover{transform:translateX(3px)}

/* 10) Reveal polish */
.reveal{filter:blur(3px);transform:translateY(22px) scale(.992);transition:opacity .75s var(--ease-soft),transform .85s var(--ease-soft),filter .75s}.reveal.in{filter:none;transform:none}
.section-kicker{background:linear-gradient(90deg,var(--gold-deep),var(--gold),var(--teal),var(--gold-deep));background-size:250% 100%;-webkit-background-clip:text;color:transparent;animation:kickerFlow 7s linear infinite}@keyframes kickerFlow{to{background-position:250% 0}}

/* Dark-theme tuning */
body[data-theme="dark"] .model-card:after,body[data-theme="dark"] .mini-card:after,body[data-theme="dark"] .action-card:after,body[data-theme="dark"] .product-card:after,body[data-theme="dark"] .trust-card:after,body[data-theme="dark"] .process-shell:after,body[data-theme="dark"] .estimate-card:after,body[data-theme="dark"] .eligibility-card:after,body[data-theme="dark"] .partner-shell:after,body[data-theme="dark"] .partner-board:after,body[data-theme="dark"] .final-card:after{background:radial-gradient(250px circle at var(--spot-x) var(--spot-y),rgba(85,200,198,.09),rgba(226,179,64,.07) 32%,transparent 64%)}

@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{animation:none!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1!important;transform:none!important;filter:none!important}
}
