/* SAPAMEFA V9.3 core — semantic typography and accessibility foundation. */
*, *::before, *::after { box-sizing: border-box; }

/* V9.13 — language runtime stabilization: bound content is revealed only after the canonical catalog is applied. */
html.sapamefa-i18n-pending body { visibility: hidden; }
html:not(.sapamefa-i18n-pending) body { visibility: visible; }


html {
  min-width: 0;
  scroll-behavior: smooth;
  font-family: var(--smf-font-sans);
  font-size: var(--smf-type-md);
  font-synthesis: none;
  font-kerning: normal;
}

body {
  min-width: 0;
  margin: 0;
  color: var(--smf-color-text-strong);
  background: var(--smf-color-surface);
  font-family: var(--smf-font-sans);
  font-size: var(--smf-type-body-size);
  font-weight: var(--smf-type-body-weight);
  line-height: var(--smf-type-body-line);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-synthesis: none;
}

body, button, input, textarea, select, option, table {
  font-family: var(--smf-font-sans);
}

img, svg, video {
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
}

button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
[hidden] { display: none !important; }
html.sapamefa-scroll-locked, body.sapamefa-scroll-locked { overflow: hidden; }

.sapamefa-main {
  display: block;
  width: 100%;
  min-height: 40vh;
  overflow-x: clip;
}

.sapamefa-container {
  width: min(var(--smf-container-content), calc(100% - var(--smf-gutter) * 2));
  margin-inline: auto;
}

.sapamefa-container--wide {
  width: min(var(--smf-container-wide), calc(100% - var(--smf-gutter) * 2));
}

.sapamefa-icon {
  display: inline-block;
  width: 1em;
  height: 1em;
  flex: 0 0 auto;
  fill: currentColor;
  vertical-align: -0.125em;
}

.fa-spin { animation: sapamefa-icon-spin var(--smf-motion-reveal) linear infinite; }
@keyframes sapamefa-icon-spin { to { transform: rotate(360deg); } }

.sr-reveal {
  opacity: 0;
  transform: translate3d(0, 34px, 0);
  transition:
    opacity var(--smf-motion-reveal) var(--smf-ease-emphasized),
    transform var(--smf-motion-reveal) var(--smf-ease-emphasized);
  transition-delay: var(--sr-delay, 0ms);
  will-change: opacity, transform;
}

.sr-reveal[data-sr-dir="left"] { transform: translate3d(-40px, 0, 0); }
.sr-reveal[data-sr-dir="right"] { transform: translate3d(40px, 0, 0); }
.sr-reveal[data-sr-dir="zoom"] {
  transform: translate3d(0, 28px, 0) scale(0.965);
  transform-origin: center;
}
.sr-reveal.sr-visible { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }

html.sapamefa-preview-shell-pending { background: var(--smf-color-dark); }
html.sapamefa-preview-shell-pending body { visibility: hidden; }

@view-transition { navigation: auto; }
::view-transition-old(root) { animation: sapamefa-page-out var(--smf-motion-fast) ease-out both; }
::view-transition-new(root) { animation: sapamefa-page-in var(--smf-motion-fast) ease-out both; }
@keyframes sapamefa-page-out { to { opacity: 0.94; } }
@keyframes sapamefa-page-in { from { opacity: 0.94; } to { opacity: 1; } }

:focus-visible {
  outline: var(--smf-focus-ring);
  outline-offset: var(--smf-focus-offset);
  
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .sr-reveal,
  .sr-reveal.sr-visible {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

/* Canonical accessibility utility. */
.sapamefa-visually-hidden{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding: 0!important;
  margin: -1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}


/* V9.14 — full-site visual harmonization foundation. */
:where(body,main,section,article,aside,header,footer,nav,div){min-width:0;}
:where(h1,h2,h3,h4,h5,h6,p,li,dt,dd,a,button,label,legend,figcaption){overflow-wrap:anywhere;}
:where(h1,h2,h3){text-wrap:balance;}
:where(p,li,figcaption){text-wrap:pretty;}
:where(button,[role="button"],input,select,textarea){min-height:var(--smf-touch-target);}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:var(--smf-focus-ring);outline-offset:var(--smf-focus-offset);}
.sapamefa-main :where(img,picture,video,iframe,svg){max-inline-size:100%;}
@media(max-width:767px){
  .sapamefa-main{overflow-x:hidden;}
}
/* --smf-gutter is owned exclusively by sapamefa-tokens.css (ECOSYSTEM WIDTH
   CONTRACT block) to avoid two files racing to set the same custom property
   at different breakpoints. */

/* SAPAMEFA_V3.40 — numeric typography: phone numbers and dates sitewide. */
a[href^="tel:"],
.sapamefa-news-card__meta time,
.sapamefa-article-meta time {
  font-variant-numeric: tabular-nums lining-nums;
}

/* GLOBAL-NON-HOME-CONTAINER-1440-01 — canonical page geometry.
   All non-home routes inherit one 1440px content axis. Home remains an
   explicit exception and keeps its existing visual/container cascade. */
body.sapamefa-layout--non-home {
  --smf-container-content: var(--smf-page-max-width);
  --smf-container-shell: var(--smf-page-max-width);
  --smf-container-wide: var(--smf-page-max-width);
  --smf-container-editorial-shell: var(--smf-page-max-width);
  --smf-container-editorial-reading: var(--smf-page-max-width);
  --smf-gutter: var(--smf-page-gutter-desktop);
  --smf-content-measure: 100%;
  --smf-heading-measure: 100%;
  --smf-summary-measure: 100%;
  --smf-section-heading-max-width: 100%;
  --smf-section-heading-wide-max-width: 100%;
  --smf-feature-band-content-max-width: 100%;
  --smf-feature-band-content-max-width-narrow: 100%;
  --smf-page-hero-title-max-width: 100%;
  --smf-page-hero-description-max-width: 100%;
}

.sapamefa-page-container {
  width: min(var(--smf-page-max-width), calc(100% - var(--smf-gutter) * 2));
  max-width: var(--smf-page-max-width);
  margin-inline: auto;
}

@media (max-width: 1023px) {
  body.sapamefa-layout--non-home {
    --smf-gutter: var(--smf-page-gutter-tablet);
  }
}

@media (max-width: 767px) {
  body.sapamefa-layout--non-home {
    --smf-gutter: var(--smf-page-gutter-mobile);
  }
}

