/* ========================================================================
   Sergio Bravo ecosystem header contract
   Source of truth: sergio-bravo child theme v0.1.39 + Twenty Twenty-Five
   responsive navigation structure. This file intentionally styles both the
   current sb-* classes and legacy fsb-* classes so saved Site Editor template
   parts cannot change the navigation geometry or typography.
   ======================================================================== */

:root {
  --sb-paper: var(--fsb-paper, #FBFAF7);
  --sb-ink: var(--fsb-ink, #0A0A0A);
  --sb-graphite: var(--fsb-graphite, #5C5C58);
  --sb-line: var(--fsb-line, #D9D8D2);
  --sb-black: var(--fsb-black, #000000);
  --sb-white: var(--fsb-white, #FFFFFF);
  --sb-gutter: var(--fsb-gutter, clamp(20px, 3vw, 48px));
  --sb-sans: var(--fsb-sans, "IBM Plex Sans", Manrope, Arial, sans-serif);
}

: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;
}
body.sb-menu-open,
body.fsb-menu-open { overflow: hidden; }

: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;
  box-shadow: none !important;
  outline: 0 !important;
}
:is(.sb-primary-nav, .fsb-primary-nav) .wp-block-navigation-item__content:focus,
:is(.sb-primary-nav, .fsb-primary-nav) .wp-block-navigation-item__content:active,
:is(.sb-primary-nav, .fsb-primary-nav) .wp-block-navigation__responsive-container-open:focus,
:is(.sb-primary-nav, .fsb-primary-nav) .wp-block-navigation__responsive-container-open:active,
:is(.sb-primary-nav, .fsb-primary-nav) .wp-block-navigation__responsive-container-close:focus,
:is(.sb-primary-nav, .fsb-primary-nav) .wp-block-navigation__responsive-container-close:active {
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
  outline: 0 !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,
:is(.sb-primary-nav, .fsb-primary-nav) .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content,
:is(.sb-primary-nav, .fsb-primary-nav) .wp-block-navigation-item.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) .wp-block-navigation__responsive-container-open:focus-visible,
:is(.sb-primary-nav, .fsb-primary-nav) .wp-block-navigation__responsive-container-close:focus-visible {
  opacity: .65;
  outline: 0 !important;
}

: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 !important;
  right: 0;
  top: 0;
  z-index: 10010;
}
:is(.sb-header__row, .fsb-header__row) {
  align-items: center !important;
  background: var(--sb-black) !important;
  box-sizing: border-box;
  display: flex !important;
  gap: 14px !important;
  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: var(--wp--preset--font-size--large) !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-open,
:is(.sb-primary-nav, .fsb-primary-nav) .wp-block-navigation__responsive-container-close {
  align-items: center;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: var(--sb-white) !important;
  display: flex;
  height: 40px;
  justify-content: center;
  margin: 0 !important;
  padding: 0 !important;
  width: 40px;
}
: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: 28px;
  width: 28px;
}
: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 {
  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%;
  margin: 0 !important;
  padding: 0;
  width: 100%;
}
: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: 40px !important;
  margin: 0 !important;
  opacity: 1 !important;
  padding: 0 !important;
  position: fixed !important;
  right: var(--sb-gutter) !important;
  top: 16px !important;
  width: 40px !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: flex-end !important;
  box-sizing: border-box;
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  justify-content: flex-start !important;
  overflow-y: auto;
  padding: clamp(54px, 8vh, 92px) 0 0 !important;
  width: 100%;
}
:is(.sb-primary-nav, .fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
  align-items: flex-end !important;
  display: flex !important;
  flex-direction: column !important;
  gap: clamp(8px, 1.15vh, 14px) !important;
  margin-left: auto !important;
  width: 100% !important;
}
:is(.sb-primary-nav, .fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
  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;
  text-align: right !important;
  text-decoration: none !important;
  width: 100% !important;
}
:is(.sb-primary-nav, .fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open :is(.sb-nav-secondary-first, .fsb-nav-secondary-first) {
  border-top: 1px solid rgba(255,255,255,.16);
  margin-top: clamp(26px, 4vh, 42px) !important;
  padding-top: clamp(20px, 2.4vh, 28px) !important;
}
:is(.sb-primary-nav, .fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open :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__responsive-container.is-menu-open .wp-block-navigation-item__content:hover,
:is(.sb-primary-nav, .fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus-visible {
  color: var(--sb-white) !important;
  opacity: 1 !important;
}

:is(.sb-primary-nav, .fsb-primary-nav) .wp-block-navigation__responsive-container :is(.sb-menu-social, .fsb-menu-social) {
  align-items: center;
  bottom: clamp(28px, 4vw, 52px);
  display: flex !important;
  gap: 18px !important;
  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-primary-nav, .fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open :is(.sb-menu-social, .fsb-menu-social),
body.fsb-menu-open :is(.sb-primary-nav, .fsb-primary-nav) .wp-block-navigation__responsive-container.is-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 {
  -webkit-tap-highlight-color: transparent;
  align-items: center;
  background: transparent !important;
  border: 0 !important;
  border-radius: 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;
}

@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 !important; }
  :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-open,
  :is(.sb-primary-nav, .fsb-primary-nav) .wp-block-navigation__responsive-container-close {
    height: 44px !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) .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;
    top: 12px !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;
    height: 100% !important;
    justify-content: flex-start !important;
    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 {
    align-items: stretch !important;
    gap: 7px !important;
    margin: 0 !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) .wp-block-navigation__responsive-container.is-menu-open :is(.sb-nav-secondary-first, .fsb-nav-secondary-first) {
    margin-top: clamp(26px, 4.4vh, 36px) !important;
    padding-top: 22px !important;
  }
  :is(.sb-primary-nav, .fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open :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-primary-nav, .fsb-primary-nav) .wp-block-navigation__responsive-container :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) .wp-block-navigation__responsive-container.is-menu-open :is(.sb-nav-secondary-first, .fsb-nav-secondary-first) {
    margin-top: 20px !important;
    padding-top: 16px !important;
  }
  :is(.sb-primary-nav, .fsb-primary-nav) .wp-block-navigation__responsive-container.is-menu-open :is(.sb-nav-secondary, .fsb-nav-secondary) .wp-block-navigation-item__content {
    font-size: 1rem !important;
  }
}

/* ========================================================================
   Shared cinematic internal-hero contract
   Source of truth: sergiobravo.cl child theme. Keeping this in the ecosystem
   layer means every Fundación interior page inherits the same 80/20 -> 78/22
   -> 76/24 -> mobile-overlay geometry instead of reimplementing it per page.
   ======================================================================== */
.sb-internal-main > * {
  flex: 0 0 auto !important;
  margin-block-start: 0 !important;
  width: 100% !important;
}

.sb-internal-hero {
  background: var(--sb-black);
  display: block !important;
  margin: 0 !important;
  min-height: 100svh;
  overflow: hidden;
  padding: 0 !important;
  position: relative;
  width: 100% !important;
}

.sb-internal-hero__carousel,
.sb-hero-carousel {
  bottom: 0;
  left: 0;
  margin: 0 !important;
  max-width: none !important;
  position: absolute;
  top: 0;
  width: 80% !important;
}

.sb-hero-slide {
  inset: 0;
  margin: 0 !important;
  opacity: 0;
  position: absolute;
  transition: opacity 1.8s ease;
  z-index: 0;
}
.sb-hero-slide.is-active { opacity: 1; z-index: 1; }
.sb-hero-slide img {
  filter: grayscale(100%);
  height: 100% !important;
  object-fit: cover;
  object-position: center;
  width: 100% !important;
}
.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-slide figcaption {
  bottom: clamp(20px, 3vw, 48px);
  color: rgba(255,255,255,.74) !important;
  font-family: var(--sb-sans);
  font-size: 11px !important;
  left: auto;
  letter-spacing: .08em;
  margin: 0 !important;
  position: absolute;
  right: var(--sb-gutter);
  text-transform: uppercase;
  z-index: 2;
}

.sb-internal-hero__panel {
  align-items: flex-end !important;
  bottom: 0;
  box-sizing: border-box !important;
  color: var(--sb-white);
  container-name: sb-internal-panel;
  container-type: inline-size;
  display: flex !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;
  right: 0;
  width: 20% !important;
  z-index: 5;
}

.sb-internal-hero__kicker {
  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;
  white-space: nowrap;
}

.sb-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;
  text-wrap: nowrap;
  white-space: nowrap !important;
  word-break: normal !important;
}

body.sb-menu-open .sb-internal-hero__panel,
body.fsb-menu-open .sb-internal-hero__panel {
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease;
}

@media (min-width: 1200px) and (max-width: 1599px) {
  .sb-internal-hero__carousel { width: 78% !important; }
  .sb-internal-hero__panel { width: 22% !important; }
}

@media (min-width: 901px) and (max-width: 1199px) {
  .sb-internal-hero__carousel { width: 76% !important; }
  .sb-internal-hero__panel { width: 24% !important; }
}

@media (max-width: 900px) {
  .sb-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;
  }
  .sb-internal-hero__carousel {
    height: 100svh;
    width: 100% !important;
  }
  .sb-internal-hero__panel {
    align-items: flex-start !important;
    background: transparent;
    bottom: 0;
    left: 0;
    padding: 28px var(--sb-gutter) !important;
    right: auto;
    width: 100% !important;
    z-index: 4;
  }
  .sb-internal-hero__kicker { text-align: left !important; }
  .sb-internal-hero__title {
    font-size: clamp(3rem, min(14vw, 14cqw), 6rem) !important;
    max-width: 100% !important;
    text-align: left !important;
    white-space: nowrap !important;
  }
  .sb-internal-hero__carousel .sb-hero-slide figcaption { display: none; }
}

@media (max-width: 480px) {
  .sb-internal-hero__title {
    font-size: clamp(2.75rem, min(13vw, 13cqw), 4.5rem) !important;
  }
}

@media (max-height: 620px) and (min-width: 901px) {
  .sb-internal-hero__panel { padding-block: 22px !important; }
  .sb-internal-hero__title {
    font-size: clamp(2rem, min(3.6vw, 17cqw), 4.5rem) !important;
  }
}
