/*
Theme Name: themev2
Author: elperrito
Author URI: https://elperrito.org/
Description: blabla
Version: 0.2
*/

/* =========================================================
   SISTEMA DE DISEÑO COMPLETO (CONSOLIDADO)
   Mobile First + Fallbacks IE/Moz + Grid Adaptativo
   - Menú Modal con Pestañas para Tablet/Desktop
   ========================================================= */

/* ===== 0) RESET Y BASE ===== */
html{
  font-size:100%;
  line-height:1.3;
  -webkit-text-size-adjust:100%;
  -ms-text-size-adjust:100%;
  overflow-x:hidden;
  max-width:100vw;
}
body{
  margin:0;
  line-height:inherit;
  font-family:var(--font-family);
  color:var(--color-text);
  background:var(--color-bg);
  overflow-x:hidden;
  max-width:100vw;
}
*,*::before,*::after{
  -webkit-box-sizing:border-box;
  -moz-box-sizing:border-box;
  box-sizing:border-box;
}

/* ===== 1) VARIABLES ===== */
:root{
  --grid-gap-vw:1.2vw;
  --grid-row-gap-vh:1.2vh;
  --container-max-width:1440px;
  --container-vw:94vw;
  --container-padding-vw:4vw;

  --color-primary:#005AD9;
  --color-primary-dark:#003a8c;
  --color-primary-light:#F2F6FF;
  --color-primary-rgb:0,90,217;

  --color-menutoggle:#1B3D6D;
  --color-text:#0B1A2A;
  --color-text-secondary:#111827;
  --color-text-muted:#64748b;
  --color-text-inverse:#ffffff;

  --color-bg:#ffffff;
  --color-bg-light:#F2F6FF;
  --color-bg-subtle:#f5f5f5;
  --color-bg-dark:#0B1A2A;

  --color-border:#E9EEF7;
  --color-border-light:#cbd5e1;
  --color-border-dark:#333333;

  --color-success:#22c55e;
  --color-success-light:#dcfce7;
  --color-success-dark:#166534;
  --color-warning:#f59e0b;
  --color-warning-light:#fef3c7;
  --color-warning-dark:#92400e;
  --color-error:#ef4444;
  --color-error-light:#fee2e2;
  --color-error-dark:#991b1b;
  --color-info:#3b82f6;
  --color-info-light:#eff6ff;
  --color-info-dark:#1e40af;

  --font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  --font-size-xs:0.75rem;
  --font-size-sm:0.857rem;
  --font-size-base:1rem;
  --font-size-lg:1.25rem;
  --font-size-xl:1.5rem;
  --font-size-2xl:2rem;
  --font-size-3xl:2.5rem;
  --font-weight-normal:400;
  --font-weight-medium:500;
  --font-weight-semibold:600;
  --font-weight-bold:700;
  --line-height-tight:1.2;
  --line-height-normal:1.5;
  --line-height-relaxed:1.6;

  --space-1:0.25rem;
  --space-2:0.5rem;
  --space-3:0.75rem;
  --space-4:1rem;
  --space-5:1.25rem;
  --space-6:1.5rem;
  --space-8:2rem;
  --space-10:2.5rem;
  --space-12:3rem;

  --radius-sm:0.25rem;
  --radius-md:0.5rem;
  --radius-lg:0.75rem;
  --radius-xl:1rem;
  --radius-full:999px;
  --border-width:1px;
  --border-width-thick:2px;
  --border-width-accent:3px;

  --shadow-sm:0 1px 2px rgba(0,38,84,.05);
  --shadow-md:0 4px 12px rgba(0,38,84,.08);
  --shadow-lg:0 8px 24px rgba(0,38,84,.12);
  --shadow-xl:0 18px 42px rgba(0,38,84,.18);
  --shadow-primary:0 4px 14px rgba(0,90,217,.28);
  --shadow-inset:inset 0 2px 4px rgba(0,0,0,.06);

  --transition-fast:.15s ease;
  --transition-normal:.2s ease;
  --transition-slow:.3s ease;
  --transition-speed:.3s;

  --z-dropdown:100;
  --z-sticky:200;
  --z-fixed:300;
  --z-modal-backdrop:400;
  --z-modal:500;
  --z-popover:600;
  --z-tooltip:700;
  --z-toast:800;
  --z-max:9999;

  --input-height:2.5rem;
  --input-height-sm:2rem;
  --input-height-lg:3rem;
  --btn-height:2.5rem;
  --btn-height-sm:2rem;
  --btn-height-lg:3rem;

  --header-height-mobile:4.3rem;
  --header-height-tablet:3.6rem;
  --header-height-desktop:5rem;

  --sidebar-width-tablet:2;
  --sidebar-width-desktop:3;
}
@media (min-width:48rem){:root{--container-vw:92vw;--container-padding-vw:3vw;}}
@media (min-width:64rem){:root{--container-vw:88vw;--container-padding-vw:2vw;}}
@media (min-width:80rem){:root{--container-vw:84vw;--container-padding-vw:1.5vw;}}

/* ===== 2) CONTENEDOR ===== */
.custom-container{
  width:100%;
  max-width:var(--container-max-width);
  margin-left:auto;margin-right:auto;
  padding-left:var(--container-padding-vw);
  padding-right:var(--container-padding-vw);
}
#containerClass.is-fluid .custom-container{width:100%;max-width:none;}
#containerClass.is-max .custom-container{width:100%;max-width:calc(var(--container-max-width) - (var(--container-padding-vw) * 2));}

/* ===== 3) GRID ===== */
.custom-grid-container{
  display:-ms-grid;
  display:grid;
  -ms-grid-columns:1fr 1fr 1fr 1fr;
  grid-template-columns:repeat(4,1fr);
  gap:var(--grid-gap-vw);
  row-gap:var(--grid-row-gap-vh);
}
@media (min-width:48rem){
  .custom-grid-container{-ms-grid-columns:(1fr)[8];grid-template-columns:repeat(8,1fr);}
}
@media (min-width:64rem){
  .custom-grid-container{-ms-grid-columns:(1fr)[12];grid-template-columns:repeat(12,1fr);}
}
.custom-col-span-1{grid-column:span 1;}
.custom-col-span-2{grid-column:span 2;}
.custom-col-span-3{grid-column:span 3;}
.custom-col-span-4{grid-column:span 4;}
@media (min-width:48rem){
  .md-col-span-1{grid-column:span 1;}
  .md-col-span-2{grid-column:span 2;}
  .md-col-span-3{grid-column:span 3;}
  .md-col-span-4{grid-column:span 4;}
  .md-col-span-5{grid-column:span 5;}
  .md-col-span-6{grid-column:span 6;}
  .md-col-span-7{grid-column:span 7;}
  .md-col-span-8{grid-column:span 8;}
}
@media (min-width:64rem){
  .lg-col-span-1{grid-column:span 1;}
  .lg-col-span-2{grid-column:span 2;}
  .lg-col-span-3{grid-column:span 3;}
  .lg-col-span-4{grid-column:span 4;}
  .lg-col-span-5{grid-column:span 5;}
  .lg-col-span-6{grid-column:span 6;}
  .lg-col-span-7{grid-column:span 7;}
  .lg-col-span-8{grid-column:span 8;}
  .lg-col-span-9{grid-column:span 9;}
  .lg-col-span-10{grid-column:span 10;}
  .lg-col-span-11{grid-column:span 11;}
  .lg-col-span-12{grid-column:span 12;}
}

/* ===== 4) FIX GRID INTERNO (SIDEBARS) ===== */
.main-content .custom-grid-container{grid-template-columns:repeat(4,1fr);}
@media (min-width:48rem){
  #containerClass.sidebar-none .main-content .custom-grid-container{grid-template-columns:repeat(8,1fr);}
  #containerClass.sidebar-left .main-content .custom-grid-container,
  #containerClass.sidebar-right .main-content .custom-grid-container,
  #containerClass.sidebar-both .main-content .custom-grid-container{grid-template-columns:repeat(4,1fr);}
}
@media (min-width:64rem){
  #containerClass.sidebar-none .main-content .custom-grid-container{grid-template-columns:repeat(12,1fr);}
  #containerClass.sidebar-left .main-content .custom-grid-container,
  #containerClass.sidebar-right .main-content .custom-grid-container{grid-template-columns:repeat(8,1fr);}
  #containerClass.sidebar-both .main-content .custom-grid-container{grid-template-columns:repeat(6,1fr);}
}

/* ===== 5) WRAPPER + SIDEBARS ===== */
.content-wrapper{
  display:-ms-grid;
  display:grid;
  grid-template-columns:1fr;
  gap:var(--grid-gap-vw);
  row-gap:var(--grid-row-gap-vh);
}
@media (max-width:47.999rem){
  .content-wrapper{grid-template-columns:1fr !important;}
  .content-wrapper .main-content{grid-column:1 / -1 !important;}
  .left-sidebar,.right-sidebar{display:none !important;}
}
@media (min-width:48rem){
  .left-sidebar,.right-sidebar{display:block;}
  #containerClass.sidebar-none .content-wrapper{grid-template-columns:1fr;}
  #containerClass.sidebar-none .main-content{grid-column:1 / -1;}
  #containerClass.sidebar-none .left-sidebar,
  #containerClass.sidebar-none .right-sidebar{display:none;}
  #containerClass.sidebar-left .content-wrapper{grid-template-columns:2fr 6fr;}
  #containerClass.sidebar-left .left-sidebar{grid-column:1;grid-row:1;}
  #containerClass.sidebar-left .main-content{grid-column:2;grid-row:1;}
  #containerClass.sidebar-left .right-sidebar{display:none;}
  #containerClass.sidebar-right .content-wrapper{grid-template-columns:6fr 2fr;}
  #containerClass.sidebar-right .main-content{grid-column:1;grid-row:1;}
  #containerClass.sidebar-right .right-sidebar{grid-column:2;grid-row:1;}
  #containerClass.sidebar-right .left-sidebar{display:none;}
  #containerClass.sidebar-both .content-wrapper{grid-template-columns:2fr 4fr 2fr;}
  #containerClass.sidebar-both .left-sidebar{grid-column:1;grid-row:1;}
  #containerClass.sidebar-both .main-content{grid-column:2;grid-row:1;}
  #containerClass.sidebar-both .right-sidebar{grid-column:3;grid-row:1;}
}
@media (min-width:64rem){
  #containerClass.sidebar-left .content-wrapper{grid-template-columns:3fr 9fr;}
  #containerClass.sidebar-right .content-wrapper{grid-template-columns:9fr 3fr;}
  #containerClass.sidebar-both .content-wrapper{grid-template-columns:2.5fr 7fr 2.5fr;}
}
.left-sidebar,.right-sidebar{
  background:var(--color-bg-light);
  padding:var(--space-4);
  border-radius:var(--radius-md);
  border:var(--border-width) solid var(--color-border);
  min-width:0;
  overflow:hidden;
}

/* ===== 6) BASE DEL SITIO + HEADER ===== */
#containerClass{
  margin:0;
  font-family:var(--font-family);
  color:var(--color-text);
  background:var(--color-bg);
}

.topbar{position:relative;z-index:1002 !important;}
.site-header{
  position:relative;
  z-index:1001 !important;
  background:var(--color-bg);
  border-bottom:1px solid var(--color-border);
  -webkit-box-shadow:0 6px 22px rgba(0,38,84,.06);
  box-shadow:0 6px 22px rgba(0,38,84,.06);
}

.site-logo{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-align:center;-ms-flex-align:center;align-items:center;
  height:var(--header-height-mobile);
  font-size:1.5rem;
  font-weight:bold;
  color:var(--color-text);
  text-decoration:none;
}

/* Logo responsivo */
.site-logo img,.site-logo>img,.site-logo a img,a.site-logo img,
.site-header .site-logo img,.custom-logo-link img,img.custom-logo,
.site-logo img[width],.site-logo img[height],img.custom-logo[width],img.custom-logo[height]{
  width:auto !important;
  height:auto !important;
  -o-object-fit:contain;
  object-fit:contain;
}
@media (max-width:47.999rem){
  .site-logo,a.site-logo,.custom-logo-link{max-width:180px;overflow:visible;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;}
  .site-logo img,a.site-logo img,.custom-logo-link img,img.custom-logo,.site-logo img[width]{max-height:2.5rem !important;max-width:180px !important;}
}
@media (min-width:48rem) and (max-width:63.999rem){
  .site-logo,a.site-logo,.custom-logo-link{max-width:260px;overflow:visible;}
  .site-logo img,a.site-logo img,.custom-logo-link img,img.custom-logo,.site-logo img[width]{max-height:2.75rem !important;max-width:260px !important;}
}
@media (min-width:64rem){
  .site-logo,a.site-logo,.custom-logo-link{max-width:320px;overflow:visible;}
  .site-logo img,a.site-logo img,.custom-logo-link img,img.custom-logo,.site-logo img[width]{max-height:3.25rem !important;max-width:320px !important;}
}

/* Header layout - Mobile */
@media (max-width:47.999rem){
  .site-header .custom-grid-container{
    display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important;
    -webkit-box-pack:justify !important;-ms-flex-pack:justify !important;justify-content:space-between !important;
    -webkit-box-align:center !important;-ms-flex-align:center !important;align-items:center !important;
    -ms-flex-wrap:nowrap !important;flex-wrap:nowrap !important;
    gap:.75rem;
  }
  .site-header .custom-grid-container>*{grid-column:unset !important;}
  .site-header .custom-grid-container>*:first-child{-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;max-width:70%;}
  .site-header .custom-grid-container>*:last-child{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;margin-left:auto;}
}

/* Header layout - Tablet */
@media (min-width:48rem) and (max-width:63.999rem){
  .site-header .custom-grid-container{
    display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important;
    -webkit-box-pack:justify !important;-ms-flex-pack:justify !important;justify-content:space-between !important;
    -webkit-box-align:center !important;-ms-flex-align:center !important;align-items:center !important;
    min-height:var(--header-height-tablet);
    gap:1rem;
  }
  .site-header .custom-grid-container>*{grid-column:unset !important;}
  .site-logo{height:var(--header-height-tablet);}
}

/* Header layout - Desktop */
@media (min-width:64rem){
  .site-header .custom-grid-container{
    display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important;
    -webkit-box-pack:justify !important;-ms-flex-pack:justify !important;justify-content:space-between !important;
    -webkit-box-align:center !important;-ms-flex-align:center !important;align-items:center !important;
    min-height:var(--header-height-desktop);
    gap:1.5rem;
  }
  .site-header .custom-grid-container>*{grid-column:unset !important;}
  .site-logo{height:var(--header-height-desktop);}
}

/* ===== 7) MENÚ HAMBURGUESA (Universal) ===== */
.main-navigation{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-align:center;-ms-flex-align:center;align-items:center;
}

.menu-toggle{
  display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important;
  -webkit-box-orient:vertical !important;-webkit-box-direction:normal !important;
  -ms-flex-direction:column !important;flex-direction:column !important;
  -webkit-box-align:center !important;-ms-flex-align:center !important;align-items:center !important;
  -webkit-box-pack:center !important;-ms-flex-pack:center !important;justify-content:center !important;
  width:44px !important;height:44px !important;min-width:44px !important;min-height:44px !important;
  padding:8px !important;
  background-color:var(--color-menutoggle);
  border:none;
  border-radius:var(--radius-md);
  cursor:pointer;
  z-index:1001;
  -webkit-transition:background-color .2s ease,-webkit-box-shadow .2s ease;
  transition:background-color .2s ease,box-shadow .2s ease;
  -webkit-box-shadow:0 2px 4px rgba(0,90,217,.25);
  box-shadow:0 2px 4px rgba(0,90,217,.25);
}
.menu-toggle:hover{
  background-color:var(--color-primary-dark);
  -webkit-box-shadow:0 4px 8px rgba(0,90,217,.35);
  box-shadow:0 4px 8px rgba(0,90,217,.35);
}
.menu-toggle:focus-visible{
  outline:2px solid var(--color-text-inverse);
  outline-offset:2px;
  -webkit-box-shadow:0 0 0 4px rgba(0,90,217,.4);
  box-shadow:0 0 0 4px rgba(0,90,217,.4);
}

.menu-toggle span{
  display:block !important;
  width:20px !important;
  height:2px !important;
  min-height:2px !important;
  background-color:#fff !important;
  border-radius:2px;
  margin:2.5px 0 !important;
  -webkit-transition:all .25s ease;
  transition:all .25s ease;
  -webkit-transform-origin:center center;
  transform-origin:center center;
}
.menu-toggle span:first-child{margin-top:0 !important;}
.menu-toggle span:last-child{margin-bottom:0 !important;}

.menu-toggle[aria-expanded="true"]{
  background-color:var(--color-primary-dark) !important;
  -webkit-box-shadow:0 2px 8px rgba(0,58,140,.4) !important;
  box-shadow:0 2px 8px rgba(0,58,140,.4) !important;
}
.menu-toggle[aria-expanded="true"] span{background-color:#fff !important;}
.menu-toggle[aria-expanded="true"] span:nth-child(1){
  -webkit-transform:rotate(45deg) translate(5px,5px) !important;
  transform:rotate(45deg) translate(5px,5px) !important;
}
.menu-toggle[aria-expanded="true"] span:nth-child(2){
  opacity:0 !important;
  -webkit-transform:scaleX(0) !important;
  transform:scaleX(0) !important;
}
.menu-toggle[aria-expanded="true"] span:nth-child(3){
  -webkit-transform:rotate(-45deg) translate(5px,-5px) !important;
  transform:rotate(-45deg) translate(5px,-5px) !important;
}

/* ===== 8) MENÚ MÓVIL (Acordeón - Panel Lateral) ===== */
.menu-container{
  position:fixed;
  left:-100%;
  top:0;
  width:100%;
  height:100vh;
  height:100dvh;
  background:var(--color-bg);
  border-top:3px solid var(--color-primary);
  -webkit-box-shadow:var(--shadow-xl);
  box-shadow:var(--shadow-xl);
  -webkit-transition:left var(--transition-speed);
  transition:left var(--transition-speed);
  overflow-y:auto;
  z-index:998;
  will-change:transform;
  -webkit-overflow-scrolling:touch;
}
.menu-container.is-open{left:0;}

@media (max-width:47.999rem){
  .menu-container{
    top:6.8rem !important;
    height:calc(100vh - 6.8rem) !important;
    height:calc(100dvh - 6.8rem) !important;
    padding-top:0;
  }
  .admin-bar .menu-container{
    top:calc(6.8rem + 32px) !important;
    height:calc(100vh - 6.8rem - 32px) !important;
    height:calc(100dvh - 6.8rem - 32px) !important;
  }
}
@media (max-width:782px){
  .admin-bar .menu-container{
    top:calc(6.8rem + 46px) !important;
    height:calc(100vh - 6.8rem - 46px) !important;
    height:calc(100dvh - 6.8rem - 46px) !important;
  }
}

/* Ocultar menú móvil en tablet/desktop */
@media (min-width:48rem){
  .menu-container{display:none !important;}
}

/* Menú móvil - Estructura interna */
.menu-primary{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-orient:vertical;-webkit-box-direction:normal;
  -ms-flex-direction:column;flex-direction:column;
  padding:1rem 0;
  gap:.5rem;
}
.menu-item{position:relative;}
.menu-link{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-align:center;-ms-flex-align:center;align-items:center;
  -webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;
  font-weight:700;
  letter-spacing:.1px;
  color:var(--color-text);
  text-decoration:none;
  padding:1rem 1.25rem;
  line-height:1;
  border-bottom:1px solid var(--color-border);
  border-radius:.35rem;
  min-height:2.75rem;
  -webkit-transition:background .2s ease,color .2s ease;
  transition:background .2s ease,color .2s ease;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
.menu-link:hover,.menu-link:focus{background:var(--color-bg-light);}
.menu-link[aria-expanded="true"]{
  background:var(--color-primary);
  color:var(--color-text-inverse);
  border-bottom-color:transparent;
}

.menu-arrow{
  width:1.1rem;height:1.1rem;
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-align:center;-ms-flex-align:center;align-items:center;
  -webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;
  -webkit-transition:transform .2s ease;
  transition:transform .2s ease;
}
.menu-arrow::after{
  content:'';
  width:0;height:0;
  display:block;
  margin-left:.5rem;
  border-left:.32rem solid transparent;
  border-right:.32rem solid transparent;
  border-top:.32rem solid currentColor;
  -webkit-transition:transform .2s ease;
  transition:transform .2s ease;
}
.menu-link[aria-expanded="true"] .menu-arrow::after{border-top-color:var(--color-text-inverse);}
.menu-link[aria-expanded="true"] .menu-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg);}

/* Submenú móvil (acordeón) */
.submenu-container{
  max-height:0;
  overflow:hidden;
  -webkit-transition:max-height var(--transition-speed);
  transition:max-height var(--transition-speed);
  background:var(--color-bg);
  border-left:3px solid var(--color-primary);
}
.submenu-container.is-open{max-height:999rem;}
.submenu-grid{padding:.5rem 1.25rem 1rem;}
.submenu-column{margin-bottom:1rem;}
.submenu-heading{
  font-weight:700;
  font-size:.95rem;
  color:var(--color-text);
  margin:.75rem 0 .35rem;
  padding-bottom:.35rem;
  border-bottom:1px solid var(--color-border);
}
.submenu-links{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-orient:vertical;-webkit-box-direction:normal;
  -ms-flex-direction:column;flex-direction:column;
  gap:.25rem;
}
.submenu-link{
  position:relative;
  display:block;
  color:var(--color-text);
  text-decoration:none;
  padding:.45rem .25rem .45rem .6rem;
  border-left:3px solid transparent;
  border-radius:var(--radius-sm);
  -webkit-transition:background .15s ease,border-color .15s ease;
  transition:background .15s ease,border-color .15s ease;
  touch-action:manipulation;
}
.submenu-link:hover,.submenu-link:focus{
  background:var(--color-bg-light);
  border-left-color:var(--color-primary);
  text-decoration:none;
}

/* ===== 9) MENÚ MODAL (Tablet/Desktop) ===== */

/* Modal Overlay - Posicionado debajo del header */
.menu-modal-overlay{
  position:fixed;top:0;right:0;bottom:0;left:0;
  width:100%;height:100%;
  background-color:rgba(0,0,0,.6);
  display:none;
  -webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;
  -webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;
  padding:0;
  z-index:var(--z-modal-backdrop);
  opacity:0;visibility:hidden;
  -webkit-transition:opacity var(--transition-normal),visibility var(--transition-normal);
  transition:opacity var(--transition-normal),visibility var(--transition-normal);
  -webkit-backdrop-filter:blur(4px);
  backdrop-filter:blur(4px);
  /* Offset: topbar(2.5rem) + header tablet(3.6rem) = 6.1rem */
  padding-top:6.1rem;
}
@media (min-width:48rem){
  .menu-modal-overlay{display:-webkit-box;display:-ms-flexbox;display:flex;}
}
@media (min-width:64rem){
  /* Offset: topbar(2.5rem) + header desktop(5rem) = 7.5rem */
  .menu-modal-overlay{padding-top:7.5rem;}
}
/* WordPress admin bar adjustment */
.admin-bar .menu-modal-overlay{padding-top:calc(6.1rem + 32px);}
@media (min-width:64rem){
  .admin-bar .menu-modal-overlay{padding-top:calc(7.5rem + 32px);}
}
@media (max-width:782px){
  .admin-bar .menu-modal-overlay{padding-top:calc(6.1rem + 46px);}
}
.menu-modal-overlay.is-open{opacity:1;visibility:visible;}

/* Modal Container - Altura calculada respecto al espacio disponible */
.menu-modal{
  background-color:var(--color-bg);
  border-radius:var(--radius-lg);
  -webkit-box-shadow:var(--shadow-xl);
  box-shadow:var(--shadow-xl);
  width:94%;
  max-width:1200px;
  /* Altura: viewport - offset header - margen inferior */
  max-height:calc(100vh - 6.1rem - 1rem);
  margin-bottom:1rem;
  overflow:hidden;
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-orient:vertical;-webkit-box-direction:normal;
  -ms-flex-direction:column;flex-direction:column;
  -webkit-transform:translateY(-1rem) scale(.98);
  transform:translateY(-1rem) scale(.98);
  -webkit-transition:-webkit-transform var(--transition-normal);
  transition:transform var(--transition-normal);
}
@media (min-width:64rem){
  .menu-modal{
    max-height:calc(100vh - 7.5rem - 1rem);
    width:90%;
  }
}
/* WordPress admin bar adjustment */
.admin-bar .menu-modal{max-height:calc(100vh - 6.1rem - 32px - 1rem);}
@media (min-width:64rem){
  .admin-bar .menu-modal{max-height:calc(100vh - 7.5rem - 32px - 1rem);}
}
@media (max-width:782px){
  .admin-bar .menu-modal{max-height:calc(100vh - 6.1rem - 46px - 1rem);}
}
.menu-modal-overlay.is-open .menu-modal{
  -webkit-transform:translateY(0) scale(1);
  transform:translateY(0) scale(1);
}

/* Modal Close Button - En la barra de pestañas */
.menu-modal__close{
  display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;
  -webkit-box-align:center;-ms-flex-align:center;align-items:center;
  -webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;
  width:2.5rem;height:2.5rem;
  padding:0;
  background:transparent;
  border:none;
  border-radius:var(--radius-md);
  cursor:pointer;
  color:var(--color-text-muted);
  font-size:var(--font-size-lg);
  line-height:1;
  -webkit-transition:color var(--transition-fast),background-color var(--transition-fast);
  transition:color var(--transition-fast),background-color var(--transition-fast);
  -ms-flex-negative:0;flex-shrink:0;
}
.menu-modal__close:hover,.menu-modal__close:focus{
  color:var(--color-text);
  background-color:var(--color-bg-subtle);
}
.menu-modal__close:focus-visible{
  outline:var(--border-width-thick) solid var(--color-primary);
  outline-offset:2px;
}

/* Modal Body */
.menu-modal__body{
  padding:0;
  overflow:hidden;
  -ms-flex:1 1 auto;flex:1 1 auto;
  min-height:0;
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-orient:vertical;-webkit-box-direction:normal;
  -ms-flex-direction:column;flex-direction:column;
}

/* Pestaña de enlace (Contacto) */
.menu-tabs__tab--link{
  color:var(--color-primary);
  text-decoration:none;
}
.menu-tabs__tab--link:hover{
  color:var(--color-primary-dark);
  background-color:rgba(0,90,217,.1);
}

/* ===== 10) PESTAÑAS DEL MENÚ MODAL ===== */

.menu-tabs{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-orient:vertical;-webkit-box-direction:normal;
  -ms-flex-direction:column;flex-direction:column;
  height:100%;
  min-height:0;
}

/* Header de pestañas (tabs + botón cerrar) */
.menu-tabs__header{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-align:center;-ms-flex-align:center;align-items:center;
  -webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;
  gap:var(--space-2);
  background-color:var(--color-bg-light);
  border-bottom:var(--border-width-thick) solid var(--color-border);
  padding-right:var(--space-3);
  -ms-flex-negative:0;flex-shrink:0;
}

/* Lista de pestañas */
.menu-tabs__list{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -ms-flex-wrap:nowrap;flex-wrap:nowrap;
  gap:0;
  border-bottom:none;
  margin:0;
  padding:0 var(--space-4);
  list-style:none;
  background-color:transparent;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  -ms-overflow-style:none;
  -webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;
  min-width:0;
}
@media (max-height:700px){
  .menu-tabs__list{padding:0 var(--space-3);}
}
.menu-tabs__list::-webkit-scrollbar{display:none;}

/* Pestaña individual */
.menu-tabs__tab{
  display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;
  -webkit-box-align:center;-ms-flex-align:center;align-items:center;
  gap:var(--space-2);
  padding:var(--space-3) var(--space-4);
  margin-bottom:calc(var(--border-width-thick) * -1);
  background:transparent;
  border:none;
  border-bottom:var(--border-width-accent) solid transparent;
  font-size:var(--font-size-sm);
  font-weight:var(--font-weight-semibold);
  color:var(--color-text-muted);
  cursor:pointer;
  white-space:nowrap;
  -webkit-transition:color var(--transition-fast),border-color var(--transition-fast),background-color var(--transition-fast);
  transition:color var(--transition-fast),border-color var(--transition-fast),background-color var(--transition-fast);
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
@media (min-width:64rem){
  .menu-tabs__tab{
    padding:var(--space-4) var(--space-5);
    font-size:var(--font-size-base);
  }
}
@media (max-height:700px){
  .menu-tabs__tab{padding:var(--space-2) var(--space-3);}
}
.menu-tabs__tab:hover{
  color:var(--color-text);
  background-color:rgba(0,90,217,.05);
}
.menu-tabs__tab:focus-visible{
  outline:var(--border-width-thick) solid var(--color-primary);
  outline-offset:-2px;
  z-index:1;
}
.menu-tabs__tab[aria-selected="true"],.menu-tabs__tab.is-active{
  color:var(--color-primary);
  border-bottom-color:var(--color-primary);
  background-color:var(--color-bg);
}
.menu-tabs__tab[disabled]{opacity:.5;cursor:not-allowed;}
.menu-tabs__tab i{font-size:1.1em;}

/* Contenedor de paneles */
.menu-tabs__panels{
  -webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  min-height:0;
}

/* Panel individual - Padding homogéneo */
.menu-tabs__panel{
  display:none;
  padding:var(--space-4) var(--space-5);
  -webkit-animation:menuTabFadeIn .2s ease-out;
  animation:menuTabFadeIn .2s ease-out;
}
@media (min-width:64rem){
  .menu-tabs__panel{padding:var(--space-5) var(--space-6);}
}
@media (max-height:700px){
  .menu-tabs__panel{padding:var(--space-3) var(--space-4);}
}
.menu-tabs__panel[aria-hidden="false"],.menu-tabs__panel.is-active{display:block;}

@-webkit-keyframes menuTabFadeIn{from{opacity:0;-webkit-transform:translateY(8px);transform:translateY(8px);}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0);}}
@keyframes menuTabFadeIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}

/* Grid de contenido de pestaña - Máx 5 columnas */
.menu-tabs__content-grid{
  display:-ms-grid;display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:var(--space-4) var(--space-6);
}
@media (min-width:48rem){
  .menu-tabs__content-grid{grid-template-columns:repeat(3,1fr);}
}
@media (min-width:64rem){
  .menu-tabs__content-grid{
    grid-template-columns:repeat(4,1fr);
    gap:var(--space-5) var(--space-8);
  }
  .menu-tabs__content-grid--5cols{grid-template-columns:repeat(5,1fr);}
}
@media (max-height:700px) and (min-width:48rem){
  .menu-tabs__content-grid{gap:var(--space-3) var(--space-5);}
}

/* Columna de contenido */
.menu-tabs__column{min-width:0;}

.menu-tabs__column-title{
  font-weight:var(--font-weight-bold);
  font-size:var(--font-size-sm);
  color:var(--color-text);
  margin:0 0 var(--space-2) 0;
  padding-bottom:var(--space-1);
  border-bottom:2px solid var(--color-primary);
}
@media (min-width:64rem){
  .menu-tabs__column-title{
    font-size:var(--font-size-base);
    margin:0 0 var(--space-3) 0;
    padding-bottom:var(--space-2);
  }
}

.menu-tabs__links{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-orient:vertical;-webkit-box-direction:normal;
  -ms-flex-direction:column;flex-direction:column;
  gap:0;
}

.menu-tabs__link{
  display:block;
  color:var(--color-text);
  text-decoration:none;
  padding:var(--space-1) var(--space-2);
  border-left:2px solid transparent;
  border-radius:var(--radius-sm);
  font-size:var(--font-size-xs);
  line-height:var(--line-height-normal);
  -webkit-transition:background .15s ease,border-color .15s ease,color .15s ease;
  transition:background .15s ease,border-color .15s ease,color .15s ease;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
@media (min-width:64rem){
  .menu-tabs__link{
    padding:var(--space-2) var(--space-3);
    font-size:var(--font-size-sm);
  }
}
.menu-tabs__link:hover,.menu-tabs__link:focus{
  background:var(--color-bg-light);
  border-left-color:var(--color-primary);
  color:var(--color-primary);
  text-decoration:none;
}
.menu-tabs__link:focus-visible{
  outline:2px solid var(--color-primary);
  outline-offset:-2px;
}

/* ===== 11) ACCESIBILIDAD ===== */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.skip-link{
  position:absolute;top:-100%;
  left:var(--space-4);
  background-color:var(--color-primary);
  color:var(--color-text-inverse);
  padding:var(--space-3) var(--space-6);
  border-radius:var(--radius-md);
  font-weight:var(--font-weight-semibold);
  text-decoration:none;
  z-index:var(--z-max);
  -webkit-transition:top var(--transition-normal);
  transition:top var(--transition-normal);
}
.skip-link:focus,.skip-link:focus-visible{top:var(--space-4);outline:var(--border-width-thick) solid var(--color-text-inverse);outline-offset:2px;}
*:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;}

/* Bloqueo scroll cuando modal abierto */
body.menu-modal-open,
#containerClass.menu-modal-open{overflow:hidden !important;}
html.menu-modal-open,
html:has(body.menu-modal-open){overflow:hidden !important;}

/* Mobile menu open */
body.menu-open,
#containerClass.menu-open{overflow:hidden !important;position:static !important;width:auto !important;}
html.menu-open,
html:has(body.menu-open){overflow:hidden !important;}

/* ===== 12) TIPOGRAFÍA ===== */
h1{font-size:2.5rem;line-height:1.2;margin:1.5rem 0 1rem;}
h2{font-size:2rem;line-height:1.3;margin:1.25rem 0 .75rem;}
h3{font-size:1.5rem;line-height:1.4;margin:1rem 0 .5rem;}
h4{font-size:1.25rem;line-height:1.5;margin:.75rem 0 .5rem;}
h5{font-size:1rem;line-height:1.5;margin:.5rem 0 .25rem;}
h6{font-size:.857rem;line-height:1.6;margin:.5rem 0 .25rem;}
p{font-size:1rem;line-height:1.5;margin:0 0 1rem;}
a{
  font-size:1rem;
  color:var(--color-primary);
  text-decoration:none;
  -webkit-transition:color .2s ease;
  transition:color .2s ease;
}
a:hover,a:focus{color:var(--color-primary-dark);text-decoration:underline;}

/* ===== 13) COMPONENTES LAYOUT ===== */
.topbar{
  background:var(--color-bg-subtle);
  border-bottom:1px solid var(--color-border);
  height:2.5rem;
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-align:center;-ms-flex-align:center;align-items:center;
  position:relative;
}
.topbar .custom-grid-container{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;
  gap:1rem;
}
.breadcrumb{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;
  list-style:none;
  padding:.5rem 0;
  margin:0;
  font-size:.857rem;
}
.breadcrumb li{display:inline;}
.breadcrumb li+li::before{content:" > ";color:#666;padding:0 .25rem;}
.breadcrumb a{color:var(--color-primary);}
.breadcrumb .current{color:#333;}

.hero{
  background:var(--color-bg-light);
  padding:2rem 1rem;
  text-align:center;
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
}
@media (min-width:48rem){.hero{padding:2.5rem 2rem;text-align:left;}}
@media (min-width:64rem){.hero{padding:3rem 3rem;}}
.cta{
  display:inline-block;
  background:var(--color-primary);
  color:var(--color-text-inverse);
  padding:.75rem 1.5rem;
  border-radius:var(--radius-md);
  font-weight:bold;
  -webkit-transition:background .2s ease;
  transition:background .2s ease;
}
.cta:hover,.cta:focus{background:var(--color-primary-dark);text-decoration:none;color:var(--color-text-inverse);}

.products{margin-top:1.5rem;}
.products article{
  background:var(--color-bg);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  padding:1rem;
  text-align:center;
  height:100%;
  min-height:0;
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-orient:vertical;-webkit-box-direction:normal;
  -ms-flex-direction:column;flex-direction:column;
}
.products article p{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;}
.products article .btn{margin-top:auto;-ms-flex-item-align:start;align-self:flex-start;}
.products img{max-width:100%;height:auto;}
.about{padding:2rem 0;}

@-ms-viewport{width:device-width;}
img{-ms-interpolation-mode:bicubic;max-width:100%;height:auto;display:block;}
figure{margin:1rem 0;}
figcaption{font-size:.857rem;color:#666;text-align:center;margin-top:.5rem;}

/* ===== 14) ACORDEONES MOBILE SIDEBARS ===== */
.mobile-sidebars{padding:1rem 0;}
.accordion-btn{
  display:block;
  width:100%;
  background:var(--color-primary);
  color:var(--color-text-inverse);
  padding:1rem;
  border:none;
  text-align:left;
  font-weight:bold;
  cursor:pointer;
  -webkit-transition:background .2s ease;
  transition:background .2s ease;
  border-radius:var(--radius-md);
  margin-bottom:.5rem;
}
.accordion-btn[aria-expanded="true"]{background:var(--color-primary-dark);}
.accordion-panel{
  max-height:0;
  overflow:hidden;
  -webkit-transition:max-height var(--transition-speed);
  transition:max-height var(--transition-speed);
  background:var(--color-bg-light);
  padding:0 1rem;
  border-radius:var(--radius-md);
}

/* ===== 15) FOOTER ===== */
.site-footer{
  background:var(--color-bg-dark);
  color:var(--color-text-inverse);
  padding:0;
  margin-top:2rem;
  width:100%;
  font-size:var(--font-size-base);
  line-height:var(--line-height-normal);
}
.footer-top{padding:2.5rem 0 2rem;}
.footer-grid{
  display:-ms-grid;display:grid;
  grid-template-columns:1fr;
  gap:2rem 1.5rem;
}
@media (min-width:48rem){.footer-grid{grid-template-columns:repeat(2,1fr);gap:2rem;}}
@media (min-width:64rem){.footer-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2rem 2.5rem;}}
.footer-grid--1col{grid-template-columns:1fr !important;}
.footer-grid--2col{grid-template-columns:1fr !important;}
@media (min-width:48rem){
  .footer-grid--2col{grid-template-columns:repeat(2,1fr) !important;}
  .footer-grid--2col-25-75{grid-template-columns:1fr 3fr !important;}
  .footer-grid--2col-75-25{grid-template-columns:3fr 1fr !important;}
  .footer-grid--2col-33-67{grid-template-columns:1fr 2fr !important;}
  .footer-grid--2col-67-33{grid-template-columns:2fr 1fr !important;}
}
.footer-grid--3col{grid-template-columns:1fr !important;}
@media (min-width:48rem){.footer-grid--3col{grid-template-columns:repeat(2,1fr) !important;}}
@media (min-width:64rem){
  .footer-grid--3col{grid-template-columns:repeat(3,1fr) !important;}
  .footer-grid--3col-25-50-25{grid-template-columns:1fr 2fr 1fr !important;}
  .footer-grid--3col-50-25-25{grid-template-columns:2fr 1fr 1fr !important;}
  .footer-grid--3col-25-25-50{grid-template-columns:1fr 1fr 2fr !important;}
}
.footer-grid--4col{grid-template-columns:1fr !important;}
@media (min-width:48rem){.footer-grid--4col{grid-template-columns:repeat(2,1fr) !important;}}
@media (min-width:64rem){.footer-grid--4col{grid-template-columns:repeat(4,1fr) !important;}}
.footer-grid--center{justify-items:center;text-align:center;}
.footer-grid--center section,.footer-grid--center .footer-column{max-width:400px;}
.footer-grid--left{justify-items:start;text-align:left;}
.footer-grid--right{justify-items:end;text-align:right;}
.footer-column--left{justify-self:start;text-align:left;}
.footer-column--center{justify-self:center;text-align:center;}
.footer-column--right{justify-self:end;text-align:right;}
.footer-grid>section,.footer-grid>.footer-column{min-width:0;}
.footer-top h3,.footer-grid h3,.footer-column__title{
  color:var(--color-text-inverse);
  font-size:var(--font-size-lg);
  font-weight:var(--font-weight-semibold);
  margin:0 0 1rem 0;
  padding-bottom:.5rem;
  border-bottom:2px solid rgba(255,255,255,.1);
}
.footer-top ul,.footer-grid ul{list-style:none;padding:0;margin:0;}
.footer-top li,.footer-grid li{margin-bottom:.625rem;}
.footer-top li:last-child,.footer-grid li:last-child{margin-bottom:0;}
.footer-top a,.footer-grid a{
  color:rgba(255,255,255,.7);
  text-decoration:none;
  display:inline-block;
  padding:.25rem 0;
  position:relative;
  -webkit-transition:color var(--transition-fast);
  transition:color var(--transition-fast);
}
.footer-top a:hover,.footer-grid a:hover,.footer-top a:focus,.footer-grid a:focus{color:var(--color-text-inverse);}
.footer-top a::after,.footer-grid a::after{
  content:'';
  position:absolute;bottom:0;left:0;width:0;height:1px;
  background:var(--color-primary);
  -webkit-transition:width var(--transition-normal);
  transition:width var(--transition-normal);
}
.footer-top a:hover::after,.footer-grid a:hover::after,.footer-top a:focus::after,.footer-grid a:focus::after{width:100%;}
.footer-top a:focus-visible,.footer-grid a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm);}

.footer-bottom{
  background:rgba(0,0,0,.2);
  padding:1.25rem 0;
  border-top:1px solid rgba(255,255,255,.1);
}
.footer-bottom p{margin:0;font-size:var(--font-size-sm);color:rgba(255,255,255,.6);text-align:center;}
.footer-bottom a{color:rgba(255,255,255,.8);}
.footer-bottom a:hover,.footer-bottom a:focus{color:var(--color-text-inverse);}

.footer-bottom__content{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-orient:vertical;-webkit-box-direction:normal;
  -ms-flex-direction:column;flex-direction:column;
  -webkit-box-align:center;-ms-flex-align:center;align-items:center;
  gap:.75rem;
}
@media (min-width:48rem){
  .footer-bottom__content{
    -webkit-box-orient:horizontal;-webkit-box-direction:normal;
    -ms-flex-direction:row;flex-direction:row;
    -webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;
  }
  .footer-bottom__content p{text-align:left;}
}
.footer-bottom__links{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -ms-flex-wrap:wrap;flex-wrap:wrap;
  -webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;
  gap:.5rem 1.5rem;
  font-size:var(--font-size-sm);
}
@media (min-width:48rem){.footer-bottom__links{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;}}

.footer-social{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -ms-flex-wrap:wrap;flex-wrap:wrap;
  gap:.75rem;
  margin-top:1rem;
}
.footer-social a{
  display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;
  -webkit-box-align:center;-ms-flex-align:center;align-items:center;
  -webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;
  width:2.5rem;height:2.5rem;
  background:rgba(255,255,255,.1);
  border-radius:var(--radius-full);
  color:rgba(255,255,255,.8);
  -webkit-transition:background var(--transition-fast),color var(--transition-fast),-webkit-transform var(--transition-fast);
  transition:background var(--transition-fast),color var(--transition-fast),transform var(--transition-fast);
}
.footer-social a::after{display:none;}
.footer-social a:hover,.footer-social a:focus{background:var(--color-primary);color:var(--color-text-inverse);-webkit-transform:translateY(-2px);transform:translateY(-2px);}
.footer-social a:focus-visible{outline:2px solid var(--color-text-inverse);outline-offset:2px;}
.footer-newsletter{margin-top:1rem;}
.footer-newsletter__form{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  gap:.5rem;
  max-width:320px;
}
.footer-newsletter__input{
  -webkit-box-flex:1;-ms-flex:1;flex:1;
  padding:.6rem .75rem;
  border:1px solid rgba(255,255,255,.2);
  border-radius:var(--radius-md);
  background:rgba(255,255,255,.1);
  color:var(--color-text-inverse);
  font-size:var(--font-size-sm);
}
.footer-newsletter__input::-webkit-input-placeholder{color:rgba(255,255,255,.5);}
.footer-newsletter__input::-moz-placeholder{color:rgba(255,255,255,.5);}
.footer-newsletter__input:-ms-input-placeholder{color:rgba(255,255,255,.5);}
.footer-newsletter__input::placeholder{color:rgba(255,255,255,.5);}
.footer-newsletter__input:focus{outline:none;border-color:var(--color-primary);background:rgba(255,255,255,.15);}
.footer-newsletter__btn{
  padding:.6rem 1rem;
  background:var(--color-primary);
  color:var(--color-text-inverse);
  border:none;
  border-radius:var(--radius-md);
  font-weight:var(--font-weight-semibold);
  cursor:pointer;
  -webkit-transition:background var(--transition-fast);
  transition:background var(--transition-fast);
}
.footer-newsletter__btn:hover,.footer-newsletter__btn:focus{background:var(--color-primary-dark);}

/* IE11 footer fallback */
@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){
  .footer-grid{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:-.75rem;}
  .footer-grid>section,.footer-grid>.footer-column{-ms-flex:0 0 100%;flex:0 0 100%;padding:.75rem;}
  @media (min-width:48rem){
    .footer-grid>section,.footer-grid>.footer-column{-ms-flex:0 0 50%;flex:0 0 50%;}
  }
  @media (min-width:64rem){
    .footer-grid>section,.footer-grid>.footer-column{-ms-flex:0 0 25%;flex:0 0 25%;}
  }
}

/* Footer print */
@media print{
  .site-footer{background:#fff !important;color:#000 !important;padding:1rem 0;}
  .footer-top a{color:#000 !important;}
  .footer-social,.footer-newsletter{display:none !important;}
}

/* ===== 16) BOTONES ===== */
.btn,.btn:link,.btn:visited{
  display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;
  -webkit-box-align:center;-ms-flex-align:center;align-items:center;
  -webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;
  gap:.5rem;
  padding:.65rem 1.4rem;
  border-radius:var(--radius-md);
  border:1px solid transparent;
  font-weight:600;
  font-size:.95rem;
  line-height:1.2;
  text-decoration:none;
  text-align:center;
  cursor:pointer;
  background-color:#e5e7eb;
  color:var(--color-text-secondary);
  -webkit-transition:background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease;
  -webkit-tap-highlight-color:transparent;
}
.btn:hover,.btn:focus{text-decoration:none;}
.btn--primary{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse);}
.btn--primary:hover,.btn--primary:focus{background-color:var(--color-primary-dark);border-color:var(--color-primary-dark);-webkit-box-shadow:var(--shadow-primary);box-shadow:var(--shadow-primary);}
.btn--secondary{background-color:var(--color-bg);border-color:var(--color-primary);color:var(--color-primary);}
.btn--secondary:hover,.btn--secondary:focus{background-color:var(--color-bg-light);-webkit-box-shadow:var(--shadow-md);box-shadow:var(--shadow-md);}
.btn--ghost{background-color:transparent;border-color:var(--color-border-light);color:var(--color-text);}
.btn--ghost:hover,.btn--ghost:focus{background-color:#e5f0ff;}
.btn--sm{padding:.45rem .9rem;font-size:.857rem;}
.btn--lg{padding:.9rem 1.8rem;font-size:1rem;}
.btn--icon{padding:.5rem;width:2.5rem;height:2.5rem;border-radius:var(--radius-full);}
.btn__icon{display:inline-block;font-size:1rem;}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed;-webkit-box-shadow:none;box-shadow:none;}
.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;}

/* ===== 17) FORMULARIOS ===== */
.form-section{margin-top:2.5rem;margin-bottom:2.5rem;}
.form-section header{margin-bottom:1rem;}
.form-grid{
  display:-ms-grid;display:grid;
  -ms-grid-columns:1fr;grid-template-columns:1fr;
  gap:1rem 1.5rem;
}
@media (min-width:48rem){
  .form-grid{-ms-grid-columns:1fr 1fr;grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (min-width:64rem){
  .form-grid{-ms-grid-columns:1fr 1fr 1fr;grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (min-width:48rem){#containerClass.sidebar-both .form-grid{grid-template-columns:1fr;}}
@media (min-width:64rem){
  #containerClass.sidebar-both .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  #containerClass.sidebar-none .form-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
}
.form-group{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-orient:vertical;-webkit-box-direction:normal;
  -ms-flex-direction:column;flex-direction:column;
  gap:.35rem;
}
.form-label{font-size:.9rem;font-weight:600;color:var(--color-text);}

.form-control,.form-textarea{
  width:100%;
  padding:.6rem .75rem;
  border-radius:.4rem;
  border:1px solid var(--color-border-light);
  font-size:.95rem;
  line-height:1.4;
  background-color:var(--color-bg);
  color:var(--color-text);
  -webkit-transition:border-color .15s ease,box-shadow .15s ease;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.form-textarea{min-height:5rem;resize:vertical;}
.form-control:focus,.form-textarea:focus{
  border-color:var(--color-primary);
  -webkit-box-shadow:0 0 0 1px rgba(0,90,217,.45);
  box-shadow:0 0 0 1px rgba(0,90,217,.45);
  outline:none;
}

.form-select{
  width:100%;
  padding:.6rem 2.5rem .6rem .75rem;
  border-radius:.4rem;
  border:1px solid var(--color-border-light);
  font-size:.95rem;
  line-height:1.4;
  background-color:var(--color-bg);
  color:var(--color-text);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%230B1A2A' d='M6 8.825L1.175 4 2.238 2.938 6 6.7l3.763-3.762L10.825 4z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right .75rem center;
  background-size:12px;
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  cursor:pointer;
  -webkit-transition:border-color .15s ease,box-shadow .15s ease;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.form-select::-ms-expand{display:none;}
.form-select:focus{
  border-color:var(--color-primary);
  -webkit-box-shadow:0 0 0 1px rgba(0,90,217,.45);
  box-shadow:0 0 0 1px rgba(0,90,217,.45);
  outline:none;
}
.form-select option{padding:.5rem;background-color:var(--color-bg);color:var(--color-text);}
.form-select option[value=""]{color:var(--color-text-muted);}
@media (pointer:coarse){
  .form-control,.form-select,.form-textarea{padding:.8rem .9rem;}
  .form-select{padding:.8rem 2.5rem .8rem .9rem;min-height:44px;}
}

.form-help{font-size:.8rem;color:var(--color-text-muted);}
.form-error{font-size:.8rem;color:#b91c1c;}
.form-check-group{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;
  gap:.5rem;font-size:.9rem;
}
.form-check-group input[type="checkbox"],.form-check-group input[type="radio"]{margin-top:.15rem;}
.form-actions{
  margin-top:1.5rem;
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -ms-flex-wrap:wrap;flex-wrap:wrap;
  gap:.75rem;
}

/* Validación */
.form-control.is-valid,.form-select.is-valid,.form-textarea.is-valid{
  border-color:var(--color-success);
  padding-right:2.5rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%2322c55e'%3E%3Cpath fill-rule='evenodd' d='M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z' clip-rule='evenodd'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right .75rem center;
  background-size:1.25rem;
}
.form-control.is-valid:focus,.form-select.is-valid:focus,.form-textarea.is-valid:focus{
  border-color:var(--color-success);
  -webkit-box-shadow:0 0 0 1px rgba(34,197,94,.45);
  box-shadow:0 0 0 1px rgba(34,197,94,.45);
}
.form-control.is-invalid,.form-select.is-invalid,.form-textarea.is-invalid{
  border-color:var(--color-error);
  padding-right:2.5rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23ef4444'%3E%3Cpath fill-rule='evenodd' d='M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z' clip-rule='evenodd'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right .75rem center;
  background-size:1.25rem;
}
.form-control.is-invalid:focus,.form-select.is-invalid:focus,.form-textarea.is-invalid:focus{
  border-color:var(--color-error);
  -webkit-box-shadow:0 0 0 1px rgba(239,68,68,.45);
  box-shadow:0 0 0 1px rgba(239,68,68,.45);
}
.form-feedback{display:none;font-size:var(--font-size-sm);margin-top:var(--space-1);}
.form-feedback--valid{color:var(--color-success-dark);}
.form-feedback--invalid{color:var(--color-error-dark);}
.form-group.has-success .form-feedback--valid,.form-group.has-error .form-feedback--invalid{display:block;}
.form-check-group.is-invalid{color:var(--color-error-dark);}
.form-check-group.is-invalid input{outline:2px solid var(--color-error);outline-offset:2px;}

/* ===== 18) CARDS / LISTADOS ===== */
.card-list{margin-top:2rem;margin-bottom:2rem;}
.card{
  background-color:var(--color-bg);
  border-radius:var(--radius-md);
  border:1px solid var(--color-border);
  padding:1rem;
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-orient:vertical;-webkit-box-direction:normal;
  -ms-flex-direction:column;flex-direction:column;
  height:100%;
  min-height:0;
}
.card__title{
  font-size:1.05rem;
  font-weight:600;
  margin-bottom:.35rem;
  color:var(--color-text);
  -webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;
}
.card__meta{
  font-size:.8rem;
  color:var(--color-text-muted);
  margin-bottom:.5rem;
  -webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;
}
.card__excerpt{
  font-size:.9rem;
  color:var(--color-text-secondary);
  margin-bottom:.75rem;
  -webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;
}
.card .btn{
  -webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;
  -ms-flex-item-align:start;align-self:flex-start;
  margin-top:auto;
}
.card-list .custom-grid-container{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;}
.pagination{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -ms-flex-wrap:wrap;flex-wrap:wrap;
  gap:.4rem;
  -webkit-box-align:center;-ms-flex-align:center;align-items:center;
  margin-top:1.25rem;
  font-size:.9rem;
}
.pagination__link{
  min-width:2.1rem;min-height:2.1rem;
  padding:.25rem .7rem;
  border-radius:var(--radius-full);
  border:1px solid var(--color-border-light);
  display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;
  -webkit-box-align:center;-ms-flex-align:center;align-items:center;
  -webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;
  text-decoration:none;
  color:var(--color-text);
  background-color:var(--color-bg);
}
.pagination__link:hover,.pagination__link:focus{border-color:var(--color-primary);}
.pagination__link--current,.pagination__link[aria-current="page"]{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse);}

/* ===== 19) BLOQUES ===== */
.benefits{margin:2.5rem 0;}
.benefit-item{
  background-color:var(--color-bg);
  border-radius:var(--radius-md);
  border:1px solid var(--color-border);
  padding:1rem;
  height:100%;
  min-height:0;
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-orient:vertical;-webkit-box-direction:normal;
  -ms-flex-direction:column;flex-direction:column;
}
.benefit-item__icon{font-size:1.6rem;margin-bottom:.5rem;}
.benefit-item__title{font-weight:600;margin-bottom:.35rem;}
.benefit-item p{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;}

.testimonials{margin:2.5rem 0;}
.testimonial{
  background-color:var(--color-bg-light);
  border-radius:var(--radius-md);
  border:1px solid var(--color-border);
  padding:1rem 1.25rem;
  height:100%;
  min-height:0;
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-orient:vertical;-webkit-box-direction:normal;
  -ms-flex-direction:column;flex-direction:column;
}
.testimonial__quote{font-style:italic;margin-bottom:.75rem;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;}
.testimonial__author{font-weight:600;font-size:.9rem;}
.testimonial__role{font-size:.8rem;color:var(--color-text-muted);}

.kpi-grid{
  display:-ms-grid;display:grid;
  -ms-grid-columns:1fr 1fr;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;margin:2rem 0;
}
@media (min-width:48rem){
  .kpi-grid{-ms-grid-columns:1fr 1fr 1fr 1fr;grid-template-columns:repeat(4,minmax(0,1fr));}
}
.kpi-item{text-align:center;}
.kpi-item__value{font-size:1.8rem;font-weight:700;color:var(--color-primary);}
.kpi-item__label{font-size:.9rem;color:var(--color-text-secondary);}

.logo-strip{margin:2rem 0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);padding:1rem 0;}
.logo-strip__list{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -ms-flex-wrap:wrap;flex-wrap:wrap;
  gap:1.5rem;
  -webkit-box-align:center;-ms-flex-align:center;align-items:center;
  -webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;
}
.logo-strip__item img{max-height:40px;}

.pricing{margin:2.5rem 0;}
.pricing-plan{
  background-color:var(--color-bg);
  border-radius:var(--radius-md);
  border:1px solid var(--color-border);
  padding:1.25rem;
  text-align:center;
  height:100%;
  min-height:0;
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-orient:vertical;-webkit-box-direction:normal;
  -ms-flex-direction:column;flex-direction:column;
}
.pricing-plan__name{font-weight:600;margin-bottom:.25rem;}
.pricing-plan__price{font-size:1.6rem;font-weight:700;color:var(--color-primary);margin-bottom:.25rem;}
.pricing-plan__detail{font-size:.85rem;color:var(--color-text-muted);margin-bottom:.75rem;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;}
.pricing-plan .btn{margin-top:auto;}

.products .custom-grid-container,
.benefits .custom-grid-container,
.pricing .custom-grid-container,
.testimonials .custom-grid-container{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;}

/* ===== 20) ALERTAS ===== */
.alert{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;
  gap:var(--space-3);
  padding:var(--space-4);
  border-radius:var(--radius-md);
  border:var(--border-width) solid transparent;
  margin-bottom:var(--space-4);
  font-size:var(--font-size-base);
  line-height:var(--line-height-normal);
  position:relative;
  -webkit-animation:alertSlideIn .3s ease;
  animation:alertSlideIn .3s ease;
}
@-webkit-keyframes alertSlideIn{from{opacity:0;-webkit-transform:translateY(-.5rem);transform:translateY(-.5rem);}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0);}}
@keyframes alertSlideIn{from{opacity:0;transform:translateY(-.5rem);}to{opacity:1;transform:translateY(0);}}
.alert--info{background-color:var(--color-info-light);border-color:#bfdbfe;color:var(--color-info-dark);}
.alert--success{background-color:var(--color-success-light);border-color:#bbf7d0;color:var(--color-success-dark);}
.alert--warning{background-color:var(--color-warning-light);border-color:#fde68a;color:var(--color-warning-dark);}
.alert--error{background-color:var(--color-error-light);border-color:#fecaca;color:var(--color-error-dark);}
.alert__icon{-ms-flex-negative:0;flex-shrink:0;font-size:var(--font-size-xl);line-height:1;margin-top:.1rem;}
.alert__content{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0;}
.alert__title{font-weight:var(--font-weight-semibold);margin:0 0 var(--space-1) 0;font-size:var(--font-size-base);}
.alert__message{margin:0;font-size:var(--font-size-sm);}
.alert__message a{color:inherit;text-decoration:underline;}
.alert__close{
  -ms-flex-negative:0;flex-shrink:0;
  display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;
  -webkit-box-align:center;-ms-flex-align:center;align-items:center;
  -webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;
  width:1.75rem;height:1.75rem;
  padding:0;
  background:transparent;
  border:none;
  border-radius:var(--radius-sm);
  cursor:pointer;
  opacity:.6;
  color:inherit;
  font-size:var(--font-size-lg);
  line-height:1;
  -webkit-transition:opacity var(--transition-fast),background-color var(--transition-fast);
  transition:opacity var(--transition-fast),background-color var(--transition-fast);
}
.alert__close:hover,.alert__close:focus{opacity:1;background-color:rgba(0,0,0,.1);}
.alert__close:focus-visible{outline:var(--border-width-thick) solid currentColor;outline-offset:2px;}
.alert__actions{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -ms-flex-wrap:wrap;flex-wrap:wrap;
  gap:var(--space-2);
  margin-top:var(--space-3);
}
@media (max-width:20rem){
  .alert{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;}
  .alert__close{position:absolute;top:var(--space-2);right:var(--space-2);}
}

/* ===== 21) MODAL (Base - Reutilizable) ===== */
.modal-overlay{
  position:fixed;top:0;right:0;bottom:0;left:0;
  width:100%;height:100%;
  background-color:rgba(0,0,0,.5);
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-align:center;-ms-flex-align:center;align-items:center;
  -webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;
  padding:var(--space-4);
  z-index:var(--z-modal-backdrop);
  opacity:0;visibility:hidden;
  -webkit-transition:opacity var(--transition-normal),visibility var(--transition-normal);
  transition:opacity var(--transition-normal),visibility var(--transition-normal);
  -webkit-backdrop-filter:blur(4px);
  backdrop-filter:blur(4px);
}
.modal-overlay.is-open{opacity:1;visibility:visible;}
.modal{
  background-color:var(--color-bg);
  border-radius:var(--radius-lg);
  -webkit-box-shadow:var(--shadow-xl);
  box-shadow:var(--shadow-xl);
  width:100%;
  max-width:32rem;
  max-height:90vh;
  overflow:hidden;
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-orient:vertical;-webkit-box-direction:normal;
  -ms-flex-direction:column;flex-direction:column;
  -webkit-transform:translateY(-1rem) scale(.95);
  transform:translateY(-1rem) scale(.95);
  -webkit-transition:-webkit-transform var(--transition-normal);
  transition:transform var(--transition-normal);
}
.modal-overlay.is-open .modal{-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1);}
.modal--sm{max-width:24rem;}
.modal--lg{max-width:48rem;}
.modal--xl{max-width:64rem;}
.modal--fullscreen{max-width:none;max-height:none;width:100%;height:100%;border-radius:0;margin:0;}
.modal__header{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-align:center;-ms-flex-align:center;align-items:center;
  -webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;
  gap:var(--space-4);
  padding:var(--space-4) var(--space-6);
  border-bottom:var(--border-width) solid var(--color-border);
  -ms-flex-negative:0;flex-shrink:0;
}
.modal__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:0;color:var(--color-text);}
.modal__close{
  display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;
  -webkit-box-align:center;-ms-flex-align:center;align-items:center;
  -webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;
  width:2rem;height:2rem;
  padding:0;
  background:transparent;
  border:none;
  border-radius:var(--radius-sm);
  cursor:pointer;
  color:var(--color-text-muted);
  font-size:var(--font-size-xl);
  line-height:1;
  -webkit-transition:color var(--transition-fast),background-color var(--transition-fast);
  transition:color var(--transition-fast),background-color var(--transition-fast);
}
.modal__close:hover,.modal__close:focus{color:var(--color-text);background-color:var(--color-bg-subtle);}
.modal__close:focus-visible{outline:var(--border-width-thick) solid var(--color-primary);outline-offset:2px;}
.modal__body{
  padding:var(--space-6);
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  -ms-flex:1 1 auto;flex:1 1 auto;
}
.modal__body p:last-child{margin-bottom:0;}
.modal__footer{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;
  -ms-flex-wrap:wrap;flex-wrap:wrap;
  gap:var(--space-3);
  padding:var(--space-4) var(--space-6);
  border-top:var(--border-width) solid var(--color-border);
  background-color:var(--color-bg-subtle);
  -ms-flex-negative:0;flex-shrink:0;
}
@media (max-width:29.999rem){
  .modal__footer{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;}
  .modal__footer .btn{width:100%;}
}
#containerClass.modal-open{overflow:hidden;position:fixed;width:100%;height:100%;}
@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){
  #containerClass.modal-open{position:static;}
}

/* ===== 22) TABS (Base) ===== */
.tabs{margin:var(--space-8) 0;}
.tabs__list{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -ms-flex-wrap:wrap;flex-wrap:wrap;
  gap:0;
  border-bottom:var(--border-width-thick) solid var(--color-border);
  margin:0;padding:0;list-style:none;
}
.tabs__tab{
  display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;
  -webkit-box-align:center;-ms-flex-align:center;align-items:center;
  gap:var(--space-2);
  padding:var(--space-3) var(--space-5);
  margin-bottom:calc(var(--border-width-thick) * -1);
  background:transparent;
  border:none;
  border-bottom:var(--border-width-thick) solid transparent;
  font-size:var(--font-size-base);
  font-weight:var(--font-weight-semibold);
  color:var(--color-text-muted);
  cursor:pointer;
  white-space:nowrap;
  -webkit-transition:color var(--transition-fast),border-color var(--transition-fast),background-color var(--transition-fast);
  transition:color var(--transition-fast),border-color var(--transition-fast),background-color var(--transition-fast);
}
.tabs__tab:hover{color:var(--color-text);background-color:var(--color-bg-light);}
.tabs__tab:focus-visible{outline:var(--border-width-thick) solid var(--color-primary);outline-offset:-2px;z-index:1;}
.tabs__tab[aria-selected="true"],.tabs__tab.is-active{color:var(--color-primary);border-bottom-color:var(--color-primary);background-color:transparent;}
.tabs__tab[disabled]{opacity:.5;cursor:not-allowed;}
.tabs__icon{font-size:var(--font-size-lg);line-height:1;}
.tabs__badge{
  display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;
  -webkit-box-align:center;-ms-flex-align:center;align-items:center;
  -webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;
  min-width:1.25rem;height:1.25rem;
  padding:0 var(--space-1);
  background-color:var(--color-primary);
  color:var(--color-text-inverse);
  font-size:var(--font-size-xs);
  font-weight:var(--font-weight-bold);
  border-radius:var(--radius-full);
}
.tabs__panels{margin-top:var(--space-6);}
.tabs__panel{display:none;-webkit-animation:tabFadeIn .2s ease;animation:tabFadeIn .2s ease;}
.tabs__panel[aria-hidden="false"],.tabs__panel.is-active{display:block;}
@-webkit-keyframes tabFadeIn{from{opacity:0;}to{opacity:1;}}
@keyframes tabFadeIn{from{opacity:0;}to{opacity:1;}}
@media (max-width:47.999rem){
  .tabs__list{-ms-flex-wrap:nowrap;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;}
  .tabs__list::-webkit-scrollbar{display:none;}
  .tabs__tab{-ms-flex-negative:0;flex-shrink:0;}
}

/* ===== 23) ACCORDION ===== */
.accordion{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;margin:var(--space-4) 0;}
.accordion__item{border-bottom:var(--border-width) solid var(--color-border);}
.accordion__item:last-child{border-bottom:none;}
.accordion__header{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-align:center;-ms-flex-align:center;align-items:center;
  -webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;
  gap:var(--space-4);
  width:100%;
  padding:var(--space-4) var(--space-5);
  background:var(--color-bg);
  border:none;
  font-size:var(--font-size-base);
  font-weight:var(--font-weight-semibold);
  color:var(--color-text);
  text-align:left;
  cursor:pointer;
  -webkit-transition:background-color var(--transition-fast);
  transition:background-color var(--transition-fast);
}
.accordion__header:hover{background-color:var(--color-bg-light);}
.accordion__header:focus-visible{outline:var(--border-width-thick) solid var(--color-primary);outline-offset:-2px;z-index:1;}
.accordion__header[aria-expanded="true"]{background-color:var(--color-bg-light);}
.accordion__icon{
  display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;
  -webkit-box-align:center;-ms-flex-align:center;align-items:center;
  -webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;
  width:1.5rem;height:1.5rem;
  -ms-flex-negative:0;flex-shrink:0;
  color:var(--color-text-muted);
  -webkit-transition:-webkit-transform var(--transition-normal);
  transition:transform var(--transition-normal);
}
.accordion__icon::before{
  content:'';
  display:block;
  width:0;height:0;
  border-left:.35rem solid transparent;
  border-right:.35rem solid transparent;
  border-top:.35rem solid currentColor;
}
.accordion__header[aria-expanded="true"] .accordion__icon{-webkit-transform:rotate(180deg);transform:rotate(180deg);}
.accordion__panel{max-height:0;overflow:hidden;-webkit-transition:max-height var(--transition-normal);transition:max-height var(--transition-normal);}
.accordion__content{padding:0 var(--space-5) var(--space-5);}
.accordion__content p:last-child{margin-bottom:0;}
.accordion--borderless{border:none;border-radius:0;}
.accordion--borderless .accordion__item{border-bottom:var(--border-width) solid var(--color-border);}

/* ===== 24) SPINNER / LOADER ===== */
.spinner{
  display:inline-block;
  width:2rem;height:2rem;
  border:3px solid var(--color-border);
  border-top-color:var(--color-primary);
  border-radius:50%;
  -webkit-animation:spinnerRotate .8s linear infinite;
  animation:spinnerRotate .8s linear infinite;
}
@-webkit-keyframes spinnerRotate{to{-webkit-transform:rotate(360deg);transform:rotate(360deg);}}
@keyframes spinnerRotate{to{transform:rotate(360deg);}}
.spinner--xs{width:1rem;height:1rem;border-width:2px;}
.spinner--sm{width:1.5rem;height:1.5rem;border-width:2px;}
.spinner--lg{width:3rem;height:3rem;border-width:4px;}
.spinner--xl{width:4rem;height:4rem;border-width:5px;}
.spinner--primary{border-color:rgba(0,90,217,.2);border-top-color:var(--color-primary);}
.spinner--light{border-color:rgba(255,255,255,.3);border-top-color:var(--color-text-inverse);}
.spinner--dark{border-color:rgba(11,26,42,.2);border-top-color:var(--color-text);}
.loading-overlay{
  position:fixed;top:0;left:0;right:0;bottom:0;
  background-color:rgba(255,255,255,.9);
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-orient:vertical;-webkit-box-direction:normal;
  -ms-flex-direction:column;flex-direction:column;
  -webkit-box-align:center;-ms-flex-align:center;align-items:center;
  -webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;
  gap:var(--space-4);
  z-index:var(--z-modal);
}
.loading-overlay__text{font-size:var(--font-size-base);color:var(--color-text);font-weight:var(--font-weight-medium);}
.skeleton{
  background:linear-gradient(90deg,var(--color-border) 25%,var(--color-bg-light) 50%,var(--color-border) 75%);
  background-size:200% 100%;
  -webkit-animation:skeletonPulse 1.5s ease-in-out infinite;
  animation:skeletonPulse 1.5s ease-in-out infinite;
  border-radius:var(--radius-sm);
}
@-webkit-keyframes skeletonPulse{0%{background-position:200% 0;}100%{background-position:-200% 0;}}
@keyframes skeletonPulse{0%{background-position:200% 0;}100%{background-position:-200% 0;}}
.skeleton--text{height:1rem;margin-bottom:var(--space-2);}
.skeleton--title{height:1.5rem;width:60%;margin-bottom:var(--space-3);}
.skeleton--avatar{width:3rem;height:3rem;border-radius:50%;}
.skeleton--image{height:10rem;margin-bottom:var(--space-3);}

/* ===== 25) TOOLTIP ===== */
.tooltip{position:relative;display:inline-block;}
.tooltip__trigger{cursor:help;border-bottom:1px dotted var(--color-text-muted);}
.tooltip__content{
  position:absolute;
  bottom:100%;left:50%;
  -webkit-transform:translateX(-50%) translateY(-.5rem);
  transform:translateX(-50%) translateY(-.5rem);
  padding:var(--space-2) var(--space-3);
  background-color:var(--color-text);
  color:var(--color-text-inverse);
  font-size:var(--font-size-sm);
  font-weight:var(--font-weight-normal);
  line-height:var(--line-height-normal);
  white-space:nowrap;
  border-radius:var(--radius-sm);
  opacity:0;visibility:hidden;
  -webkit-transition:opacity var(--transition-fast),visibility var(--transition-fast);
  transition:opacity var(--transition-fast),visibility var(--transition-fast);
  z-index:var(--z-tooltip);
  pointer-events:none;
}
.tooltip__content::after{
  content:'';
  position:absolute;top:100%;left:50%;
  margin-left:-5px;
  border:5px solid transparent;
  border-top-color:var(--color-text);
}
.tooltip:hover .tooltip__content,
.tooltip:focus-within .tooltip__content,
.tooltip__trigger:focus + .tooltip__content{opacity:1;visibility:visible;}
.tooltip--bottom .tooltip__content{
  bottom:auto;top:100%;
  -webkit-transform:translateX(-50%) translateY(.5rem);
  transform:translateX(-50%) translateY(.5rem);
}
.tooltip--bottom .tooltip__content::after{
  top:auto;bottom:100%;
  border-top-color:transparent;
  border-bottom-color:var(--color-text);
}
.tooltip--left .tooltip__content{
  bottom:auto;top:50%;
  left:auto;right:100%;
  -webkit-transform:translateX(-.5rem) translateY(-50%);
  transform:translateX(-.5rem) translateY(-50%);
}
.tooltip--left .tooltip__content::after{
  top:50%;left:100%;
  margin-top:-5px;margin-left:0;
  border-top-color:transparent;
  border-left-color:var(--color-text);
}
.tooltip--right .tooltip__content{
  bottom:auto;top:50%;
  left:100%;
  -webkit-transform:translateX(.5rem) translateY(-50%);
  transform:translateX(.5rem) translateY(-50%);
}
.tooltip--right .tooltip__content::after{
  top:50%;left:auto;right:100%;
  margin-top:-5px;margin-left:0;
  border-top-color:transparent;
  border-right-color:var(--color-text);
}
.tooltip--multiline .tooltip__content{white-space:normal;width:200px;text-align:center;}

/* ===== 26) BADGE ===== */
.badge{
  display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;
  -webkit-box-align:center;-ms-flex-align:center;align-items:center;
  gap:var(--space-1);
  padding:var(--space-1) var(--space-3);
  font-size:var(--font-size-xs);
  font-weight:var(--font-weight-semibold);
  line-height:1.4;
  border-radius:var(--radius-full);
  background-color:var(--color-border);
  color:var(--color-text);
  white-space:nowrap;
}
.badge--primary{background-color:var(--color-primary);color:var(--color-text-inverse);}
.badge--success{background-color:var(--color-success-light);color:var(--color-success-dark);}
.badge--warning{background-color:var(--color-warning-light);color:var(--color-warning-dark);}
.badge--error{background-color:var(--color-error-light);color:var(--color-error-dark);}
.badge--info{background-color:var(--color-info-light);color:var(--color-info-dark);}
.badge--outline{background-color:transparent;border:var(--border-width) solid currentColor;}
.badge--outline.badge--primary{color:var(--color-primary);}
.badge--outline.badge--success{color:var(--color-success);}
.badge--outline.badge--warning{color:var(--color-warning);}
.badge--outline.badge--error{color:var(--color-error);}
.badge--sm{padding:0 var(--space-2);font-size:.625rem;}
.badge--lg{padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);}
.badge__icon{font-size:.75em;line-height:1;}
.badge__remove{
  display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;
  -webkit-box-align:center;-ms-flex-align:center;align-items:center;
  -webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;
  width:1rem;height:1rem;
  padding:0;
  margin-left:var(--space-1);
  margin-right:calc(var(--space-1) * -1);
  background:rgba(0,0,0,.1);
  border:none;
  border-radius:50%;
  cursor:pointer;
  font-size:.75rem;
  line-height:1;
  opacity:.7;
  -webkit-transition:opacity var(--transition-fast);
  transition:opacity var(--transition-fast);
}
.badge__remove:hover{opacity:1;}
.badge--dot{padding:0;width:.5rem;height:.5rem;border-radius:50%;}
.badge--dot.badge--lg{width:.75rem;height:.75rem;}

/* ===== 27) PROGRESS ===== */
.progress{height:.5rem;background-color:var(--color-border);border-radius:var(--radius-full);overflow:hidden;}
.progress__bar{
  height:100%;
  background-color:var(--color-primary);
  border-radius:var(--radius-full);
  -webkit-transition:width var(--transition-slow);
  transition:width var(--transition-slow);
}
.progress--sm{height:.25rem;}
.progress--lg{height:1rem;}
.progress--success .progress__bar{background-color:var(--color-success);}
.progress--warning .progress__bar{background-color:var(--color-warning);}
.progress--error .progress__bar{background-color:var(--color-error);}
.progress-wrapper{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-orient:vertical;-webkit-box-direction:normal;
  -ms-flex-direction:column;flex-direction:column;
  gap:var(--space-2);
}
.progress-header{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  -webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;
  font-size:var(--font-size-sm);
}
.progress-label{font-weight:var(--font-weight-medium);color:var(--color-text);}
.progress-value{color:var(--color-text-muted);}
.progress--striped .progress__bar{
  background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);
  background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);
  background-size:1rem 1rem;
}
.progress--animated .progress__bar{-webkit-animation:progressStripes 1s linear infinite;animation:progressStripes 1s linear infinite;}
@-webkit-keyframes progressStripes{from{background-position:1rem 0;}to{background-position:0 0;}}
@keyframes progressStripes{from{background-position:1rem 0;}to{background-position:0 0;}}

/* ===== 28) BACK TO TOP ===== */
.back-to-top{
  position:fixed;
  bottom:var(--space-6);
  right:var(--space-6);
  display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;
  -webkit-box-align:center;-ms-flex-align:center;align-items:center;
  -webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;
  width:3rem;height:3rem;
  padding:0;
  background-color:var(--color-primary);
  color:var(--color-text-inverse);
  border:none;
  border-radius:var(--radius-full);
  cursor:pointer;
  -webkit-box-shadow:var(--shadow-lg);
  box-shadow:var(--shadow-lg);
  opacity:0;visibility:hidden;
  -webkit-transform:translateY(1rem);
  transform:translateY(1rem);
  -webkit-transition:opacity var(--transition-normal),visibility var(--transition-normal),-webkit-transform var(--transition-normal),background-color var(--transition-fast);
  transition:opacity var(--transition-normal),visibility var(--transition-normal),transform var(--transition-normal),background-color var(--transition-fast);
  z-index:var(--z-fixed);
}
.back-to-top.is-visible{
  opacity:1;visibility:visible;
  -webkit-transform:translateY(0);
  transform:translateY(0);
}
.back-to-top:hover,.back-to-top:focus{background-color:var(--color-primary-dark);}
.back-to-top:focus-visible{outline:var(--border-width-thick) solid var(--color-text-inverse);outline-offset:2px;}
.back-to-top__icon{font-size:var(--font-size-lg);line-height:1;}
@media (max-width:47.999rem){
  .back-to-top{bottom:var(--space-4);right:var(--space-4);width:2.5rem;height:2.5rem;}
}

/* ===== 29) LOADING EN BOTONES ===== */
.btn.is-loading{position:relative;color:transparent !important;pointer-events:none;cursor:wait;}
.btn.is-loading>*{visibility:hidden;}
.btn.is-loading::after{
  content:'';
  position:absolute;top:50%;left:50%;
  width:1.1rem;height:1.1rem;
  margin-top:-.55rem;margin-left:-.55rem;
  border:2px solid currentColor;
  border-color:var(--color-text-inverse) var(--color-text-inverse) transparent transparent;
  border-radius:50%;
  -webkit-animation:btnSpin .6s linear infinite;
  animation:btnSpin .6s linear infinite;
}
.btn--secondary.is-loading::after,.btn--ghost.is-loading::after{border-color:var(--color-primary) var(--color-primary) transparent transparent;}
@-webkit-keyframes btnSpin{to{-webkit-transform:rotate(360deg);transform:rotate(360deg);}}
@keyframes btnSpin{to{transform:rotate(360deg);}}
.btn--sm.is-loading::after{width:.9rem;height:.9rem;margin-top:-.45rem;margin-left:-.45rem;}
.btn--lg.is-loading::after{width:1.3rem;height:1.3rem;margin-top:-.65rem;margin-left:-.65rem;}

/* ===== 30) DROPDOWN ===== */
.dropdown{position:relative;display:inline-block;vertical-align:top;}
.dropdown__toggle{
  display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;
  -webkit-box-align:center;-ms-flex-align:center;align-items:center;
  -webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;
  gap:.5rem;
  padding:.65rem 1.25rem;
  min-width:100px;
  font-size:.95rem;
  font-weight:500;
  white-space:nowrap;
  border-radius:.4rem;
  cursor:pointer;
  -webkit-transition:all .15s ease;
  transition:all .15s ease;
}
.dropdown__toggle.btn--outline{background-color:transparent;color:var(--color-primary);border:1px solid var(--color-primary);}
.dropdown__toggle.btn--outline:hover{background-color:var(--color-bg-light);}
.dropdown__arrow{
  display:inline-block;
  width:0;height:0;
  margin-left:.35rem;
  border-left:.28rem solid transparent;
  border-right:.28rem solid transparent;
  border-top:.28rem solid currentColor;
  -webkit-transition:-webkit-transform .2s ease;
  transition:transform .2s ease;
}
.dropdown.is-open .dropdown__arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg);}
.dropdown__menu{
  position:absolute;
  top:100%;
  left:0;
  min-width:11rem;
  margin-top:.35rem;
  padding:.4rem 0;
  background-color:var(--color-bg);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  -webkit-box-shadow:var(--shadow-lg);
  box-shadow:var(--shadow-lg);
  opacity:0;visibility:hidden;
  -webkit-transform:translateY(-.5rem);
  transform:translateY(-.5rem);
  -webkit-transition:opacity .15s ease,visibility .15s ease,-webkit-transform .15s ease;
  transition:opacity .15s ease,visibility .15s ease,transform .15s ease;
  z-index:var(--z-dropdown);
}
.dropdown.is-open .dropdown__menu{
  opacity:1;visibility:visible;
  -webkit-transform:translateY(0);
  transform:translateY(0);
}
.dropdown--right .dropdown__menu{left:auto;right:0;}
.dropdown__item{
  display:block;
  width:100%;
  padding:.5rem 1rem;
  background:none;
  border:none;
  text-align:left;
  font-size:.9rem;
  color:var(--color-text);
  text-decoration:none;
  cursor:pointer;
  -webkit-transition:background-color .15s ease;
  transition:background-color .15s ease;
}
.dropdown__item:hover,.dropdown__item:focus{background-color:var(--color-bg-light);text-decoration:none;outline:none;}
.dropdown__item--active{background-color:var(--color-bg-light);color:var(--color-primary);font-weight:500;}
.dropdown__divider{height:0;margin:.4rem 0;border:none;border-top:1px solid var(--color-border);}
.dropdown__toggle svg,.dropdown__toggle img{width:1rem;height:1rem;margin-right:.25rem;}
.dropdown__item svg{width:1rem;height:1rem;margin-right:.5rem;vertical-align:-.15em;}
.dropdown__toggle:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;}
.dropdown__item:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;background-color:var(--color-bg-light);}

/* ===== 31) MEDIA QUERIES ACCESIBILIDAD ===== */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    -webkit-animation-duration:.01ms !important;
    animation-duration:.01ms !important;
    -webkit-animation-iteration-count:1 !important;
    animation-iteration-count:1 !important;
    -webkit-transition-duration:.01ms !important;
    transition-duration:.01ms !important;
  }
  .spinner{-webkit-animation:none;animation:none;border-top-color:var(--color-primary);border-right-color:var(--color-primary);}
  .skeleton{-webkit-animation:none;animation:none;}
  .progress--animated .progress__bar{-webkit-animation:none;animation:none;}
  .back-to-top{
    -webkit-transition:opacity var(--transition-fast),visibility var(--transition-fast);
    transition:opacity var(--transition-fast),visibility var(--transition-fast);
    -webkit-transform:none;transform:none;
  }
}
@media (prefers-contrast:more){
  .skip-link{border:var(--border-width-thick) solid currentColor;}
  .alert{border-width:var(--border-width-thick);}
  .footer-top a,.footer-grid a{text-decoration:underline;}
  .footer-top a:focus,.footer-grid a:focus{outline-width:3px;}
  .menu-tabs__tab:focus,.menu-tabs__link:focus{outline-width:3px;}
}

/* ===== 32) PRINT GLOBAL ===== */
@media print{
  .menu-toggle,.menu-container,.menu-modal-overlay,.back-to-top,.modal-overlay,.alert__close{display:none !important;}
  .left-sidebar,.right-sidebar{display:none !important;}
  .main-content{grid-column:1 / -1 !important;}
  .card,.alert{-webkit-box-shadow:none !important;box-shadow:none !important;border:1px solid #000 !important;}
}

/* ===== 33) IE11 FALLBACKS ===== */
@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){
  .custom-grid-container{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:-.6vw;}
  .custom-grid-container>*{-ms-flex:0 0 auto;flex:0 0 auto;padding:.6vw;width:100%;}
  .custom-col-span-2{width:50%;}
  .custom-col-span-4{width:100%;}
  .content-wrapper{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;}
  .main-content{-ms-flex:1 1 0%;flex:1 1 0%;min-width:0;}
  .left-sidebar,.right-sidebar{-ms-flex:0 0 200px;flex:0 0 200px;}
  .card{display:block;height:auto;}
  .card .btn{margin-top:1rem;}
  .card__excerpt{min-height:60px;}
  .menu-tabs__content-grid{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;}
  .menu-tabs__column{-ms-flex:0 0 50%;flex:0 0 50%;padding:.5rem;}
}