@import url('https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,500;0,6..72,600;1,6..72,500&family=Public+Sans:ital,wght@0,400;0,600;1,400&display=swap');

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--page-gutter:clamp(1.25rem,6vw,3rem);--link:#2C4A63;--link-hover:#1A3347;--ink:#191D21;--paper:#FCFCFB;--surface-lino:#F5F2EC;--surface-caliza:#E9E4DA;--surface-tinta:#2C4A63}
html{scroll-behavior:smooth}
body{font-family:'Public Sans',system-ui,sans-serif;font-size:17px;line-height:1.65;color:var(--ink);background:var(--paper)}
img{max-width:100%;height:auto;display:block}
a{color:var(--link);text-decoration-thickness:1px;text-underline-offset:3px;transition:color .15s ease,background-color .15s ease,border-color .15s ease}
a:hover,a:focus-visible{color:var(--link-hover);text-decoration:underline}

.surface-cal{background:#FCFCFB;color:#191D21}
.surface-lino{background:#F5F2EC;color:#191D21}
.surface-caliza{background:#E9E4DA;color:#191D21}
.surface-tinta{background:#2C4A63;color:#FCFCFB}

.site-header{border-bottom:1px solid var(--surface-caliza);padding:1.25rem var(--page-gutter);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem}
.wordmark{font-family:'Newsreader',serif;font-size:1.35rem;font-weight:600;letter-spacing:.02em;border-bottom:1px solid var(--surface-tinta);padding-bottom:.15rem;justify-self:start;color:var(--ink);text-decoration:none}
.wordmark:hover,.wordmark:focus-visible{color:var(--link);border-bottom-color:var(--link)}
.site-nav{display:flex;gap:1.75rem;justify-content:center;flex-wrap:wrap}
.site-nav a{font-size:.92rem;font-weight:600;text-decoration:none;color:var(--ink)}
.site-nav a:hover,.site-nav a:focus-visible,.site-nav a[aria-current="page"]{color:var(--link);text-decoration:underline}
.header-cta{justify-self:end;font-weight:600;text-decoration:none;color:var(--link)}
.header-cta:hover,.header-cta:focus-visible{color:var(--link-hover);text-decoration:underline}
.header-cta::after{content:' →'}

main{min-height:50vh}
.container{max-width:660px;margin:0 auto;padding:0 var(--page-gutter)}
.container-wide{max-width:1100px;margin:0 auto;padding:0 var(--page-gutter)}
.eyebrow{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#2C4A63;margin-bottom:1rem}
h1,h2,h3{font-family:'Newsreader',serif;font-weight:600;line-height:1.15}
h1{font-size:clamp(2.5rem,5vw,4.6rem)}
h2{font-size:clamp(1.75rem,3vw,2.5rem);margin-bottom:1rem}
p{margin-bottom:1.1rem}
section{padding:5rem 0}
.breadcrumb{font-size:.85rem;margin:1.5rem var(--page-gutter);color:var(--link)}
.breadcrumb a{text-decoration:none;color:var(--link)}
.breadcrumb a:hover,.breadcrumb a:focus-visible{color:var(--link-hover);text-decoration:underline}

.hero-banda{min-height:86vh;display:flex;flex-direction:column}
.hero-top{flex:3;display:flex;align-items:center;padding:4rem var(--page-gutter) 2rem}
.hero-bottom{flex:2;position:relative}
.hero-band-img{width:100%;aspect-ratio:16/6;object-fit:cover;border-top:1px solid #E9E4DA;border-bottom:1px solid #E9E4DA}
.trust-strip{text-align:center;padding:1rem;font-size:.85rem;letter-spacing:.05em;color:#2C4A63}
.hero-actions{display:flex;gap:1.5rem;flex-wrap:wrap;margin-top:2rem;align-items:center}
.btn-primary{display:inline-block;background:var(--surface-tinta);color:var(--paper);padding:.85rem 1.5rem;text-decoration:none;font-weight:600;border:1px solid var(--surface-tinta)}
.btn-primary:hover,.btn-primary:focus-visible{background:var(--link-hover);border-color:var(--link-hover);color:var(--paper);text-decoration:none}
.btn-secondary{text-decoration:underline;font-weight:600;color:var(--link)}
.btn-secondary:hover,.btn-secondary:focus-visible{color:var(--link-hover)}

.indice-practica{list-style:none}
.indice-practica li{display:flex;align-items:baseline;gap:.5rem;padding:.65rem 0;border-bottom:1px dotted var(--surface-caliza)}
.indice-practica .dots{flex:1;border-bottom:1px dotted #B08050;margin:0 .5rem;min-width:2rem}
.indice-practica a{text-decoration:none;font-weight:600;color:var(--link)}
.indice-practica a:hover,.indice-practica a:focus-visible{color:var(--link-hover);text-decoration:underline}

.verbos{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;text-align:center;padding:4rem var(--page-gutter);font-family:'Newsreader',serif;font-size:1.5rem;font-weight:600}
.ficha{display:grid;grid-template-columns:40% 60%;gap:2rem;align-items:start;margin-bottom:3rem}
.ficha img{border:1px solid var(--surface-caliza)}
.ficha-meta{font-size:.85rem;color:#2C4A63;border-top:1px solid #E9E4DA;padding-top:.75rem;margin-top:1rem}
.margen-grid{display:grid;grid-template-columns:1fr 220px;gap:3rem}
.notas{margin-top:0;font-size:.85rem;color:#2C4A63}
.notas li{margin-bottom:.75rem;list-style:none}
.notas sup{font-weight:600;color:#B08050;margin-right:.25rem}
.lettrine::first-letter{float:left;font-family:'Newsreader',serif;font-size:3.5rem;line-height:1;padding:.1rem .5rem 0 0;color:#2C4A63;font-weight:600}

.cta-band{text-align:center;padding:4rem var(--page-gutter)}
.cta-band h2,.cta-band p{color:var(--paper);margin-bottom:1rem}
.cta-band a:not(.btn-primary){color:var(--paper);text-decoration:underline}
.cta-band a:not(.btn-primary):hover,.cta-band a:not(.btn-primary):focus-visible{color:var(--surface-caliza)}
.cta-band .btn-primary{background:var(--paper);color:var(--link);border-color:var(--paper)}
.cta-band .btn-primary:hover,.cta-band .btn-primary:focus-visible{background:var(--surface-caliza);color:var(--link-hover);border-color:var(--surface-caliza)}

.map-locator{padding:2.5rem var(--page-gutter);display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center;border-top:1px solid var(--surface-caliza)}
.map-locator address{font-style:normal;font-size:.95rem;line-height:1.6}
.map-locator a{color:var(--link);text-decoration:underline}
.map-locator a:hover,.map-locator a:focus-visible{color:var(--link-hover)}
.map-primary,.map-compact{border:1px solid #E9E4DA;width:100%}
.map-primary{height:420px}
.map-compact{height:220px}

.site-footer{padding:4rem var(--page-gutter);display:grid;grid-template-columns:1fr 1px 1fr 1px 1fr;gap:2rem;border-top:1px solid var(--surface-caliza)}
.footer-col h3{font-size:1rem;margin-bottom:.75rem}
.footer-col ul{list-style:none}
.footer-col li{margin-bottom:.4rem}
.footer-col a{text-decoration:none;font-size:.9rem;color:var(--link)}
.footer-col a:hover,.footer-col a:focus-visible{color:var(--link-hover);text-decoration:underline}
.footer-rule{background:#E9E4DA;width:1px}
.footer-disclaimer{font-size:.78rem;line-height:1.5;margin-top:1rem;opacity:.85;grid-column:1/-1;padding-top:2rem;border-top:1px solid #E9E4DA}
.footer-copy{font-size:.75rem;opacity:.75;grid-column:1/-1;margin-top:.5rem}
.page-lead{font-size:1.15rem;line-height:1.6;margin-bottom:2rem}
.campo-block{margin-bottom:3rem;padding-bottom:2rem;border-bottom:1px solid #E9E4DA}
.disclaimer-block{font-size:.9rem;line-height:1.6;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--surface-caliza)}
.disclaimer-block.container{max-width:1100px;padding-left:var(--page-gutter);padding-right:var(--page-gutter)}
.surface-tinta{color:var(--paper)}
.surface-tinta a:not(.btn-primary){color:var(--paper);text-decoration:underline}
.surface-tinta a:not(.btn-primary):hover,.surface-tinta a:not(.btn-primary):focus-visible{color:var(--surface-caliza)}
.nota-trabajo{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center}
.equipo-grid{display:grid;grid-template-columns:minmax(240px,360px) 1fr 220px;gap:2.5rem;align-items:start}
.equipo-portrait img{border:1px solid #E9E4DA}
.equipo-wide{margin-bottom:2.5rem;border:1px solid #E9E4DA}
.faq-layout{display:grid;grid-template-columns:1fr minmax(200px,320px);gap:3rem;align-items:start}
.faq-photo img{border:1px solid #E9E4DA}
.contact-photo{margin-bottom:2rem}
.contact-photo img{border:1px solid #E9E4DA}
.map-section{padding:2.5rem var(--page-gutter);border-top:1px solid var(--surface-caliza)}
.map-caption{font-size:.85rem;color:#2C4A63;margin-top:.75rem;text-align:center}
.legal-updated{font-size:.85rem;color:#2C4A63;margin-bottom:2rem}
.legal-content h2{font-size:1.35rem;margin-top:2.5rem}
.error-page{padding:6rem 0;text-align:center}
.error-links{list-style:none;margin-top:2rem}
.error-links li{margin:.5rem 0}
.hp-field{position:absolute;left:-9999px;height:0;width:0;overflow:hidden}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.contact-form button.btn-primary{border:none;cursor:pointer;font:inherit}
#cookie-manage{margin-top:1rem}

.accordion details{border-bottom:1px solid #E9E4DA;padding:1rem 0}
.accordion summary{font-family:'Newsreader',serif;font-style:italic;font-size:1.15rem;cursor:pointer;list-style:none}
.accordion summary::-webkit-details-marker{display:none}
.accordion details[open] summary{color:#2C4A63}

.contact-center{max-width:560px;margin:0 auto;padding:4rem var(--page-gutter)}
.contact-center a{color:var(--link);text-decoration:underline}
.contact-center a:hover,.contact-center a:focus-visible{color:var(--link-hover)}
.contact-form .checkbox a{color:var(--link);text-decoration:underline;font-weight:600}
.contact-form .checkbox a:hover,.contact-form .checkbox a:focus-visible{color:var(--link-hover)}
.contact-form label{display:block;margin-bottom:.35rem;font-weight:600;font-size:.9rem}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;padding:.75rem;border:1px solid #E9E4DA;background:#FCFCFB;font:inherit;margin-bottom:1rem}
.contact-form textarea{min-height:140px;resize:vertical}
.contact-form .checkbox{display:flex;gap:.5rem;align-items:flex-start;margin:1rem 0}
.contact-form .checkbox input{width:auto;margin-top:.25rem}
.form-error{color:#8B3A3A;font-size:.85rem;margin:-.75rem 0 1rem}
.form-banner{background:#E9E4DA;padding:1rem;margin-bottom:1.5rem;font-weight:600}
.success-block{background:#E9E4DA;padding:1.5rem;margin-bottom:2rem;border-left:3px solid #2C4A63}

.legal-content h2{margin-top:2rem}
.legal-content ul,.legal-content ol{margin:1rem 0 1rem 1.5rem}

.cookie-banner{position:fixed;bottom:0;left:0;right:0;padding:1.25rem var(--page-gutter);border-top:1px solid var(--surface-caliza);z-index:100;display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between}
.cookie-banner.hidden{display:none}
.cookie-actions{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}
.cookie-actions button{padding:.5rem 1rem;border:1px solid var(--surface-tinta);background:var(--surface-tinta);color:var(--paper);cursor:pointer;font:inherit;font-weight:600}
.cookie-actions button:hover,.cookie-actions button:focus-visible{background:var(--link-hover);border-color:var(--link-hover);color:var(--paper)}
#cookie-reject{background:var(--paper);color:var(--link);border-color:var(--surface-tinta)}
#cookie-reject:hover,#cookie-reject:focus-visible{background:var(--surface-caliza);color:var(--link-hover);border-color:var(--link-hover)}
.cookie-actions a{font-size:.9rem;font-weight:600;color:var(--link);text-decoration:underline}
.cookie-actions a:hover,.cookie-actions a:focus-visible{color:var(--link-hover)}
.legal-content a{color:var(--link);text-decoration:underline;font-weight:600}
.legal-content a:hover,.legal-content a:focus-visible{color:var(--link-hover)}
.accordion a{color:var(--link);text-decoration:underline;font-weight:600}
.accordion a:hover,.accordion a:focus-visible{color:var(--link-hover)}
.error-links a{color:var(--link);font-weight:600}
.cookie-note{font-size:.78rem;width:100%}

.js .reveal{opacity:1;transform:none;transition:opacity .7s ease,transform .7s ease}
.js .reveal:not(.is-visible){opacity:0;transform:translateY(16px)}

@media(max-width:900px){
  .site-header{grid-template-columns:1fr;text-align:center}
  .wordmark,.header-cta{justify-self:center}
  .ficha,.margen-grid,.map-locator,.verbos,.site-footer,.nota-trabajo,.equipo-grid,.faq-layout{grid-template-columns:1fr}
  .footer-rule{display:none}
  .hero-banda{min-height:72vh}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .reveal{opacity:1!important;transform:none!important}
}
