/* Legalexbo — blanco mineral, plomo y azul institucional. */
:root { --ink:#252c35; --navy:#243b53; --blue:#365777; --muted:#5e6874; --line:#d8dde2; --soft:#f0f2f4; --shadow:0 12px 32px #25303c0d; }
html { background:#f3f4f5; }
body { color:var(--ink); }
body::before { background-color:#f3f4f5; background-image:url('assets/network-nodes.svg'); filter:grayscale(1); opacity:.25; }
.site-header { min-height:74px; background:#fffffff5; border-bottom:1px solid #d8dde2; box-shadow:0 3px 16px #252c3506; }
.nav-cta { background:#343e49; border-color:#343e49; box-shadow:none; }
.nav-cta span { font-size:.875rem; }
.header-share,.node-menu summary { min-width:44px; min-height:44px; }
.search-hero { min-height:0; padding:48px 24px 42px; background:#edf0f2; isolation:isolate; }
.search-hero::before { background:linear-gradient(180deg,#f5f6f760,#eff1f4ed 85%),url('assets/hero-illimani-tecnologico.jpg') center 38% / cover no-repeat; filter:grayscale(.95); opacity:.35; z-index:-1; }
.hero-profile { max-width:1160px; }
.profile-avatar { width:104px; height:104px; margin:0 auto; filter:drop-shadow(0 8px 14px #26364620); }
.hero-profile h1 { color:#27333f; font-size:clamp(2.3rem,4vw,3.25rem); text-shadow:none; margin:12px auto 0; font-weight:800; letter-spacing:-.04em; }
.profile-tagline { color:#535e69; font-size:1rem; font-weight:500; letter-spacing:.08em; margin:3px 0 17px; }
.social-row { gap:12px; }
.social-row a { width:44px; height:44px; background:#36414c; border:1px solid #36414c; border-radius:50%; }
.social-row a img { width:25px; height:25px; filter:none; }
.social-row a:hover,.social-row a:focus-visible { background:#244b75; }
.social-row a:hover img,.social-row a:focus-visible img { filter:none; }
.portal-dock { width:100%; max-width:none; margin:30px auto 0; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; padding:0; background:none; border:0; box-shadow:none; }
.master-nav,.master-nav:nth-child(3) { width:100%; grid-column:auto; min-height:120px; padding:24px; gap:18px; justify-content:flex-start; text-align:left; background:#ffffffeb; border:1px solid #cfd5dc; border-radius:18px; box-shadow:0 8px 22px #242f3b09; transition:background .18s,transform .18s,box-shadow .18s; }
.master-nav > span { align-items:flex-start; }
.master-nav strong { color:#303944; font-size:1.2rem; line-height:1.3; overflow:visible; white-space:normal; }
.master-nav small { margin-top:6px; color:#606b77; font-size:.875rem; line-height:1.4; white-space:normal; overflow:visible; }
.master-nav svg { width:30px; height:30px; flex:0 0 30px; stroke:#49647e; filter:none; }
.master-nav.active { background:#2f465d; border-color:#2f465d; box-shadow:0 10px 25px #243b5326; }
.master-nav.active strong,.master-nav.active svg { color:white; stroke:white; filter:none; }
.master-nav.active small { color:#e0e7ee; }
.master-nav:hover,.master-nav:focus-visible { background:#e7ecf0; border-color:#8e9dab; box-shadow:0 12px 24px #24313f12; transform:translateY(-2px); }
.master-nav.active:hover,.master-nav.active:focus-visible { background:#3b546b; }
.catalog,.methodology,.family-area,.services-area { max-width:1320px; margin:auto; padding:48px clamp(20px,4vw,60px); color:var(--ink); background:transparent; border:0; box-shadow:none; }
h2,.catalog h2,.methodology h2,.latest-heading h2,.official-heading h2,.area-hero h2 { color:#29333e; font-size:clamp(1.7rem,3vw,2.4rem); line-height:1.2; }
.eyebrow,.catalog .eyebrow,.methodology .eyebrow,.services-hero .eyebrow,.family-hero .eyebrow { color:#526579; font-size:.875rem; letter-spacing:.09em; }
.section-heading { margin-bottom:25px; }
.group-toggle,.family-toggle { min-height:82px; padding:18px 24px; color:#2e3741; background:#ffffffd9; border:1px solid #d5dbe1; border-left:4px solid var(--category-color); border-radius:14px; box-shadow:0 3px 12px #303b4705; }
.group-toggle-copy strong,.family-toggle strong { font-size:1.125rem; font-weight:700; line-height:1.35; }
.group-toggle-copy small,.family-toggle small { color:#646e79; font-size:.875rem; font-weight:500; }
.group-chevron,.family-toggle svg { stroke:#596b7b; }
.group-toggle:hover,.group-toggle:focus-visible,.family-toggle:hover,.family-toggle:focus-visible,.family-group.expanded .family-toggle { background:#e9edf0; border-color:#a9b5bf; box-shadow:0 5px 16px #26323e0c; transform:none; }
.result-group.expanded .group-toggle { background:#e4e9ee; border-color:#a9b5bf; }
.card,.family-grid .family-card { color:var(--ink); background:#fff; border-color:#d5dbe1; box-shadow:var(--shadow); }
.card:hover { border-color:#9caebb; box-shadow:0 15px 32px #26323e16; }
.card::before,.family-grid .family-card::before { height:4px; }
.card-body,.family-card-body { background:#fff; box-shadow:none; }
.card h3,.family-grid article h3,.family-card-body h3 { color:#29333e; font-size:1.2rem; line-height:1.35; }
.category-tag,.family-card-body small { color:#526479; font-size:.8125rem; }
.source,.family-grid article p,.family-card-body p { color:#586572; font-size:1rem; }
.source-row { border-color:#e0e5e9; }
.item-number,.family-card-body b { color:#4d5966; background:#edf0f3; border-color:#d7dfe5; font-size:.875rem; }
.source-icon { color:#405971; min-width:44px; min-height:44px; background:#eef1f4; border-color:#cdd7df; box-shadow:none; }
.tiktok-icon { background:#303944; }
.source-icon:hover,.source-icon:focus-visible { color:white; background:#3f5870; }
.precedent-trigger,.precedent-mark { background:#344c63; border-color:#adbac6; box-shadow:0 5px 16px #202d3b26; }
.latest,.official-sources { width:calc(100% - 40px); max-width:1200px; padding:38px; margin:18px auto 38px; color:var(--ink); background:#e8ebee; border:1px solid #d7dce2; border-radius:22px; box-shadow:none; }
.latest-heading > p,.official-heading > p,.area-hero > p:last-child { color:#58636e; }
.latest-card,.official-grid a { color:var(--ink); background:#fff; border-color:#d1d8df; box-shadow:none; }
.latest-card:hover,.latest-card:focus-visible,.official-grid a:hover,.official-grid a:focus-visible { background:#f6f8fa; border-color:#9eafbd; }
.latest-copy small,.official-grid span { color:#526479; font-size:.8125rem; }
.latest-copy em,.official-grid small { color:#5f6c78; font-size:.875rem; }
.latest-rank { color:#526479; font-size:.75rem; }
.latest-arrow,.area-contact > span { display:none; }
.method-grid article,.services-grid article { background:#ffffffdd; border:1px solid #d4dbe1; box-shadow:none; border-radius:16px; }
.method-grid article { border-top:3px solid #8797a7; }
.method-grid h3,.services-grid h3 { color:#303c47; }
.method-grid p,.services-grid p { color:#5c6772; }
.method-grid span { color:#65788c; }
.legal-note { color:#5b6875; background:#e9edf0; border-color:#d5dce2; }
.area-contact { color:white; background:#344b61; border-color:#344b61; box-shadow:none; font-size:1rem; }
.family-card-media { background:linear-gradient(135deg,#3a4551,color-mix(in srgb,var(--category-color) 45%,#485561)); }
.family-card-media strong { line-height:1.2; }
.family-scroll-control::-webkit-slider-runnable-track { background:#ccd4dc; border-color:#ccd4dc; }
.family-scroll-control::-moz-range-track { background:#ccd4dc; border-color:#ccd4dc; }
.precedent-dialog { color:var(--ink); background:#fff; border-color:#c5cfd7; box-shadow:0 25px 80px #222d3b40; }
.precedent-dialog-heading h2,.precedent-text { color:#293540; }
.precedent-dialog-heading p,.precedent-source { color:#405c76; }
.precedent-pages { color:#626e79; font-size:.875rem; }
.precedent-text { font-size:1.0625rem; line-height:1.8; }
.precedent-dialog-header,.precedent-dialog-actions { border-color:#dce2e7; }
.precedent-dialog-actions { background:#eef1f4; flex-wrap:wrap; }
.precedent-action { background:#344c63; font-size:.875rem; }
.precedent-close { color:#3e4f5e; background:#eef1f4; border-color:#d0d9e0; min-width:44px; min-height:44px; }
.empty-state h3 { color:#303c47; }.empty-state p { color:#5c6772; }
footer { background:#343d47; color:#fff; }
.footer-brand span,.footer-links a,.footer-contact a { color:#e1e5e9; font-size:.875rem; }
button:focus-visible,a:focus-visible,summary:focus-visible { outline:3px solid #7094b1; outline-offset:4px; }
@media(min-width:900px) { .cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; align-items:start; }.result-group + .result-group { margin-top:0; }.result-group.expanded { grid-column:1/-1; } }
@media(max-width:720px) {
 .search-hero { padding:25px 16px 28px; }.profile-avatar { width:82px; height:82px; margin:0 auto; }
 .hero-profile h1 { font-size:2.15rem; }.profile-tagline { margin-bottom:13px; }
 .social-row { gap:10px; }.social-row a { width:40px; height:40px; }.social-row a img { width:23px; height:23px; }
 .portal-dock { width:100%; grid-template-columns:1fr; gap:10px; margin-top:24px; padding:0; }
 .master-nav,.master-nav:nth-child(3) { min-height:84px; width:100%; grid-column:auto; padding:16px 20px; border-radius:15px; gap:18px; }
 .master-nav strong { font-size:1.125rem; }.master-nav small { font-size:.875rem; margin-top:3px; }.master-nav svg { width:27px; height:27px; }
 .catalog,.methodology,.family-area,.services-area { padding:30px 16px; min-height:0; }.group-toggle,.family-toggle { padding:16px 18px; }
 .latest,.official-sources { width:calc(100% - 32px); padding:25px 20px; }.latest-heading,.official-heading { grid-template-columns:1fr; gap:16px; }
 .latest-card { gap:12px; padding:18px; }.latest-copy strong { line-height:1.4; }
 .family-card-body p { font-size:1rem; }.area-contact { justify-content:center; text-align:center; }
 .nav-cta span { font-size:.875rem; }.precedent-dialog-actions { gap:8px; }.precedent-text { font-size:1rem; }
}
