/* ECO LUX – stile responsive, accessibile e mobile-first */
:root{--green:#28764f;--green-dark:#14513c;--blue:#1685ad;--ink:#1c302b;--muted:#64736d;--pale:#f2f7f3;--line:#e1eae4;--white:#fff;--shadow:0 18px 50px rgba(19,57,42,.10);--radius:20px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px;-webkit-text-size-adjust:100%}
body{margin:0;color:var(--ink);font-family:"DM Sans",Arial,sans-serif;line-height:1.65;background:#fff}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
a,button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
.skip-link{position:absolute;left:-9999px;top:10px;background:#fff;padding:12px;z-index:100}
.skip-link:focus{left:10px}
.site-header{height:94px;position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);box-shadow:0 4px 24px rgba(20,60,43,.07)}
.header-inner{height:100%;max-width:1320px;margin:auto;padding:8px 34px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand img{width:82px;height:78px;object-fit:contain}
.primary-nav{display:flex;align-items:center;gap:clamp(15px,2.4vw,34px);font-size:14px;font-weight:600}
.primary-nav a:not(.nav-button):hover,.text-link:hover{color:var(--green)}
.nav-button{padding:12px 20px;border-radius:999px;background:var(--green);color:#fff}
.nav-button:hover,.button-primary:hover{background:var(--green-dark)}
.menu-toggle{display:none;width:46px;height:46px;border:1px solid var(--line);border-radius:12px;background:#fff;align-items:center;justify-content:center;flex-direction:column;gap:5px}
.menu-toggle span{width:19px;height:2px;background:var(--green-dark);display:block}
.hero{max-width:1440px;margin:auto;min-height:610px;display:grid;grid-template-columns:1fr 1.02fr;align-items:stretch;background:linear-gradient(115deg,#f3f8f4 0%,#fff 72%)}
.hero-copy{padding:clamp(52px,7vw,104px) clamp(28px,6.5vw,94px);align-self:center}
.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700;color:var(--green);margin:0 0 16px}
h1,h2{font-family:"Playfair Display",Georgia,serif;line-height:1.12;color:var(--green-dark);font-weight:700}
.hero h1{font-size:clamp(42px,5vw,68px);margin:0 0 24px;max-width:650px}
h1 em,h2 em{font-style:normal;color:var(--green)}
.hero-lead{max-width:570px;color:#53645c;font-size:clamp(16px,1.5vw,19px);margin:0 0 18px}
.brand-slogan{font-size:18px;color:var(--blue);font-weight:500;margin:0 0 24px}
.brand-slogan strong{color:var(--green)}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;padding:13px 22px;font-weight:700;font-size:13px;text-align:center;cursor:pointer;transition:transform .2s ease,background .2s ease,box-shadow .2s ease}
.button:hover{transform:translateY(-2px);box-shadow:0 9px 22px rgba(19,57,42,.12)}
.button-primary{background:var(--green);color:#fff}
.button-outline{border:1px solid #bfd2c6;color:var(--green-dark);background:#fff}
.button-whatsapp{background:#e6f6eb;color:#176b3c;margin-top:14px;width:100%}
.hero-note{margin-top:28px;color:var(--green);font-weight:700;font-size:14px}
.leaf-mark{font-size:21px;margin-right:8px;color:#8eaf54}
.hero-visual{position:relative;min-height:550px;overflow:hidden}
.hero-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.12),transparent 28%),linear-gradient(0deg,rgba(7,39,29,.32),transparent 32%)}
.hero-visual>img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}
.image-caption{position:absolute;z-index:1;bottom:28px;left:30px;right:30px;color:#fff;display:flex;justify-content:space-between;gap:12px;font-size:12px;letter-spacing:1px;text-transform:uppercase}
.values-strip{background:linear-gradient(105deg,#104d3b,#146e62 60%,#137fa1);color:#fff;padding:28px max(5vw,24px);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
.values-strip article{display:flex;align-items:center;gap:14px;min-width:0}
.value-icon{width:48px;height:48px;flex:0 0 48px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.35);font-size:24px;color:#d6edc5}
.values-strip h2{font:700 14px "DM Sans",Arial,sans-serif;color:#fff;margin:0 0 3px}
.values-strip p{font-size:12px;color:#d9e9e1;margin:0}
.section{padding:94px clamp(22px,7vw,110px)}
.section-heading{text-align:center;max-width:760px;margin:0 auto 44px}
.section-heading h2,.about-copy h2{font-size:clamp(35px,4.2vw,52px);margin:0 0 16px}
.section-heading>p:last-child{color:var(--muted);margin:0}
.service-grid{max-width:1240px;margin:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.service-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff;box-shadow:0 10px 32px rgba(19,57,42,.06);transition:transform .22s ease,box-shadow .22s ease;min-width:0}
.service-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.service-card>img{width:100%;height:225px;object-fit:cover;background:var(--pale)}
.card-copy{padding:22px 23px 25px;position:relative}
.card-number{color:var(--blue);font-size:11px;letter-spacing:1px;font-weight:700}
.card-copy h3{font-size:19px;line-height:1.3;color:var(--green-dark);margin:7px 0 9px}
.card-copy p{font-size:14px;color:var(--muted);margin:0}
.why-section{background:var(--pale)}
.why-grid{max-width:1150px;margin:auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.why-grid article{padding:27px 23px;background:#fff;border:1px solid var(--line);border-radius:16px}
.why-grid article>span{font-size:12px;color:var(--blue);font-weight:700;letter-spacing:1px}
.why-grid h3{font-size:18px;color:var(--green-dark);margin:12px 0 8px}
.why-grid p{font-size:14px;color:var(--muted);margin:0}
.quality-promise{max-width:1150px;margin:27px auto 0;text-align:center;color:var(--green-dark);padding:16px;border:1px solid #c9ddcf;border-radius:12px;background:#fff}
.quality-promise span{color:#92ad4d;margin-right:8px}
.gallery-grid{max-width:1240px;margin:auto;display:grid;grid-template-columns:1.25fr 1fr 1fr;grid-template-rows:230px 230px;gap:16px}
.gallery-grid figure{margin:0;position:relative;overflow:hidden;border-radius:16px;background:var(--pale)}
.gallery-grid figure:after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.58))}
.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.gallery-grid figure:hover img{transform:scale(1.035)}
.gallery-grid figcaption{position:absolute;z-index:1;bottom:15px;left:18px;color:#fff;font-weight:600;font-size:14px}
.gallery-large{grid-row:span 2}
.image-disclaimer{text-align:center;color:var(--muted);font-size:11px;margin:16px auto 0}
.about-section{display:grid;grid-template-columns:1fr 1fr;background:#f4f8f5;align-items:stretch}
.about-photo{min-height:520px}
.about-photo img{width:100%;height:100%;object-fit:cover}
.about-copy{padding:clamp(42px,7vw,92px);align-self:center;max-width:760px}
.about-copy h2{font-size:clamp(34px,4vw,49px)}
.about-copy>p:not(.eyebrow){color:#5d6d65;font-size:15px}
.text-link{display:inline-flex;gap:10px;margin-top:18px;color:var(--green);font-weight:700}
.quote-section{background:#fff}
.quote-layout{max-width:1100px;margin:auto;display:grid;grid-template-columns:.78fr 1.22fr;gap:28px;align-items:start}
.contact-card{padding:30px;background:var(--pale);border:1px solid var(--line);border-radius:18px}
.contact-card>img{width:112px;height:112px;object-fit:contain;background:#fff;border-radius:50%;padding:4px}
.contact-card h3{color:var(--green-dark);font-size:21px;margin:15px 0 4px}
.contact-card>p{color:var(--muted);font-size:14px;margin:0 0 20px}
.contact-line{display:block;padding:10px 0;border-top:1px solid var(--line);font-size:14px;font-weight:600}
.contact-line span{color:var(--green);margin-right:8px}
.small-note,.form-legal{font-size:11px;color:var(--muted)}
.quote-form{padding:30px;border:1px solid var(--line);border-radius:18px;box-shadow:0 12px 36px rgba(19,57,42,.06);display:grid;gap:16px;min-width:0}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.quote-form label{display:grid;gap:6px;font-size:13px;font-weight:700;color:var(--ink)}
.quote-form input:not([type=checkbox]),.quote-form select,.quote-form textarea{width:100%;min-width:0;border:1px solid #d4e0d8;border-radius:10px;background:#fff;padding:12px 13px;color:var(--ink);font-size:16px}
.quote-form textarea{resize:vertical;min-height:120px}
.quote-form input:focus,.quote-form select:focus,.quote-form textarea:focus{outline:2px solid var(--blue);outline-offset:1px}
.consent{display:flex!important;align-items:flex-start;gap:10px!important;font-weight:400!important;line-height:1.5}
.consent input{width:18px;height:18px;flex:0 0 18px;margin:2px 0 0;accent-color:var(--green)}
.consent a{text-decoration:underline;color:var(--green)}
.submit-button{justify-self:start;min-width:180px}
.form-status{margin:0;font-size:14px;font-weight:600}
.form-status.success{color:#176b3c}.form-status.error{color:#a52b2b}
.form-legal{margin:0}
.honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.site-footer{background:#103d34;color:#eaf4ee;padding:48px clamp(22px,7vw,110px) 20px}
.footer-main{max-width:1240px;margin:auto;display:grid;grid-template-columns:1.35fr 1fr 1fr 1fr;gap:35px;padding-bottom:35px}
.footer-brand img{width:100px;height:100px;object-fit:contain;background:#fff;border-radius:50%;padding:3px}
.footer-brand p{font-weight:700;margin:12px 0 0}.footer-brand small{color:#c2d9cc}
.footer-main h2{font:700 14px "DM Sans",Arial,sans-serif;color:#fff;margin:6px 0 13px}
.footer-main>div:not(.footer-brand) a,.footer-main>div:not(.footer-brand) span{display:block;font-size:13px;color:#d0e1d7;margin:8px 0}
.footer-main a:hover,.footer-bottom a:hover{color:#b9db8d}
.footer-bottom{max-width:1240px;margin:auto;border-top:1px solid rgba(255,255,255,.18);padding-top:18px;display:flex;justify-content:space-between;gap:18px;font-size:12px;color:#d0e1d7}
.footer-bottom>div{display:flex;gap:20px;flex-wrap:wrap}
.floating-whatsapp{position:fixed;z-index:40;right:22px;bottom:22px;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#20b65a;color:#fff;font-size:31px;box-shadow:0 7px 25px rgba(0,0,0,.2);border:3px solid #fff}
.floating-whatsapp:hover{transform:translateY(-3px)}
.legal-page{max-width:900px;margin:50px auto;padding:0 24px 70px}
.legal-page h1{font-size:clamp(34px,5vw,52px)}
.legal-page h2{font:700 20px "DM Sans",Arial,sans-serif;margin-top:30px}
.legal-page p,.legal-page li{color:var(--muted)}
.legal-notice{background:#fff8e8;border:1px solid #ead8a9;border-radius:12px;padding:16px;color:#574820}
@media(max-width:1050px){.primary-nav{gap:15px;font-size:13px}.nav-button{padding:11px 14px}.hero-copy{padding-left:5vw;padding-right:4vw}.values-strip{gap:14px;padding-left:4vw;padding-right:4vw}.values-strip article{gap:9px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.why-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){html{scroll-padding-top:78px}.site-header{height:78px}.header-inner{padding:7px 22px}.brand img{width:68px;height:64px}.menu-toggle{display:flex}.primary-nav{display:none;position:absolute;top:78px;left:0;right:0;padding:18px 22px 22px;background:#fff;box-shadow:0 14px 22px rgba(0,0,0,.10);flex-direction:column;align-items:stretch;gap:5px;font-size:15px}.primary-nav.open{display:flex}.primary-nav a{padding:11px 12px;border-radius:9px}.primary-nav .nav-button{text-align:center;margin-top:5px}.hero{grid-template-columns:1fr}.hero-visual{grid-row:1;min-height:clamp(250px,48vw,410px)}.hero-copy{padding:45px clamp(22px,6vw,58px) 48px}.hero h1{font-size:clamp(40px,7vw,58px)}.values-strip{grid-template-columns:repeat(2,minmax(0,1fr));padding:24px clamp(22px,6vw,55px)}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:220px 180px 180px}.gallery-large{grid-row:span 2}.about-section{grid-template-columns:1fr 1fr}.about-photo{min-height:420px}.quote-layout{grid-template-columns:1fr 1.3fr}.footer-main{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.hero-visual{min-height:260px}.hero-copy{padding:38px 22px 42px}.hero h1{font-size:clamp(37px,10vw,48px)}.hero-lead{font-size:16px}.hero-actions{flex-direction:column;align-items:stretch}.hero-actions .button{width:100%}.values-strip{grid-template-columns:1fr;padding:22px 24px}.section{padding:62px 20px}.section-heading{margin-bottom:30px}.section-heading h2,.about-copy h2{font-size:clamp(32px,8vw,41px)}.service-grid{grid-template-columns:1fr;gap:17px}.service-card>img{height:clamp(190px,58vw,250px)}.why-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:190px 145px 145px;gap:10px}.gallery-large{grid-row:span 2}.gallery-grid figcaption{font-size:12px;left:11px;bottom:10px}.about-section{grid-template-columns:1fr}.about-photo{min-height:260px;max-height:340px}.about-copy{padding:42px 23px}.quote-layout{grid-template-columns:1fr}.contact-card,.quote-form{padding:23px}.form-row{grid-template-columns:1fr}.submit-button{width:100%}.site-footer{padding:38px 22px 18px}.footer-main{grid-template-columns:1fr 1fr;gap:25px 16px}.footer-brand{grid-column:1/-1}.footer-bottom{flex-direction:column;align-items:flex-start}.floating-whatsapp{width:54px;height:54px;right:15px;bottom:15px}}
@media(max-width:360px){.header-inner{padding-left:15px;padding-right:15px}.hero h1{font-size:35px}.section{padding-left:16px;padding-right:16px}.footer-main{grid-template-columns:1fr}.footer-brand{grid-column:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
