
/* SECTION */
.section{padding:5rem 0}
.section.alt{background:var(--gray-50)}
.sec-label{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--gold);margin-bottom:.75rem}
.sec-title{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:clamp(1.6rem,3vw,2.2rem);color:var(--navy);line-height:1.15;margin-bottom:.75rem}
.sec-title span{color:var(--blue-light)}
.divider{width:48px;height:3px;background:var(--gold);border-radius:2px;margin:.9rem 0 1rem}
.sec-desc{color:var(--gray-500);font-size:.92rem;max-width:620px;line-height:1.75}
.sec-header{margin-bottom:3rem}
.sec-header.centered{text-align:center}
.sec-header.centered .sec-desc{margin:0 auto}
.sec-header.centered .divider{margin:.9rem auto 1rem}

/* NORMATIVA GRID */
.normativa-layout{display:grid;grid-template-columns:260px 1fr;gap:2.5rem;align-items:start}

/* SIDEBAR CATEGORIES */
.norm-sidebar{position:sticky;top:80px}
.norm-sidebar-title{font-size:.7rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--gold);margin-bottom:1rem}
.norm-cat-list{display:flex;flex-direction:column;gap:2px}
.norm-cat-btn{background:none;border:none;cursor:pointer;text-align:left;padding:.6rem 1rem;border-radius:6px;font-size:.83rem;font-weight:500;color:var(--gray-700);transition:background var(--t),color var(--t);display:flex;align-items:center;gap:.65rem;width:100%}
.norm-cat-btn i{width:16px;color:var(--gray-400);font-size:.8rem;transition:color var(--t)}
.norm-cat-btn:hover,.norm-cat-btn.active{background:var(--navy);color:#fff}
.norm-cat-btn:hover i,.norm-cat-btn.active i{color:var(--gold-light)}

/* DOCUMENT LIST */
.norm-group{margin-bottom:2.5rem}
.norm-group-label{font-size:.68rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold);margin-bottom:.85rem;padding-bottom:.5rem;border-bottom:1px solid var(--gray-200)}
.norm-items{display:flex;flex-direction:column;gap:.5rem}
.norm-item{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);transition:box-shadow var(--t),border-color var(--t),transform var(--t);cursor:pointer}
.norm-item:hover{box-shadow:var(--shadow);border-color:var(--gold);transform:translateX(3px)}
.norm-item-icon{width:44px;height:44px;min-width:44px;border-radius:8px;background:var(--navy);display:grid;place-items:center;color:var(--gold-light);font-size:1rem;flex-shrink:0;transition:background var(--t)}
.norm-item:hover .norm-item-icon{background:var(--blue)}
.norm-item-body{flex:1}
.norm-item-title{font-weight:600;font-size:.88rem;color:var(--navy);line-height:1.4;margin-bottom:.15rem}
.norm-item-sub{font-size:.74rem;color:var(--gray-500)}
.norm-item-arrow{color:var(--gray-200);font-size:.8rem;transition:color var(--t),transform var(--t);flex-shrink:0}
.norm-item:hover .norm-item-arrow{color:var(--blue);transform:translateX(3px)}

/* MODAL */
.modal-overlay{position:fixed;inset:0;z-index:2000;background:rgba(9,30,71,.75);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;padding:1rem}
.modal-overlay.open{display:flex}
.modal-box{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:100%;max-width:960px;max-height:92vh;display:flex;flex-direction:column;overflow:hidden;animation:modalIn .25s ease}
@keyframes modalIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.modal-head{display:flex;align-items:flex-start;gap:1rem;padding:1.25rem 1.5rem;border-bottom:3px solid var(--gold);background:var(--navy);flex-shrink:0}
.modal-head-icon{width:42px;height:42px;min-width:42px;border-radius:7px;background:rgba(200,150,12,.2);display:grid;place-items:center;color:var(--gold-light);font-size:1rem}
.modal-head-title{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:1.1rem;color:#fff;line-height:1.3;flex:1}
.modal-close{background:rgba(255,255,255,.1);border:none;color:#fff;width:36px;height:36px;border-radius:6px;cursor:pointer;display:grid;place-items:center;font-size:.9rem;transition:background var(--t);flex-shrink:0}
.modal-close:hover{background:rgba(255,255,255,.2)}
.modal-body{flex:1;overflow:auto;padding:1.5rem}
.modal-pdf{width:100%;height:65vh;border:none;border-radius:var(--radius);background:var(--gray-50)}
.modal-foot{padding:1rem 1.5rem;border-top:1px solid var(--gray-200);display:flex;justify-content:flex-end;gap:.75rem;flex-shrink:0}
.btn-primary{background:var(--navy);color:#fff;font-weight:600;font-size:.85rem;padding:.7rem 1.5rem;border-radius:4px;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;transition:background var(--t)}
.btn-primary:hover{background:var(--blue);color:#fff}
.btn-outline{background:transparent;border:1.5px solid var(--navy);color:var(--navy);font-weight:600;font-size:.8rem;padding:.6rem 1.2rem;border-radius:4px;display:inline-flex;align-items:center;gap:.45rem;transition:background var(--t),color var(--t);cursor:pointer}
.btn-outline:hover{background:var(--navy);color:#fff}

/* STATS BAND */
.stats-band{background:var(--navy);padding:3rem 0;position:relative;overflow:hidden}
.stats-band::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(45deg,transparent,transparent 30px,rgba(255,255,255,.015) 30px,rgba(255,255,255,.015) 31px)}
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;position:relative}
.stat{text-align:center;padding:1.5rem 1rem;position:relative}
.stat+.stat::before{content:'';position:absolute;left:0;top:20%;height:60%;width:1px;background:rgba(255,255,255,.12)}
.stat-icon{font-size:1.5rem;color:var(--gold);margin-bottom:.6rem;opacity:.85}
.stat-num{font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:2.6rem;color:#fff;line-height:1}
.stat-lbl{font-size:.75rem;color:rgba(255,255,255,.5);margin-top:.4rem;letter-spacing:.4px;text-transform:uppercase}


/* SEARCH BAR */
.norm-search-wrap{position:relative;margin-bottom:1.75rem}
.norm-search{width:100%;border:1.5px solid var(--gray-200);border-radius:var(--radius);padding:.7rem 1rem .7rem 2.75rem;font-size:.88rem;font-family:'Inter',sans-serif;color:var(--text);transition:border-color var(--t),box-shadow var(--t)}
.norm-search:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(13,43,94,.1);outline:none}
.norm-search-icon{position:absolute;left:.9rem;top:50%;transform:translateY(-50%);color:var(--gray-400);font-size:.85rem;pointer-events:none}

/* RESPONSIVE */
@media(max-width:1024px){
  .normativa-layout{grid-template-columns:1fr}
  .norm-sidebar{position:static;display:flex;flex-wrap:wrap;gap:.4rem;background:var(--gray-50);padding:1rem;border-radius:var(--radius);border:1px solid var(--gray-200)}
  .norm-sidebar-title{width:100%;margin-bottom:.4rem}
  .norm-cat-list{flex-direction:row;flex-wrap:wrap}
  .norm-cat-btn{padding:.45rem .85rem;font-size:.78rem}
  .footer-grid{grid-template-columns:1fr 1fr}
  .stats-grid{grid-template-columns:1fr}
  .stat+.stat::before{display:none}
}
@media(max-width:768px){
  .gov-strip-links,.nav-links{display:none}
  .section{padding:3.5rem 0}
  .footer-grid{grid-template-columns:1fr}
}
