@font-face{font-family:Lato;font-weight:400;font-style:normal;font-display:swap;src:url(/fonts/lato-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:Lato;font-weight:700;font-style:normal;font-display:swap;src:url(/fonts/lato-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow Semi Condensed";font-weight:600;font-style:normal;font-display:swap;src:url(/fonts/barlow-semi-condensed-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow Semi Condensed";font-weight:700;font-style:normal;font-display:swap;src:url(/fonts/barlow-semi-condensed-latin-700-normal.woff2) format("woff2")}
:root{--ink:#26221E;--grey:#424141;--mut:#5b5855;--green:#53ae39;--green-dark:#2f7a1f;--wall:#CC9560;--line:#d9d6d1;--paper:#F2F2F0;--disp:"Barlow Semi Condensed",system-ui,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Lato,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:#fff;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--ink)}
a:hover{color:var(--green-dark)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.skip{position:absolute;left:-999px;top:8px;background:#fff;color:var(--ink);padding:10px 16px;z-index:50;border-radius:4px}
.skip:focus{left:8px}
.wrap{max-width:1200px;margin:0 auto;padding:0 6%}
@media (min-width:1300px){.wrap{padding:0 72px}}
h1,h2,h3{font-family:var(--disp);font-weight:700;letter-spacing:-.01em}
h2{font-size:clamp(2.2rem,4.4vw,3.5rem);line-height:1;margin:0 0 16px}
.lead{font-size:1.2rem;line-height:1.55;color:var(--grey);max-width:44em;margin:0 0 40px}
.btn{display:inline-block;padding:15px 24px;border-radius:4px;font-weight:700;font-size:1.05rem;text-decoration:none;background:var(--green);color:var(--ink);border:2px solid var(--green)}
.btn:hover{background:#63c047;border-color:#63c047;color:var(--ink)}
.btn.dark{background:var(--ink);border-color:var(--ink);color:#fff}
.btn.dark:hover{background:#3a342f;border-color:#3a342f;color:#fff}
.btn.sm{padding:11px 18px;font-size:1rem}
header{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--line)}
header .in{display:flex;align-items:center;justify-content:space-between;gap:24px;height:76px;padding:0 6%}
@media (min-width:1300px){header .in{padding:0 72px}}
.logo img{height:42px;width:auto}
header nav{display:flex;gap:32px}
header nav a{text-decoration:none;font-size:1rem}
header nav a:hover{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}
.hdr-r{display:flex;align-items:center;gap:20px}
.tel{font-family:var(--disp);font-weight:600;font-size:1.4rem;text-decoration:none;white-space:nowrap}
section[id]{scroll-margin-top:76px}
/* portada */
.herobox{background:var(--wall)}
.hero{position:relative;max-width:1600px;margin:0 auto;aspect-ratio:2000/1100;overflow:hidden;container-type:inline-size;background:var(--wall)}
.hero-img{position:absolute;left:0;bottom:0;width:100%;height:auto}
.hero-copy{position:absolute;left:6%;top:15%;max-width:44%;display:flex;flex-direction:column;gap:28px}
.hero h1{margin:0;font-size:clamp(40px,5.6cqw,90px);line-height:.98}
.hero p{margin:0;font-size:clamp(17px,1.35cqw,22px);line-height:1.5;max-width:30em}
.hero .cta{display:flex;flex-wrap:wrap;gap:12px}
.hero .btn{font-size:1.1rem;padding:16px 26px}
.callouts{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
@media (max-width:1000px){
 header nav{display:none}
 .hero{aspect-ratio:auto;display:flex;flex-direction:column}
 .hero-copy{position:static;max-width:none;padding:40px 6% 32px}
 .hero-img{position:static;height:340px;object-fit:cover;object-position:82% 70%;order:2}
 .callouts{display:none}
}
@media (max-width:560px){.tel{display:none}.hero h1{font-size:2.9rem}header .btn{white-space:nowrap;padding:10px 14px;font-size:.95rem}.logo img{height:36px;width:auto}}
/* plano */
.plano{padding:112px 0 96px}
.plan-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:56px;align-items:start}
.plan{position:relative;aspect-ratio:10/6;border:1.5px solid var(--ink);border-radius:4px;overflow:hidden;background:#fff}
.plan svg{position:absolute;inset:0;width:100%;height:100%}
.hot{position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;padding:0;cursor:pointer;border:2px dashed var(--green-dark);background:transparent}
.hot:hover{background:rgba(83,174,57,.18)}
.hot[aria-pressed=true]{border-style:solid;background:rgba(83,174,57,.3)}
.hot[hidden]{display:none}
.sis{border-top:1.5px solid var(--ink)}
.sis details{border-bottom:1px solid var(--line)}
.sis summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:56px;padding:14px 0;cursor:pointer;font-family:var(--disp);font-weight:600;font-size:1.5rem}
.sis summary::-webkit-details-marker{display:none}
.sis summary::after{content:"+";font-size:1.5rem;line-height:1}
.sis details[open] summary{font-weight:700}
.sis details[open] summary::after{content:"\2013"}
.sis details p{margin:0 0 20px;padding-right:32px;font-size:1.05rem;color:var(--grey)}
@media (max-width:1000px){.plano{padding:64px 0}.plan-grid{grid-template-columns:minmax(0,1fr);gap:32px}.plan{display:none}}
/* como trabajamos */
.pasos{padding:88px 0;background:var(--paper);border-top:1px solid var(--line)}
.pasos .cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.pasos h3{margin:0 0 10px;font-size:1.9rem;line-height:1.05;padding-top:16px;border-top:1.5px solid var(--ink)}
.pasos p{margin:0;color:var(--grey)}
@media (max-width:800px){.pasos{padding:56px 0}.pasos .cols{grid-template-columns:minmax(0,1fr);gap:28px}}
/* empresa */
.empresa{padding:104px 0 88px}
.empresa .hist{max-width:46em;font-size:1.15rem;line-height:1.65;color:var(--grey);margin:0 0 56px}
.empresa h3{font-size:1.5rem;margin:0 0 18px}
.refs{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}
.ref{background:#fff;border:1px solid var(--line);border-radius:4px;height:104px;display:flex;align-items:center;justify-content:center;padding:14px}
.ref img{max-height:72px;max-width:100%;width:auto;object-fit:contain}
@media (max-width:800px){.empresa{padding:56px 0}}
/* normativa */
.norma{background:var(--ink);color:#fff;padding:88px 0}
.norma h2{color:#fff;max-width:14em}
.norma p{margin:0 0 32px;max-width:44em;font-size:1.2rem;line-height:1.55;color:#e6e4e0}
@media (max-width:800px){.norma{padding:56px 0}}
/* calidad */
.calidad{padding:104px 0 88px}
.policy{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 40px;margin-bottom:72px}
.policy h3{margin:0 0 8px;font-size:1.5rem;line-height:1.05;padding-top:16px;border-top:1.5px solid var(--ink)}
.policy p{margin:0;color:var(--grey);font-size:1rem}
@media (max-width:900px){.policy{grid-template-columns:minmax(0,1fr)}.calidad{padding:56px 0}}
.org{padding:8px 0;overflow-x:auto}
.oc{display:flex;flex-direction:column;align-items:center;min-width:640px}
.box{padding:10px 16px;border:2px solid var(--green);border-radius:6px;background:#fff;color:var(--ink);font-weight:700;font-size:.92rem;text-align:center;min-width:140px;max-width:190px}
.box.main{background:var(--green);color:var(--ink);font-size:1.05rem;padding:12px 28px}
.box.soft{border-style:dashed}
.box.dashed{border-style:dashed}
.staff{position:relative;width:100%;height:64px;display:flex;justify-content:center}
.staff:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;background:var(--green);transform:translateX(-1px)}
.staff .box{position:absolute;right:calc(50% + 28px);top:50%;transform:translateY(-50%)}
.staff .box:after{content:"";position:absolute;left:100%;top:50%;width:28px;height:2px;background:var(--green)}
.tree,.tree ul{list-style:none;margin:0;padding:22px 0 0;display:flex;justify-content:center;position:relative}
.tree ul{padding-top:22px}
.tree:before,.tree ul:before{content:"";position:absolute;top:0;left:50%;height:22px;border-left:2px solid var(--green);transform:translateX(-1px)}
.tree li{position:relative;padding:22px 8px 0;display:flex;flex-direction:column;align-items:center}
.tree li:before,.tree li:after{content:"";position:absolute;top:0;right:50%;width:50%;height:22px;border-top:2px solid var(--green)}
.tree li:after{right:auto;left:50%;border-left:2px solid var(--green)}
.tree li:first-child:before,.tree li:last-child:after{border:0 none}
.tree li:last-child:before{border-right:2px solid var(--green);border-radius:0 6px 0 0}
.tree li:first-child:after{border-radius:6px 0 0 0}
.tree li:only-child:before,.tree li:only-child:after{display:none}
.tree li:only-child{padding-top:0}
@media (max-width:700px){.oc{min-width:0}.tree{flex-direction:column;align-items:center;padding-top:0}.tree:before,.tree li:before,.tree li:after{display:none}.tree li{padding:12px 0 0}.staff{height:auto;flex-direction:column;align-items:center;gap:12px;padding:12px 0}.staff:before,.staff .box:after{display:none}.staff .box{position:static;transform:none}.tree ul{padding-top:12px}.tree ul:before{display:none}}
/* contacto */
.contacto{background:var(--ink);color:#fff;padding:96px 0 40px}
.contacto h2{color:#fff;max-width:12em}
.contacto .cgrid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:64px}
.contacto .big{display:block;font-family:var(--disp);font-weight:600;font-size:clamp(2.4rem,4vw,3.2rem);color:var(--green);text-decoration:none;margin:8px 0}
.contacto a{color:#fff}
.contacto .big:hover{color:#8be06b}
.contacto address{font-style:normal;font-size:1.1rem;line-height:1.6;color:#e6e4e0}
.contacto address strong{color:#fff}
.contacto .horario{margin-top:14px}
@media (max-width:800px){.contacto{padding:56px 0 32px}.contacto .cgrid{grid-template-columns:minmax(0,1fr);gap:32px}}
footer{background:var(--ink);color:#cfccc7;font-size:.95rem}
footer .in{display:flex;flex-wrap:wrap;gap:12px 32px;padding-top:24px;padding-bottom:32px;border-top:1px solid #4a4642}
footer a{color:#cfccc7}
footer a:hover{color:#8be06b}
/* paginas legales */
.legal{max-width:780px;padding:56px 6% 80px;margin:0 auto}
.legal h1{font-size:clamp(2rem,4vw,2.8rem);margin:0 0 24px;line-height:1.05}
.legal h2{font-size:1.5rem;margin:32px 0 8px}
.legal p{color:var(--grey);margin:0 0 12px}
.pend{background:#fff3b0;color:#4a3d00;padding:1px 6px;border-radius:4px;font-size:.85em;font-weight:700}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
