/* Identidad Legalexbo: blanco, plomo, azul profundo y azul del nodo. */
:root { --brand-deep:#09168f; --brand-blue:#0864e9; --ink:#263143; --navy:#142b55; --blue:#145dcc; --muted:#596574; --line:#cbd2dc; }
html { background:#e5e8ed; }
body::before { background-color:#e5e8ed; background-image:url('assets/network-nodes.svg'); filter:grayscale(1); opacity:.24; }
.site-header { min-height:74px; border-bottom:1px solid #d2d8e2; background:#ffffffed; }
.nav-cta { background:#101d4b; border:0; border-radius:999px; padding:11px 18px; box-shadow:none; }
.header-share { border-radius:50%; background:#e9edf3; border-color:#d2dbe7; color:#123572; }
.node-menu summary { color:#09168f; }
.search-hero { --panorama-height:clamp(280px,30vw,405px); padding:calc(var(--panorama-height) - 70px) 24px 32px; background:#cfd5de; isolation:isolate; }
.search-hero::before { inset:0 0 auto; height:var(--panorama-height); background:linear-gradient(180deg,#06132f00 65%,#07163338),url('assets/hero-illimani-tecnologico.jpg') center 42% / cover no-repeat; opacity:1; filter:none; }
.hero-profile { max-width:1140px; }
.profile-avatar { width:140px; height:140px; margin:0 auto; padding:0; background:#fff; border:5px solid #f7f9fc; clip-path:none; border-radius:50%; box-shadow:0 8px 26px #172b5140,0 0 0 1px #c4cfdd; filter:none; }
.hero-profile h1 { margin:12px auto 0; color:#0b185b; font-size:clamp(2.2rem,4vw,3.2rem); font-weight:800; letter-spacing:-.045em; text-shadow:none; }
.profile-tagline { color:#4e5b6e; font-weight:500; letter-spacing:.1em; margin:4px 0 15px; }
.social-row { gap:12px; }
.social-row a { background:#344258; border:1px solid #344258; width:40px; height:40px; border-radius:50%; }
.social-row a img { width:24px; height:24px; filter:none; }
.social-row a:hover,.social-row a:focus-visible { background:#125cca; border-color:#125cca; }
.portal-dock { width:100%; max-width:1100px; margin:27px auto 0; gap:14px; grid-template-columns:repeat(3,minmax(0,1fr)); border:0; background:none; padding:0; box-shadow:none; }
.master-nav,.master-nav:nth-child(3) { width:100%; grid-column:auto; min-height:112px; padding:22px; gap:18px; border:1px solid #aebccd; border-radius:14px; background:#edf1f6; box-shadow:0 5px 12px #142b5510; position:relative; }
.master-nav::after { content:''; position:absolute; left:22px; bottom:0; width:36px; height:3px; background:#9aabbe; border-radius:3px 3px 0 0; }
.master-nav strong { color:#182d53; font-size:1.1875rem; line-height:1.3; }
.master-nav small { color:#56667b; font-size:.875rem; margin-top:5px; line-height:1.4; }
.master-nav svg { width:30px; height:30px; stroke:#1757a8; flex:0 0 30px; filter:none; }
.master-nav[data-area-target="familia"] { background:#dbe2ec; }
.master-nav[data-area-target="servicios"] { background:#c4d5e9; }
.master-nav.active { background:linear-gradient(115deg,#101b80,#183d8a); border-color:#1b3d87; box-shadow:0 10px 22px #0d265a2b; }
.master-nav.active::after { width:calc(100% - 44px); background:#59a5ff; }
.master-nav.active strong,.master-nav.active svg { color:#fff; stroke:#fff; filter:none; }
.master-nav.active small { color:#e0eaff; }
.master-nav:hover,.master-nav:focus-visible { background:#fff; border-color:#648ab8; transform:translateY(-2px); }
.master-nav.active:hover,.master-nav.active:focus-visible { background:linear-gradient(115deg,#0c267e,#2254a4); }
.catalog,.family-area,.services-area,.methodology { max-width:1260px; padding:48px 32px; }
.catalog h2,.methodology h2,.area-hero h2,.latest-heading h2 { color:#15294b; letter-spacing:-.035em; font-weight:750; }
.eyebrow,.catalog .eyebrow,.methodology .eyebrow,.family-hero .eyebrow,.services-hero .eyebrow { color:#1e58a1; font-size:.8125rem; letter-spacing:.14em; }
.cards { display:flex; flex-direction:column; gap:12px; min-width:0; }
.result-group + .result-group { margin-top:0; }
.result-group,.family-group { scroll-margin-top:86px; min-width:0; }
.group-toggle,.family-toggle { min-height:84px; padding:19px 23px; background:#f6f8fb; border:1px solid #bdc9d8; border-left:4px solid #7193bb; border-radius:12px; color:#263b57; box-shadow:0 4px 10px #243c5805; }
.group-toggle-copy strong,.family-toggle strong { font-size:1.125rem; line-height:1.35; font-weight:700; }
.group-toggle-copy small,.family-toggle small { font-size:.875rem; font-weight:500; color:#596c81; }
.group-chevron,.family-toggle svg { stroke:#245aa5; width:24px; height:24px; }
.group-toggle:hover,.group-toggle:focus-visible,.family-toggle:hover,.family-toggle:focus-visible { background:#e6eef9; border-color:#7f9ec4; transform:none; box-shadow:0 4px 15px #16477710; }
.result-group.expanded .group-toggle,.family-group.expanded .family-toggle { background:linear-gradient(115deg,#172c5e,#234b83); border-color:#244f87; border-left-color:#53a0f6; color:#fff; box-shadow:0 7px 16px #18345b20; }
.result-group.expanded .group-toggle small,.family-group.expanded .family-toggle small { color:#d9e7f8; }
.result-group.expanded .group-chevron,.family-group.expanded .family-toggle svg { stroke:#9fccff; }
.category-carousel,.family-carousel { margin-top:12px; }
.card,.family-grid .family-card { background:#f8fafc; border-color:#bccbdc; border-radius:15px; box-shadow:0 9px 20px #1c36511a; }
.card::before,.family-grid .family-card::before { height:4px; background:#357aca; }
.card-body,.family-card-body { background:#f8fafc; }
.card h3,.family-card-body h3 { color:#1c3357; font-size:1.2rem; line-height:1.35; }
.category-tag,.family-card-body small { color:#215a9c; }
.source-icon { background:#e1eaf5; color:#184d93; border-color:#b5c8df; }
.tiktok-icon { background:#28374d; }
.item-number,.family-card-body b { background:#e2eaf4; border-color:#bccce0; color:#284d7b; }
.source-row { border-color:#d3ddea; }
.precedent-trigger,.precedent-mark { background:#123b82; border-color:#8dafd9; }
.latest { max-width:1196px; padding:36px; background:#d2dce8; border:1px solid #b6c6d9; border-radius:18px; }
.latest-card { background:#edf2f8; border-color:#b6c9de; border-left:4px solid #4e82bc; }
.latest-copy small { color:#2a5b94; }.latest-rank { color:#2b5c94; }
.official-sources { max-width:1196px; padding:36px; background:linear-gradient(125deg,#182a50,#244570); border-color:#244570; color:#fff; border-radius:18px; }
.official-heading h2 { color:#fff; }
.official-sources .eyebrow,.official-heading > p { color:#c8dcf2; }
.official-grid a { background:#e3ebf5; border-color:#aabed6; color:#1a3356; }
.official-grid span { color:#315f96; }
.method-grid article,.services-grid article { background:#eff3f8; border-color:#bccadc; border-top:3px solid #597eac; border-radius:14px; }
.method-grid span { color:#175cb3; }.method-grid h3,.services-grid h3 { color:#1b345c; }
.legal-note { background:#d6e0ec; border-color:#bdccdf; }
.family-card-media { background:linear-gradient(145deg,#13294f,#416e9f); }
.area-contact { background:#154a97; border-color:#154a97; }
footer { background:#1a2940; }
@media(min-width:1000px) {
 .catalog { display:grid; grid-template-columns:minmax(230px,.72fr) minmax(0,1.6fr); gap:48px; align-items:start; }
 .catalog .section-heading { position:sticky; top:106px; margin-top:12px; }
 .catalog h2 { max-width:12ch; font-size:2.5rem; line-height:1.13; }
 .catalog .empty-state { grid-column:2; }
}
@media(max-width:720px) {
 .site-header { min-height:70px; }
 .search-hero { --panorama-height:clamp(214px,58vw,310px); padding:calc(var(--panorama-height) - 57px) 16px 25px; }
 .profile-avatar { width:114px; height:114px; border-width:4px; margin:0 auto; }
 .hero-profile h1 { font-size:2.2rem; margin-top:10px; }
 .profile-tagline { font-size:.9375rem; margin-bottom:13px; }
 .social-row { gap:12px; }.social-row a { width:38px; height:38px; }.social-row a img { width:23px; height:23px; }
 .portal-dock { margin-top:22px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
 .master-nav,.master-nav:nth-child(3) { width:100%; min-height:112px; padding:16px 13px; flex-direction:column; align-items:flex-start; justify-content:center; gap:9px; border-radius:12px; }
 .master-nav:first-child { grid-column:1/-1; min-height:82px; flex-direction:row; align-items:center; justify-content:flex-start; padding:17px 20px; gap:17px; }
 .master-nav strong { font-size:1rem; line-height:1.35; }.master-nav small { font-size:.875rem; line-height:1.3; margin-top:3px; }
 .master-nav svg { width:25px; height:25px; flex-basis:25px; }.master-nav > span { align-items:flex-start; }
 .catalog,.family-area,.services-area,.methodology { padding:32px 16px; }
 .catalog h2 { font-size:1.75rem; }.section-heading { margin-bottom:20px; }
 .group-toggle,.family-toggle { padding:17px 18px; min-height:82px; }
 .latest,.official-sources { width:calc(100% - 32px); padding:27px 20px; }
 .family-card-media strong { line-height:1.2; }
 .nav-cta { padding:10px 12px; }.nav-cta span { font-size:.875rem; }
}
@media(prefers-reduced-motion:reduce) { .master-nav:hover { transform:none; } }
