/*
 * Sergio Bravo ecosystem shell — shared verbatim by sergiobravo.cl and
 * fundacion.sergiobravo.cl.
 * Canonicalizes header/menu, internal hero, post-hero portal rail and footer.
 */
:root {
  --sb-paper: #FBFAF7;
  --sb-ink: #0A0A0A;
  --sb-graphite: #5C5C58;
  --sb-line: #D9D8D2;
  --sb-black: #000000;
  --sb-white: #FFFFFF;
  --sb-gutter: clamp(20px, 3vw, 48px);
  --sb-sans: "IBM Plex Sans", Arial, sans-serif;
  --sb-serif: "Source Serif 4", Georgia, serif;
}

html,
body {
  -ms-overflow-style: none;
  scrollbar-width: none;
}
html::-webkit-scrollbar,
body::-webkit-scrollbar {
  display: none;
  height: 0;
  width: 0;
}
body.sb-menu-open,
body.fsb-menu-open { overflow: hidden; }
.wp-site-blocks { padding: 0 !important; }
.wp-site-blocks > * { margin-block-start: 0 !important; }

/* ======================================================================
   CANONICAL HEADER + MENU
   New markup uses sb-*; fsb-* aliases keep previously saved Site Editor
   parts working after a theme update.
   ====================================================================== */
:is(.sb-header,.fsb-header) {
  --sb-panel-width: 20%;
  background: transparent !important;
  border: 0 !important;
  left: 0;
  margin: 0 !important;
  padding: 0 !important;
  pointer-events: none;
  position: absolute;
  right: 0;
  top: 0;
  width: 100% !important;
  z-index: 10010;
}
:is(.sb-header__row,.fsb-header__row) {
  align-items: center !important;
  box-sizing: border-box;
  display: flex !important;
  gap: 14px !important;
  height: 72px;
  justify-content: flex-end !important;
  margin: 0 0 0 auto !important;
  max-width: none !important;
  min-height: 72px;
  padding: 0 var(--sb-gutter) !important;
  pointer-events: auto;
  position: relative;
  width: var(--sb-panel-width) !important;
}
:is(.sb-site-title,.fsb-site-title) {
  margin: 0 !important;
  position: relative;
  z-index: 10013;
}
:is(.sb-site-title,.fsb-site-title) a {
  color: var(--sb-white) !important;
  font-family: var(--sb-sans) !important;
  font-size: clamp(1.04rem, 1.2vw, 1.28rem) !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  text-transform: none !important;
  white-space: nowrap;
}
:is(.sb-primary-nav,.fsb-primary-nav) {
  margin: 0 !important;
  position: relative;
  z-index: 10012;
}
:is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container,
:is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container-content {
  -ms-overflow-style: none;
  scrollbar-width: none;
}
:is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container::-webkit-scrollbar,
:is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container-content::-webkit-scrollbar {
  display: none;
  height: 0;
  width: 0;
}
:is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation-item__content,
:is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container-open,
:is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container-close {
  -webkit-tap-highlight-color: transparent;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
}
:is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container-open,
:is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container-close {
  align-items: center;
  color: var(--sb-white) !important;
  display: flex;
  height: 44px !important;
  justify-content: center;
  margin: 0 !important;
  padding: 0 !important;
  width: 44px !important;
}
:is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container-open svg,
:is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container-close svg {
  height: 26px !important;
  width: 26px !important;
}
:is(.sb-primary-nav,.fsb-primary-nav):has(.wp-block-navigation__responsive-container.is-menu-open) .wp-block-navigation__responsive-container-open,
body.sb-menu-open :is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container-open,
body.fsb-menu-open :is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container-open {
  opacity: 0 !important;
  pointer-events: none !important;
  visibility: hidden !important;
}
:is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open {
  animation: sb-shell-menu-in .38s cubic-bezier(.22,.61,.36,1) both;
  background: var(--sb-black) !important;
  bottom: 0 !important;
  box-sizing: border-box;
  color: var(--sb-white) !important;
  left: auto !important;
  margin: 0 !important;
  max-width: none !important;
  min-width: 0 !important;
  overflow: hidden auto !important;
  padding: 72px var(--sb-gutter) clamp(32px,4vw,56px) !important;
  position: fixed !important;
  right: 0 !important;
  top: 0 !important;
  width: var(--sb-panel-width) !important;
  z-index: 10011 !important;
}
:is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
}
:is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
  color: var(--sb-white) !important;
  height: 44px !important;
  margin: 0 !important;
  opacity: 1 !important;
  padding: 0 !important;
  position: fixed !important;
  right: max(20px, var(--sb-gutter)) !important;
  top: 12px !important;
  width: 44px !important;
  z-index: 10015 !important;
}
:is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
  align-items: stretch !important;
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  justify-content: flex-start !important;
  overflow-y: auto !important;
  padding: clamp(54px,8vh,92px) 0 90px !important;
  width: 100% !important;
}
:is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
  align-items: stretch !important;
  display: flex !important;
  flex-direction: column !important;
  gap: clamp(7px,1.1vh,13px) !important;
  margin: 0 !important;
  width: 100% !important;
}
:is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
  animation: sb-shell-menu-item-in .42s cubic-bezier(.22,.61,.36,1) both;
  justify-content: flex-end !important;
  margin: 0 !important;
  width: 100% !important;
}
:is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
  color: var(--sb-white) !important;
  display: block !important;
  font-family: var(--sb-sans) !important;
  font-size: clamp(1.7rem,2.15vw,2.55rem) !important;
  font-weight: 400 !important;
  letter-spacing: -.035em !important;
  line-height: 1.02 !important;
  padding: 0 !important;
  text-align: right !important;
  text-decoration: none !important;
  width: 100% !important;
}
:is(.sb-primary-nav,.fsb-primary-nav) .current-menu-item > .wp-block-navigation-item__content,
:is(.sb-primary-nav,.fsb-primary-nav) .current-menu-ancestor > .wp-block-navigation-item__content {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: inherit !important;
  font-weight: inherit !important;
  outline: 0 !important;
  text-decoration: none !important;
}
:is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation-item__content:focus-visible {
  outline: 0 !important;
  text-decoration: underline !important;
  text-decoration-thickness: 1px !important;
  text-underline-offset: .18em !important;
}
:is(.sb-primary-nav,.fsb-primary-nav) .sb-nav-secondary-first,
:is(.sb-primary-nav,.fsb-primary-nav) .fsb-nav-secondary-first {
  border-top: 1px solid rgba(255,255,255,.16) !important;
  margin-top: clamp(26px,4vh,42px) !important;
  padding-top: clamp(20px,2.4vh,28px) !important;
}
:is(.sb-primary-nav,.fsb-primary-nav) :is(.sb-nav-secondary,.fsb-nav-secondary) .wp-block-navigation-item__content {
  color: rgba(255,255,255,.58) !important;
  font-size: clamp(.98rem,1.1vw,1.18rem) !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  line-height: 1.22 !important;
}
:is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation-item__content:hover,
:is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation-item__content:focus-visible {
  color: var(--sb-white) !important;
}

:is(.sb-menu-social,.fsb-menu-social) {
  align-items: center;
  bottom: clamp(28px,4vw,52px);
  display: flex !important;
  gap: 18px !important;
  justify-content: flex-end;
  margin: 0 !important;
  opacity: 0;
  pointer-events: none;
  position: absolute !important;
  right: var(--sb-gutter) !important;
  transform: translateY(8px);
  transition: opacity .24s ease .14s, transform .32s cubic-bezier(.22,.61,.36,1) .14s;
  visibility: hidden;
  z-index: 10016;
}
body.sb-menu-open :is(.sb-menu-social,.fsb-menu-social),
body.fsb-menu-open :is(.sb-menu-social,.fsb-menu-social) {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
  visibility: visible;
}
:is(.sb-menu-social,.fsb-menu-social) a {
  align-items: center;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: rgba(255,255,255,.62) !important;
  display: flex;
  height: 34px !important;
  justify-content: center;
  outline: 0 !important;
  padding: 0 !important;
  text-decoration: none !important;
  width: 34px !important;
}
:is(.sb-menu-social,.fsb-menu-social) svg {
  height: 21px !important;
  width: 21px !important;
}

@keyframes sb-shell-menu-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes sb-shell-menu-item-in { from { opacity: 0; transform: translateX(18px); } to { opacity: 1; transform: translateX(0); } }

/* 20 / 22 / 24 percent desktop contract. */
@media (min-width:1600px) {
  :is(.sb-header,.fsb-header) { --sb-panel-width: 20%; }
}
@media (min-width:1200px) and (max-width:1599px) {
  :is(.sb-header,.fsb-header) { --sb-panel-width: 22%; }
}
@media (min-width:901px) and (max-width:1199px) {
  :is(.sb-header,.fsb-header) { --sb-panel-width: 24%; }
}
@media (min-width:641px) and (max-width:900px) {
  :is(.sb-header,.fsb-header) { --sb-panel-width: min(60vw,520px); }
  :is(.sb-header__row,.fsb-header__row),
  :is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open {
    width: min(60vw,520px) !important;
  }
  :is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open {
    padding-left: clamp(28px,4vw,42px) !important;
    padding-right: clamp(28px,4vw,42px) !important;
  }
  :is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    font-size: clamp(2rem,4.6vw,2.65rem) !important;
  }
}
@media (max-width:640px) {
  :is(.sb-header,.fsb-header) { --sb-panel-width: 100vw; }
  :is(.sb-header__row,.fsb-header__row) {
    background: transparent !important;
    min-height: 68px !important;
    padding-left: max(22px,env(safe-area-inset-left)) !important;
    padding-right: max(22px,env(safe-area-inset-right)) !important;
    width: 100vw !important;
  }
  :is(.sb-site-title,.fsb-site-title) a {
    font-size: clamp(1.05rem,4.7vw,1.28rem) !important;
  }
  :is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open {
    inset: 0 !important;
    min-width: 100vw !important;
    padding: 68px max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left)) !important;
    width: 100vw !important;
  }
  :is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
    right: max(22px,env(safe-area-inset-right)) !important;
  }
  :is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
    padding: clamp(82px,11vh,112px) 0 92px !important;
  }
  :is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    gap: 7px !important;
  }
  :is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    font-size: clamp(1.95rem,8.2vw,2.55rem) !important;
    letter-spacing: -.045em !important;
    line-height: .98 !important;
  }
  :is(.sb-primary-nav,.fsb-primary-nav) .sb-nav-secondary-first,
  :is(.sb-primary-nav,.fsb-primary-nav) .fsb-nav-secondary-first {
    margin-top: clamp(26px,4.4vh,36px) !important;
    padding-top: 22px !important;
  }
  :is(.sb-primary-nav,.fsb-primary-nav) :is(.sb-nav-secondary,.fsb-nav-secondary) .wp-block-navigation-item__content {
    font-size: clamp(1.08rem,4.8vw,1.3rem) !important;
    line-height: 1.28 !important;
  }
  :is(.sb-menu-social,.fsb-menu-social) {
    bottom: max(22px,env(safe-area-inset-bottom)) !important;
    right: max(24px,env(safe-area-inset-right)) !important;
  }
}
@media (max-width:640px) and (max-height:700px) {
  :is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 58px !important; }
  :is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 5px !important; }
  :is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: clamp(1.7rem,7vw,2.08rem) !important; }
  :is(.sb-primary-nav,.fsb-primary-nav) .sb-nav-secondary-first,
  :is(.sb-primary-nav,.fsb-primary-nav) .fsb-nav-secondary-first { margin-top: 20px !important; padding-top: 16px !important; }
}

/* ======================================================================
   CANONICAL INTERNAL HERO
   Supports both the principal sb-* markup and the legacy Foundation fsb-*
   shortcode markup. No white frame or shortcode gap can survive.
   ====================================================================== */
:is(.sb-internal-main,.fsb-page-main) {
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  gap: 0 !important;
  margin: 0 !important;
  max-width: none !important;
  padding: 0 !important;
  width: 100% !important;
}
:is(.sb-internal-main,.fsb-page-main) > * {
  flex: 0 0 auto !important;
  margin-block-start: 0 !important;
  max-width: none !important;
}
.fsb-page-main > .wp-block-shortcode,
.fsb-page-main > .wp-block-shortcode > :first-child,
.fsb-page-main > .wp-block-shortcode > :last-child {
  margin: 0 !important;
  max-width: none !important;
  padding: 0 !important;
  width: 100% !important;
}
:is(.sb-internal-hero,.fsb-internal-hero) {
  background: var(--sb-black) !important;
  display: block !important;
  height: 100svh !important;
  margin: 0 !important;
  max-width: none !important;
  min-height: 640px;
  overflow: hidden;
  padding: 0 !important;
  position: relative;
  width: 100% !important;
}
:is(.sb-internal-hero__carousel,.fsb-internal-hero__visual) {
  background: #111;
  bottom: 0;
  left: 0;
  margin: 0 !important;
  max-width: none !important;
  overflow: hidden;
  position: absolute !important;
  top: 0;
  width: 80% !important;
}
:is(.sb-hero-carousel,.fsb-hero-carousel) .sb-hero-slide,
:is(.sb-hero-carousel,.fsb-hero-carousel) .fsb-hero-slide {
  inset: 0;
  margin: 0 !important;
  opacity: 0;
  position: absolute;
  transition: opacity 1.8s ease;
  z-index: 0;
}
:is(.sb-hero-carousel,.fsb-hero-carousel) :is(.sb-hero-slide,.fsb-hero-slide).is-active { opacity: 1; z-index: 1; }
:is(.sb-hero-carousel,.fsb-hero-carousel) :is(.sb-hero-slide,.fsb-hero-slide) img {
  filter: grayscale(1);
  height: 100%;
  object-fit: cover;
  object-position: center;
  width: 100%;
}
:is(.sb-internal-hero__panel,.fsb-internal-hero__panel) {
  align-items: flex-end !important;
  background: var(--sb-black) !important;
  bottom: 0;
  box-sizing: border-box !important;
  color: var(--sb-white);
  container-type: inline-size;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-end !important;
  margin: 0 !important;
  max-width: none !important;
  min-width: 0 !important;
  overflow: visible !important;
  padding: clamp(28px,3vw,56px) var(--sb-gutter) !important;
  position: absolute !important;
  right: 0;
  text-align: right;
  width: 20% !important;
  z-index: 5;
}
:is(.sb-internal-hero__kicker,.fsb-internal-hero__label) {
  color: rgba(255,255,255,.62) !important;
  font-family: var(--sb-sans) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  letter-spacing: .08em !important;
  line-height: 1.25 !important;
  margin: 0 0 14px !important;
  max-width: 100% !important;
  text-align: right !important;
  text-transform: uppercase;
  white-space: nowrap;
}
:is(.sb-internal-hero__title,.fsb-internal-hero__title) {
  color: var(--sb-white) !important;
  font-family: var(--sb-sans) !important;
  font-size: clamp(2.15rem,min(4.4vw,18cqw),5.5rem) !important;
  font-weight: 400 !important;
  hyphens: none !important;
  letter-spacing: -.04em !important;
  line-height: .9 !important;
  margin: 0 !important;
  max-width: 100% !important;
  overflow: visible !important;
  overflow-wrap: normal !important;
  text-align: right !important;
  white-space: nowrap !important;
  word-break: normal !important;
}
body.sb-menu-open :is(.sb-internal-hero__panel,.fsb-internal-hero__panel),
body.fsb-menu-open :is(.sb-internal-hero__panel,.fsb-internal-hero__panel) { opacity: 0; pointer-events: none; }

@media (min-width:1200px) and (max-width:1599px) {
  :is(.sb-internal-hero__carousel,.fsb-internal-hero__visual) { width: 78% !important; }
  :is(.sb-internal-hero__panel,.fsb-internal-hero__panel) { width: 22% !important; }
}
@media (min-width:901px) and (max-width:1199px) {
  :is(.sb-internal-hero__carousel,.fsb-internal-hero__visual) { width: 76% !important; }
  :is(.sb-internal-hero__panel,.fsb-internal-hero__panel) { width: 24% !important; }
}
@media (max-width:900px) {
  :is(.sb-internal-hero,.fsb-internal-hero)::after {
    background: linear-gradient(180deg,rgba(0,0,0,.04) 36%,rgba(0,0,0,.64) 100%);
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 2;
  }
  :is(.sb-internal-hero__carousel,.fsb-internal-hero__visual) { height: 100%; width: 100% !important; }
  :is(.sb-internal-hero__panel,.fsb-internal-hero__panel) {
    align-items: flex-start !important;
    background: transparent !important;
    bottom: 0;
    left: 0;
    padding: 28px var(--sb-gutter) !important;
    right: auto;
    text-align: left;
    width: 100% !important;
    z-index: 4;
  }
  :is(.sb-internal-hero__kicker,.fsb-internal-hero__label) { text-align: left !important; }
  :is(.sb-internal-hero__title,.fsb-internal-hero__title) {
    font-size: clamp(3rem,min(14vw,14cqw),6rem) !important;
    text-align: left !important;
  }
}
@media (max-width:480px) {
  :is(.sb-internal-hero__title,.fsb-internal-hero__title) { font-size: clamp(2.75rem,min(13vw,13cqw),4.5rem) !important; }
}

/* ======================================================================
   CANONICAL POST-HERO PORTAL RAIL
   ====================================================================== */
:is(.sb-portal-rail,.fsb-portal-rail) {
  background: var(--sb-paper) !important;
  border-bottom: 1px solid var(--sb-line) !important;
  border-top: 1px solid var(--sb-line) !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
}
:is(.sb-portal-rail,.fsb-portal-rail) > .wp-block-group { max-width: none !important; padding: 0 !important; }
:is(.sb-portal-rail__grid,.fsb-portal-rail__grid) {
  display: grid !important;
  grid-template-columns: repeat(5,minmax(0,1fr)) !important;
  margin: 0 auto !important;
  max-width: 1440px !important;
  padding: 0 !important;
  width: min(1440px,100%) !important;
}
:is(.sb-portal-rail__grid,.fsb-portal-rail__grid) p { border: 0 !important; margin: 0 !important; padding: 0 !important; }
:is(.sb-portal-rail__grid,.fsb-portal-rail__grid) a {
  align-items: baseline;
  border-bottom: 0 !important;
  border-left: 0 !important;
  border-right: 1px solid var(--sb-line) !important;
  color: var(--sb-ink) !important;
  display: flex !important;
  font-family: var(--sb-sans) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  gap: 14px;
  min-height: 72px !important;
  padding: 24px clamp(16px,2.2vw,32px) !important;
  text-decoration: none !important;
  transition: background-color .18s ease;
}
:is(.sb-portal-rail__grid,.fsb-portal-rail__grid) p:first-child a { border-left: 1px solid var(--sb-line) !important; }
:is(.sb-portal-rail__grid,.fsb-portal-rail__grid) a:hover { background: var(--sb-white) !important; }

@media (min-width:381px) and (max-width:640px) {
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) {
    border-left: 1px solid var(--sb-line);
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) p:last-child { grid-column: 1 / -1; }
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) a {
    align-items: center;
    border-bottom: 1px solid var(--sb-line) !important;
    border-left: 0 !important;
    font-size: 12px !important;
    line-height: 1.25;
    min-height: 62px !important;
    padding: 15px 14px !important;
  }
}
@media (max-width:380px) {
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) { grid-template-columns: minmax(0,1fr) !important; }
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) p:last-child { grid-column: auto; }
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) a {
    border-bottom: 1px solid var(--sb-line) !important;
    border-left: 0 !important;
    min-height: 56px !important;
    padding-block: 18px !important;
  }
}

/* Foundation home hero follows the exact same desktop width contract. */
@media (min-width:1600px) { .fsb-home-hero { grid-template-columns: 80% 20% !important; } }
@media (min-width:1200px) and (max-width:1599px) { .fsb-home-hero { grid-template-columns: 78% 22% !important; } }
@media (min-width:901px) and (max-width:1199px) { .fsb-home-hero { grid-template-columns: 76% 24% !important; } }

/* ======================================================================
   CANONICAL FOOTER SHELL
   ====================================================================== */
.wp-site-blocks > main + footer,
.wp-site-blocks > main + .wp-block-template-part,
footer.wp-block-template-part,
:is(.sb-footer,.fsb-footer) { margin-block-start: 0 !important; margin-top: 0 !important; }
:is(.sb-footer,.fsb-footer) {
  background: var(--sb-black) !important;
  box-sizing: border-box;
  padding-block: clamp(46px,4.8vw,72px) clamp(24px,2.8vw,40px) !important;
}
:is(.sb-footer,.fsb-footer) a { color: var(--sb-white) !important; text-decoration: none !important; }
:is(.sb-footer__grid,.fsb-footer__grid) { display: grid !important; gap: 0 !important; position: relative; }
:is(.sb-footer__title,.fsb-footer__title) { margin: 0 !important; }
:is(.sb-footer__title,.fsb-footer__title) a {
  color: var(--sb-white) !important;
  font-family: var(--sb-sans) !important;
  font-size: clamp(1.05rem,1.22vw,1.3rem) !important;
  font-weight: 600 !important;
  line-height: 1.15 !important;
}
:is(.sb-footer__statement,.fsb-footer__statement) {
  color: rgba(255,255,255,.62) !important;
  font-family: var(--sb-serif) !important;
  font-size: clamp(1.85rem,2.3vw,3rem) !important;
  font-weight: 400 !important;
  letter-spacing: -.025em !important;
  line-height: .96 !important;
  margin: clamp(22px,2.6vw,36px) 0 clamp(26px,3vw,42px) !important;
  max-width: none !important;
  white-space: nowrap !important;
}
:is(.sb-footer__utility,.fsb-footer__utility) {
  align-items: flex-start !important;
  border-top: 1px solid rgba(255,255,255,.22);
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: clamp(24px,3vw,56px) !important;
  justify-content: space-between !important;
  padding-top: 16px;
  width: 100%;
}
:is(.sb-footer__credit,.fsb-footer__credit) {
  color: rgba(255,255,255,.42) !important;
  font-size: 10px !important;
  letter-spacing: .035em;
  line-height: 1.3;
  margin: clamp(22px,2.4vw,34px) 0 0 !important;
}
@media (max-width:900px) {
  :is(.sb-footer,.fsb-footer) { padding-block: 44px 28px !important; }
  :is(.sb-footer__statement,.fsb-footer__statement) { font-size: clamp(1.75rem,4.5vw,2.65rem) !important; margin: 22px 0 30px !important; }
  :is(.sb-footer__utility,.fsb-footer__utility) { flex-direction: column !important; gap: 24px !important; }
}
@media (max-width:640px) {
  :is(.sb-footer,.fsb-footer) { padding: 40px max(20px,env(safe-area-inset-right)) 24px max(20px,env(safe-area-inset-left)) !important; }
  :is(.sb-footer__statement,.fsb-footer__statement) { font-size: clamp(1.35rem,6vw,1.9rem) !important; line-height: 1 !important; margin: 22px 0 28px !important; white-space: nowrap !important; }
  :is(.sb-footer__utility,.fsb-footer__utility) { gap: 22px !important; padding-top: 18px; }
  :is(.sb-footer__credit,.fsb-footer__credit) { margin-top: 24px !important; padding-top: 16px; }
}

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

/* Canonical footer detail shared by both sites. */
:is(.sb-footer__nav,.fsb-footer__nav) {
  display: grid !important;
  gap: 9px !important;
  min-width: 0;
}
:is(.sb-footer__nav-primary,.fsb-footer__nav-primary),
:is(.sb-footer__nav-ecosystem,.fsb-footer__nav-secondary) {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px clamp(18px,1.8vw,30px) !important;
  margin: 0 !important;
}
:is(.sb-footer__nav,.fsb-footer__nav) p { margin: 0 !important; }
:is(.sb-footer__nav,.fsb-footer__nav) a {
  font-size: clamp(.72rem,.72vw,.82rem) !important;
  line-height: 1.35;
  transition: opacity .18s ease;
}
:is(.sb-footer__nav-ecosystem,.fsb-footer__nav-secondary) a { color: rgba(255,255,255,.67) !important; }
:is(.sb-footer__nav,.fsb-footer__nav) a:hover,
:is(.sb-footer__nav,.fsb-footer__nav) a:focus-visible { opacity: .62; }
:is(.sb-footer__social,.fsb-footer__social) {
  align-items: flex-start;
  display: flex !important;
  flex: 0 0 auto;
  gap: 12px;
  margin: -5px 0 0 !important;
  position: static !important;
  width: auto !important;
}
:is(.sb-footer__social-link,.fsb-footer__social-link) {
  align-items: center;
  background: transparent !important;
  border: 0 !important;
  color: rgba(255,255,255,.70) !important;
  display: inline-flex !important;
  gap: 8px;
  height: 34px !important;
  justify-content: flex-end !important;
  min-width: 34px;
  padding: 0 !important;
  transition: color .18s ease;
  width: auto !important;
}
:is(.sb-footer__social-link,.fsb-footer__social-link) svg {
  flex: 0 0 20px;
  height: 20px !important;
  width: 20px !important;
}
:is(.sb-footer__social-link,.fsb-footer__social-link) span {
  font-size: 11px;
  line-height: 1;
  max-width: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-width .24s ease, opacity .18s ease;
  white-space: nowrap;
}
:is(.sb-footer__social-link,.fsb-footer__social-link):hover,
:is(.sb-footer__social-link,.fsb-footer__social-link):focus-visible { color: var(--sb-white) !important; }
:is(.sb-footer__social-link,.fsb-footer__social-link):hover span,
:is(.sb-footer__social-link,.fsb-footer__social-link):focus-visible span { max-width: 240px; opacity: 1; }
@media (max-width:900px) {
  :is(.sb-footer__social-link,.fsb-footer__social-link) span { max-width: 240px; opacity: 1; }
}
@media (max-width:640px) {
  :is(.sb-footer__nav,.fsb-footer__nav) { gap: 18px !important; width: 100%; }
  :is(.sb-footer__nav-primary,.fsb-footer__nav-primary),
  :is(.sb-footer__nav-ecosystem,.fsb-footer__nav-secondary) {
    align-items: flex-start !important;
    flex-direction: column !important;
    gap: 8px !important;
  }
  :is(.sb-footer__nav,.fsb-footer__nav) a { font-size: .93rem !important; }
  :is(.sb-footer__nav-ecosystem,.fsb-footer__nav-secondary) { border-top: 1px solid rgba(255,255,255,.14); padding-top: 18px; }
  :is(.sb-footer__social,.fsb-footer__social) { border-top: 1px solid rgba(255,255,255,.14); flex-direction: column; gap: 4px; padding-top: 16px; width: 100% !important; }
  :is(.sb-footer__social-link,.fsb-footer__social-link) { justify-content: flex-start !important; }
}

/* ======================================================================
   ECOSYSTEM SHELL v2 — canonical sibling geometry
   Applied verbatim to Sergio Bravo and Fundación Sergio Bravo.
   ====================================================================== */

/* WordPress flex/flow blockGap must never create a band between the hero,
   the portal rail and the first editorial section. */
:is(.sb-front-main,.fsb-front-main) {
  gap: 0 !important;
  row-gap: 0 !important;
}
:is(.sb-front-main,.fsb-front-main) > * {
  margin-block-start: 0 !important;
}
:is(.sb-hero,.fsb-home-hero),
:is(.sb-portal-rail,.fsb-portal-rail) {
  margin-block: 0 !important;
}

/* Fixed interaction geometry shared by both headers. */
:is(.sb-header__row,.fsb-header__row) {
  height: 72px !important;
  min-height: 72px !important;
}
:is(.sb-site-title,.fsb-site-title) a {
  font-size: clamp(1.02rem, 1.08vw, 1.2rem) !important;
}

/* Runtime role attributes are intentionally more robust than relying on
   Navigation block classes being copied into Core's responsive clone. */
:is(.sb-primary-nav,.fsb-primary-nav) [data-sb-shell-role="secondary"] .wp-block-navigation-item__content {
  color: rgba(255,255,255,.58) !important;
  font-size: clamp(.98rem,1.1vw,1.18rem) !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  line-height: 1.22 !important;
}
:is(.sb-primary-nav,.fsb-primary-nav) [data-sb-shell-secondary-first="1"] {
  border-top: 1px solid rgba(255,255,255,.16) !important;
  margin-top: clamp(26px,4vh,42px) !important;
  padding-top: clamp(20px,2.4vh,28px) !important;
}
:is(.sb-primary-nav,.fsb-primary-nav) [data-sb-shell-role="secondary"] .wp-block-navigation-item__content:hover,
:is(.sb-primary-nav,.fsb-primary-nav) [data-sb-shell-role="secondary"] .wp-block-navigation-item__content:focus-visible {
  color: var(--sb-white) !important;
}

/* Canonical post-hero rail. The desired reference is the full editorial
   width used by Fundación: viewport minus the same global gutters. */
:is(.sb-portal-rail,.fsb-portal-rail) > .wp-block-group {
  margin: 0 auto !important;
  max-width: none !important;
  padding: 0 !important;
  width: 100% !important;
}
:is(.sb-portal-rail__grid,.fsb-portal-rail__grid) {
  box-sizing: border-box !important;
  grid-template-columns: repeat(5,minmax(0,1fr)) !important;
  margin: 0 auto !important;
  max-width: 1920px !important;
  padding: 0 !important;
  width: calc(100% - (2 * var(--sb-gutter))) !important;
}
:is(.sb-portal-rail__grid,.fsb-portal-rail__grid) a {
  align-items: center !important;
  box-sizing: border-box !important;
  display: flex !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  height: 80px !important;
  line-height: 1.2 !important;
  min-height: 80px !important;
  padding: 0 clamp(18px,2.2vw,34px) !important;
}

/* First editorial section follows one rhythm and one grid on both homes. */
:is(.sb-intro-section,.fsb-home-intro) {
  box-sizing: border-box !important;
  margin: 0 !important;
  padding-block: clamp(96px,9vw,144px) !important;
}
.sb-intro-section > .sb-intro-grid,
.fsb-home-intro > .fsb-editorial-grid {
  box-sizing: border-box !important;
  display: grid !important;
  gap: clamp(32px,7vw,120px) !important;
  grid-template-columns: minmax(160px,.65fr) minmax(0,2fr) !important;
  margin: 0 auto !important;
  max-width: 1440px !important;
  padding: 0 !important;
  width: calc(100% - (2 * var(--sb-gutter))) !important;
}
.fsb-home-intro .fsb-display,
.sb-intro-section .sb-editorial-heading {
  font-family: var(--sb-serif) !important;
  font-size: clamp(3rem,7vw,7.8rem) !important;
  font-weight: 400 !important;
  letter-spacing: -.035em !important;
  line-height: .92 !important;
  margin: 0 !important;
  max-width: 11ch !important;
}
.fsb-home-intro .fsb-lead,
.sb-intro-section .sb-lead {
  font-size: clamp(1.15rem,1.6vw,1.55rem) !important;
  line-height: 1.42 !important;
  max-width: 690px !important;
}

@media (max-width: 900px) {
  .sb-intro-section > .sb-intro-grid,
  .fsb-home-intro > .fsb-editorial-grid {
    gap: 34px !important;
    grid-template-columns: 1fr !important;
  }
}

@media (min-width:381px) and (max-width:640px) {
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) {
    max-width: none !important;
    width: calc(100% - (2 * var(--sb-gutter))) !important;
  }
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) a {
    height: 62px !important;
    min-height: 62px !important;
    padding: 0 14px !important;
  }
}
@media (max-width:380px) {
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) {
    max-width: none !important;
    width: calc(100% - (2 * var(--sb-gutter))) !important;
  }
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) a {
    height: 56px !important;
    min-height: 56px !important;
    padding: 0 14px !important;
  }
}

@media (max-width:640px) {
  :is(.sb-primary-nav,.fsb-primary-nav) [data-sb-shell-role="secondary"] .wp-block-navigation-item__content {
    font-size: clamp(1.08rem,4.8vw,1.3rem) !important;
    line-height: 1.28 !important;
  }
}

/* ======================================================================
   ECOSYSTEM CORE v1.0.0 — Twenty Twenty-Five child-theme stabilization
   These targeted resets neutralize parent block-gap/wrapper geometry while
   leaving the editorial content of each sibling site independent.
   ====================================================================== */
html, body {
  margin: 0 !important;
  max-width: 100% !important;
  overflow-x: clip !important;
}

body {
  background: var(--sb-paper) !important;
  color: var(--sb-ink);
  font-family: var(--sb-sans) !important;
}

.wp-site-blocks {
  margin: 0 !important;
  padding: 0 !important;
}

.wp-site-blocks > header.wp-block-template-part,
.wp-site-blocks > footer.wp-block-template-part,
.wp-site-blocks > main {
  margin-block: 0 !important;
}

/* The template-part wrapper itself must not reserve a white strip above the
   absolutely positioned transparent header. */
.wp-site-blocks > header.wp-block-template-part:has(.sb-header),
.wp-site-blocks > header.wp-block-template-part:has(.fsb-header) {
  height: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;
  position: relative !important;
  z-index: 10010 !important;
}

:is(.sb-front-main,.fsb-front-main,.sb-internal-main,.fsb-page-main) {
  gap: 0 !important;
  margin: 0 !important;
  max-width: none !important;
  padding: 0 !important;
  row-gap: 0 !important;
  width: 100% !important;
}

:is(.sb-front-main,.fsb-front-main,.sb-internal-main,.fsb-page-main) > * {
  margin-block-start: 0 !important;
}

/* Fundación currently creates the dynamic internal hero through a shortcode.
   Treat the shortcode wrapper as transparent layout infrastructure. */
.sb-internal-main > .wp-block-shortcode,
.fsb-page-main > .wp-block-shortcode,
.wp-block-shortcode:has(> .sb-internal-hero),
.wp-block-shortcode:has(> .fsb-internal-hero) {
  display: block !important;
  margin: 0 !important;
  max-width: none !important;
  padding: 0 !important;
  width: 100% !important;
}

:is(.sb-internal-hero,.fsb-internal-hero) {
  margin: 0 !important;
  max-width: none !important;
  padding: 0 !important;
  width: 100% !important;
}

/* One canonical editorial width for the post-hero rail on both siblings. */
:is(.sb-portal-rail,.fsb-portal-rail) {
  width: 100% !important;
}
:is(.sb-portal-rail__grid,.fsb-portal-rail__grid) {
  max-width: 1440px !important;
  width: calc(100% - (2 * var(--sb-gutter))) !important;
}

/* Keep the title and menu toggle on exactly the same baseline regardless of
   the site-title string length. */
:is(.sb-header__row,.fsb-header__row) {
  align-items: center !important;
  gap: 12px !important;
}
:is(.sb-site-title,.fsb-site-title) {
  align-items: center !important;
  display: flex !important;
  min-height: 44px !important;
}

/* Navigation contract: five primary rows + ecosystem rows. The core JS marks
   external links at runtime so responsive clones receive the same hierarchy. */
:is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
  gap: clamp(8px,1.05vh,13px) !important;
}

/* Prevent WordPress active/focus styling from introducing white rectangles. */
:is(.sb-primary-nav,.fsb-primary-nav) a[aria-current="page"],
:is(.sb-primary-nav,.fsb-primary-nav) .current-menu-item > a,
:is(.sb-primary-nav,.fsb-primary-nav) .current-menu-ancestor > a {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
  text-decoration: none !important;
}

/* Tablet and mobile geometry is mandatory across both sibling sites. */
@media (min-width: 641px) and (max-width: 900px) {
  :is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open {
    width: min(60vw,520px) !important;
  }
}
@media (max-width: 640px) {
  :is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open {
    width: 100vw !important;
  }
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) {
    max-width: none !important;
  }
}

/* ======================================================================
   ECOSYSTEM CORE v1.1.0 — definitive sibling navigation + home shell
   ====================================================================== */

/* Both sibling menus intentionally use a 5 primary + 2 ecosystem structure.
   nth-child rules are the fallback when WordPress Core drops custom classes
   while cloning Navigation items into the responsive overlay. */
:is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:nth-child(n+6) .wp-block-navigation-item__content {
  color: rgba(255,255,255,.58) !important;
  font-size: clamp(.98rem,1.1vw,1.18rem) !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  line-height: 1.22 !important;
}
:is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:nth-child(6) {
  border-top: 1px solid rgba(255,255,255,.16) !important;
  margin-top: clamp(30px,5vh,58px) !important;
  padding-top: clamp(20px,2.4vh,28px) !important;
}
:is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
  gap: clamp(12px,2vh,24px) !important;
}
:is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
  font-size: clamp(1.75rem,2.65vw,3rem) !important;
  line-height: 1 !important;
}
:is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
  padding-top: clamp(58px,9vh,112px) !important;
}

/* Canonical home hero: Sergio Bravo and Fundación share the same geometry,
   carousel behavior and black editorial rail. Content and images differ. */
:is(.sb-front-main,.fsb-front-main) {
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  gap: 0 !important;
  margin: 0 !important;
  width: 100% !important;
}
:is(.sb-front-main,.fsb-front-main) > * {
  flex: 0 0 auto !important;
  margin-block-start: 0 !important;
  width: 100% !important;
}
.sb-hero {
  background: var(--sb-black) !important;
  display: block !important;
  min-height: 100svh !important;
  margin: 0 !important;
  max-width: none !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: relative !important;
  width: 100% !important;
}
.sb-hero > .sb-hero-carousel {
  bottom: 0;
  left: 0;
  margin: 0 !important;
  max-width: none !important;
  position: absolute;
  top: 0;
  width: 80% !important;
}
.sb-hero .sb-hero-slide {
  inset: 0;
  margin: 0 !important;
  opacity: 0;
  position: absolute;
  transition: opacity 1.8s ease;
  z-index: 0;
}
.sb-hero .sb-hero-slide.is-active { opacity: 1; z-index: 1; }
.sb-hero .sb-hero-slide img {
  filter: grayscale(100%);
  height: 100% !important;
  object-fit: cover;
  object-position: center;
  width: 100% !important;
}
.sb-hero .sb-hero-slide::after {
  background: linear-gradient(180deg,rgba(0,0,0,.02) 50%,rgba(0,0,0,.36) 100%);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}
.sb-hero .sb-hero-slide figcaption {
  bottom: clamp(20px,3vw,48px);
  color: rgba(255,255,255,.74) !important;
  font-family: var(--sb-sans) !important;
  font-size: 11px !important;
  left: auto;
  letter-spacing: .08em;
  margin: 0 !important;
  position: absolute;
  right: var(--sb-gutter);
  text-transform: uppercase;
  z-index: 4;
}
.sb-hero__meta {
  align-items: flex-end !important;
  bottom: 0;
  box-sizing: border-box;
  color: var(--sb-white);
  display: flex !important;
  justify-content: flex-end !important;
  margin: 0 !important;
  max-width: none !important;
  padding: clamp(24px,4vw,56px) var(--sb-gutter) !important;
  position: absolute;
  right: 0;
  width: 20% !important;
  z-index: 5;
}
.sb-hero__meta p { margin: 0 !important; }
.sb-hero__descriptor {
  color: rgba(255,255,255,.8) !important;
  font-family: var(--sb-sans) !important;
  font-size: 12px !important;
  letter-spacing: .04em !important;
  line-height: 1.45 !important;
  margin: 0 !important;
  max-width: 22ch;
  text-align: right !important;
  text-transform: uppercase;
}
@media (min-width:1600px) {
  .sb-hero > .sb-hero-carousel { width: 80% !important; }
  .sb-hero__meta { width: 20% !important; }
}
@media (min-width:1200px) and (max-width:1599px) {
  .sb-hero > .sb-hero-carousel { width: 78% !important; }
  .sb-hero__meta { width: 22% !important; }
}
@media (min-width:901px) and (max-width:1199px) {
  .sb-hero > .sb-hero-carousel { width: 76% !important; }
  .sb-hero__meta { width: 24% !important; }
}
@media (max-width:900px) {
  .sb-hero > .sb-hero-carousel { width: 100% !important; }
  .sb-hero::after {
    background: linear-gradient(180deg,rgba(0,0,0,.06),rgba(0,0,0,.46));
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 2;
  }
  .sb-hero__meta {
    justify-content: flex-start !important;
    left: 0;
    right: auto;
    width: 100% !important;
    z-index: 5;
  }
  .sb-hero__descriptor { text-align: left !important; }
}
@media (max-width:640px) {
  .sb-hero { min-height: 100svh !important; }
  .sb-hero .sb-hero-slide figcaption { display: none !important; }
  .sb-hero__meta { padding-bottom: max(24px,env(safe-area-inset-bottom)) !important; }
  :is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:nth-child(n+6) .wp-block-navigation-item__content {
    font-size: clamp(1.08rem,4.8vw,1.3rem) !important;
    line-height: 1.28 !important;
  }
  :is(.sb-primary-nav,.fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:nth-child(6) {
    margin-top: 20px !important;
    padding-top: 16px !important;
  }
}

/* ======================================================================
   v1.2.0 — Editorial edge + resilient mobile portal rail
   Shared by Sergio Bravo and Fundación Sergio Bravo.
   ====================================================================== */
:root {
  --sb-editorial-edge: clamp(20px, 3vw, 48px);
}

/* Mandatory safe boundary for editorial text only. Media remains free to bleed. */
.sb-editorial-text-boundary {
  box-sizing: border-box !important;
  padding-left: max(var(--sb-editorial-edge), env(safe-area-inset-left)) !important;
  padding-right: max(var(--sb-editorial-edge), env(safe-area-inset-right)) !important;
}

/* WordPress Group blockGap must not enter the portal matrix. */
:is(.sb-portal-rail__grid,.fsb-portal-rail__grid) {
  column-gap: 0 !important;
  gap: 0 !important;
  row-gap: 0 !important;
}

/* Compact phones / large phones: balanced 3 + 2 matrix instead of 2 + 2 + a
   visually empty full-width row. Six virtual columns make the second row balanced. */
@media (min-width:421px) and (max-width:640px) {
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) {
    border-left: 0 !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  }
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) p {
    grid-column: span 2 !important;
  }
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) p:nth-child(4),
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) p:nth-child(5),
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) p:last-child {
    grid-column: span 3 !important;
  }
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) a {
    align-items: center !important;
    border-bottom: 1px solid var(--sb-line) !important;
    border-left: 0 !important;
    display: flex !important;
    font-size: 11px !important;
    justify-content: flex-start !important;
    line-height: 1.2 !important;
    min-height: 64px !important;
    padding: 14px clamp(14px, 4vw, 22px) !important;
    white-space: nowrap;
  }
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) p:nth-child(1) a,
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) p:nth-child(2) a,
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) p:nth-child(4) a {
    border-left: 1px solid var(--sb-line) !important;
  }
}

/* Narrow phones: 2 + 2 + 1. The final destination is centered and uses the full row. */
@media (min-width:321px) and (max-width:420px) {
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) {
    border-left: 0 !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) p,
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) p:last-child {
    grid-column: auto !important;
  }
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) p:last-child {
    grid-column: 1 / -1 !important;
  }
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) a {
    border-bottom: 1px solid var(--sb-line) !important;
    border-left: 0 !important;
    font-size: 11px !important;
    min-height: 62px !important;
    padding: 14px 16px !important;
  }
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) p:nth-child(odd) a {
    border-left: 1px solid var(--sb-line) !important;
  }
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) p:last-child a {
    border-left: 1px solid var(--sb-line) !important;
    justify-content: center !important;
    text-align: center !important;
  }
}

@media (max-width:320px) {
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) {
    grid-template-columns: 1fr !important;
  }
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) p,
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) p:last-child {
    grid-column: auto !important;
  }
  :is(.sb-portal-rail__grid,.fsb-portal-rail__grid) a {
    border-bottom: 1px solid var(--sb-line) !important;
    border-left: 1px solid var(--sb-line) !important;
    font-size: 11px !important;
    min-height: 56px !important;
    padding: 16px 18px !important;
  }
}

@media (min-width:641px) and (max-width:900px) {
  :root { --sb-editorial-edge: clamp(28px, 4.2vw, 38px); }
}
@media (max-width:640px) {
  :root { --sb-editorial-edge: clamp(20px, 5.4vw, 26px); }
}
