/* 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}
body.pg-next{font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:#fafaf8;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}
/* 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}
.pg-next .pg-content-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}
.pg-next .pg-content-grid>.container-sidebar-left,.pg-next .pg-content-grid>.container-sidebar-right{display:none}
.pg-next .pg-content-grid>.container-component{min-width:0;width:100%;max-width:1040px;margin-inline:auto;padding:0 0 35px}
.pg-next .pg-breadcrumbs{margin:0 0 18px;font-size:.88rem}
.pg-next .container-component main{min-width:0}
.pg-next .container-component .item-page,.pg-next .container-component .com-content-article{background:#fff;border:1px solid var(--pg-border);border-radius:14px;padding:clamp(18px,3vw,36px)}
.pg-next .container-component h1{font-size:clamp(2rem,3.3vw,2.85rem);line-height:1.14;color:var(--pg-text);font-weight:780}
.pg-next .container-component img{max-width:100%;height:auto}
.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. */
.pg-next .pg-main-navigation .pg-nav-root{display:flex;align-items:center;flex-wrap:wrap;gap:1px 9px;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{font:650 .79rem/1.35 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;text-decoration:none;color:var(--pg-dark);padding:7px 3px;border:0;border-radius:8px;background:transparent;transition:color .15s ease,background-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 5px}
.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-root>li>a:focus-visible,
.pg-next .pg-main-navigation .pg-nav-trigger:hover,
.pg-next .pg-main-navigation .pg-nav-trigger:focus-visible,
.pg-next .pg-main-navigation .pg-nav-trigger[aria-expanded="true"]{background:#75bd241c;color:var(--pg-green)}
.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(min-width:992px){.pg-next .pg-main-navigation .pg-nav-root>li+li::before{content:"";position:absolute;inset-inline-start:-5px;inset-block-start:50%;width:1px;height:15px;transform:translateY(-50%);background:#d8e4dc;pointer-events:none}}
@media(max-width:991.98px){.pg-next .pg-main-navigation .pg-nav-root{display:block}.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:992px){.pg-next .pg-header-inner{max-width:1320px;width:100%;grid-template-columns:auto minmax(0,1fr) auto;gap:clamp(10px,1.5vw,20px)}}
@media (max-width:991.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}}

/* v0.5.14 footer card — scoped to the experimental template; header styles unchanged. */
.pg-next .pg-site-footer{background:transparent!important;background-image:none!important;color:#e1ece5;margin:48px 0 24px;padding:0 24px;border:0;box-shadow:none}
.pg-next .pg-footer-card{width:min(100%,var(--pg-max));margin:auto;padding:26px 26px 20px;background:#103d2d;border-radius:13px;box-sizing:border-box;color:#e1ece5}
.pg-next .pg-footer-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:0;align-items:start}
.pg-next .pg-footer-identity{position:relative;min-width:0;padding-right:48px}
.pg-next .pg-footer-identity:after{content:"";position:absolute;right:18px;top:10px;bottom:-13px;width:1px;background:#426253}
.pg-next .pg-footer-logo{font-size:1.32rem;line-height:1.2;letter-spacing:-.035em;color:#fff;font-weight:750}
.pg-next .pg-footer-logo em{font-style:normal;color:#f28c20}
.pg-next .pg-footer-tagline{font-size:.83rem;color:#d7e6dc;margin:11px 0 4px;line-height:1.5}
.pg-next .pg-footer-description{font-size:.83rem;line-height:1.5;color:#b9cec3;margin:0;max-width:290px}
.pg-next .pg-footer-contact{display:inline-flex;gap:8px;align-items:center;margin-top:19px;font-size:.88rem;font-weight:650;color:#fff;text-decoration:none}
.pg-next .pg-footer-contact svg{color:#f28c20;flex:0 0 auto}
.pg-next .pg-footer-navigation{min-width:0}
.pg-next .pg-footer-columns{display:grid;grid-template-columns:1fr 1fr;gap:28px;min-width:0}
.pg-next .pg-footer-column{min-width:0}
.pg-next .pg-footer-column h2{margin:0 0 9px;color:#fff;font-size:.96rem;font-weight:700;line-height:1.35}
.pg-next .pg-footer-column ul,.pg-next .pg-footer-legal ul{padding:0;margin:0;list-style:none}
.pg-next .pg-footer-column li+li{margin-top:10px}
.pg-next .pg-footer-column a,.pg-next .pg-footer-column .pg-footer-heading-item{color:#d7e6dc;text-decoration:none;font-size:.86rem;line-height:1.45}
.pg-next .pg-footer-bottom{border-top:1px solid #426253;margin-top:26px;padding-top:21px;display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}
.pg-next .pg-footer-bottom small{font-size:.77rem;color:#c3d4c9}
.pg-next .pg-footer-legal ul{display:flex;align-items:center;column-gap:12px;row-gap:7px;flex-wrap:wrap}
.pg-next .pg-footer-legal li{margin:0}
.pg-next .pg-footer-legal li+li::before{content:"·";color:#789889;margin-inline-end:12px;user-select:none}
.pg-next .pg-footer-legal a{font-size:.77rem;color:#d7e6dc;text-decoration:none}
.pg-next .pg-footer-card a:hover{text-decoration:underline;color:#fff;text-underline-offset:3px}
.pg-next .pg-footer-card a:focus-visible{outline:2px solid #f28c20;outline-offset:4px;border-radius:2px}
@media(max-width:991.98px){.pg-next .pg-site-footer{padding:0 18px;margin-top:36px}.pg-next .pg-footer-card{padding:25px 22px 20px}.pg-next .pg-footer-identity{padding-right:32px}.pg-next .pg-footer-identity:after{right:13px}.pg-next .pg-footer-columns{gap:16px}}
@media(max-width:640px){.pg-next .pg-site-footer{padding:0 12px}.pg-next .pg-footer-main{grid-template-columns:1fr;row-gap:25px}.pg-next .pg-footer-identity{padding-right:0}.pg-next .pg-footer-identity:after{display:none}.pg-next .pg-footer-columns{grid-template-columns:1fr 1fr}.pg-next .pg-footer-bottom{align-items:flex-start}}


/* PortalGraf Next 0.5.16 — mobile navigation only, desktop rules preserved. */
.pg-next .pg-mobile-toggle{display:none}
@media(max-width:991.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 .pg-main-navigation .pg-nav-root{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 .site-title{font-size:clamp(1.15rem,4.5vw,1.5rem)}
  .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}
  .pg-next .site-title{font-size:1.1rem}
}

/* 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:991.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: 991.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: 991.98px) {
  /* All expandable sections share the same open-state indicator. */
  body.pg-next .pg-main-navigation .pg-nav-trigger[aria-expanded="true"] {
    background: #edf5ed;
    border-radius: 10px;
    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; }
}

/* PortalGraf Next v0.5.20 — footer móvil: zona legal protegida del botón flotante de cookies.
   Exclusivamente bajo 640px; no altera escritorio ni otros módulos. */
@media (max-width: 640px) {
  .pg-next .pg-footer-card { padding-bottom: 34px; }
  .pg-next .pg-footer-bottom {
    flex-direction: column;
    align-items: stretch;
    gap: 17px;
  }
  .pg-next .pg-footer-legal {
    box-sizing: border-box;
    align-self: flex-end;
    width: calc(100% - 58px);
    min-width: 0;
  }
  .pg-next .pg-footer-legal ul {
    justify-content: flex-end;
    column-gap: 10px;
    row-gap: 10px;
  }
  .pg-next .pg-footer-legal li+li::before { margin-inline-end: 10px; }
}
