:root{
    --brand:#0f4c81;
    --brand-deep:#0b1f36;
    --brand-ink:#10263c;
    --brand-soft:#edf4fb;
    --accent:#d6a85c;
    --surface:#ffffff;
    --surface-2:#f5f8fc;
    --border:rgba(15,31,54,.10);
    --shadow:0 20px 50px rgba(11,31,54,.12);
    --shadow-soft:0 14px 34px rgba(11,31,54,.08);
    --radius:24px;
    --radius-sm:18px;
    --container:1320px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
    font-family:"Inter",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    color:var(--brand-ink);
    background:linear-gradient(180deg,#f4f8fc 0%,#ffffff 18%,#f8fbff 100%);
}
a{text-decoration:none}
img{max-width:100%;height:auto;display:block}
.container-xxl{max-width:var(--container)}
.topbar{
    background:var(--brand-deep);
    color:rgba(255,255,255,.78);
    font-size:.92rem;
}
.topbar a,.topbar-text span{color:rgba(255,255,255,.78)}
.topbar i{color:var(--accent)}
.navbar-shell{
    background:rgba(255,255,255,.92);
    backdrop-filter:blur(18px);
    border-bottom:1px solid rgba(15,31,54,.06);
}
.brand-lockup{display:flex;align-items:center;gap:.9rem;color:var(--brand-deep)}
.brand-lockup strong{display:block;font-size:1.05rem;letter-spacing:.02em}
.brand-lockup small{display:block;color:#66788e;font-size:.84rem}
.brand-mark-wrap{
    width:58px;height:58px;border-radius:18px;display:grid;place-items:center;
    background:linear-gradient(135deg,#0f4c81,#0b1f36);box-shadow:var(--shadow-soft)
}
.navbar-nav .nav-link{
    color:#22405e;font-weight:600;padding:.95rem 1rem;border-radius:999px;transition:.25s ease;
}
.navbar-nav .nav-link:hover,.navbar-nav .nav-link.active{color:var(--brand-deep);background:#eef5fc}
.btn{border-radius:999px;font-weight:700;padding:.88rem 1.35rem}
.btn-brand{
    background:linear-gradient(135deg,var(--brand),#0c3e68);
    border-color:transparent;color:#fff;box-shadow:0 14px 28px rgba(15,76,129,.28)
}
.btn-brand:hover{background:linear-gradient(135deg,#105890,#0a3557);color:#fff}
.btn-soft{
    background:#fff;border:1px solid rgba(15,76,129,.18);color:var(--brand-deep);box-shadow:var(--shadow-soft)
}
.btn-soft:hover{background:#f3f7fb;color:var(--brand-deep)}
.hero-home{
    position:relative;overflow:hidden;padding:5rem 0 2rem;
    background:
      radial-gradient(circle at top left, rgba(214,168,92,.22), transparent 32%),
      radial-gradient(circle at 85% 15%, rgba(15,76,129,.20), transparent 28%),
      linear-gradient(180deg,#eef4fb 0%,#f7fbff 42%,#ffffff 100%);
}
.hero-home::before{
    content:"";position:absolute;inset:0;background:url('../img/mapa-ruido.jpg') right top/40% auto no-repeat;opacity:.05;pointer-events:none;
}
.hero-copy{position:relative;z-index:1;padding-right:2rem}
.section-kicker{
    display:inline-flex;align-items:center;gap:.55rem;
    padding:.52rem .9rem;border-radius:999px;background:rgba(15,76,129,.10);
    color:var(--brand);font-weight:800;letter-spacing:.06em;text-transform:uppercase;font-size:.73rem;
}
.hero-copy h1,.page-hero-copy h1{
    font-size:clamp(2.4rem,5vw,4.65rem);line-height:1.03;letter-spacing:-.04em;margin:1.1rem 0 1.2rem;color:var(--brand-deep);font-weight:800;
}
.hero-lead{font-size:1.18rem;line-height:1.8;color:#49627d;max-width:760px}
.hero-tags{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.6rem}
.hero-tags span{
    border:1px solid rgba(15,31,54,.09);padding:.76rem 1rem;border-radius:999px;background:rgba(255,255,255,.74);font-weight:600;color:#2a425d
}
.hero-visual{position:relative}
.glass-panel{
    background:rgba(255,255,255,.70);border:1px solid rgba(255,255,255,.55);backdrop-filter:blur(16px);box-shadow:var(--shadow);
}
.hero-main-card{position:relative;padding:1rem;border-radius:32px}
.hero-main-card img{border-radius:24px;aspect-ratio:4/4.2;object-fit:cover;width:100%}
.hero-float{
    position:absolute;max-width:260px;padding:1rem 1.05rem;border-radius:20px;background:#fff;box-shadow:var(--shadow-soft)
}
.hero-float strong{display:block;color:var(--brand-deep);font-size:1rem}
.hero-float span{display:block;color:#5c7086;font-size:.91rem;line-height:1.5;margin-top:.35rem}
.hero-float-top{top:1.5rem;left:-1.4rem}
.hero-float-bottom{right:-1rem;bottom:1.6rem}
.hero-metrics{margin-top:2rem;position:relative;z-index:1}
.metric-card{padding:1.4rem 1.2rem;border-radius:24px;height:100%}
.metric-card strong{display:block;font-size:1.25rem;color:var(--brand-deep);margin-bottom:.2rem}
.metric-card span{display:block;color:#607287;line-height:1.5}
.logo-band{padding:1rem 0 4.5rem}
.band-header{max-width:920px;margin:0 auto 1.8rem;text-align:center}
.band-header h2{font-size:clamp(1.7rem,3vw,3rem);line-height:1.15;color:var(--brand-deep);margin-top:1rem;font-weight:800}
.logo-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1rem}
.logo-card{
    background:#fff;border:1px solid var(--border);border-radius:22px;padding:1.25rem 1rem;text-align:center;
    box-shadow:var(--shadow-soft);transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;color:var(--brand-deep)
}
.logo-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:rgba(15,76,129,.20);color:var(--brand-deep)}
.logo-media{
    display:flex;align-items:center;justify-content:center;height:52px;margin-bottom:.9rem;filter:grayscale(100%);opacity:.86;
}
.logo-card:hover .logo-media{filter:none;opacity:1}
.logo-media img{max-height:40px;max-width:100%;object-fit:contain}
.logo-card strong{display:block;font-size:.98rem}
.logo-card small{display:block;color:#6c7d90;margin-top:.25rem;line-height:1.35}
.section-shell{padding:5.5rem 0}
.compact-shell{padding-top:0}
.alt-shell{background:linear-gradient(180deg,#f4f8fc 0%,#ffffff 100%)}
.section-heading{max-width:860px;margin:0 auto 2.25rem;text-align:center}
.section-heading-left{text-align:left;max-width:none}
.section-heading h2{font-size:clamp(1.9rem,3.4vw,3.3rem);line-height:1.12;color:var(--brand-deep);margin:1rem 0 .8rem;font-weight:800}
.section-heading p{font-size:1.05rem;line-height:1.85;color:#5f7388}
.service-feature-card{
    background:#fff;border-radius:28px;overflow:hidden;box-shadow:var(--shadow-soft);border:1px solid var(--border);height:100%
}
.service-feature-card img{width:100%;aspect-ratio:4/2.65;object-fit:cover;background:#eaf1f7}
.service-feature-body{padding:1.55rem 1.4rem 1.45rem}
.service-icon{
    width:50px;height:50px;border-radius:16px;display:grid;place-items:center;
    background:linear-gradient(135deg,rgba(15,76,129,.12),rgba(11,31,54,.08));color:var(--brand);font-size:1.2rem;margin-bottom:1rem
}
.service-feature-body h3{font-size:1.32rem;color:var(--brand-deep);font-weight:800}
.service-feature-body p{color:#607387;line-height:1.75;margin:.75rem 0 1rem}
.service-feature-body a{font-weight:800;color:var(--brand)}
.section-dark-photo{
    background:linear-gradient(140deg,#0d2037,#0a1526 72%);color:#fff;position:relative;overflow:hidden
}
.section-dark-photo::before{
    content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(214,168,92,.18),transparent 20%),radial-gradient(circle at 75% 25%,rgba(15,76,129,.20),transparent 30%);
}
.section-dark-photo .container-xxl{position:relative;z-index:1}
.section-dark-photo .section-heading p{color:rgba(255,255,255,.72)}
.gallery-card{border-radius:24px;overflow:hidden;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.10);min-height:220px}
.gallery-card.large{min-height:460px}
.gallery-card img{width:100%;height:100%;object-fit:cover}
.process-stack{display:grid;gap:1rem}
.process-item{
    display:flex;gap:1rem;align-items:flex-start;padding:1.2rem 1.25rem;background:#fff;border-radius:22px;box-shadow:var(--shadow-soft);border:1px solid var(--border)
}
.process-item span{
    width:54px;height:54px;border-radius:16px;display:grid;place-items:center;flex:0 0 auto;
    background:linear-gradient(135deg,var(--brand),var(--brand-deep));color:#fff;font-weight:800
}
.process-item h3{font-size:1.08rem;color:var(--brand-deep);margin:.15rem 0 .35rem;font-weight:800}
.process-item p{margin:0;color:#617487;line-height:1.7}
.authority-panel{
    background:linear-gradient(145deg,#fff,#f4f8fc);border-radius:30px;padding:2rem;border:1px solid var(--border);box-shadow:var(--shadow)
}
.authority-panel img{margin-top:1.2rem;border-radius:22px;background:#f1f4f8}
.page-hero-shell{padding:4.2rem 0 2.8rem;background:linear-gradient(180deg,#eef4fb 0%,#ffffff 100%)}
.article-shell{padding-bottom:1rem}
.page-hero-copy{padding-right:1.5rem}
.media-frame{
    padding:.9rem;border-radius:30px;background:#fff;box-shadow:var(--shadow);border:1px solid var(--border)
}
.media-frame img{width:100%;border-radius:22px;object-fit:cover;aspect-ratio:4/3;background:#edf3fa}
.content-panel{
    background:#fff;border-radius:28px;padding:2rem;border:1px solid var(--border);box-shadow:var(--shadow-soft)
}
.soft-panel{background:linear-gradient(180deg,#f7fbff 0%,#eef5fc 100%)}
.content-panel h2,.content-panel h3{color:var(--brand-deep);font-weight:800;margin-top:.8rem}
.content-panel p{color:#627588;line-height:1.8}
.check-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1.25rem}
.check-item{display:flex;gap:.85rem;align-items:flex-start;padding:1rem;background:#f6f9fc;border-radius:18px}
.check-item i{font-size:1.1rem;color:var(--brand)}
.check-item span{color:#41566d;line-height:1.6;font-weight:600}
.related-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.related-card{
    display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 1.2rem;border-radius:18px;
    background:#fff;border:1px solid var(--border);box-shadow:var(--shadow-soft);color:var(--brand-deep);font-weight:700
}
.related-card i{color:var(--brand)}
.cta-banner{
    background:linear-gradient(135deg,#0b1f36,#123d62);color:#fff;border-radius:32px;padding:2rem 2.1rem;
    display:flex;justify-content:space-between;align-items:center;gap:2rem;box-shadow:var(--shadow)
}
.cta-banner h2{font-size:clamp(1.6rem,3vw,2.6rem);line-height:1.15;margin:1rem 0 .6rem;font-weight:800}
.cta-banner p{margin:0;color:rgba(255,255,255,.76);line-height:1.8;max-width:780px}
.cta-banner .section-kicker{background:rgba(255,255,255,.10);color:#fff}
.article-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}
.article-card{background:#fff;border-radius:26px;padding:1.8rem;border:1px solid var(--border);box-shadow:var(--shadow-soft)}
.article-card h2{font-size:1.4rem;color:var(--brand-deep);font-weight:800;margin-bottom:.8rem}
.article-card p{color:#627588;line-height:1.8;margin:0}
.diagnostic-card,.diagnostic-result-card{
    background:#fff;border-radius:28px;padding:1.8rem;border:1px solid var(--border);box-shadow:var(--shadow)
}
.diagnostic-card .form-label{font-weight:700;color:var(--brand-deep)}
.form-control,.form-select{border-radius:16px;padding:.9rem 1rem;border-color:rgba(15,31,54,.12)}
.form-control:focus,.form-select:focus{border-color:rgba(15,76,129,.40);box-shadow:0 0 0 .25rem rgba(15,76,129,.10)}
.diagnostic-result-card h2{margin-top:.8rem;color:var(--brand-deep);font-weight:800}
.diagnostic-result-card p{color:#627588;line-height:1.8}
.result-box{
    min-height:170px;border-radius:22px;background:#f5f8fc;padding:1.2rem;white-space:pre-wrap;line-height:1.8;color:#334a63;margin:1rem 0 1.2rem;border:1px dashed rgba(15,31,54,.12)
}
.footer-shell{padding:4.5rem 0 2rem;background:linear-gradient(180deg,#0b1f36 0%,#071422 100%);color:#d8e3ef;margin-top:4rem}
.footer-top{padding-bottom:2rem;border-bottom:1px solid rgba(255,255,255,.08)}
.footer-brand{display:flex;align-items:flex-start;gap:1rem;max-width:520px}
.footer-brand img{padding:.5rem;border-radius:16px;background:rgba(255,255,255,.08)}
.footer-brand strong{display:block;font-size:1.15rem;color:#fff;margin-bottom:.35rem}
.footer-brand span{display:block;line-height:1.8;color:rgba(255,255,255,.72)}
.footer-shell h4{font-size:1rem;color:#fff;font-weight:800;margin-bottom:1rem}
.footer-links{list-style:none;padding:0;margin:0;display:grid;gap:.7rem}
.footer-links a{color:rgba(255,255,255,.72)}
.footer-links a:hover{color:#fff}
.footer-bottom{padding-top:1.4rem;display:flex;justify-content:space-between;gap:1rem;color:rgba(255,255,255,.56);font-size:.92rem}
@media (max-width:1199.98px){
    .logo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
    .hero-float-top,.hero-float-bottom{position:static;max-width:none;margin-top:1rem}
    .hero-copy,.page-hero-copy{padding-right:0}
}
@media (max-width:991.98px){
    .logo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .hero-home{padding-top:3rem}
    .section-shell{padding:4rem 0}
    .cta-banner{flex-direction:column;align-items:flex-start}
    .check-columns,.related-grid,.article-grid{grid-template-columns:1fr}
    .gallery-card.large{min-height:300px}
}
@media (max-width:767.98px){
    .topbar-contact{font-size:.84rem}
    .brand-lockup strong{font-size:.97rem}
    .hero-copy h1,.page-hero-copy h1{font-size:2.25rem}
    .hero-lead{font-size:1rem}
    .logo-card{padding:1rem .85rem}
    .service-feature-body{padding:1.2rem}
    .footer-bottom{flex-direction:column}
}
