/* PortalGraf Next 0.5.21 — estilos globales preservados sin cambios desde 0.5.20. */
/* PortalGraf Next v0.5.15 — estilos propios, sin parches acumulativos.
   Mantiene Cassiopeia/Bootstrap y módulos nativos de Joomla. */
:root{--pg-green:#247449;--pg-dark:#103d2d;--pg-orange:#f28c20;--pg-lime:#75bd24;--pg-text:#15262a;--pg-border:#e4e9e6;--pg-max:1200px}
/* Evita animar la restauración nativa de scroll tras F5. Solo PortalGraf Next. */
html:has(> body.pg-next){scroll-behavior:auto !important}
body.pg-next{font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:#fff;color:var(--pg-text);overflow-wrap:anywhere}
.pg-next .pg-site-header{background:#fff;background-image:none;border-bottom:1px solid var(--pg-border);box-shadow:0 2px 9px #092f2310;color:var(--pg-dark);position:relative;z-index:30;padding:0;min-height:0}
.pg-next .pg-header-inner{width:min(100%,var(--pg-max));margin:auto;box-sizing:border-box;min-height:76px;padding:12px 24px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:clamp(12px,1.8vw,26px);align-items:center}
.pg-next .pg-brand{min-width:0}
.pg-next .brand-logo{display:block;color:var(--pg-green);text-decoration:none;line-height:1.05;white-space:nowrap}
.pg-next .site-title{color:var(--pg-green);font-weight:850;letter-spacing:-.045em;font-size:clamp(1.38rem,2vw,1.85rem)}
.pg-next .site-title em,.pg-next .pg-footer-brand em{font-style:normal;color:var(--pg-orange)}
.pg-next .site-description{display:block;font-size:.63rem;color:var(--pg-dark);margin-top:4px}
.pg-next .pg-main-navigation{min-width:0;align-self:center;justify-self:start;display:flex;align-items:center;flex:0 0 auto}
/* One native resources/community menu owner; account module remains autonomous. */
.pg-next .pg-content-shell{width:min(100%,var(--pg-max));margin:auto;padding:24px;box-sizing:border-box}
/* Retícula exclusiva de PortalGraf Next: sin clases de disposición de Cassiopeia.
   Las posiciones Joomla sidebar-left/right siguen disponibles y solo se
   materializan mediante countModules() en index.php. */
.pg-next .pg-content-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "main";
  gap: 20px;
  align-items: start;
  min-width: 0;
}
.pg-next .pg-primary-content {
  grid-area: main;
  min-width: 0;
  width: 100%;
  padding: 0 0 35px;
}
.pg-next .pg-sidebar {
  min-width: 0;
  width: 100%;
  overflow-wrap: anywhere;
}
@media (min-width: 1150px) {
  .pg-next.has-sidebar-left:not(.has-sidebar-right) .pg-content-grid {
    grid-template-columns: minmax(200px, 240px) minmax(0, 1fr);
    grid-template-areas: "left main";
  }
  .pg-next.has-sidebar-right:not(.has-sidebar-left) .pg-content-grid {
    grid-template-columns: minmax(0, 1fr) minmax(200px, 240px);
    grid-template-areas: "main right";
  }
  .pg-next.has-sidebar-left.has-sidebar-right .pg-content-grid {
    grid-template-columns: minmax(190px, 210px) minmax(0, 1fr) minmax(190px, 210px);
    grid-template-areas: "left main right";
  }
}
.pg-next .pg-sidebar--left {grid-area: left;}
.pg-next .pg-sidebar--right {grid-area: right;}
@media (max-width: 1149.98px) {
  .pg-next .pg-content-grid {grid-template-areas: "main" "left" "right";}
  .pg-next:not(.has-sidebar-left) .pg-content-grid {grid-template-areas: "main" "right";}
  .pg-next:not(.has-sidebar-right) .pg-content-grid {grid-template-areas: "main" "left";}
  .pg-next:not(.has-sidebar-left):not(.has-sidebar-right) .pg-content-grid {grid-template-areas: "main";}
}
.pg-next .pg-primary-content main{min-width:0}
.pg-next .pg-modules-band{margin-top:24px}
.pg-next :focus-visible{outline:2px solid var(--pg-orange);outline-offset:3px}

/* Header stays within the same grid on desktop and wraps intentionally on mobile. */

/* Layering and keyboard-focus indicator. */

/* PortalGraf Next 0.5.6: a single site-header controls layer.
   Joomla mod_menu owns the menu; mod_portalgrafcuenta owns auth and actions.
   No JS changes and no modifications to shared module assets. */
.pg-next .pg-site-header{border-bottom:2px solid #75bd2438}
.pg-next .pg-header-tools{
  --pg-tool-size:42px;
  display:flex;align-items:center;justify-self:end;gap:10px;min-width:0;
}
.pg-next .pg-header-tools > *{align-self:center;flex-shrink:0}
.pg-next .pg-search-link{
  display:inline-grid;place-items:center;
  box-sizing:border-box;width:var(--pg-tool-size);height:var(--pg-tool-size);
  min-width:var(--pg-tool-size);min-height:var(--pg-tool-size);
  margin:0;padding:0;border:1px solid #e4e9e6;border-radius:11px;
  background:transparent;color:var(--pg-green);text-decoration:none;
  line-height:1;vertical-align:middle;
}
.pg-next .pg-search-link .pg-search-icon{
  display:block;width:19px;height:19px;margin:0;flex:none;
}
.pg-next .pg-search-link:hover{background:#f4f7f4;border-color:#cbdacf}
.pg-next .pg-search-link:focus-visible{outline:2px solid var(--pg-orange);outline-offset:2px}
.pg-next .pg-account-slot{display:flex;align-items:center;min-width:0;isolation:isolate}
.pg-next .pg-account-slot > *{margin:0;align-self:center}
.pg-next .pg-account-slot .pg-account-module{
  display:inline-flex;align-items:center;margin:0;line-height:1;
}
.pg-next .pg-account-slot .pg-account-details{position:relative;z-index:1;margin:0}
.pg-next .pg-account-slot .pg-account-details[open]{z-index:3}
.pg-next .pg-account-slot .pg-account-summary{
  box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;
  gap:9px;min-height:var(--pg-tool-size);height:var(--pg-tool-size);
  width:auto;max-width:none;margin:0;padding:0 13px;
  border:1px solid #f28c2055;border-radius:11px;
  background:transparent;color:#a94f00;box-shadow:none;
  font:650 .85rem/1.2 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  white-space:nowrap;vertical-align:middle;
}
.pg-next .pg-account-slot .pg-account-summary::before{content:none;display:none}
.pg-next .pg-account-slot .pg-account-icon{
  display:inline-flex;align-items:center;justify-content:center;
  flex:0 0 17px;width:17px;height:17px;margin:0;
}
.pg-next .pg-account-slot .pg-account-label{display:inline-block;flex:0 0 auto;white-space:nowrap}
.pg-next .pg-account-slot .pg-account-caret{
  position:static;inset:auto;box-sizing:border-box;
  display:block;flex:0 0 8px;width:8px;height:8px;
  margin:0 1px 3px 1px;
  border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(45deg);transform-origin:center;
}
.pg-next .pg-account-slot .pg-account-details[open] .pg-account-caret{
  transform:rotate(225deg);margin-top:4px;margin-bottom:0;
}
.pg-next .pg-account-slot .pg-account-details.pg-account-is-closing .pg-account-caret{
  transform:rotate(45deg);margin-top:0;margin-bottom:3px;
}
.pg-next .pg-account-slot .pg-account-summary:hover,
.pg-next .pg-account-slot .pg-account-details[open] > .pg-account-summary{
  background:#fff4e9;border-color:var(--pg-orange);color:#a94f00;box-shadow:none;
}
.pg-next .pg-account-slot .pg-account-summary:focus-visible{
  outline:2px solid var(--pg-orange);outline-offset:2px;
}
.pg-next .pg-account-slot .pg-account-popover{
  position:absolute;inset-inline-end:0;inset-block-start:calc(100% + 8px);
  z-index:120;min-width:210px;background:#fff;border:1px solid var(--pg-border);
  border-radius:10px;box-shadow:0 12px 24px #0002;padding:10px;list-style:none;
}
@media(prefers-reduced-motion:reduce){
 .pg-next .pg-site-header *{transition:none;scroll-behavior:auto}
}


/* PortalGraf Next v0.5.14: sole navigation presentation rules; legacy MetisMenu selectors retired. */
/* Aislar la navegacion de los layouts nativos .container-header .mod-menu y .nav. */
.pg-next .container-header .pg-main-navigation ul.pg-nav-root.mod-menu{display:flex;flex:0 0 auto;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:18px;width:max-content;max-width:none;margin:0;padding:0;list-style:none;background:transparent}
.pg-next .pg-main-navigation .pg-nav-root>li{position:relative;display:flex;align-items:center;min-width:0;margin:0;padding:0;flex:none}
.pg-next .pg-main-navigation .pg-nav-root>li>a,
.pg-next .pg-main-navigation .pg-nav-trigger{display:inline-flex;align-items:center;justify-content:center;font:700 12px/1.4 "Segoe UI",Arial,sans-serif;text-decoration:none;color:#172e2b;padding:7px 0;border:0;border-radius:0;background:transparent;transition:color .15s ease}
.pg-next .pg-main-navigation .pg-nav-trigger{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;cursor:pointer}
.pg-next .pg-main-navigation .pg-nav-trigger--arrow{padding:7px 0}
.pg-next .pg-main-navigation .pg-nav-caret{display:inline-block;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin:-3px 2px 0 0;flex:none}
.pg-next .pg-main-navigation .pg-nav-trigger[aria-expanded="true"] .pg-nav-caret{transform:rotate(225deg);margin:3px 2px 0 0}
.pg-next .pg-main-navigation .pg-nav-root>li>a:hover,
.pg-next .pg-main-navigation .pg-nav-trigger:hover,
.pg-next .pg-main-navigation .pg-nav-trigger[aria-expanded="true"]{background:transparent;color:#247449}
.pg-next .pg-main-navigation .pg-nav-root>li>a:focus-visible,
.pg-next .pg-main-navigation .pg-nav-trigger:focus-visible{background:transparent;color:#247449;outline:2px solid var(--pg-orange);outline-offset:3px}
.pg-next .pg-main-navigation .pg-nav-root>li.active>a,
.pg-next .pg-main-navigation .pg-nav-root>li.current>a{color:var(--pg-green);box-shadow:inset 0 -2px var(--pg-orange)}
.pg-next .pg-main-navigation .pg-nav-sub{position:absolute;top:100%;left:0;z-index:100;display:block;min-width:215px;max-width:300px;margin:0;padding:8px;list-style:none;background:#fff;border:1px solid var(--pg-border);border-radius:10px;box-shadow:0 14px 28px #0002;text-align:left}
/* La regla heredada .container-header .mod-menu .parent > ul gana por especificidad.
   Solo mostrar submenus abiertos por nuestro controlador, nunca los ocultos. */
.pg-next .container-header .pg-main-navigation .mod-menu .parent > ul.pg-nav-sub:not([hidden]){display:block}
.pg-next .pg-main-navigation .pg-nav-sub[hidden]{display:none!important}
.pg-next .pg-main-navigation .pg-nav-sub li{list-style:none}
.pg-next .pg-main-navigation .pg-nav-sub li a{display:block;padding:8px 10px;color:var(--pg-dark);font-size:.85rem;text-decoration:none;border-radius:7px}
.pg-next .pg-main-navigation .pg-nav-sub li a:hover,.pg-next .pg-main-navigation .pg-nav-sub li a:focus-visible{background:#edf4f0;color:var(--pg-green)}

@media(max-width:899.98px){.pg-next .container-header .pg-main-navigation ul.pg-nav-root.mod-menu{display:block;width:100%}.pg-next .pg-main-navigation .pg-nav-root>li{display:block}.pg-next .pg-main-navigation .pg-nav-sub{position:static;min-width:0;max-width:none;width:100%;box-shadow:none;margin:4px 0 8px}}

/* Existing header grid preserved for desktop and responsive handoff. */
@media (min-width:900px){.pg-next .pg-header-inner{max-width:1250px;width:100%;grid-template-columns:auto minmax(0,1fr) auto;gap:28px;padding-left:24px;padding-right:30px}.pg-next .pg-main-navigation{margin-left:12px;transform:translateY(-5px)}}
/* Navegación intermedia, sin nuevas filas. */
@media (min-width:900px) and (max-width:1049.98px){
 .pg-next .pg-header-inner{gap:14px}
 .pg-next .pg-main-navigation{margin-left:2px}
 .pg-next .container-header .pg-main-navigation ul.pg-nav-root.mod-menu{column-gap:9px}
  /* Misma neutralización del desplazamiento heredado que ya funciona en móvil.
     Solo para la fase intermedia, sin alterar el botón ni los extremos. */
  body.pg-next .pg-header-tools .pg-account-slot .pg-account-summary{
    inset-block-start:0;
  }
}
@media (max-width:899.98px){.pg-next .pg-header-inner{grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:14px 18px}.pg-next .pg-brand{grid-column:1}.pg-next .pg-main-navigation{grid-column:1/-1;grid-row:2}.pg-next .pg-header-tools{grid-column:2;grid-row:1}.pg-next .pg-content-shell{padding:18px}}

/* PortalGraf Next 0.5.16 — mobile navigation only, desktop rules preserved. */
.pg-next .pg-mobile-toggle{display:none}
@media(max-width:899.98px){
  .pg-next .pg-header-inner{grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:12px 18px;min-height:72px}
  .pg-next .pg-brand{grid-column:1;grid-row:1}
  .pg-next .pg-header-tools{grid-column:2;grid-row:1;gap:8px}
  .pg-next .pg-mobile-toggle{box-sizing:border-box;display:inline-grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid #d7e5d9;border-radius:11px;background:#fff;color:var(--pg-green);cursor:pointer;order:3}
  .pg-next .pg-mobile-toggle[aria-expanded="true"]{background:#edf5ed;border-color:var(--pg-green)}
  .pg-next .pg-mobile-toggle:focus-visible{outline:2px solid var(--pg-orange);outline-offset:2px}
  .pg-next .pg-main-navigation{display:none;grid-column:1/-1;grid-row:2;min-width:0;padding:11px 0 6px;border-top:1px solid #e1e9e2}
  .pg-next .pg-main-navigation.pg-mobile-open{display:block}
  .pg-next .container-header .pg-main-navigation ul.pg-nav-root.mod-menu{display:block;width:100%}
  .pg-next .pg-main-navigation .pg-nav-root>li{display:block;margin:0;padding:0}
  .pg-next .pg-main-navigation .pg-nav-root>li>a,.pg-next .pg-main-navigation .pg-nav-trigger{display:inline-flex;align-items:center;min-height:40px;padding:9px 12px;font-size:.91rem}
  .pg-next .pg-main-navigation .pg-nav-sub{position:static;display:block;min-width:0;max-width:none;width:auto;margin:0 0 8px 10px;padding:5px 8px;border:0;border-left:2px solid #c5dacb;border-radius:0;background:transparent;box-shadow:none}
  .pg-next .pg-main-navigation .pg-nav-sub[hidden]{display:none!important}
  .pg-next .pg-main-navigation .pg-nav-sub li a{padding:9px 12px;font-size:.88rem}
}
@media(max-width:640px){
  .pg-next .pg-header-inner{padding:11px 12px;gap:6px}
  .pg-next .pg-header-tools{gap:6px;--pg-tool-size:40px}
  .pg-next .pg-mobile-toggle{width:40px;height:40px}
  .pg-next .pg-account-slot .pg-account-summary{width:40px;min-width:40px;padding:0;gap:0}
  .pg-next .pg-account-slot .pg-account-label,.pg-next .pg-account-slot .pg-account-caret{display:none}
  .pg-next .pg-account-slot .pg-account-popover{min-width:min(210px,calc(100vw - 24px))}
}
@media(max-width:360px){
  .pg-next .pg-header-tools{gap:4px;--pg-tool-size:36px}
  .pg-next .pg-mobile-toggle,.pg-next .pg-account-slot .pg-account-summary{width:36px;min-width:36px;height:36px}
}

/* PortalGraf Next 0.5.17: align the three mobile header controls without
   changing the shared account module, dropdown behavior, or desktop layout. */
@media (max-width:899.98px){
  .pg-next .pg-header-tools{
    align-items:center;
    --pg-tool-size:42px;
  }
  .pg-next .pg-header-tools > .pg-search-link,
  .pg-next .pg-header-tools > .pg-mobile-toggle,
  .pg-next .pg-header-tools > .pg-account-slot{
    box-sizing:border-box;
    align-self:center;
    flex:0 0 var(--pg-tool-size);
    width:var(--pg-tool-size);
    height:var(--pg-tool-size);
    min-width:var(--pg-tool-size);
    min-height:var(--pg-tool-size);
    margin:0;
  }
  .pg-next .pg-account-slot,
  .pg-next .pg-account-slot .pg-account-module,
  .pg-next .pg-account-slot .pg-account-details{
    display:flex;
    align-items:center;
    justify-content:center;
    height:100%;
    min-height:0;
    margin:0;
  }
  .pg-next .pg-account-slot .pg-account-summary{
    box-sizing:border-box;
    display:inline-flex;
    width:var(--pg-tool-size);
    min-width:var(--pg-tool-size);
    height:var(--pg-tool-size);
    min-height:var(--pg-tool-size);
    padding:0;
    margin:0;
    line-height:1;
    vertical-align:middle;
    transform:none;
  }
  .pg-next .pg-account-slot .pg-account-icon{margin:0;line-height:1}
  .pg-next .pg-account-slot .pg-account-label,
  .pg-next .pg-account-slot .pg-account-caret{display:none}
}
@media (max-width:640px){
  .pg-next .pg-header-tools{--pg-tool-size:40px}
}
@media (max-width:360px){
  .pg-next .pg-header-tools{--pg-tool-size:36px}
}

/* PortalGraf Next 0.5.18: remove inherited -3px account button offset on mobile.
   Scoped to experimental template; desktop and account module stay unchanged. */
@media (max-width: 899.98px) {
  body.pg-next .pg-header-tools .pg-account-slot .pg-account-summary {
    inset-block-start: 0;
  }
}

/* PortalGraf Next v0.5.19 — mobile submenu finish only.
   Preserve desktop, JS control, account alignment and footer. */
@media (max-width: 899.98px) {
  /* All expandable sections share the same open-state indicator. */
  body.pg-next .pg-main-navigation .pg-nav-trigger[aria-expanded="true"] {
    background: transparent;
    border-radius: 0;
    color: var(--pg-green);
  }
  /* Comfortable, consistent tap targets while retaining secondary hierarchy. */
  body.pg-next .pg-main-navigation .pg-nav-sub:not([hidden]) {
    margin-block: 1px 13px;
    padding-block: 2px 4px;
    border-inline-start: 2px solid #c5dacb;
  }
  body.pg-next .pg-main-navigation .pg-nav-sub li a {
    display: flex;
    align-items: center;
    min-height: 44px;
    box-sizing: border-box;
    padding: 10px 12px;
    line-height: 1.35;
    font-size: .88rem;
  }
  body.pg-next .pg-main-navigation .pg-nav-sub li + li { margin-block-start: 1px; }
}

