@font-face { font-family:"Sul Icons"; src:url('../vendor/fontawesome/webfonts/fa-solid-900.woff2') format('woff2'); font-style:normal; font-weight:900; font-display:block; }
@font-face { font-family:"Manrope"; src:url('../fonts/manrope-400.woff2') format('woff2'); font-style:normal; font-weight:400; font-display:swap; }
@font-face { font-family:"Manrope"; src:url('../fonts/manrope-500.woff2') format('woff2'); font-style:normal; font-weight:500; font-display:swap; }
@font-face { font-family:"Manrope"; src:url('../fonts/manrope-600.woff2') format('woff2'); font-style:normal; font-weight:600; font-display:swap; }
@font-face { font-family:"Manrope"; src:url('../fonts/manrope-700.woff2') format('woff2'); font-style:normal; font-weight:700; font-display:swap; }
:root { --black:#11110e; --green:#006b3f; --green-deep:#00452a; --yellow:#fbc400; --yellow-light:#ffdb40; --paper:#fff; --surface:#f3f5f2; --line:#dce2dc; --muted:#566158; --radius:1rem; --content-max:100rem; --gutter:clamp(1rem, 3vw, 3rem); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; overflow-x:hidden; color:var(--black); background:var(--paper); font-family:"Manrope", "Segoe UI", sans-serif; line-height:1.6; }
a { color:inherit; }
.container { width:min(calc(100% - (var(--gutter) * 2)), var(--content-max)); margin-inline:auto; }
.site-header { position:sticky; z-index:25; top:0; background:var(--yellow); border-bottom:1px solid rgba(17,17,14,.16); }
.header-content { position:relative; min-height:82px; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }
.brand { display:inline-flex; align-items:center; text-decoration:none; }
.brand img { display:block; width:166px; height:auto; }
nav { display:flex; gap:1.65rem; }
nav a { position:relative; padding:.4rem 0; font-size:.8rem; font-weight:600; letter-spacing:.025em; text-decoration:none; }
nav a::after { position:absolute; right:0; bottom:0; left:0; height:1px; background:var(--green); content:""; transform:scaleX(0); transform-origin:right; transition:transform .3s ease; }
nav a:hover::after { transform:scaleX(1); transform-origin:left; }
nav a.is-active { color:var(--green-deep); }
nav a.is-active::after { transform:scaleX(1); }
nav a:hover { color:var(--green); }
.nav-toggle { display:none; width:2.9rem; height:2.9rem; padding:.7rem; border:0; color:var(--black); background:transparent; cursor:pointer; }
.nav-toggle span { display:block; height:2px; margin:.32rem 0; background:currentColor; transition:transform .2s ease,opacity .2s ease; }
.nav-toggle[aria-expanded="true"] span:first-child { transform:translateY(.42rem) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; }
.nav-toggle[aria-expanded="true"] span:last-child { transform:translateY(-.42rem) rotate(-45deg); }
.button { display:inline-flex; align-items:center; justify-content:center; padding:.92rem 1.2rem; border:0; color:#fff; background:var(--green); border-radius:.25rem; font-size:.78rem; font-weight:700; letter-spacing:.035em; text-decoration:none; text-transform:uppercase; }
.button:hover { background:var(--green-deep); }
.button-small { padding:.7rem 1rem; background:var(--black); font-size:.7rem; }
.section { padding:6.5rem 0; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { letter-spacing:-.045em; }
h2 { max-width:710px; color:var(--green); font-size:clamp(2.25rem,4vw,4rem); line-height:1.02; }
.eyebrow { color:var(--green); font-size:.76rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.site-footer { padding:3.5rem 0 1.25rem; color:#fff; background:var(--black); border-top:12px solid var(--yellow); }
.footer-content { display:grid; grid-template-columns:1.05fr .45fr .7fr 1fr; gap:2rem; }
.site-footer .brand { filter:none; }
.site-footer p,address { color:#c9d0c9; font-style:normal; }
.footer-brand p { max-width:25rem; margin-top:1.1rem; }
.footer-contact,.footer-links { display:flex; flex-direction:column; align-items:flex-start; gap:.35rem; }
.footer-contact strong,.footer-links strong { margin-bottom:.25rem; }
.footer-contact a,.footer-links a { color:#c9d0c9; text-decoration:none; }
.footer-contact a:hover,.footer-links a:hover { color:var(--yellow); }
.footer-bottom { display:flex; justify-content:space-between; gap:1rem; margin-top:2rem; padding-top:1rem; border-top:1px solid #3d443d; color:#c9d0c9; font-size:.85rem; }
.footer-bottom a { color:var(--yellow); text-decoration:none; }
.footer-bottom a:hover { text-decoration:underline; }
.floating-actions { position:fixed; z-index:15; right:clamp(1rem,2vw,2rem); bottom:clamp(1rem,2vw,2rem); display:flex; flex-direction:column; align-items:flex-end; gap:.8rem; }
.floating-back-to-top,.floating-whatsapp { display:flex; align-items:center; justify-content:center; border:0; color:#fff; box-shadow:0 .7rem 1.8rem rgba(0,0,0,.2); cursor:pointer; transition:transform .22s ease,box-shadow .22s ease,background .22s ease; }
.floating-back-to-top .fa-solid,.floating-whatsapp .fa-solid { font-family:"Sul Icons"; font-style:normal; font-weight:900; line-height:1; }
.floating-back-to-top .fa-arrow-up::before { content:"\f062"; }
.floating-whatsapp .fa-phone::before { content:"\f095"; }
.floating-back-to-top .fa-arrow-up { transform:translateY(-1px); }
.floating-back-to-top { width:2.8rem; height:2.8rem; border:1px solid rgba(255,255,255,.14); border-radius:.8rem; background:var(--black); font-size:.9rem; }
.floating-whatsapp { width:3.65rem; height:3.65rem; border-radius:50%; background:#25d366; font-size:1.9rem; }
.floating-back-to-top:hover,.floating-whatsapp:hover { box-shadow:0 1rem 2.1rem rgba(0,0,0,.28); transform:translateY(-4px); }
.floating-back-to-top:hover { background:var(--green-deep); }
.floating-whatsapp:hover { background:#1ebe5d; }
.floating-whatsapp { position:relative; }
.floating-whatsapp::after { position:absolute; bottom:-.16rem; left:.28rem; width:.8rem; height:.8rem; background:#25d366; clip-path:polygon(0 0,100% 0,0 100%); content:""; transform:rotate(12deg); }
.floating-whatsapp-wrap::before { position:absolute; z-index:-1; inset:-.38rem; border:1px solid rgba(37,211,102,.42); border-radius:50%; content:""; animation:whatsapp-pulse 2.4s ease-out infinite; }
.floating-whatsapp-wrap { position:relative; }
.floating-help-message { position:absolute; right:calc(100% + .7rem); bottom:.3rem; width:max-content; padding:.55rem .75rem; border-radius:.25rem; color:#fff; background:var(--green-deep); font-size:.75rem; font-weight:800; opacity:0; pointer-events:none; transform:translateX(.5rem); transition:opacity .25s ease,transform .25s ease; }
.floating-help-message::after { position:absolute; top:50%; right:-.35rem; width:.7rem; height:.7rem; background:var(--green-deep); content:""; transform:translateY(-50%) rotate(45deg); }
.floating-help-message.is-visible { opacity:1; transform:translateX(0); }
@keyframes whatsapp-pulse { 0%,55% { opacity:0; transform:scale(.85); } 70% { opacity:1; } 100% { opacity:0; transform:scale(1.22); } }
.floating-contact-modal { position:fixed; z-index:30; inset:0; display:grid; place-items:center; padding:1rem; opacity:0; pointer-events:none; transition:opacity .2s ease; }
.floating-contact-modal.is-open { opacity:1; pointer-events:auto; }
.floating-modal-backdrop { position:absolute; inset:0; background:rgba(0,30,18,.78); }
.floating-modal-dialog { position:relative; z-index:1; width:min(100%,650px); max-height:calc(100vh - 2rem); overflow:auto; padding:clamp(2rem,5vw,3.75rem); background:#fff; box-shadow:0 1.5rem 5rem rgba(0,0,0,.35); transform:translateY(1rem); transition:transform .2s ease; }
.floating-contact-modal.is-open .floating-modal-dialog { transform:translateY(0); }
.floating-modal-dialog h2 { margin-bottom:1rem; }
.floating-modal-dialog > p:not(.eyebrow) { color:var(--muted); }
.floating-modal-close { position:absolute; top:1rem; right:1.25rem; width:2.25rem; height:2.25rem; padding:0; border:0; color:var(--black); background:transparent; font-size:2rem; line-height:1; cursor:pointer; }
.floating-service-options { display:grid; gap:.7rem; margin-top:1.7rem; }
.floating-service-options button { display:flex; align-items:center; justify-content:space-between; gap:1rem; width:100%; padding:1rem 1.1rem; border:1px solid var(--line); color:var(--green-deep); background:#fff; font:inherit; font-size:.95rem; font-weight:800; text-align:left; cursor:pointer; transition:border-color .2s ease,background .2s ease,color .2s ease; }
.floating-service-options button:hover { border-color:var(--green); color:#fff; background:var(--green); }
.floating-service-options span { font-size:1.25rem; line-height:1; }
.exit-intent-modal { position:fixed; z-index:35; inset:0; display:grid; place-items:center; padding:1rem; opacity:0; pointer-events:none; transition:opacity .2s ease; }
.exit-intent-modal.is-open { opacity:1; pointer-events:auto; }
.exit-intent-backdrop { position:absolute; inset:0; background:rgba(0,30,18,.78); }
.exit-intent-dialog { position:relative; z-index:1; width:min(100%,580px); padding:clamp(2rem,5vw,3.4rem); background:#fff; box-shadow:0 1.5rem 5rem rgba(0,0,0,.35); text-align:center; transform:translateY(1rem); transition:transform .2s ease; }
.exit-intent-modal.is-open .exit-intent-dialog { transform:translateY(0); }
.exit-intent-dialog .eyebrow { color:var(--green); }
.exit-intent-dialog h2 { max-width:500px; margin-right:auto; margin-bottom:1rem; margin-left:auto; color:var(--green-deep); }
.exit-intent-dialog > p:not(.eyebrow) { max-width:440px; margin-right:auto; margin-left:auto; color:var(--muted); }
.exit-intent-close { position:absolute; top:1rem; right:1.25rem; width:2.25rem; height:2.25rem; padding:0; border:0; color:var(--black); background:transparent; font-size:2rem; line-height:1; cursor:pointer; }
.exit-intent-phone { display:block; margin:1.6rem 0 1rem; color:var(--green-deep); font-size:clamp(1.5rem,4vw,2.2rem); font-weight:900; letter-spacing:-.05em; text-decoration:none; }
@media (max-width:760px) { .exit-intent-modal { display:none; } }
@media (max-width:760px) { .header-content { min-height:70px; } .brand img { width:132px; } .nav-toggle { display:block; margin-left:auto; } nav { position:absolute; z-index:10; top:100%; right:0; left:0; display:grid; gap:0; padding:0 var(--gutter); background:var(--yellow); border-top:1px solid rgba(17,17,14,.16); box-shadow:0 .75rem 1.5rem rgba(0,0,0,.12); opacity:0; visibility:hidden; transform:translateY(-.75rem); transition:opacity .2s ease,visibility .2s ease,transform .2s ease; } nav.is-open { opacity:1; visibility:visible; transform:translateY(0); } nav a { padding:1rem 0; border-bottom:1px solid rgba(17,17,14,.16); font-size:.9rem; } nav a::after { display:none; } .header-content .button { display:none; } .footer-content { grid-template-columns:1fr; } .footer-spacer { display:none; } .footer-bottom { flex-direction:column; } .section { padding:4.5rem 0; } }
