/*
 * Solidaria Integral — Phase 44 visual quality layer.
 * Structural, accessible and responsive safeguards shared by public pages,
 * managed Homes, Elementor output and the associate portal.
 */
:root{
  --esi-space-1:clamp(.35rem,.25rem + .25vw,.55rem);
  --esi-space-2:clamp(.65rem,.5rem + .35vw,.95rem);
  --esi-space-3:clamp(1rem,.8rem + .5vw,1.4rem);
  --esi-space-4:clamp(1.5rem,1.1rem + .9vw,2.2rem);
  --esi-space-5:clamp(2.1rem,1.45rem + 1.5vw,3.4rem);
  --esi-space-6:clamp(3rem,2rem + 2.4vw,5.4rem);
  --esi-page-gutter:clamp(1rem,.6rem + 1.3vw,2.5rem);
  --esi-reading-width:68ch;
  --esi-control-size:44px;
  --esi-focus-ring:0 0 0 3px color-mix(in srgb,var(--esi-primary,#1f6f4a) 32%,transparent);
  --esi-admin-offset:0px;
}
body.admin-bar{--esi-admin-offset:32px}
@media(max-width:782px){body.admin-bar{--esi-admin-offset:46px}}

html{box-sizing:border-box;scroll-padding-top:calc(var(--esi-admin-offset) + 1rem);text-size-adjust:100%;-webkit-text-size-adjust:100%}
*,*::before,*::after{box-sizing:inherit}
body{min-width:0;font-weight:var(--esi-body-weight,400);line-height:1.58;overflow-wrap:break-word}
main,header,footer,nav,section,article,aside,form,fieldset,.elementor,.elementor-section,.elementor-container,.elementor-column,.elementor-widget-wrap{min-width:0}
img,svg,video,canvas,iframe{max-inline-size:100%}
img,video{block-size:auto}
iframe{border:0}
figure{max-width:100%;margin-inline:0}
pre,code{max-width:100%}
pre{overflow:auto}
table{max-width:100%;border-collapse:collapse}

.esi-container,.esi-shell,.site-main>.entry-content,.site-main>.page-content,.solidaria-public-wrap,.solidaria-portal-wrap{
  width:min(calc(100% - (var(--esi-page-gutter) * 2)),var(--esi-content-width,1240px));
  margin-inline:auto;
}
.entry-content>*:not(.alignwide):not(.alignfull),.page-content>*:not(.alignwide):not(.alignfull){max-width:100%}
.entry-content p,.entry-content li,.page-content p,.page-content li,.solidaria-rich-text p{max-width:var(--esi-reading-width)}

h1,h2,h3,h4,h5,h6{font-family:var(--esi-font-heading,var(--esi-font,inherit));font-weight:var(--esi-weight-heading,400);line-height:1.12;letter-spacing:-.018em;text-wrap:balance;overflow-wrap:normal}
h1{font-size:clamp(1.75rem,1rem + 2.2vw,3rem);max-width:22ch}
h2{font-size:clamp(1.5rem,1rem + 1.5vw,2.4rem);max-width:28ch}
h3{font-size:clamp(1.15rem,1rem + .6vw,1.65rem);max-width:36ch}
p,li,label,input,select,textarea,button{font-size:max(1rem,1em)}
strong,b{font-weight:600}
nav strong,nav b,.esi-menu a,.esi-primary-navigation a{font-weight:500}

:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:2px solid var(--esi-primary,#1f6f4a);
  outline-offset:3px;
  box-shadow:var(--esi-focus-ring);
}
:where(a,button,input,select,textarea,summary,[tabindex]):focus:not(:focus-visible){outline:none}
.esi-skip-link{position:fixed;z-index:100000;inset-block-start:calc(var(--esi-admin-offset) + .5rem);inset-inline-start:.75rem;transform:translateY(-180%);padding:.7rem 1rem;border-radius:.65rem;background:var(--esi-primary,#1f6f4a);color:#fff;text-decoration:none;transition:transform .16s ease}
.esi-skip-link:focus{transform:translateY(0)}

button,.button,input[type="submit"],input[type="button"],input[type="reset"],[role="button"]{min-block-size:var(--esi-control-size)}
a.button,.elementor-button,.wp-element-button{display:inline-flex;align-items:center;justify-content:center;min-block-size:var(--esi-control-size);max-width:100%;padding:.7rem 1rem;line-height:1.2;text-align:center;white-space:normal}
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),select,textarea{
  width:100%;max-width:100%;min-block-size:var(--esi-control-size);padding:.68rem .8rem;border:1px solid color-mix(in srgb,var(--esi-text,#25312c) 24%,transparent);border-radius:.65rem;background:var(--esi-surface,#fff);color:var(--esi-text,#25312c);font:inherit
}
textarea{min-block-size:7rem;resize:vertical}
label{display:inline-block;line-height:1.35}
fieldset{min-width:0;max-width:100%}

/* Navigation: one desktop layout and one controlled drawer, without overflow. */
.esi-site-header{position:relative;z-index:1200;inset-inline:0;max-width:100%;isolation:isolate}
.esi-header-row,.esi-header-main{width:min(calc(100% - (var(--esi-page-gutter) * 2)),var(--esi-content-width,1240px));margin-inline:auto;gap:clamp(.75rem,1.5vw,1.5rem)}
.esi-header-brand,.esi-branding,.esi-primary-navigation,.esi-header-actions{min-width:0}
.esi-header-brand>a,.esi-branding>a{min-width:0;max-width:100%}
.esi-header-brand img,.esi-branding img{max-inline-size:min(12.5rem,32vw);block-size:auto}
.esi-primary-navigation>.esi-menu,.esi-primary-navigation .menu{max-width:100%}
.esi-primary-navigation .esi-menu>li>a{font-weight:500}
.esi-primary-navigation .sub-menu{max-width:min(22rem,calc(100vw - (var(--esi-page-gutter) * 2)));max-height:min(70vh,32rem);overflow-y:auto;overscroll-behavior:contain}
.esi-primary-navigation .menu-item.is-align-end>.sub-menu{inset-inline:auto 0}
.esi-submenu-toggle{inline-size:var(--esi-control-size);block-size:var(--esi-control-size);align-items:center;justify-content:center;border:0;background:transparent;color:inherit}
.esi-submenu-toggle>span::before{content:"";display:block;inline-size:.5rem;block-size:.5rem;border-inline-end:1.5px solid currentColor;border-block-end:1.5px solid currentColor;transform:rotate(45deg) translate(-1px,-1px);transition:transform .16s ease}
.menu-item-has-children.is-submenu-open>.esi-submenu-toggle>span::before{transform:rotate(225deg) translate(-1px,-1px)}
.esi-menu-overlay{position:fixed;z-index:1190;inset:var(--esi-admin-offset) 0 0;background:rgba(12,25,20,.48);backdrop-filter:blur(2px)}
body.esi-navigation-open{overflow:hidden;touch-action:none}

/* Consistent spacing and resilient component flow. */
.site-main>article,.site-main>.page,.solidaria-public-section,.solidaria-portal-section{min-width:0}
.site-main>article>.entry-content,.site-main>.page-content{padding-block:var(--esi-space-5)}
.entry-content>*,.page-content>*{margin-block-start:0;margin-block-end:var(--esi-space-3)}
.entry-content>h2,.page-content>h2{margin-block-start:var(--esi-space-5)}
.entry-content>h3,.page-content>h3{margin-block-start:var(--esi-space-4)}
:where(.solidaria-grid,.solidaria-card-grid,.solidaria-public-grid,.solidaria-portal-grid,.elementor-row,.e-con-inner)>*{min-width:0}
:where(.solidaria-card,.solidaria-public-card,.solidaria-portal-card,.elementor-widget-container){overflow-wrap:break-word}

/* Tables remain usable without forcing the entire page to scroll horizontally. */
:where(.solidaria-table-wrap,.wp-block-table,.table-responsive){max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
:where(.solidaria-table-wrap,.wp-block-table,.table-responsive) table{min-width:38rem}

/* Managed Homes and Elementor: preserve editable values while preventing rigid overflow. */
body.solidaria-managed-home .solidaria-elementor-section{overflow:clip;padding-block:clamp(3rem,5.5vw,5.8rem)!important}
body.solidaria-managed-home .solidaria-elementor-section>.elementor-container{width:min(calc(100% - (var(--esi-page-gutter) * 2)),var(--esi-content-width,1240px))!important;max-width:var(--esi-content-width,1240px)!important}
body.solidaria-managed-home .elementor-column,body.solidaria-managed-home .elementor-widget,body.solidaria-managed-home .elementor-widget-wrap{min-width:0;max-width:100%}
body.solidaria-managed-home .elementor-heading-title{max-width:100%;overflow-wrap:normal;text-wrap:balance}
body.solidaria-managed-home .elementor-text-editor,body.solidaria-managed-home .elementor-widget-text-editor{max-width:var(--esi-reading-width)}
body.solidaria-managed-home .hm3-card{min-height:0;height:auto}

/* Floating attention tools keep a safe area and never define page width. */
.solidaria-attention,.solidaria-whatsapp-float{max-width:calc(100vw - (var(--esi-page-gutter) * 2))}
.solidaria-attention__panel{max-width:calc(100vw - (var(--esi-page-gutter) * 2));max-height:calc(100dvh - var(--esi-admin-offset) - 7rem)}
.solidaria-attention__quick{grid-template-columns:minmax(0,1fr)}
.solidaria-attention__quick button{min-width:0;white-space:normal;overflow-wrap:anywhere}

/* Dialogs and overlays. */
:where(dialog,.solidaria-modal,.esi-search-dialog,[role="dialog"]){max-width:min(44rem,calc(100vw - (var(--esi-page-gutter) * 2)));max-height:calc(100dvh - var(--esi-admin-offset) - 2rem);overflow:auto}

@media(max-width:1180px){
  .esi-menu-toggle{display:inline-flex;position:relative;z-index:1220}
  .esi-primary-navigation{display:none}
  .esi-site-header.is-menu-open .esi-primary-navigation{
    display:block;position:fixed;z-index:1210;inset-block:var(--esi-admin-offset) 0;inset-inline:auto 0;inline-size:min(92vw,27rem);block-size:auto;max-width:100%;padding:calc(4.8rem + env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1.5rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));background:var(--esi-header,var(--esi-surface,#fff));overflow-y:auto;overscroll-behavior:contain;box-shadow:-1rem 0 3rem rgba(0,0,0,.2)
  }
  .esi-site-header.is-menu-open .esi-primary-navigation .esi-menu,.esi-site-header.is-menu-open .esi-primary-navigation .menu{display:grid;gap:.25rem;width:100%;margin:0;padding:0;list-style:none}
  .esi-site-header.is-menu-open .esi-primary-navigation li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;margin:0;min-width:0}
  .esi-site-header.is-menu-open .esi-primary-navigation li>a{display:flex;align-items:center;min-height:var(--esi-control-size);padding:.65rem .45rem;white-space:normal}
  .esi-site-header.is-menu-open .esi-primary-navigation .esi-submenu-toggle{display:inline-flex}
  .esi-site-header.is-menu-open .esi-primary-navigation .sub-menu{position:static;grid-column:1/-1;width:100%;min-width:0;max-width:none;max-height:none;margin:0;padding:.2rem 0 .4rem .75rem;border:0;border-inline-start:2px solid color-mix(in srgb,var(--esi-primary,#1f6f4a) 26%,transparent);border-radius:0;background:transparent;box-shadow:none;overflow:visible}
  .esi-site-header.is-menu-open .esi-primary-navigation .sub-menu[hidden]{display:none}
  .esi-site-header.is-menu-open .esi-primary-navigation .menu-item-has-children:not(.is-submenu-open)>.sub-menu{display:none}
  .esi-site-header.is-menu-open .esi-primary-navigation .menu-item-has-children.is-submenu-open>.sub-menu{display:grid}
  .esi-financial-shortcuts,.esi-quick-bar,.esi-header-actions>a:not(.esi-header-portal),.esi-editorial-title,.esi-transactional-title{display:none}
  .esi-financial-nav,.esi-transactional-nav,.esi-editorial-nav{border:0}
  .esi-financial-nav>.esi-shell{display:block;min-height:0}
  .esi-financial-nav .esi-header-portal{display:none}
}

@media(max-width:767px){
  :root{--esi-page-gutter:clamp(.875rem,4vw,1.25rem)}
  body{line-height:1.55}
  h1{font-size:clamp(1.85rem,9vw,3rem)}
  h2{font-size:clamp(1.5rem,7vw,2.35rem)}
  .esi-header-row,.esi-header-main{min-height:4.25rem}
  .esi-header-brand small,.esi-header-brand span{display:none}
  .esi-header-brand img,.esi-branding img{max-inline-size:min(10.5rem,48vw);max-block-size:3.1rem}
  .esi-header-portal,.esi-minimal-portal{min-height:2.75rem;padding:.58rem .75rem;font-size:.82rem}
  .solidaria-attention__panel{position:fixed!important;inset-inline:var(--esi-page-gutter)!important;inset-block:auto calc(4.7rem + env(safe-area-inset-bottom));width:auto!important;max-height:calc(100dvh - var(--esi-admin-offset) - 6rem)}
  .solidaria-attention__form{grid-template-columns:minmax(0,1fr)}
  .solidaria-attention__form button{width:100%}
  :where(.solidaria-table-wrap,.wp-block-table,.table-responsive) table{min-width:32rem}
}

@media(max-width:480px){
  .esi-header-portal,.esi-minimal-portal{display:none}
  .esi-menu-toggle .esi-menu-label{display:inline}
  .solidaria-attention__launcher{max-width:min(13rem,calc(100vw - 5rem));padding:.68rem .82rem}
  .solidaria-whatsapp-float{max-width:calc(100vw - 1.5rem);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}

@media(max-width:359px){
  :root{--esi-page-gutter:.75rem}
  h1{font-size:1.75rem}
  h2{font-size:1.45rem}
  .esi-menu-toggle{min-width:var(--esi-control-size);padding:.55rem}
  .esi-menu-toggle .esi-menu-label{display:none}
}

@media(orientation:landscape) and (max-height:520px){
  .esi-site-header.is-menu-open .esi-primary-navigation{padding-block-start:3.75rem}
  .solidaria-attention__panel{max-height:calc(100dvh - var(--esi-admin-offset) - 1rem);inset-block:auto .5rem}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

@media(forced-colors:active){
  :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid CanvasText;box-shadow:none}
  .esi-menu-overlay{background:Canvas}
}
