/* TRACSEVILA - web estàtic, sense llibreries externes */
:root{--ink:#182f2c;--forest:#145d4e;--deep:#104639;--muted:#64746e;--light:#f6f8f3;--cream:#f8f6ee;--lime:#d9e9c0;--stroke:#dce5db;--shadow:0 14px 42px rgba(21,69,54,.08);--radius:20px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:16px/1.75 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.17;letter-spacing:-.035em}h1{font-size:clamp(2.9rem,6vw,5.1rem)}h2{font-size:clamp(1.8rem,3.4vw,2.65rem)}h3{font-size:1.2rem}p{color:#52645d}a{color:inherit;text-decoration:none}a:hover{color:var(--forest)}img{max-width:100%;display:block}.container{width:min(1160px,calc(100% - 48px));margin:auto}.icon{width:22px;height:22px;flex:none;vertical-align:middle}.skip{position:absolute;left:-500px;top:12px;padding:10px 18px;background:white;z-index:100}.skip:focus{left:12px}.site-header{position:relative;background:#fff;z-index:30;box-shadow:0 1px 0 rgba(20,93,78,.12)}.top-line{background:var(--deep);color:#e6f4e9;font-size:.79rem;letter-spacing:.015em}.top-line-inner{display:flex;justify-content:space-between;align-items:center;padding-top:7px;padding-bottom:7px}.top-line-inner span,.top-line-inner a{display:inline-flex;gap:8px;align-items:center}.top-line-inner .icon{width:15px;height:15px}.top-line a:hover{color:white}.nav-row{height:96px;display:flex;justify-content:space-between;gap:20px;align-items:center}.brand{display:flex;align-items:center;gap:13px;min-width:0}.brand-mark{width:49px;height:49px;border-radius:14px;background:var(--forest);display:grid;place-items:center;color:#e3f7d8;flex:none}.brand-mark .icon{width:28px;height:28px;stroke-width:1.9}.brand-label{display:grid;line-height:1.2}.brand-label strong{font-size:1.45rem;color:var(--deep);letter-spacing:.015em}.brand-label small{margin-top:4px;font-size:.69rem;letter-spacing:.005em;color:#65766e;white-space:nowrap}.main-nav{height:100%;display:flex;gap:4px;align-items:center}.main-nav>a,.nav-dropdown-title{font-size:.91rem;font-weight:650;padding:13px 15px;border-radius:9px;color:#355147}.main-nav a:hover,.main-nav a[aria-current=page]{background:#eef5e9;color:var(--forest)}.nav-dropdown{position:relative}.nav-dropdown-title{display:flex;align-items:center;gap:6px}.down-arrow{font-size:1.25rem;line-height:.6}.dropdown-items{display:none;position:absolute;top:100%;left:0;min-width:230px;z-index:40;background:white;border:1px solid var(--stroke);box-shadow:var(--shadow);border-radius:14px;padding:9px}.nav-dropdown:hover .dropdown-items,.nav-dropdown:focus-within .dropdown-items{display:grid}.dropdown-items a{display:block;padding:9px 12px;border-radius:8px;font-size:.89rem}.mobile-toggle{display:none;align-items:center;gap:8px;border:1px solid var(--stroke);border-radius:9px;background:white;padding:9px 12px;font-weight:700;color:var(--deep);font:inherit}.eyebrow{display:inline-flex;align-items:center;gap:9px;color:#2f755d;text-transform:uppercase;font-size:.76rem;font-weight:800;letter-spacing:.14em}.eyebrow-dot{display:inline-block;height:8px;width:8px;background:#97c87c;border-radius:50%}.hero{background:linear-gradient(125deg,#eef5e9 0%,#f6f9f2 58%,#f9fbf4 100%);position:relative;overflow:hidden}.hero-grid{min-height:550px;display:grid;grid-template-columns:1.02fr 1fr;align-items:center;gap:28px}.hero-content{padding:66px 0 83px;position:relative;z-index:1}.hero h1{max-width:690px;margin:19px 0 22px;font-weight:800;letter-spacing:-.062em}.hero h1 em{color:var(--forest);font-weight:650;font-style:normal}.hero-content>p{font-size:1.14rem;line-height:1.75;max-width:560px;margin-bottom:29px}.button-row{display:flex;flex-wrap:wrap;gap:12px}.button{min-height:49px;display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:12px 20px;border-radius:10px;font-weight:760;font-size:.93rem;line-height:1.25;transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-2px)}.button .icon{width:17px;height:17px}.button-primary{background:var(--forest);color:#fff}.button-primary:hover{background:var(--deep);color:#fff;box-shadow:0 9px 20px #145d4e33}.button-outline{color:var(--forest);border:1px solid #a6c7ab;background:#fff8}.button-outline:hover{background:#fff}.hero-note{display:flex;align-items:center;gap:9px;color:#537769;font-size:.87rem;margin-top:29px}.hero-note .icon{width:18px;height:18px}.hero-art{padding:35px 0}.hero-art img{width:100%;filter:drop-shadow(0 16px 22px rgba(35,88,56,.08))}.hero-foot{height:15px;background:linear-gradient(90deg,#1d6d54 0%,#7eaa6d 65%,#cfdfb7 100%)}.section{padding-top:92px;padding-bottom:95px}.section-intro{max-width:740px;margin-bottom:32px}.section-intro h2{margin:11px 0 14px}.section-intro p{font-size:1.04rem;margin-bottom:0}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.service-card{min-width:0;background:white;border:1px solid var(--stroke);box-shadow:0 2px 3px #154d2d04;border-radius:var(--radius);padding:28px;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;flex-direction:column;min-height:305px}.service-card:hover{transform:translateY(-5px);border-color:#a9ccaf;box-shadow:var(--shadow);color:var(--ink)}.card-icon{height:53px;width:53px;border-radius:14px;display:grid;place-items:center;background:#edf5e8;color:var(--forest);margin-bottom:24px}.card-icon .icon{width:29px;height:29px}.service-tag{font-size:.76rem;color:#6a826f;font-weight:750;text-transform:uppercase;letter-spacing:.075em}.service-card h3{margin:10px 0;font-size:1.35rem}.service-card p{font-size:.9rem;line-height:1.7;flex:1}.text-link{display:inline-flex;align-items:center;gap:9px;color:var(--forest);font-size:.88rem;font-weight:780}.text-link .icon{width:18px;height:18px}.about-band{background:var(--cream);padding:100px 0}.about-grid{display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:9%}.about-illustration{height:370px;border-radius:35px;background:radial-gradient(circle at 30% 28%,#edf7d9 0%,#dcebc7 56%,#c7dcba 100%);display:grid;place-items:center;position:relative;overflow:hidden}.about-illustration:before{content:"";position:absolute;inset:30px;border:1px solid #ffffff99;border-radius:27px}.circle-large{width:210px;height:210px;background:#145d4e;border-radius:50%;display:grid;place-items:center;color:#d4eab7;box-shadow:0 24px 60px #145d4e35}.circle-large .icon{height:110px;width:110px;stroke-width:1.1}.about-small-tag{position:absolute;bottom:40px;right:25px;background:white;border-radius:9px;color:var(--deep);font-size:.84rem;font-weight:780;padding:11px 16px;box-shadow:var(--shadow)}.about-grid h2{margin:12px 0 20px}.about-grid p{font-size:1.02rem}.about-grid .button{margin-top:12px}.bottom-cta{margin-top:0;margin-bottom:84px;padding:35px 45px!important;background:var(--deep);color:white;border-radius:var(--radius);display:flex;align-items:center;justify-content:space-between;gap:35px}.bottom-cta h2{font-size:1.9rem;max-width:620px;margin:8px 0}.bottom-cta .eyebrow{color:#b6dda9}.bottom-cta p{color:#b6d0c5;margin:0}.bottom-cta .button{flex:none;background:#d7e8b9;color:var(--deep)}.bottom-cta .button:hover{background:#fff;color:var(--deep)}.page-heading{background:linear-gradient(115deg,#edf5e9,#f8faf4);padding:39px 0 60px;border-bottom:1px solid #e1e9dc}.breadcrumb{display:flex;flex-wrap:wrap;gap:9px;font-size:.79rem;color:#688174;margin-bottom:42px}.breadcrumb a{color:#406a58}.breadcrumb a:hover{text-decoration:underline}.page-heading h1{font-size:clamp(2.6rem,5vw,4.5rem);margin:10px 0 14px}.page-heading p{font-size:1.1rem;margin:0;max-width:760px}.prose{max-width:770px}.prose h2{font-size:1.85rem;margin:30px 0 15px}.prose h2:first-of-type{margin-top:8px}.prose p{font-size:1.055rem;line-height:1.85;margin-bottom:20px}.content-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(250px,.82fr);align-items:start;gap:9%}.side-panel{background:#f4f8f0;border:1px solid var(--stroke);padding:29px;border-radius:var(--radius)}.side-panel h3{margin:10px 0 11px;font-size:1.4rem}.side-icon,.detail-icon{display:grid;place-items:center;height:60px;width:60px;color:var(--forest);background:#e4f0dd;border-radius:14px}.side-icon .icon,.detail-icon .icon{height:32px;width:32px}.check-list{list-style:none;margin:25px 0;padding:0}.check-list li{padding:8px 0 8px 25px;position:relative;font-size:.93rem}.check-list li:before{content:'✓';position:absolute;left:0;color:var(--forest);font-weight:900}.intro-prose{margin-bottom:40px}.spacious{margin-top:20px}.detail-icon{margin-bottom:20px}.aside-links{display:grid;margin-top:17px}.aside-links a{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #dbe8d8;font-weight:620;font-size:.9rem}.aside-links .icon{height:17px;width:17px}.aside-contact{display:inline-flex;align-items:center;gap:7px;font-size:.87rem;font-weight:780;color:var(--forest);margin-top:23px}.aside-contact .icon{width:17px;height:17px}.mini-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.mini-grid>div{padding:18px;border-radius:14px;background:#f4f8f0}.mini-grid h3{font-size:1.07rem;margin:0 0 9px}.mini-grid p{font-size:.86rem;margin:0}.archive-warning{padding:17px 21px;display:flex;gap:15px;align-items:flex-start;background:#f5f7f1;border:1px solid var(--stroke);border-radius:14px;margin-bottom:31px}.archive-warning>span{display:grid;place-items:center;width:26px;height:26px;flex:none;border-radius:50%;background:#dbe9cd;color:#245d44;font-family:Georgia,serif;font-style:italic;font-weight:800}.archive-warning p{margin:0;font-size:.91rem}.news-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:21px}.news-card{border:1px solid var(--stroke);padding:32px;border-radius:var(--radius);display:flex;flex-direction:column;min-height:310px;transition:box-shadow .2s,transform .2s}.news-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);color:var(--ink)}.news-card-nr{font-size:2.2rem;font-weight:800;line-height:1;color:#d9e6d6;align-self:flex-end;letter-spacing:-.04em}.news-card h2{font-size:1.55rem;margin:10px 0 13px}.news-card p{font-size:.94rem;line-height:1.72;flex:1}.article-wrap{max-width:750px;margin:auto}.article-wrap h2{margin:15px 0 28px;font-size:2.3rem}.article-wrap p{font-size:1.07rem;line-height:1.95}.archive-pill{display:inline-block;background:#f0f4ed;padding:6px 12px;color:#50685b;border-radius:99px;font-size:.78rem;margin-bottom:26px}.article-back{padding-top:25px;margin-top:38px;border-top:1px solid var(--stroke)}.article-back .icon{transform:rotate(180deg)}.contact-grid{display:grid;grid-template-columns:1fr .95fr;gap:9%}.contact-info h2{margin:12px 0 16px}.contact-info>p{margin-bottom:34px}.contact-item{display:flex;gap:16px;margin:22px 0}.contact-item>span{width:49px;height:49px;flex:none;display:grid;place-items:center;background:#edf5e7;color:var(--forest);border-radius:12px}.contact-item h3{font-size:1rem;margin:0 0 5px}.contact-item p{margin:0}.contact-item a{color:var(--forest);font-weight:680}.location-panel{border:1px solid var(--stroke);overflow:hidden;border-radius:20px;align-self:start;box-shadow:var(--shadow)}.location-map{height:270px;background:linear-gradient(45deg,#d4e5d1,#eaf1e0);position:relative;display:grid;place-items:center;overflow:hidden;color:var(--forest)}.location-map:before,.location-map:after{content:"";width:160%;height:55px;background:#ffffff9e;position:absolute;transform:rotate(30deg);left:-20%}.location-map:before{top:55px}.location-map:after{bottom:18px;transform:rotate(-28deg)}.location-map .icon{position:relative;z-index:1;width:65px;height:65px;fill:#e3f0df;filter:drop-shadow(0 5px 8px #2d614333)}.location-map span{position:absolute;z-index:2;top:67%;background:white;color:var(--deep);border-radius:30px;padding:4px 17px;font-weight:800}.map-caption{padding:27px}.map-caption h2{font-size:1.5rem;margin:0 0 12px}.map-caption p{font-size:.9rem;margin:0 0 23px}.footer{background:#102f29;color:#e7f2e9}.footer-top{padding:63px 0;display:grid;grid-template-columns:1.7fr 1fr 1fr;gap:50px}.footer-brand{display:flex;align-items:center;gap:12px;font-size:1.4rem;font-weight:850;letter-spacing:.01em}.footer-brand .brand-mark{background:#d7e8b9;color:var(--deep);width:38px;height:38px;border-radius:10px}.footer-brand .icon{height:23px;width:23px}.footer p{color:#bfd0c7;font-size:.89rem;line-height:1.8;max-width:330px}.footer h2{font-size:1.01rem;letter-spacing:0;margin-bottom:18px}.footer-top>div>a{display:block;margin:9px 0;font-size:.9rem;color:#cbdcd0}.footer a:hover{color:#fff}.footer-bottom{border-top:1px solid #ffffff21;color:#9fb5ab;font-size:.76rem}.footer-bottom>.container{display:flex;justify-content:space-between;gap:20px;padding:18px 0}
@media(max-width:1020px){.brand-label small{max-width:155px;white-space:normal}.main-nav>a,.nav-dropdown-title{padding:12px 9px}.hero h1{font-size:3.65rem}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content-grid{gap:5%}}
@media(max-width:760px){.container{width:min(100% - 34px,620px)}.top-line-inner{font-size:.73rem}.nav-row{height:78px}.brand-mark{width:42px;height:42px;border-radius:10px}.brand-mark .icon{height:24px;width:24px}.brand-label strong{font-size:1.15rem}.brand-label small{font-size:.6rem}.mobile-toggle{display:flex}.mobile-toggle .icon{height:20px;width:20px}.main-nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;height:auto;padding:10px 17px 20px;box-shadow:0 25px 35px #102f2920;border-top:1px solid var(--stroke);flex-direction:column;align-items:stretch}.main-nav.is-open{display:flex}.main-nav>a,.nav-dropdown-title{display:block;padding:12px 13px}.nav-dropdown-title .down-arrow{display:none}.dropdown-items{display:grid;position:static;min-width:auto;box-shadow:none;border:none;padding:0 0 7px 17px;background:transparent}.dropdown-items a{padding:7px 10px;font-size:.86rem}.hero-grid,.about-grid,.content-grid,.contact-grid{grid-template-columns:1fr}.hero-grid{gap:0}.hero-content{padding:57px 0 0}.hero h1{font-size:clamp(2.7rem,9vw,4.5rem)}.hero-content>p{font-size:1rem}.hero-art{max-width:450px;margin:auto;padding:5px 0 32px}.section{padding-top:63px;padding-bottom:65px}.service-grid{grid-template-columns:1fr}.service-card{min-height:250px}.about-band{padding:65px 0}.about-grid{gap:37px}.about-illustration{height:260px}.circle-large{height:150px;width:150px}.circle-large .icon{height:80px;width:80px}.bottom-cta{padding:28px!important;flex-direction:column;align-items:flex-start;margin-bottom:60px}.bottom-cta h2{font-size:1.65rem}.page-heading{padding:23px 0 42px}.breadcrumb{margin-bottom:24px}.page-heading h1{font-size:2.75rem}.side-panel{margin-top:10px}.news-grid{grid-template-columns:1fr}.contact-grid{gap:32px}.footer-top{grid-template-columns:1fr 1fr;gap:30px}.footer-top>div:first-child{grid-column:1/-1}.footer-bottom>.container{flex-direction:column;gap:4px}.mini-grid{grid-template-columns:1fr}}
@media(max-width:420px){.brand-label small{display:none}.top-line-inner span{max-width:160px}.button-row{flex-direction:column;align-items:flex-start}.hero h1{font-size:2.75rem}.footer-top{grid-template-columns:1fr}.footer-top>div:first-child{grid-column:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.service-card,.news-card,.button{transition:none}}


/* Identitat visual original de Tractaments i Serveis Ambientals Vila, recuperada del Joomla antic. */
:root{--forest:#087a92;--deep:#07586d;--ink:#173747;--muted:#526771;--light:#f3f8f9;--cream:#f5f9fb;--lime:#d3eff2;--stroke:#d9e5e9;--shadow:0 14px 42px rgba(9,62,94,.1)}
.top-line{background:#09536e}.hero{background:linear-gradient(115deg,#eaf5f8 0%,#f2f8fa 58%,#f8fbfb 100%)}
.hero-foot{background:linear-gradient(90deg,#0b339b 0%,#00a8d2 58%,#39bd60 100%)}
.page-heading{background:linear-gradient(110deg,#eaf5f8,#f7fafb);border-color:#d6e8ee}
.site-logo{display:block;width:262px;max-width:100%;height:auto;object-fit:contain}
.brand{display:block;flex:none;max-width:280px}.brand:hover{opacity:.88}
.footer-original-logo{display:block;width:260px;max-width:100%;height:auto;object-fit:contain;background:white;padding:9px;border-radius:9px}
.hero-art{padding:42px 0}.hero-image-frame{position:relative;background:#fff;border:9px solid #fff;border-radius:23px;overflow:hidden;box-shadow:0 30px 70px rgba(11,56,89,.13)}
.hero-art .hero-photo{display:block;object-fit:cover;width:100%;height:390px;filter:none}
.photo-stamp{position:absolute;right:16px;bottom:16px;background:#fffffff2;color:#0c5270;border-radius:10px;padding:9px 13px;font-size:.8rem;font-weight:750;box-shadow:0 5px 25px #0001}
.about-illustration{background:white;overflow:hidden;box-shadow:var(--shadow);border-radius:24px}.about-illustration:before{display:none}.about-photo{width:100%;height:100%;object-fit:cover}
.service-card{overflow:hidden}.service-image{width:calc(100% + 56px);max-width:none;margin:-28px -28px 22px;height:169px;object-fit:cover;border-bottom:1px solid var(--stroke)}
.service-card .card-icon{margin-bottom:13px;background:#e8f5f6;color:#056b85}
.service-card:hover{border-color:#aad6e2}.service-grid{row-gap:26px}
.detail-photo{margin:0 0 32px}.detail-photo-img{display:block;width:100%;height:325px;border-radius:19px;object-fit:cover;box-shadow:var(--shadow)}
.gallery-grid{margin:37px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.gallery-grid figure{padding:0;margin:0;min-width:0}.gallery-photo{width:100%;height:205px;object-fit:cover;border-radius:14px}
.news-card{overflow:hidden}.news-image{width:calc(100% + 64px);max-width:none;margin:-32px -32px 20px;height:190px;object-fit:cover;border-bottom:1px solid var(--stroke)}
.article-figure{margin:0 0 33px}.article-photo{width:100%;max-height:430px;object-fit:cover;border-radius:18px}
.certificates-gallery{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:20px 0 30px}.certificates-gallery figure{margin:0;text-align:center;background:#f5f9fa;padding:15px;border-radius:15px}.certificate-photo{width:100%;max-height:270px;object-fit:contain}.certificates-gallery figcaption{font-size:.8rem;margin-top:10px;color:#526771}.historic-note{font-size:.9rem!important;color:#52717d!important;background:#e9f4f6;padding:13px;border-radius:12px}
.brand img,.footer-brand img{max-width:100%}
@media(max-width:1050px){.site-logo{width:215px}.nav-row{gap:10px}.main-nav>a,.nav-dropdown-title{padding:10px 8px}}
@media(max-width:760px){.site-logo{width:211px}.nav-row{height:82px}.hero-art .hero-photo{height:310px}.hero-art{padding:0 0 38px}.detail-photo-img{height:280px}.gallery-photo{height:165px}.news-image{height:185px}}
@media(max-width:440px){.site-logo{width:198px}.nav-row{height:76px}.gallery-grid,.certificates-gallery{grid-template-columns:1fr}.gallery-photo{height:210px}.hero-art .hero-photo{height:235px}.detail-photo-img{height:215px}.service-image{height:180px}}

/* Segell TUV Rheinland recuperat del peu del Joomla original */
.footer-certificate{border-top:1px solid rgba(255,255,255,.13)}
.footer-certificate-inner{display:flex;align-items:center;padding:24px 0 34px}
.footer-certificate a{display:inline-block;max-width:100%;border-radius:9px}
.footer-certificate a:focus-visible{outline:3px solid #b8dfb0;outline-offset:5px}
.footer-certificate img{display:block;width:216px;max-width:100%;height:auto;border-radius:8px;background:#fff}
/* Google Maps integrat directament a la pagina de contacte */
.location-map{height:360px;display:block;overflow:hidden;background:#e3ebe1}
.location-map:before,.location-map:after{content:none;display:none}
.location-map iframe{display:block;width:100%;height:100%;border:0}
@media(max-width:760px){.location-map{height:330px}.footer-certificate-inner{padding:22px 0 27px}.footer-certificate img{width:190px}}
