/* ============================================================
   Teatro Corfú 7 — Inner pages (Elementor-compatible)
   ============================================================ */

:root{
  --black: #000000;
  --white: #ffffff;
  --lime: #C7CC00;
  --blue: #019EC7;
  --teal: #12A38C;
  --ink-dim: rgba(255,255,255,.62);
  --ink-faint: rgba(255,255,255,.38);
  --hairline: rgba(255,255,255,.16);
  --corfu7-display: "tt-modernoir", sans-serif;
  --body: "futura-100", sans-serif;
  --tiny: "cofo-sans-pixel", sans-serif;
  --container: 960px;
  --ease: cubic-bezier(.16,.8,.24,1);

  /* Fixed header stack: announce bar + site nav + breathing room (desktop slim — see DESKTOP-HEADER-SLIM) */
  /* ANNOUNCE-NAV-BREATH — was: clamp(20px,2.5vh,28px) / clamp(48px,5.5vh,60px) */
  /* NAV-TALLER — was: clamp(64px,7vh,80px) / 64px / 60px */
  --announce-h: clamp(22px, 2.8vh, 32px);
  --nav-h: clamp(72px, 7.5vh, 88px);
  --header-offset: calc(var(--announce-h) + var(--nav-h) + 12px);
  --bottom-bar-h: clamp(48px, 6vh, 60px);
}

*, *::before, *::after{ box-sizing: border-box; }

html, body{
  margin: 0;
  background: #08090d;
  color: var(--white);
  font-family: var(--body);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

a{ color: var(--teal); }
a:hover{ color: var(--lime); }

img{ max-width: 100%; height: auto; display: block; }

::selection{ background: var(--teal); color: var(--black); }

/* ---------- Announcement bar ---------- */
.announce-bar{
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  height: var(--announce-h);
  display: flex;
  align-items: center;
  background: #0a0b0f;
  border-bottom: 1px solid var(--hairline);
  overflow: hidden;
  /* ANNOUNCE-NAV-BREATH: dark bar tokens — immune to HOME-WHITE-BG body overrides */
  --ink-dim: rgba(255,255,255,.62);
  --ink-faint: rgba(255,255,255,.38);
  --hairline: rgba(255,255,255,.16);
}
.announce-track{
  display: flex;
  flex-shrink: 0;
  width: max-content;
  will-change: transform;
  animation: announce-scroll 80s linear infinite;
}
.announce-bar:hover .announce-track{
  animation-play-state: paused;
}
.announce-track p{
  font-family: var(--tiny);
  /* ANNOUNCE-NAV-BREATH — was: clamp(.58rem,.3vw + .52rem,.7rem) */
  font-size: clamp(.62rem, .32vw + .54rem, .74rem);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-dim);
  white-space: nowrap;
  padding: 0 4em;
  flex-shrink: 0;
}
.announce-track,
.announce-track p{
  pointer-events: auto;
}
.announce-link{
  text-decoration: underline;
  text-underline-offset: 2px;
  color: inherit;
  cursor: pointer;
  pointer-events: auto;
  -webkit-tap-highlight-color: rgba(255,255,255,.15);
  transition: color .2s;
}
.announce-link:hover{ color: var(--white); }

@keyframes announce-scroll{
  0%   { transform: translate3d(0, 0, 0); }
  100% { transform: translate3d(-50%, 0, 0); }
}

@media (max-width: 768px){
  :root{
    /* ANNOUNCE-NAV-BREATH — was: clamp(20px,3vh,26px) / 52px */
    /* NAV-TALLER — was: 64px */
    --announce-h: clamp(22px, 3.2vh, 28px);
    --nav-h: 72px;
    --header-offset: calc(var(--announce-h) + var(--nav-h) + 8px);
  }
  .announce-bar{ height: var(--announce-h); }
  .announce-track p{ font-size: clamp(.58rem, 1.7vw, .72rem); }
}

@media (max-width: 600px){
  :root{
    --bottom-bar-h: clamp(52px, 7vh, 64px);
  }
}

@media (max-width: 480px){
  :root{
    /* ANNOUNCE-NAV-BREATH — was: clamp(18px,2.8vh,22px) / 48px */
    /* NAV-TALLER — was: 60px */
    --announce-h: clamp(20px, 3vh, 24px);
    --nav-h: 68px;
    --header-offset: calc(var(--announce-h) + var(--nav-h) + 8px);
  }
  .announce-track p{ font-size: clamp(.54rem, 1.5vw, .66rem); }
}

/* ---------- Navigation (global — all pages) ---------- */
/* NAV-TALLER — extends ANNOUNCE-NAV-BREATH: taller bar, wider item gaps, more inner padding */
/* NAV-SOLID-ALIGN START */
.site-nav{
  position: fixed;
  top: var(--announce-h);
  left: 0; right: 0;
  z-index: 90;
  background: var(--black); /* was: rgba(10,11,15,.82) */
  border-bottom: 1px solid rgba(255,255,255,.16);
  /* Dark bar tokens — immune to HOME-WHITE-BG body overrides */
  --ink-dim: rgba(255,255,255,.62);
  --ink-faint: rgba(255,255,255,.38);
  --hairline: rgba(255,255,255,.16);
}
.site-nav__inner{
  max-width: 1320px;
  margin: 0 auto;
  /* ANNOUNCE-NAV-BREATH — was: 10px; NAV-TALLER — was: 16px */
  padding: 18px clamp(20px, 5vw, 56px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  /* NAV-TALLER — was: 20px */
  gap: 24px;
  min-height: var(--nav-h);
}
.site-nav__logo{
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
.site-nav__logo img{
  /* NAV-TALLER — was: clamp(79px, 13.2vw, 121px) */
  width: clamp(87px, 14.5vw, 133px);
  /* NAV-TALLER — was: calc(var(--nav-h) - 24px) */
  max-height: calc(var(--nav-h) - 19px);
  height: auto;
  filter: invert(1);
  display: block;
}
.site-nav__toggle{
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: 1px solid var(--hairline);
  border-radius: 4px;
  padding: 8px 10px;
  cursor: pointer;
}
.site-nav__toggle span{
  display: block;
  width: 20px;
  height: 1.5px;
  background: var(--white);
}
.site-nav__list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  /* NAV-TALLER — was: clamp(12px, 2vw, 28px) */
  gap: clamp(20px, 2.5vw, 36px);
}
.site-nav__menu{
  display: flex;
  align-items: center;
}
/* NAV-TWEAK START — revert: restore color: var(--ink-dim) and font-size clamp(.62rem, .35vw + .52rem, .76rem) */
.site-nav__list a{
  position: relative;
  display: inline-flex;
  align-items: center;
  line-height: 1;
  min-height: 22px;
  /* NAV-TALLER — was: none */
  padding-block: clamp(6px, 0.6vh, 10px);
  font-family: var(--tiny);
  font-size: clamp(.72rem, .4vw + .56rem, .84rem);
  letter-spacing: .14em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--white);
  transition: color .2s;
}
.site-nav__list a:hover{
  color: var(--lime);
}
/* NAV-TWEAK END */
.site-nav__list .current-menu-item > a,
.site-nav__list .current_page_item > a{
  color: var(--lime);
}
.site-nav__list .current-menu-item > a::after,
.site-nav__list .current_page_item > a::after{
  content: '';
  position: absolute;
  left: 0; right: 0;
  bottom: -5px;
  height: 2px;
  background: linear-gradient(90deg, var(--lime), var(--teal) 50%, var(--blue));
  border-radius: 1px;
  opacity: .85;
}

.site-nav__cluster{
  display: flex;
  align-items: center;
  /* NAV-TALLER — was: clamp(16px, 2vw, 28px) */
  gap: clamp(20px, 2.5vw, 36px);
}

.site-nav__social{
  display: flex;
  align-items: center;
  /* NAV-TALLER — was: 12px */
  gap: 16px;
  flex-shrink: 0;
}

.site-nav__social-link{
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,.85);
  border-radius: 50%;
  border: 1px solid transparent;
  transition: color .25s var(--ease), background .25s var(--ease), border-color .25s var(--ease), box-shadow .25s var(--ease), transform .25s var(--ease);
}

.site-nav__social-link svg{
  width: 100%;
  height: 100%;
}

.site-nav__social-link:hover{
  color: var(--black);
  border-color: transparent;
  background: linear-gradient(135deg, var(--lime), var(--teal) 55%, var(--blue));
  box-shadow: 0 6px 18px -6px rgba(18,163,140,.45);
  transform: translateY(-1px);
}

@media (max-width: 768px){
  .site-nav__inner{
    position: relative;
    min-height: var(--nav-h);
    /* NAV-TALLER — was: 4px */
    padding: 8px clamp(16px, 4vw, 40px);
  }
  .site-nav__logo img{
    /* NAV-TALLER — was: clamp(62px, 15.4vw, 79px) */
    width: clamp(68px, 16.9vw, 87px);
  }
  .site-nav__toggle{
    display: flex;
    min-width: 44px;
    min-height: 44px;
    justify-content: center;
    align-items: center;
  }
  .site-nav__cluster{
    position: absolute;
    top: 100%; left: 0; right: 0;
    flex-direction: column;
    align-items: flex-start;
    /* NAV-TALLER — was: 16px */
    gap: 20px;
    background: var(--black); /* NAV-SOLID-ALIGN — was: rgba(10,11,15,.96) */
    border-bottom: 1px solid var(--hairline);
    padding: 16px clamp(20px, 5vw, 40px) 20px;
    display: none;
    max-height: calc(100dvh - var(--header-offset));
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .site-nav.is-open .site-nav__cluster{ display: flex; }
  .site-nav__menu{
    width: 100%;
  }
  /* NAV-TALLER — was: gap 4px */
  .site-nav__list{ flex-direction: column; gap: 8px; width: 100%; }
  .site-nav__list a{
    display: block;
    /* ANNOUNCE-NAV-BREATH — was: 10px 0; NAV-TALLER — was: 12px 0 */
    padding: 14px 0;
  }
  .site-nav__social{
    padding-top: 12px;
    border-top: 1px solid var(--hairline);
    width: 100%;
    gap: 16px;
  }
  .site-nav__social-link{
    width: 44px;
    height: 44px;
    padding: 10px;
    box-sizing: border-box;
  }
}
/* NAV-SOLID-ALIGN END */

@media (max-width: 480px){
  /* NAV-TALLER — was: 2px */
  .site-nav__inner{ padding: 6px clamp(14px, 4vw, 32px); }
  .site-nav__logo img{ width: clamp(63px, 19.4vw, 77px); /* was: clamp(57px, 17.6vw, 70px) */ }
}

/* MOBILE-NAV-SOCIAL-CENTER START — revert: remove block; social icons left-aligned, logo clamps restored in @768/@480 above */
@media (max-width: 768px){
  .site-nav__social{
    justify-content: center;
  }
  .site-nav__logo img{
    /* MOBILE-NAV-SOCIAL-CENTER — was: clamp(68px, 16.9vw, 87px) */
    width: clamp(82px, 20.5vw, 105px);
    max-height: calc(var(--nav-h) - 10px);
  }
}
@media (max-width: 480px){
  .site-nav__logo img{
    /* MOBILE-NAV-SOCIAL-CENTER — was: clamp(63px, 19.4vw, 77px) */
    width: clamp(76px, 23.5vw, 92px);
    max-height: calc(var(--nav-h) - 8px);
  }
}
/* MOBILE-NAV-SOCIAL-CENTER END */

/* MOBILE-NAV-TYPE-SIZE START — revert: remove block; mobile menu links inherit clamp(.72rem, .4vw + .56rem, .84rem), gap 8px, padding 14px 0, line-height 1 */
@media (max-width: 768px){
  .site-nav__list{
    /* MOBILE-NAV-TYPE-SIZE — was: gap 8px */
    gap: 8px;
  }
  .site-nav__list a{
    /* MOBILE-NAV-TYPE-SIZE — was: clamp(.72rem, .4vw + .56rem, .84rem) */
    font-size: clamp(0.9rem, 3.2vw, 1.05rem);
    /* MOBILE-NAV-TYPE-SIZE — was: line-height 1 */
    line-height: 1.1;
    /* MOBILE-NAV-TYPE-SIZE — was: padding 14px 0 */
    padding: 11px 0;
  }
}
/* MOBILE-NAV-TYPE-SIZE END */

/* ---------- Main content (Gutenberg fallback) ---------- */
.site-main{
  max-width: var(--container);
  margin: 0 auto;
  padding: calc(var(--header-offset) + clamp(32px, 4vh, 48px)) clamp(20px, 5vw, 40px) calc(clamp(56px, 8vh, 96px) + var(--bottom-bar-h));
}

.site-article__title{
  font-family: var(--corfu7-display);
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  line-height: 1.15;
  margin: 0 0 1.2em;
  color: var(--white);
  padding-bottom: .45em;
  border-bottom: 2px solid transparent;
  border-image: linear-gradient(90deg, var(--lime), var(--teal) 55%, var(--blue)) 1;
}

/* Elementor/block-editor headings on inner pages — apply theme display font */
body.page h1,
body.page h1.wp-block-heading,
body.elementor-page h1,
body.elementor-page h1.wp-block-heading,
.elementor-kit-40 h1,
.elementor-kit-40 h1.wp-block-heading,
body.single-evento h1 {
  font-family: var(--corfu7-display) !important;
  color: var(--white) !important;
  line-height: 1.05;
  letter-spacing: -.02em;
}

.site-article__content,
.entry-content{
  color: rgba(255,255,255,.82);
}
.site-article__content h2,
.site-article__content h3,
.entry-content h2,
.entry-content h3{
  font-family: var(--corfu7-display);
  color: var(--white);
  margin-top: 1.8em;
}
.section-heading,
.site-article__content h2,
.entry-content h2{
  position: relative;
  padding-bottom: .55em;
  margin-top: clamp(2.4em, 5vw, 3.2em);
  margin-bottom: 1.1em;
}
.section-heading::after,
.site-article__content h2::after,
.entry-content h2::after{
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: clamp(44px, 7vw, 68px);
  height: 2px;
  background: linear-gradient(90deg, var(--lime), var(--teal) 50%, var(--blue));
  border-radius: 1px;
}
.site-article__content h3,
.entry-content h3{
  padding-left: .75em;
  border-left: 2px solid var(--teal);
}
.site-article__content ul,
.entry-content ul{
  padding-left: 1.2em;
}
.site-article__content li,
.entry-content li{
  margin-bottom: .45em;
}

/* Elementor full-width pages */
.elementor-page .site-main{
  max-width: none;
  padding: var(--header-offset) 0 0;
}

/* ---------- Ubicación (fixed bottom bar) ---------- */
.bottom-bar{
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 100;
  /* Dark bar tokens — immune to HOME-WHITE-BG body overrides */
  --ink-dim: rgba(255,255,255,.62);
  --ink-faint: rgba(255,255,255,.38);
  --hairline: rgba(255,255,255,.16);
}
.ubicacion-strip{
  position: static;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
  text-align: center;
  padding: clamp(7px, .9vh, 11px) clamp(16px, 4vw, 40px);
  background: #0a0b0f;
  border-top: 1px solid var(--hairline);
}
.ubicacion-strip .btn{
  height: clamp(36px, 4vh, 44px);
  padding-top: 0;
  padding-bottom: 0;
}
.ubicacion-direccion{
  font-family: var(--tiny);
  font-size: clamp(.68rem, .4vw + .58rem, .82rem);
  letter-spacing: .04em;
  line-height: 1.3;
  color: var(--ink-dim);
  margin: 0;
}
.ubicacion-strip__sep{
  color: var(--ink-faint);
  user-select: none;
  font-size: clamp(.68rem, .4vw + .58rem, .82rem);
}
.footer-partner-inline{
  display: inline-flex;
  align-items: center;
  gap: clamp(6px, 1vw, 10px);
}
.footer-partner-inline__label{
  font-family: var(--tiny);
  font-size: clamp(.62rem, .35vw + .52rem, .72rem);
  letter-spacing: .06em;
  color: var(--ink-faint);
  white-space: nowrap;
}
.footer-partner-inline__logo{
  height: clamp(16px, 2vw, 22px);
  width: auto;
  opacity: .88;
  transition: opacity .25s var(--ease);
}
.footer-partner-inline__logo:hover{ opacity: 1; }

.social-icon{
  flex: 0 0 auto;
  width: clamp(36px, 4vh, 44px);
  height: clamp(36px, 4vh, 44px);
  border-radius: 50%;
  border: 1px solid var(--hairline);
  background: rgba(255,255,255,.03);
  color: var(--ink-dim);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform .25s var(--ease), background .25s var(--ease), border-color .25s var(--ease), color .25s var(--ease), box-shadow .25s var(--ease);
}
.social-icon svg{ width: 55%; height: 55%; }
.social-icon:hover{
  transform: translateY(-3px);
  color: var(--black);
  border-color: transparent;
  background: linear-gradient(135deg, var(--lime), var(--teal) 55%, var(--blue));
  box-shadow: 0 10px 26px -8px rgba(18,163,140,.55);
}

@media (max-width: 600px) {
  .ubicacion-strip{ gap: 10px 12px; padding: 10px 16px; flex-wrap: wrap; }
  .ubicacion-direccion{ font-size: .68rem; flex: 1 1 100%; }
  .ubicacion-strip__sep{ display: none; }
  .footer-partner-inline__label{ white-space: normal; }
}

@media (max-width: 480px) {
  .ubicacion-strip{
    gap: 8px;
    padding: 10px 14px;
  }
  .footer-partner-inline{
    flex: 1 1 100%;
    justify-content: center;
  }
}

/* ---------- Quiénes somos — Chandrío section ---------- */
.quienes-chandrio{
  position: relative;
  margin-top: clamp(2.75rem, 6vh, 4rem);
  padding: clamp(2.25rem, 5vw, 3.5rem) 0;
  border-top: 1px solid var(--hairline);
}
.quienes-chandrio::before{
  content: '';
  position: absolute;
  top: -1px;
  left: 0;
  width: clamp(3.5rem, 14vw, 7rem);
  height: 1px;
  background: linear-gradient(90deg, var(--lime), var(--teal) 55%, var(--blue));
}
.quienes-chandrio__grid{
  display: grid;
  grid-template-columns: minmax(148px, 220px) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: start;
}
/* CHANDRIO-LINE-FIX: hairline border-right removed — colored accent lives on __lead only */
.quienes-chandrio__brand{
  display: flex;
  flex-direction: column;
  gap: clamp(1rem, 2.5vw, 1.5rem);
  padding-right: clamp(1.25rem, 3vw, 2rem);
}
.quienes-chandrio__title{
  font-family: var(--tiny);
  font-size: clamp(.6rem, .28vw + .56rem, .72rem);
  font-weight: 400;
  letter-spacing: .22em;
  text-transform: uppercase;
  margin: 0;
  color: var(--ink-faint);
  line-height: 1.5;
}
.quienes-chandrio__logo{
  max-width: clamp(118px, 13vw, 168px);
  width: 100%;
  height: auto;
  opacity: .88;
  transition: opacity .35s var(--ease);
}
.quienes-chandrio__logo:hover{ opacity: 1; }
.quienes-chandrio__body{
  max-width: 58ch;
}
.quienes-chandrio__lead{
  font-size: clamp(1.02rem, 1.2vw + .85rem, 1.14rem);
  line-height: 1.78;
  color: var(--white);
  margin: 0 0 clamp(1.15rem, 2.5vw, 1.5rem);
  padding-left: clamp(.85rem, 2vw, 1.15rem);
  border-left: 2px solid rgba(18,163,140,.45);
}
.quienes-chandrio__body p:not(.quienes-chandrio__lead){
  color: var(--ink-dim);
  line-height: 1.82;
  margin: 0;
}
.chandrio-bridge{
  margin-top: 1.5em;
  padding-top: 1.5em;
  border-top: 1px solid var(--hairline);
  color: var(--ink-dim);
  max-width: 62ch;
  line-height: 1.75;
}
@media (max-width: 720px){
  .quienes-chandrio__grid{
    grid-template-columns: 1fr;
    gap: clamp(1.5rem, 4vw, 2rem);
  }
  .quienes-chandrio__brand{
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    padding-right: 0;
    padding-bottom: clamp(1.25rem, 3vw, 1.75rem);
    border-right: none;
    border-bottom: 1px solid var(--hairline);
  }
  .quienes-chandrio__logo{
    max-width: clamp(108px, 32vw, 140px);
  }
  .quienes-chandrio__body{
    max-width: none;
  }
}

.preview-columns{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2em;
  margin: 1.5em 0;
}
@media (max-width: 640px){
  .preview-columns{ grid-template-columns: 1fr; }
}

/* ---------- Page hero & photo gallery ---------- */
.page-hero{
  margin: var(--header-offset) 0 0;
  position: relative;
  max-height: min(58vh, 540px);
  overflow: hidden;
  border-bottom: 1px solid var(--hairline);
}
.page-hero + .site-main{
  padding-top: clamp(32px, 4vh, 48px);
}
.page-hero img{
  width: 100%;
  height: min(58vh, 540px);
  object-fit: cover;
  object-position: center 40%;
  filter: brightness(.72) saturate(.9);
}
.page-hero__caption{
  position: absolute;
  bottom: 0; left: 0; right: 0;
  z-index: 2;
  margin: 0;
  padding: clamp(20px, 3vh, 32px) clamp(20px, 5vw, 40px);
  background: linear-gradient(transparent 0%, rgba(0,0,0,.55) 40%, rgba(0,0,0,.92) 100%);
  font-family: var(--tiny);
  font-size: clamp(.62rem, .35vw + .52rem, .76rem);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink-dim);
}
.page-hero__caption::before{
  content: '';
  display: block;
  width: clamp(32px, 5vw, 48px);
  height: 2px;
  margin-bottom: .75em;
  background: linear-gradient(90deg, var(--lime), var(--teal) 50%, var(--blue));
  opacity: .75;
}
.page-hero--brand img{
  object-position: center 25%;
  filter: brightness(.65);
}
.page-hero--bw img{
  filter: grayscale(100%) contrast(1.06) brightness(.78);
  object-position: center 45%;
}
.page-hero--bw .page-hero__caption{
  color: rgba(255,255,255,.72);
}

/* Diagonal corporate stripes — wide gradient bands + thin accent lines */
.page-hero--stripes::before{
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(
      108deg,
      transparent 13.8%,
      rgba(199, 204, 0, .50) 13.8%,
      rgba(199, 204, 0, .50) 14.6%,
      transparent 14.6%
    ),
    linear-gradient(
      108deg,
      transparent 16%,
      rgba(199, 204, 0, .46) 16%,
      rgba(107, 146, 0, .50) 29%,
      transparent 29%
    ),
    linear-gradient(
      108deg,
      transparent 53%,
      rgba(1, 158, 199, .46) 53%,
      rgba(18, 163, 140, .50) 66%,
      transparent 66%
    ),
    linear-gradient(
      108deg,
      transparent 76.2%,
      rgba(18, 163, 140, .50) 76.2%,
      rgba(18, 163, 140, .50) 77%,
      transparent 77%
    );
}
.page-hero--stripes img{
  filter: grayscale(100%) contrast(1.06) brightness(.78);
  object-position: center 45%;
}
.page-hero--stripes .page-hero__caption{
  color: rgba(255,255,255,.72);
}
@media (max-width: 640px){
  .page-hero--stripes::before{
    background:
      linear-gradient(
        108deg,
        transparent 8%,
        rgba(199, 204, 0, .48) 8%,
        rgba(199, 204, 0, .48) 9.5%,
        transparent 9.5%
      ),
      linear-gradient(
        108deg,
        transparent 11%,
        rgba(199, 204, 0, .44) 11%,
        rgba(107, 146, 0, .48) 28%,
        transparent 28%
      ),
      linear-gradient(
        108deg,
        transparent 48%,
        rgba(1, 158, 199, .44) 48%,
        rgba(18, 163, 140, .48) 65%,
        transparent 65%
      ),
      linear-gradient(
        108deg,
        transparent 82%,
        rgba(18, 163, 140, .48) 82%,
        rgba(18, 163, 140, .48) 83.5%,
        transparent 83.5%
      );
  }
}

.photo-gallery{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(10px, 1.5vw, 14px);
  margin: 1.5em 0 2em;
}
.photo-gallery--square{
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(14px, 2vw, 20px);
  margin: clamp(1.8em, 3vw, 2.4em) 0 clamp(2.4em, 4vw, 3.2em);
}
.photo-gallery__item{
  margin: 0;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid var(--hairline);
  background: rgba(255,255,255,.03);
  aspect-ratio: 4 / 3;
  transition: border-color .35s var(--ease), box-shadow .35s var(--ease), transform .35s var(--ease);
}
.photo-gallery--square .photo-gallery__item{
  aspect-ratio: 1 / 1;
}
.photo-gallery__item--wide{
  grid-column: span 2;
  aspect-ratio: 16 / 9;
}
.photo-gallery__item img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s var(--ease);
}
.photo-gallery__item:hover{
  border-color: rgba(18,163,140,.45);
  box-shadow: 0 0 0 1px rgba(18,163,140,.2), 0 12px 32px -12px rgba(18,163,140,.28);
  transform: translateY(-2px);
}
.photo-gallery__item:hover img{
  transform: scale(1.05);
}
@media (max-width: 900px){
  .photo-gallery--square{ grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px){
  .photo-gallery{ grid-template-columns: repeat(2, 1fr); }
  .photo-gallery--square{ grid-template-columns: repeat(2, 1fr); }
  .photo-gallery__item--wide{ grid-column: span 2; }
}
@media (max-width: 480px){
  .photo-gallery,
  .photo-gallery--square{ grid-template-columns: repeat(2, 1fr); }
  .photo-gallery__item--wide{ grid-column: span 2; }
}

.inline-photo{
  margin: 0;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--hairline);
}
.inline-photo img{
  width: 100%;
  display: block;
}
.inline-photo figcaption{
  padding: .65em 1em;
  font-family: var(--tiny);
  font-size: .68rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-faint);
  background: rgba(255,255,255,.03);
  border-top: 1px solid rgba(18,163,140,.18);
  margin: 0;
}
.inline-photo--compact img{
  max-height: 220px;
  object-fit: cover;
}
.inline-photo--ambient{
  margin: 1.5em 0;
}
.inline-photo--ambient img{
  max-height: 320px;
  object-fit: cover;
  filter: brightness(.8);
}

.tech-block{
  display: grid;
  grid-template-columns: 1fr min(280px, 38%);
  gap: 1.5em;
  align-items: start;
  margin: 1.2em 0 2em;
  padding: 1.2em 0;
  border-top: 1px solid var(--hairline);
}
.tech-block--reverse{
  direction: rtl;
}
.tech-block--reverse > *{
  direction: ltr;
}
.tech-block__text h3{
  margin-top: 0;
}
@media (max-width: 720px){
  .tech-block,
  .tech-block--reverse{
    grid-template-columns: 1fr;
    direction: ltr;
  }
}

/* Home: subtle sala teaser */
.sala-teaser{
  display: flex;
  align-items: center;
  gap: clamp(14px, 2vw, 22px);
  margin-top: clamp(8px, 1.5vh, 16px);
  padding: clamp(10px, 1.5vh, 14px) clamp(14px, 2vw, 20px);
  border-radius: 8px;
  border: 1px solid var(--hairline);
  background: rgba(255,255,255,.04);
  text-decoration: none;
  color: inherit;
  max-width: 420px;
  transition: background .3s var(--ease), border-color .3s var(--ease), transform .3s var(--ease);
}
@media (max-width: 600px){
  .sala-teaser{
    max-width: none;
    width: 100%;
  }
}
.sala-teaser:hover{
  background: rgba(255,255,255,.07);
  border-color: rgba(18,163,140,.35);
  transform: translateY(-2px);
  color: inherit;
}
.sala-teaser img{
  width: 72px;
  height: 54px;
  object-fit: cover;
  border-radius: 4px;
  flex-shrink: 0;
}
.sala-teaser__text{
  font-family: var(--tiny);
  font-size: clamp(.58rem, .3vw + .5rem, .7rem);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink-dim);
  line-height: 1.4;
}
.sala-teaser__text strong{
  display: block;
  color: var(--lime);
  letter-spacing: .16em;
  margin-bottom: .25em;
}

/* ---------- Stat grid (La sala) ---------- */
.stat-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin: clamp(2rem, 4vw, 3rem) 0 clamp(2.5rem, 5vw, 3.5rem);
  border: 1px solid var(--hairline);
  border-radius: 12px;
  overflow: hidden;
  background: rgba(255,255,255,.02);
}
.stat-card{
  padding: clamp(1.4rem, 3vw, 2.2rem) clamp(.85rem, 2vw, 1.25rem);
  text-align: center;
  border-right: 1px solid var(--hairline);
  transition: background .3s var(--ease);
}
.stat-card:last-child{ border-right: none; }
.stat-card:hover{ background: rgba(255,255,255,.04); }
.stat-card__number{
  font-family: var(--corfu7-display);
  font-size: clamp(2.4rem, 5.5vw, 3.6rem);
  font-weight: 700;
  line-height: 1;
  display: block;
  margin-bottom: .4em;
  letter-spacing: -.02em;
  font-variant-numeric: tabular-nums;
}
.stat-card__unit{
  font-size: .55em;
  font-weight: 700;
  vertical-align: baseline;
}
.stat-card__label{
  font-family: var(--tiny);
  font-size: clamp(.58rem, .3vw + .5rem, .72rem);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink-dim);
  display: block;
}
.stat-card--lime .stat-card__number{ color: var(--lime); }
.stat-card--teal .stat-card__number{ color: var(--teal); }
.stat-card--blue .stat-card__number{ color: var(--blue); }
@media (max-width: 640px){
  .stat-grid{ grid-template-columns: repeat(2, 1fr); }
  .stat-card:nth-child(2){ border-right: none; }
  .stat-card:nth-child(1),
  .stat-card:nth-child(2){ border-bottom: 1px solid var(--hairline); }
  .stat-card:nth-child(odd){ border-right: 1px solid var(--hairline); }
  .stat-card:nth-child(even){ border-right: none; }
}

/* ---------- La sala page refinements ---------- */
.corfu7-sala .site-main{
  padding-bottom: calc(clamp(64px, 9vh, 112px) + var(--bottom-bar-h));
}
.corfu7-sala .lead{
  font-size: clamp(1.05rem, 1.2vw + .85rem, 1.2rem);
  line-height: 1.7;
  color: rgba(255,255,255,.88);
  margin: 0 0 clamp(1.5rem, 3vw, 2rem);
  max-width: 42em;
}
.corfu7-sala .note-block{
  padding: clamp(1rem, 2vw, 1.4rem) clamp(1.1rem, 2vw, 1.5rem);
  border-left: 2px solid var(--lime);
  background: rgba(255,255,255,.03);
  border-radius: 0 8px 8px 0;
  margin: 0;
}
.corfu7-sala .cta-line{
  margin-top: clamp(2.5em, 4vw, 3.5em);
  padding-top: clamp(1.5em, 3vw, 2em);
  border-top: 1px solid var(--hairline);
}
/* === DOSSIER-CTA START === */
.dossier-cta-hero{
  text-align: center;
  padding: clamp(2rem, 4vw, 3rem) clamp(1rem, 3vw, 2rem);
  max-width: 32em;
  margin-inline: auto;
}
.corfu7-sala .dossier-cta-hero{
  margin-top: clamp(2.5em, 4vw, 3.5em);
  padding-top: clamp(1.5em, 3vw, 2em);
  border-top: 1px solid var(--hairline);
}
.dossier-cta-hero__title{
  font-family: var(--corfu7-display);
  font-size: clamp(1.5rem, 2.8vw + .6rem, 2.4rem);
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  line-height: 1.15;
  color: var(--white);
  margin: 0 0 clamp(.65rem, 1.5vw, .9rem);
  text-wrap: balance;
}
.dossier-cta-hero__subtitle{
  font-size: clamp(.95rem, .4vw + .86rem, 1.08rem);
  line-height: 1.6;
  color: rgba(255,255,255,.72);
  margin: 0 0 clamp(1.5rem, 3vw, 2rem);
}
.dossier-cta-hero .btn-primary.btn-compact{
  border-radius: 999px;
}
/* === DOSSIER-CTA END === */
.corfu7-sala .tech-block{
  margin: clamp(1.8em, 3vw, 2.4em) 0;
  padding: clamp(1.4em, 2.5vw, 2em) 0;
}

/* La sala: square content images (hero excluded) */
.corfu7-sala .site-article__content .inline-photo{
  aspect-ratio: 1 / 1;
  max-width: min(320px, 100%);
}
.corfu7-sala .site-article__content .inline-photo img,
.corfu7-sala .site-article__content .inline-photo--compact img{
  width: 100%;
  height: 100%;
  max-height: none;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}
.corfu7-sala .tech-block .inline-photo{
  max-width: min(280px, 100%);
}

/* ---------- Contact & inner accents ---------- */
/* LINE-ACCENT-FIX: legacy contact-block h3 — horizontal accent only (was border-left) */
.contact-block h3{
  position: relative;
  padding-left: 0;
  padding-bottom: .55em;
  border-left: none;
}
.contact-block h3::after{
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: clamp(44px, 7vw, 68px);
  height: 2px;
  background: linear-gradient(90deg, var(--lime), var(--teal) 50%, var(--blue));
  border-radius: 1px;
  opacity: .85;
}

/* CONTACT-REDESIGN START */
.contact-section__title{
  position: relative;
  margin: 0 0 clamp(1.15rem, 2.5vw, 1.65rem);
  padding: 0 0 .55em;
  border-left: none;
  font-family: var(--corfu7-display);
  font-size: clamp(1.35rem, 2.5vw, 1.65rem);
  font-weight: 600;
  letter-spacing: .02em;
  color: var(--white);
}
.contact-section__title::after{
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: clamp(44px, 7vw, 68px);
  height: 2px;
  background: linear-gradient(90deg, var(--lime), var(--teal) 50%, var(--blue));
  border-radius: 1px;
  opacity: .85;
}
.contact-layout{
  display: flex;
  flex-direction: column;
  gap: clamp(1.5rem, 3vw, 2.5rem);
  margin: 0;
}
.entry-content .contact-info__grid,
.site-article__content .contact-info__grid{
  padding-left: 0;
}
.entry-content .contact-info__item,
.site-article__content .contact-info__item{
  margin-bottom: 0;
}
.contact-info{
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  background: none;
  box-shadow: none;
}
.contact-info__grid{
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.4rem, 3vw, 2.2rem) clamp(2rem, 5vw, 3.5rem);
}
.contact-info__item{
  display: flex;
  align-items: flex-start;
  gap: 1em;
  margin: 0;
  padding: clamp(.9rem, 1.8vw, 1.2rem) 0;
  border: none;
  border-radius: 0;
  background: none;
}
.contact-info__item:last-child{
  grid-column: auto;
}
.contact-info__icon{
  flex-shrink: 0;
  width: 1.5rem;
  height: 1.5rem;
  color: var(--teal);
  margin-top: .1em;
}
.contact-info__icon svg{
  display: block;
  width: 100%;
  height: 100%;
}
.contact-info__body{
  display: flex;
  flex-direction: column;
  gap: .35em;
  min-width: 0;
}
.contact-info__label,
.contact-form__field label{
  font-family: var(--tiny);
  font-size: clamp(.68rem, .32vw + .56rem, .76rem);
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ink-dim);
}
.contact-info__value{
  display: inline-flex;
  align-items: center;
  font-family: var(--body);
  font-size: clamp(1rem, 1.4vw, 1.1rem);
  line-height: 1.4;
  color: var(--teal);
  text-decoration: none;
  overflow-wrap: anywhere;
  transition: color .25s var(--ease);
}
.contact-info__value:hover,
.contact-info__value:focus-visible{
  color: var(--lime);
  outline: none;
}
@media (max-width: 640px){
  .contact-info__grid{
    grid-template-columns: 1fr;
  }
  .contact-info__value{
    min-height: 44px;
    padding: .2em 0;
  }
}
/* CONTACT-REDESIGN END */

/* ---------- Contact map ---------- */
.contact-map{
  position: relative;
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  height: clamp(200px, 24vw, 260px);
  max-height: 260px;
  border-radius: 12px;
  overflow: hidden;
  background: rgba(0,0,0,.45);
  border: 1px solid rgba(18,163,140,.35);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.04) inset,
    0 16px 48px -20px rgba(1,158,199,.35),
    0 0 60px -30px rgba(18,163,140,.2);
}
.contact-map::before{
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px rgba(18,163,140,.18);
  background: linear-gradient(135deg, rgba(18,163,140,.1) 0%, transparent 45%, rgba(1,158,199,.07) 100%);
}
.contact-map iframe{
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  filter: invert(92%) hue-rotate(180deg) brightness(.88) contrast(1.02) saturate(.8);
}
.contact-map__link{
  position: absolute;
  bottom: clamp(.75rem, 2vw, 1rem);
  right: clamp(.75rem, 2vw, 1rem);
  z-index: 2;
  font-family: var(--tiny);
  font-size: .68rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--white);
  background: rgba(0,0,0,.72);
  border: 1px solid rgba(18,163,140,.45);
  padding: .65em 1.1em;
  border-radius: 2px;
  backdrop-filter: blur(8px);
  transition: color .25s var(--ease), border-color .25s var(--ease), background .25s var(--ease), transform .25s var(--ease);
}
.contact-map__link:hover,
.contact-map__link:focus-visible{
  color: var(--lime);
  border-color: rgba(199,204,0,.55);
  background: rgba(0,0,0,.88);
  transform: translateY(-2px);
  outline: none;
}
@media (max-width: 640px){
  .contact-map{
    height: 220px;
    max-height: 220px;
  }
  .contact-layout{
    gap: clamp(1.25rem, 4vw, 2rem);
  }
  .contact-info__grid{
    grid-template-columns: 1fr;
    gap: .35rem;
  }
}
.tagline-accent{
  font-family: var(--tiny);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ink-dim);
  padding-top: 1em;
  border-top: 1px solid var(--hairline);
}
/* BEGIN TAGLINE-ANIM-1B — Quiénes somos tagline (Option 1b: glow wave + segmented gradient) */
.tagline-anim{
  margin: 0;
}
.tagline-anim-1b{
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: flex-start;
  gap: 0 .35em;
}
.tagline-anim-1b__word,
.tagline-anim-1b__dot{
  display: inline-block;
}
.tagline-anim-1b__word{
  background: linear-gradient(90deg, var(--lime) 0%, var(--teal) 50%, var(--blue) 100%);
  background-size: 500% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  animation: tagline-glow-wave-1b 5s ease-in-out infinite;
}
.tagline-anim-1b__word:nth-child(1){ background-position: 0% 50%;   animation-delay: 0s; }
.tagline-anim-1b__word:nth-child(3){ background-position: 25% 50%;  animation-delay: 1s; }
.tagline-anim-1b__word:nth-child(5){ background-position: 50% 50%;  animation-delay: 2s; }
.tagline-anim-1b__word:nth-child(7){ background-position: 75% 50%;  animation-delay: 3s; }
.tagline-anim-1b__word:nth-child(9){ background-position: 100% 50%; animation-delay: 4s; }
.tagline-anim-1b__dot{
  color: var(--ink-faint);
  opacity: .42;
}
@keyframes tagline-glow-wave-1b{
  0%, 18%, 100%{
    opacity: .72;
    filter: brightness(.88) saturate(.92);
    text-shadow: none;
  }
  8%, 12%{
    opacity: 1;
    filter: brightness(1.18) saturate(1.08);
    text-shadow:
      0 0 10px rgba(199, 204, 0, .38),
      0 0 22px rgba(18, 163, 140, .28);
  }
}
@media (max-width: 520px){
  .tagline-anim-1b{
    letter-spacing: .12em;
    gap: 0 .25em;
  }
}
@media (prefers-reduced-motion: reduce){
  .tagline-anim-1b__word{
    animation: none !important;
    opacity: 1;
    filter: none;
    text-shadow: none;
  }
}
/* END TAGLINE-ANIM-1B */

/* ---------- Buttons (inner pages) ---------- */
.btn{
  font-family: var(--tiny);
  font-size: .82rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1.1em 2.2em;
  border-radius: 2px;
  border: none;
  cursor: pointer;
  transition: transform .35s var(--ease), background .35s var(--ease), border-color .35s var(--ease), color .35s var(--ease), box-shadow .35s var(--ease);
}
.btn-primary{
  position: relative;
  overflow: hidden;
  color: var(--white);
  background: rgba(255,255,255,.03);
  border: 1px solid var(--white);
  box-shadow: 0 8px 24px -12px rgba(1,158,199,.4);
}
.btn-primary::before{
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, transparent 30%, rgba(255,255,255,.4) 50%, transparent 70%);
  transform: translateX(-120%);
  transition: transform .45s ease;
}
.btn-primary:hover::before,
.btn-primary:focus-visible::before{ transform: translateX(120%); }
.btn-primary:hover,
.btn-primary:focus-visible{
  color: var(--black);
  border-color: transparent;
  background: linear-gradient(100deg, var(--lime), var(--teal) 55%, var(--blue));
  box-shadow: 0 16px 40px -10px rgba(1,158,199,.55), 0 0 0 1px rgba(255,255,255,.08);
  transform: translateY(-3px) scale(1.015);
  outline: none;
}

.btn-secondary{
  color: var(--ink-dim);
  background: transparent;
  border: 1px solid var(--hairline);
}
.btn-secondary:hover,
.btn-secondary:focus-visible{
  color: var(--teal);
  border-color: rgba(18,163,140,.45);
  transform: translateY(-2px);
  outline: none;
}

.btn-compact{
  font-size: clamp(.62rem, .4vw + .52rem, .76rem);
  padding: clamp(.7em, 1.4vh, .95em) clamp(1.1em, 2vw, 1.6em);
  white-space: nowrap;
}

/* ---------- Contact form ---------- */
.contact-form{
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  background: none;
}
.contact-form__title{
  margin-bottom: clamp(1.15rem, 2.5vw, 1.65rem);
}
.contact-form__grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1rem, 2.5vw, 1.35rem) clamp(1.25rem, 3vw, 1.75rem);
}
.contact-form__field{
  display: flex;
  flex-direction: column;
  gap: .45em;
}
.contact-form__field--full{
  grid-column: 1 / -1;
}
.contact-form__required{
  color: var(--lime);
}
.contact-form__field input,
.contact-form__field select,
.contact-form__field textarea{
  width: 100%;
  font-family: var(--body);
  font-size: clamp(.9rem, 1.2vw, .95rem);
  line-height: 1.5;
  color: var(--white);
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--hairline);
  border-radius: 0;
  padding: .65em 0 .75em;
  transition: border-color .25s var(--ease), box-shadow .25s var(--ease);
}
.contact-form__field textarea{
  resize: vertical;
  min-height: 8rem;
}
.contact-form__field select{
  appearance: none;
  color-scheme: dark;
  background-color: transparent;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23ffffff' fill-opacity='.45' d='M1.4.6 6 5.2 10.6.6 12 2l-6 6-6-6z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0 center;
  padding-right: 1.5em;
  cursor: pointer;
}
.contact-form__field select option{
  background-color: #111;
  color: var(--white);
}
.contact-form__field select option:checked{
  background-color: rgba(18,163,140,.35);
  color: var(--white);
}
.contact-form__field input::placeholder,
.contact-form__field textarea::placeholder{
  color: var(--ink-faint);
}
.contact-form__field input:hover,
.contact-form__field select:hover,
.contact-form__field textarea:hover{
  border-bottom-color: rgba(255,255,255,.28);
}
.contact-form__field input:focus,
.contact-form__field select:focus,
.contact-form__field textarea:focus{
  outline: none;
  border-bottom-color: var(--teal);
  box-shadow: 0 1px 0 0 var(--teal);
}
.contact-form__field input:focus-visible,
.contact-form__field select:focus-visible,
.contact-form__field textarea:focus-visible{
  outline: none;
  border-bottom-color: var(--teal);
  box-shadow: 0 1px 0 0 var(--teal);
}
.contact-form__actions{
  margin-top: clamp(1.5rem, 3vw, 2rem);
}
.contact-form__submit{
  min-width: min(100%, 14rem);
}
.contact-form__status{
  margin: clamp(1.25rem, 2.5vw, 1.75rem) 0 0;
  font-family: var(--corfu7-display);
  font-size: clamp(1.1rem, 2vw, 1.25rem);
  color: var(--lime);
  text-align: center;
}
.contact-form__status--success{
  padding: clamp(1.5rem, 3vw, 2rem);
  border: 1px solid rgba(199,204,0,.35);
  border-radius: 8px;
  background: rgba(199,204,0,.06);
}
@media (max-width: 640px){
  .contact-form__grid{
    grid-template-columns: 1fr;
  }
  .contact-form__submit{
    width: 100%;
  }
}

@media (max-width: 480px){
  .contact-map{
    border-radius: 10px;
  }
  .contact-map__link{
    font-size: .62rem;
    padding: .55em .9em;
  }
}

/* ---------- Programación (event list) ---------- */
.site-article__subtitle{
  font-family: var(--tiny);
  font-size: clamp(.62rem, .35vw + .54rem, .76rem);
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--ink-faint);
  margin: -.85em 0 0;
}

.programacion-section{
  display: flex;
  flex-direction: column;
  gap: clamp(28px, 3.5vh, 40px);
}

.programacion-section__header{
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: clamp(4px, .6vh, 8px) 0;
  margin-bottom: clamp(4px, .8vh, 12px);
}

.programacion-section__header .site-article__subtitle{
  order: -1;
  margin: 0 0 clamp(8px, 1vh, 14px);
  font-size: clamp(.58rem, .35vw + .48rem, .72rem);
  letter-spacing: .28em;
  color: rgba(199,204,0,.7);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.programacion-section__header .site-article__title{
  margin: 0;
  padding-bottom: clamp(10px, 1.2vh, 16px);
  border-bottom: none;
  border-image: none;
  font-size: clamp(1.6rem, 2.4vh + .9vw, 2.35rem);
  letter-spacing: -0.02em;
  line-height: 1.1;
  position: relative;
  display: inline-block;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.programacion-section__header .site-article__title::after{
  content: '';
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: clamp(44px, 8vw, 72px);
  height: 2px;
  background: linear-gradient(90deg, var(--lime), var(--teal) 50%, var(--blue));
  border-radius: 1px;
  opacity: .85;
}

.programacion-section .cartelera-filters{
  margin-top: 0;
  width: 100%;
}

/* DESKTOP-FILTERS-ROW START — revert: delete block */
@media (min-width: 769px) {
  .programacion-section .cartelera-filters {
    width: auto;
    max-width: fit-content;
    margin-left: auto;
    margin-right: auto;
  }
}
/* DESKTOP-FILTERS-ROW END */

/* MOBILE-FILTER-DROPDOWNS START — revert: delete block */
.cartelera-filters__mobile-selects {
  display: none;
}

.cartelera-filters__select-wrap {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.cartelera-filters__select-label {
  font-family: var(--tiny);
  font-size: .52rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink-faint);
  padding-left: 2px;
}

.cartelera-filters__select {
  width: 100%;
  min-height: 44px;
  font-family: var(--body);
  font-size: clamp(.82rem, .35vw + .74rem, .92rem);
  color: var(--white);
  background: rgba(255,255,255,.04);
  border: 1px solid var(--hairline);
  border-radius: 8px;
  padding: .55em 2em .55em .85em;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='rgba(255,255,255,0.55)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right .75em center;
  background-size: 12px 8px;
  cursor: pointer;
  outline: none;
  transition: border-color .25s var(--ease), box-shadow .25s var(--ease), background-color .25s var(--ease);
}

.cartelera-filters__select:hover {
  border-color: rgba(18,163,140,.4);
}

.cartelera-filters__select:focus-visible {
  border-color: rgba(18,163,140,.55);
  box-shadow: 0 0 0 3px rgba(18,163,140,.18);
}

@media (max-width: 768px) {
  .cartelera-filters__mobile-selects {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    width: 100%;
  }

  .cartelera-filters__group {
    display: none;
  }

  .cartelera-filters,
  .programacion-section .cartelera-filters {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 0;
    padding: 8px 10px;
  }
}

@media (min-width: 769px) {
  .cartelera-filters__mobile-selects {
    display: none !important;
  }
}
/* MOBILE-FILTER-DROPDOWNS END */

.programacion-toolbar{
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: clamp(16px, 2.5vw, 28px);
}

.programacion-toolbar .programacion-search{
  width: 100%;
}

.programacion-search{
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.programacion-search__label{
  font-family: var(--tiny);
  font-size: clamp(.58rem, .3vw + .5rem, .68rem);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ink-faint);
}

.programacion-search__input{
  width: 100%;
  font-family: var(--body);
  font-size: clamp(.88rem, .4vw + .78rem, 1rem);
  color: var(--white);
  background: rgba(255,255,255,.04);
  border: 1px solid var(--hairline);
  border-radius: 8px;
  padding: .75em 1em;
  outline: none;
  transition: border-color .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease);
}

.programacion-search__input::placeholder{
  color: var(--ink-faint);
}

.programacion-search__input:focus{
  border-color: rgba(18,163,140,.55);
  box-shadow: 0 0 0 3px rgba(18,163,140,.18);
  background: rgba(255,255,255,.06);
}

.programacion-search__input::-webkit-search-cancel-button{
  filter: invert(.7);
}

.programacion-list{
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--hairline);
}

.programacion-item{
  display: grid;
  grid-template-columns: 110px 1fr auto;
  align-items: center;
  gap: clamp(14px, 2.5vw, 24px);
  padding: clamp(16px, 2.5vw, 22px) 0;
  border-bottom: 1px solid var(--hairline);
  transition: background .25s var(--ease);
}

.programacion-item:hover{
  background: rgba(255,255,255,.025);
}

.programacion-item[hidden]{
  display: none;
}

.programacion-item__thumb{
  flex-shrink: 0;
  display: block;
  width: 110px;
  aspect-ratio: 1 / 1;
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid var(--hairline);
  transition: border-color .25s var(--ease), box-shadow .25s var(--ease);
}

.programacion-item__thumb img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
}

.programacion-item:hover .programacion-item__thumb{
  border-color: rgba(18,163,140,.35);
  box-shadow: 0 4px 16px -6px rgba(1,158,199,.35);
}

.programacion-item__body{
  display: flex;
  flex-direction: column;
  gap: clamp(4px, .8vw, 8px);
  min-width: 0;
}

.programacion-item__datetime{
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .55em;
  font-family: var(--tiny);
  font-size: clamp(.62rem, .32vw + .54rem, .74rem);
  letter-spacing: .14em;
  text-transform: uppercase;
  line-height: 1.3;
}

.programacion-item__date{
  color: var(--teal);
  font-weight: 500;
}

.programacion-item__time{
  color: var(--ink-faint);
}

.programacion-item__title{
  font-family: var(--corfu7-display);
  font-size: clamp(1.05rem, 1.2vw + .6rem, 1.35rem);
  font-weight: 700;
  line-height: 1.2;
  margin: 0;
  color: var(--white);
  overflow-wrap: break-word;
}

.programacion-item__title a{
  color: inherit;
  text-decoration: none;
  transition: color .2s var(--ease);
}

.programacion-item__title a:hover{
  color: var(--lime);
}

.programacion-item__tags{
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 2px;
}

.programacion-item__tag{
  font-family: var(--tiny);
  font-size: clamp(.52rem, .26vw + .46rem, .62rem);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-dim);
  background: rgba(255,255,255,.04);
  border: 1px solid var(--hairline);
  border-radius: 999px;
  padding: .35em .75em;
}

.programacion-item__tag[data-category="comedia"]{
  border-color: rgba(199,204,0,.25);
  color: rgba(199,204,0,.85);
}

.programacion-item__tag[data-category="familiar"]{
  border-color: rgba(18,163,140,.3);
  color: rgba(18,163,140,.9);
}

.programacion-item__tag[data-category="monologo"]{
  border-color: rgba(1,158,199,.3);
  color: rgba(1,158,199,.9);
}

.programacion-item__tag[data-category="teatro"]{
  border-color: rgba(255,255,255,.22);
  color: rgba(255,255,255,.72);
}

.programacion-item__tag[data-category="musica"]{
  border-color: rgba(199,204,0,.2);
  color: rgba(199,204,0,.75);
}

.programacion-item__tag[data-category="podcast"]{
  border-color: rgba(18,163,140,.22);
  color: rgba(18,163,140,.78);
}

.programacion-item__cta.btn{
  flex-shrink: 0;
  align-self: center;
}

.programacion-item__cta.btn::before{
  display: none;
}

@media (max-width: 720px){
  .programacion-item{
    grid-template-columns: 88px 1fr;
    grid-template-rows: auto auto;
    align-items: start;
    gap: clamp(10px, 2.5vw, 14px);
    padding: clamp(14px, 2.5vw, 18px) 0;
  }

  .programacion-item__thumb{
    width: 88px;
    grid-row: 1 / -1;
  }

  .programacion-item__cta{
    grid-column: 2;
    width: 100%;
    justify-self: stretch;
    text-align: center;
    margin-top: 4px;
    min-height: 44px;
  }

  .programacion-section .cartelera-filters{
    flex-direction: column;
    align-items: stretch;
  }
  .programacion-section .cartelera-filters__group{
    align-items: stretch;
  }
  .programacion-section .cartelera-filters__pills{
    justify-content: flex-start;
  }
  .programacion-section .filter-pill{
    min-height: 44px;
    padding: .6em 1.15em;
  }
}

@media (max-width: 480px){
  .site-main{
    padding-left: clamp(16px, 4vw, 20px);
    padding-right: clamp(16px, 4vw, 20px);
  }
}

/* MOBILE-FILTERS-COMPACT */
@media (max-width: 768px){
  .programacion-section .cartelera-filters{
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    padding: 8px 10px;
    border-radius: 8px;
  }

  .programacion-section .cartelera-filters__group{
    align-items: stretch;
    gap: 4px;
    min-width: 0;
  }

  .programacion-section .cartelera-filters__label{
    font-size: .52rem;
    letter-spacing: .14em;
    padding-left: 2px;
  }

  .programacion-section .cartelera-filters__pills{
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    gap: 5px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    overscroll-behavior-x: contain;
    padding-bottom: 1px;
    margin: 0 -2px;
  }

  .programacion-section .cartelera-filters__pills::-webkit-scrollbar{
    display: none;
  }

  .programacion-section .filter-pill{
    flex-shrink: 0;
    font-size: .54rem;
    letter-spacing: .1em;
    padding: .42em .88em;
    min-height: 44px;
    white-space: nowrap;
  }

  .programacion-toolbar{
    gap: clamp(10px, 2vw, 16px);
  }
}

@media (max-width: 480px){
  .programacion-section .cartelera-filters{
    gap: 6px;
    padding: 6px 8px;
  }

  .programacion-section .cartelera-filters__group{
    gap: 3px;
  }

  .programacion-section .cartelera-filters__label{
    font-size: .5rem;
  }

  .programacion-section .cartelera-filters__pills{
    gap: 4px;
  }

  .programacion-section .filter-pill{
    font-size: .52rem;
    padding: .38em .78em;
    min-height: 44px;
  }
}
/* MOBILE-FILTERS-COMPACT END */

/* === DESKTOP-HEADER-SLIM START === */
@media (min-width: 769px){
  .site-nav__inner{
    /* ANNOUNCE-NAV-BREATH — was: 7px (DESKTOP-HEADER-SLIM); NAV-TALLER — was: 14px */
    padding-top: 16px;
    padding-bottom: 16px;
  }
  .site-nav__logo img{
    /* NAV-TALLER — was: clamp(70px, 11vw, 106px) */
    width: clamp(77px, 12.1vw, 117px);
  }
}
/* === DESKTOP-HEADER-SLIM END === */

/* === HERO-HEIGHT-SLIM START === */
/* La sala + Quiénes somos. Programación no tiene imagen hero. */
.corfu7-sala .page-hero,
.corfu7-quienes-somos .page-hero{
  max-height: min(32vh, 280px);
}
.corfu7-sala .page-hero img,
.corfu7-quienes-somos .page-hero img{
  height: min(32vh, 280px);
}
@media (max-width: 768px){
  .corfu7-sala .page-hero,
  .corfu7-quienes-somos .page-hero{
    max-height: min(28vh, 220px);
  }
  .corfu7-sala .page-hero img,
  .corfu7-quienes-somos .page-hero img{
    height: min(28vh, 220px);
  }
  .corfu7-sala .page-hero__caption{
    padding: clamp(10px, 1.6vh, 18px) clamp(16px, 4vw, 28px);
  }
}

/*
 * Fallback for already-published live content: first Gutenberg image inside
 * .entry-content (no .page-hero class yet) gets slim branded hero treatment
 * and breaks out of .site-main max-width. Disabled when page.php already
 * printed a .page-hero before <main> (so the next content image stays normal).
 */
body:not(:has(> .page-hero)) .corfu7-sala .entry-content > .wp-block-image:first-child,
body:not(:has(> .page-hero)) .corfu7-quienes-somos .entry-content > .wp-block-image:first-child,
body:not(:has(> .page-hero)) .corfu7-sala .site-article__content > .wp-block-image:first-child,
body:not(:has(> .page-hero)) .corfu7-quienes-somos .site-article__content > .wp-block-image:first-child{
  position: relative;
  width: 100vw;
  max-width: 100vw;
  margin: calc(-1 * (var(--header-offset) + clamp(32px, 4vh, 48px))) calc(50% - 50vw) clamp(32px, 4vh, 48px);
  max-height: min(32vh, 280px);
  overflow: hidden;
  border-bottom: 1px solid var(--hairline);
}
body:not(:has(> .page-hero)) .corfu7-sala .entry-content > .wp-block-image:first-child img,
body:not(:has(> .page-hero)) .corfu7-quienes-somos .entry-content > .wp-block-image:first-child img,
body:not(:has(> .page-hero)) .corfu7-sala .site-article__content > .wp-block-image:first-child img,
body:not(:has(> .page-hero)) .corfu7-quienes-somos .site-article__content > .wp-block-image:first-child img{
  width: 100%;
  height: min(32vh, 280px);
  object-fit: cover;
  object-position: center 40%;
  display: block;
}
body:not(:has(> .page-hero)) .corfu7-sala .entry-content > .wp-block-image:first-child img,
body:not(:has(> .page-hero)) .corfu7-sala .site-article__content > .wp-block-image:first-child img{
  filter: grayscale(100%) contrast(1.06) brightness(.78);
  object-position: center 45%;
}
body:not(:has(> .page-hero)) .corfu7-sala .entry-content > .wp-block-image:first-child::before,
body:not(:has(> .page-hero)) .corfu7-sala .site-article__content > .wp-block-image:first-child::before{
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(
      108deg,
      transparent 13.8%,
      rgba(199, 204, 0, .50) 13.8%,
      rgba(199, 204, 0, .50) 14.6%,
      transparent 14.6%
    ),
    linear-gradient(
      108deg,
      transparent 16%,
      rgba(199, 204, 0, .46) 16%,
      rgba(107, 146, 0, .50) 29%,
      transparent 29%
    ),
    linear-gradient(
      108deg,
      transparent 53%,
      rgba(1, 158, 199, .46) 53%,
      rgba(18, 163, 140, .50) 66%,
      transparent 66%
    ),
    linear-gradient(
      108deg,
      transparent 76.2%,
      rgba(18, 163, 140, .50) 76.2%,
      rgba(18, 163, 140, .50) 77%,
      transparent 77%
    );
}
body:not(:has(> .page-hero)) .corfu7-quienes-somos .entry-content > .wp-block-image:first-child img,
body:not(:has(> .page-hero)) .corfu7-quienes-somos .site-article__content > .wp-block-image:first-child img{
  filter: brightness(.65);
  object-position: center 25%;
}
/* Hide duplicate in-content H1 when template already prints .site-article__title */
.site-article__header + .entry-content > h1.wp-block-heading:first-child,
.site-article__header + .site-article__content > h1.wp-block-heading:first-child,
.site-article__header + .entry-content > .wp-block-image:first-child + h1.wp-block-heading,
.site-article__header + .site-article__content > .wp-block-image:first-child + h1.wp-block-heading{
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
@media (max-width: 768px){
  body:not(:has(> .page-hero)) .corfu7-sala .entry-content > .wp-block-image:first-child,
  body:not(:has(> .page-hero)) .corfu7-quienes-somos .entry-content > .wp-block-image:first-child,
  body:not(:has(> .page-hero)) .corfu7-sala .site-article__content > .wp-block-image:first-child,
  body:not(:has(> .page-hero)) .corfu7-quienes-somos .site-article__content > .wp-block-image:first-child{
    max-height: min(28vh, 220px);
  }
  body:not(:has(> .page-hero)) .corfu7-sala .entry-content > .wp-block-image:first-child img,
  body:not(:has(> .page-hero)) .corfu7-quienes-somos .entry-content > .wp-block-image:first-child img,
  body:not(:has(> .page-hero)) .corfu7-sala .site-article__content > .wp-block-image:first-child img,
  body:not(:has(> .page-hero)) .corfu7-quienes-somos .site-article__content > .wp-block-image:first-child img{
    height: min(28vh, 220px);
  }
}
/* === HERO-HEIGHT-SLIM END === */

/* === POLISH-PACK START === */

/* 1. Subtle grain + faint vignette on inner pages */
body.corfu7-inner::before{
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .025;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}
body.corfu7-inner::after{
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at center, transparent 58%, rgba(0,0,0,.28) 100%);
  opacity: .35;
}
body.corfu7-inner .site-main,
body.corfu7-inner .page-hero{
  position: relative;
  z-index: 1;
}

/* 3. Programación list row hover + CTA alignment */
.programacion-item{
  border-left: 2px solid transparent;
  margin-left: -2px;
  padding-left: clamp(14px, 2.5vw, 22px);
  transition: background .25s var(--ease), border-color .25s var(--ease);
}
.programacion-item:hover{
  background: rgba(255,255,255,.04);
  border-left-color: var(--lime);
}
.programacion-item__cta.btn{
  border: 1px solid var(--hairline);
  background: rgba(255,255,255,.02);
  box-shadow: none;
}
.programacion-item__cta.btn:hover,
.programacion-item:hover .programacion-item__cta.btn{
  color: var(--lime);
  border-color: rgba(199,204,0,.45);
  background: rgba(18,163,140,.08);
  transform: translateY(-1px);
  box-shadow: none;
}

/* 4. Empty state (filters / search) */
.cartelera-empty{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(12px, 2vh, 18px);
  padding: clamp(28px, 4vh, 44px) clamp(16px, 4vw, 24px);
  text-align: center;
}
.cartelera-empty[hidden]{
  display: none !important;
}
.cartelera-empty__message{
  margin: 0;
  font-family: var(--tiny);
  font-size: clamp(.62rem, .35vw + .52rem, .76rem);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink-faint);
}
.cartelera-empty__reset{
  cursor: pointer;
}

/* 5. Typography polish on inner prose */
.site-article__content,
.site-article .entry-content{
  line-height: 1.75;
}
.site-article__content p,
.site-article .entry-content p{
  margin-bottom: 1.1em;
}
.site-article__content p:last-child,
.site-article .entry-content p:last-child{
  margin-bottom: 0;
}

/* 6. Footer polish */
.ubicacion-strip{
  padding-top: clamp(12px, 1.4vh, 18px);
  border-top: 1px solid rgba(255,255,255,.14);
  box-shadow: inset 0 1px 0 rgba(18,163,140,.1);
}

/* === POLISH-PACK END === */

/* === MOBILE-FILTERS-COMPACT START === */
/* Revert: delete this block — restores taller programación toolbar on mobile */
@media (max-width: 768px) {
  .programacion-section {
    gap: clamp(14px, 2vh, 22px);
  }
  .programacion-section__header {
    margin-bottom: 0;
    padding: 0;
  }
  .programacion-section__header .site-article__subtitle {
    margin-bottom: clamp(4px, .6vh, 8px);
  }
  .programacion-section__header .site-article__title {
    padding-bottom: clamp(6px, .8vh, 10px);
  }
  .programacion-toolbar {
    gap: 10px;
  }
  .programacion-search {
    gap: 4px;
  }
  .programacion-search__label {
    font-size: clamp(.52rem, .28vw + .44rem, .6rem);
    letter-spacing: .14em;
  }
  .programacion-search__input {
    font-size: clamp(.82rem, .35vw + .72rem, .92rem);
    padding: .5em .85em;
    min-height: 44px;
  }
  .programacion-section .cartelera-filters {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    padding: 8px 10px;
  }
  .programacion-section .cartelera-filters__group {
    align-items: stretch;
    gap: 4px;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
  }
  .programacion-section .cartelera-filters__pills {
    flex-wrap: nowrap;
    justify-content: flex-start;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    gap: 5px;
    padding-bottom: 2px;
    margin: 0 -2px;
    width: 100%;
    max-width: 100%;
  }
  .programacion-section .cartelera-filters__pills::-webkit-scrollbar {
    display: none;
  }
  .programacion-section .filter-pill {
    flex-shrink: 0;
    min-height: 44px;
    padding: .45em .85em;
    font-size: clamp(.5rem, .24vw + .44rem, .58rem);
    letter-spacing: .1em;
  }
}
/* === MOBILE-FILTERS-COMPACT END === */

/* === FOOTER-REDESIGN START === */
/* Full-bleed: Hello Elementor constrains .site-footer:not(.dynamic-footer) to ~1140px */
body .site-footer,
body .site-footer:not(.dynamic-footer),
.site-footer{
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  background: #0a0b0f;
  border-top: 1px solid rgba(255,255,255,.14);
  box-shadow: inset 0 1px 0 rgba(18,163,140,.1);
  overflow: visible;
}
.bottom-bar{
  width: 100%;
  max-width: none;
  left: 0;
  right: 0;
}
.site-footer__main{
  padding: clamp(32px, 4vh, 48px) clamp(20px, 5vw, 40px) calc(clamp(28px, 3.5vh, 40px) + var(--bottom-bar-h));
  overflow: visible;
}
.site-footer__inner{
  max-width: var(--container);
  margin: 0 auto;
}
.site-footer__brand{
  margin-bottom: clamp(22px, 3vh, 32px);
}
.site-footer__brand .site-footer__social--mobile{
  margin-top: clamp(12px, 1.8vh, 16px);
}
.site-footer__logo{
  display: inline-block;
  margin-bottom: 0;
  line-height: 0;
}
.site-footer__logo img{
  display: block;
  width: clamp(100px, 14vw, 120px);
  height: auto;
  filter: brightness(0) invert(1);
}
.site-footer__grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(24px, 3.5vw, 40px);
  align-items: start;
  overflow: visible;
}
.site-footer__col{
  overflow: visible;
  min-height: auto;
}
.site-footer__heading{
  margin: 0 0 clamp(8px, 1.2vh, 12px);
  font-family: var(--tiny);
  font-size: clamp(.62rem, .35vw + .52rem, .72rem);
  font-weight: 400;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--white);
}
.site-footer__list{
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.site-footer__list a{
  font-family: var(--body);
  font-size: clamp(.84rem, .3vw + .76rem, .94rem);
  line-height: 1.35;
  color: var(--ink-dim);
  text-decoration: none;
  transition: color .25s var(--ease);
}
.site-footer__list a:hover{
  color: var(--lime);
}
.site-footer__address{
  margin: 0 0 clamp(10px, 1.5vh, 14px);
  font-style: normal;
  font-size: clamp(.84rem, .3vw + .76rem, .94rem);
  line-height: 1.45;
  color: var(--ink-dim);
}
.site-footer__address a{
  color: var(--teal);
  text-decoration: none;
}
.site-footer__address a:hover{
  color: var(--lime);
}
.site-footer__directions{
  margin-bottom: clamp(12px, 1.8vh, 16px);
}
.site-footer__social{
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: clamp(12px, 1.8vh, 16px);
}
.site-footer__social-link{
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,.85);
  border-radius: 50%;
  border: 1px solid transparent;
  transition: color .25s var(--ease), background .25s var(--ease), border-color .25s var(--ease), box-shadow .25s var(--ease), transform .25s var(--ease);
}
.site-footer__social-link svg{
  width: 100%;
  height: 100%;
}
.site-footer__social-link:hover{
  color: var(--black);
  border-color: transparent;
  background: linear-gradient(135deg, var(--lime), var(--teal) 55%, var(--blue));
  box-shadow: 0 6px 18px -6px rgba(18,163,140,.45);
  transform: translateY(-1px);
}
.site-footer__bar{
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px 20px;
  padding: clamp(14px, 1.8vh, 20px) clamp(16px, 4vw, 40px);
  background: #0a0b0f;
  border-top: 1px solid rgba(255,255,255,.1);
}
.site-footer__copy{
  margin: 0;
  font-family: var(--tiny);
  font-size: clamp(.62rem, .35vw + .52rem, .72rem);
  letter-spacing: .06em;
  color: var(--ink-faint);
}
.bottom-bar .site-footer__bar{
  box-shadow: inset 0 1px 0 rgba(18,163,140,.08);
}

/* Servicios al espectador */
.page-hero--overlay{
  position: relative;
  overflow: hidden;
}
.page-hero--overlay::after{
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(8,9,13,.35) 0%, rgba(8,9,13,.72) 100%);
  pointer-events: none;
}
.page-hero--overlay .page-hero__title{
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: clamp(16px, 3vh, 28px);
  font-family: var(--corfu7-display);
  font-size: clamp(1.75rem, 4vw + 1rem, 3rem);
  font-weight: 400;
  letter-spacing: .02em;
  color: var(--white);
  text-align: center;
  text-shadow: 0 2px 24px rgba(0,0,0,.45);
}
.corfu7-hero-slim .page-hero{
  max-height: min(32vh, 280px);
}
.corfu7-hero-slim .page-hero img{
  height: min(32vh, 280px);
  object-fit: cover;
  width: 100%;
}
.corfu7-servicios .site-article__header{
  display: none;
}
@media (max-width: 768px){
  .corfu7-hero-slim .page-hero{
    max-height: min(28vh, 220px);
  }
  .corfu7-hero-slim .page-hero img{
    height: min(28vh, 220px);
  }
}
.servicios-grid{
  display: flex;
  flex-direction: column;
  gap: clamp(28px, 4vh, 44px);
  padding: clamp(8px, 1vh, 12px) 0 clamp(12px, 2vh, 20px);
}
.servicio-row{
  display: grid;
  grid-template-columns: clamp(88px, 12vw, 120px) minmax(0, 1fr);
  gap: clamp(20px, 3vw, 36px);
  align-items: start;
  padding-bottom: clamp(28px, 4vh, 44px);
  border-bottom: 1px solid var(--hairline);
}
.servicio-row:last-child{
  padding-bottom: 0;
  border-bottom: 0;
}
.servicio-row__icon{
  width: clamp(88px, 12vw, 120px);
  height: clamp(88px, 12vw, 120px);
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.22);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  background: rgba(255,255,255,.02);
}
.servicio-row__icon svg{
  width: 52%;
  height: 52%;
}
.servicio-row__body{
  font-size: clamp(.92rem, .35vw + .82rem, 1.02rem);
  line-height: 1.7;
  color: var(--ink-dim);
}
.servicio-row__body p{
  margin: 0 0 .85em;
}
.servicio-row__body p:last-child{
  margin-bottom: 0;
}
.servicio-row__body strong{
  color: var(--white);
  font-weight: 500;
}
.servicio-row__body a{
  color: var(--teal);
  font-weight: 500;
}
.servicio-row__body a:hover{
  color: var(--lime);
}

/* Legal pages */
.legal-page .site-article__content h2{
  margin: clamp(1.75rem, 4vh, 2.5rem) 0 .75em;
  font-family: var(--corfu7-display);
  font-size: clamp(1.15rem, .8vw + 1rem, 1.45rem);
  font-weight: 400;
  color: var(--white);
}
.legal-page .site-article__content h2:first-child{
  margin-top: 0;
}
.legal-page .site-article__content ul{
  margin-bottom: 1.1em;
}

@media (max-width: 768px){
  .site-footer__main{
    padding-bottom: calc(clamp(40px, 6vh, 56px) + var(--bottom-bar-h) + env(safe-area-inset-bottom, 0px));
  }
  .site-footer__inner{
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: clamp(22px, 4vw, 32px);
  }
  .site-footer__brand{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: clamp(12px, 2vh, 16px);
    margin-bottom: 0;
  }
  .site-footer__grid{
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    gap: clamp(20px, 3.5vw, 28px);
  }
  .site-footer__col{
    width: 100%;
    max-width: 320px;
  }
  .site-footer__col:nth-child(2) .site-footer__list{
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: clamp(16px, 5vw, 24px);
    row-gap: 6px;
    text-align: left;
  }
  .site-footer__col:nth-child(3){
    padding-top: clamp(16px, 2.5vh, 20px);
    border-top: 1px solid rgba(255,255,255,.1);
  }
  .site-footer__col:nth-child(3) .site-footer__directions{
    display: inline-flex;
  }
  .site-footer__brand .site-footer__social--mobile{
    justify-content: center;
    margin-top: 0;
    gap: 12px;
  }
  .site-footer__social-link{
    width: 36px;
    height: 36px;
    padding: 8px;
    box-sizing: border-box;
  }
  .site-footer__directions.btn{
    min-height: 44px;
  }

  /* Legacy footer markup (no .site-footer__brand wrapper) */
  .site-footer__inner:not(:has(.site-footer__brand)){
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .site-footer__inner:not(:has(.site-footer__brand)) > .site-footer__logo{
    margin-bottom: 0;
  }
  .servicio-row{
    grid-template-columns: clamp(72px, 18vw, 96px) minmax(0, 1fr);
    gap: clamp(16px, 4vw, 24px);
  }
  .servicio-row__icon{
    width: clamp(72px, 18vw, 96px);
    height: clamp(72px, 18vw, 96px);
  }
}
@media (max-width: 600px){
  .site-footer__bar{
    padding: clamp(12px, 1.6vh, 16px) clamp(16px, 4vw, 40px);
  }
}
/* === FOOTER-SOCIAL-DESKTOP START === */
/* Revert: remove this block; restore single .site-footer__social in .site-footer__brand only */
@media (min-width: 769px){
  .site-footer__social--mobile{
    display: none;
  }
}
@media (max-width: 768px){
  .site-footer__social--desktop{
    display: none;
  }
}
/* === FOOTER-SOCIAL-DESKTOP END === */

/* === FOOTER-REDESIGN END === */

/* === MOB-FOOTER-B START === */
/* Opción B — Accordion footer mobile. Revert: delete this block */

/* Hide on desktop, show on mobile */
.mob-footer-b { display: none; }
@media (max-width: 768px) {
  .site-footer__inner { display: none !important; }
  .mob-footer-b { display: block; padding: 28px 20px calc(24px + var(--bottom-bar-h) + env(safe-area-inset-bottom, 0px)); }
}

/* Brand: logo + social */
.mob-footer-b__brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  margin-bottom: 20px;
}
.mob-footer-b__logo img {
  display: block;
  width: 108px;
  height: auto;
  filter: brightness(0) invert(1);
}

/* Social */
.mob-footer-b__social {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}
.mob-footer-b__social-link {
  width: 36px;
  height: 36px;
  padding: 8px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,.85);
  border-radius: 50%;
  border: 1px solid transparent;
  transition: color .25s var(--ease), background .25s var(--ease), transform .25s var(--ease);
}
.mob-footer-b__social-link svg { width: 100%; height: 100%; }
.mob-footer-b__social-link:hover {
  color: var(--black);
  background: linear-gradient(135deg, var(--lime), var(--teal) 55%, var(--blue));
  transform: translateY(-1px);
}

/* Accordions */
.mob-footer-b__accordions {
  display: flex;
  flex-direction: column;
}
.mob-footer-b__accordion {
  border-top: 1px solid rgba(255,255,255,.1);
}
.mob-footer-b__accordion:last-child {
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.mob-footer-b__accordion > summary {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 4px;
  cursor: pointer;
  font-family: var(--tiny);
  font-size: clamp(.64rem, .38vw + .54rem, .74rem);
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--white);
  user-select: none;
}
.mob-footer-b__accordion > summary::-webkit-details-marker { display: none; }
.mob-footer-b__accordion > summary::after {
  content: "";
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  border-right: 1.5px solid var(--teal);
  border-bottom: 1.5px solid var(--teal);
  transform: rotate(45deg);
  transition: transform .25s var(--ease);
  margin-top: -3px;
}
.mob-footer-b__accordion[open] > summary::after {
  transform: rotate(-135deg);
  margin-top: 3px;
}
.mob-footer-b__accordion-body {
  padding: 0 4px 16px;
}

/* Lists */
.mob-footer-b__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.mob-footer-b__list a {
  display: block;
  padding: 4px 0;
  font-family: var(--body);
  font-size: clamp(.92rem, .34vw + .82rem, 1.02rem);
  line-height: 1.35;
  color: var(--ink-dim);
  text-decoration: none;
  transition: color .25s var(--ease);
}
.mob-footer-b__list a:hover { color: var(--lime); }

/* Address */
.mob-footer-b__address {
  margin: 0 0 12px;
  font-style: normal;
  font-size: clamp(.92rem, .34vw + .82rem, 1.02rem);
  line-height: 1.45;
  color: var(--ink-dim);
  text-align: left;
}
.mob-footer-b__address a { color: var(--teal); text-decoration: none; }
.mob-footer-b__address a:hover { color: var(--lime); }

/* Directions button */
.mob-footer-b__directions { min-height: 44px; }
/* === MOB-FOOTER-B END === */

/* === MOBILE-TYPE-BUMP START === */
/* Revert: delete this block to restore pre-bump mobile typography */
@media (max-width: 768px){
  .btn-compact{
    font-size: clamp(.68rem, .44vw + .56rem, .84rem);
  }

  .quienes-chandrio__title{
    font-size: clamp(.68rem, .32vw + .6rem, .8rem);
  }

  .programacion-item__datetime{
    font-size: clamp(.68rem, .36vw + .58rem, .82rem);
  }
  .programacion-item__tag{
    font-size: clamp(.58rem, .3vw + .5rem, .68rem);
    padding: .4em .8em;
  }
  .programacion-item__cta.btn-compact{
    font-size: clamp(.68rem, .44vw + .56rem, .84rem);
    letter-spacing: .14em;
  }

  .site-footer__heading{
    font-size: clamp(.68rem, .38vw + .56rem, .78rem);
  }
  .site-footer__list a,
  .site-footer__address{
    font-size: clamp(.92rem, .34vw + .82rem, 1.02rem);
  }

  .announce-track p{
    font-size: clamp(.62rem, 1.8vw, .76rem);
  }
}
/* === MOBILE-TYPE-BUMP END === */

/* === DESKTOP-CHANDRIO-TITLE START === */
/* Revert: delete this block to restore pre-bump desktop Chandrío heading size */
@media (min-width: 769px){
  .quienes-chandrio__title{
    font-size: clamp(.85rem, 1.2vw, 1.1rem);
  }
}
/* === DESKTOP-CHANDRIO-TITLE END === */

/* === IMAGE-PROTECTION START === */
img{
  -webkit-user-select: none;
  user-select: none;
  -webkit-user-drag: none;
  user-drag: none;
  pointer-events: none;
}
/* === IMAGE-PROTECTION END === */

/* === ANNOUNCE-TICKER-TYPE START === */
/* Revert: delete this block to restore pre-bump announce ticker typography */
:root{
  /* was: clamp(22px, 2.8vh, 32px) */
  --announce-h: clamp(38px, 4.8vh, 50px);
}
.announce-track p{
  /* was: clamp(.62rem, .32vw + .54rem, .74rem) */
  font-size: clamp(.74rem, .36vw + .62rem, .88rem);
}
@media (max-width: 768px){
  :root{
    /* was: clamp(22px, 3.2vh, 28px) */
    --announce-h: clamp(26px, 3.6vh, 32px);
  }
  .announce-track p{
    /* was: clamp(.58rem, 1.7vw, .72rem) — MOBILE-TYPE-BUMP had .62rem/1.8vw/.76rem */
    font-size: clamp(.72rem, 2vw, .85rem);
  }
}
@media (max-width: 480px){
  :root{
    /* was: clamp(20px, 3vh, 24px) */
    --announce-h: clamp(24px, 3.4vh, 28px);
  }
  .announce-track p{
    /* was: clamp(.54rem, 1.5vw, .66rem) */
    font-size: clamp(.68rem, 1.85vw, .8rem);
  }
}
/* === ANNOUNCE-TICKER-TYPE END === */

/* === FORM-LIGHT-SURFACE START === */
/* Revert: delete this block to restore unthemed CF7 / light form cards.
   Contact Form 7 (and peers) sit on white cards but inherit body/entry white text.
   Scoped under form wrappers only — does not touch .newsletter-module or site chrome. */
.wpcf7,
.cfcf7-block,
.cfcf7-block-container,
.gform_wrapper,
.wpforms-container,
.fluentform,
.elementor-form,
.entry-content .wpcf7,
.site-article__content .wpcf7{
  --form-ink: #12141a;
  --form-ink-muted: rgba(18, 20, 26, .68);
  --form-ink-faint: rgba(18, 20, 26, .42);
  --form-hairline: rgba(18, 20, 26, .18);
  --form-hairline-strong: rgba(18, 20, 26, .32);
  color: var(--form-ink);
}

.wpcf7,
.cfcf7-block .wpcf7,
.cfcf7-block{
  font-family: var(--body);
  line-height: 1.65;
}

/* CF7 card: keep light surface, calm Corfú spacing */
.cfcf7-block-container{
  max-width: min(100%, 840px);
  margin-left: auto;
  margin-right: auto;
}
.cfcf7-block{
  background-color: #fff;
  color: var(--form-ink);
}

.wpcf7 form,
.wpcf7-form{
  margin: 0;
  color: var(--form-ink);
}

.wpcf7 p,
.cfcf7-block p,
.wpcf7 .seccion-formulario p{
  color: var(--form-ink-muted);
  margin: 0 0 clamp(1rem, 2.2vw, 1.35rem);
}

.wpcf7 .seccion-formulario{
  margin: 0 0 clamp(1.75rem, 3.5vw, 2.5rem);
  padding: 0;
  border: none;
}
.wpcf7 .seccion-formulario:last-of-type{
  margin-bottom: clamp(1.25rem, 2.5vw, 1.75rem);
}

/* Section titles — dark + branded underline (contact-section__title cousin) */
.wpcf7 .seccion-formulario h2,
.wpcf7 .seccion-formulario h3,
.wpcf7 h2,
.wpcf7 h3,
.cfcf7-block h2,
.cfcf7-block h3,
.entry-content .wpcf7 h2,
.entry-content .wpcf7 h3,
.site-article__content .wpcf7 h2,
.site-article__content .wpcf7 h3{
  position: relative;
  margin: 0 0 clamp(1.1rem, 2.4vw, 1.5rem);
  padding: 0 0 .55em;
  padding-left: 0;
  border-left: none;
  font-family: var(--corfu7-display);
  font-size: clamp(1.15rem, 2.2vw, 1.45rem);
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--form-ink) !important;
  -webkit-text-fill-color: var(--form-ink);
}
.wpcf7 .seccion-formulario h2::after,
.wpcf7 .seccion-formulario h3::after,
.wpcf7 h2::after,
.wpcf7 h3::after,
.cfcf7-block h2::after,
.cfcf7-block h3::after,
.entry-content .wpcf7 h2::after,
.entry-content .wpcf7 h3::after,
.site-article__content .wpcf7 h2::after,
.site-article__content .wpcf7 h3::after{
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: clamp(44px, 7vw, 68px);
  height: 2px;
  background: linear-gradient(90deg, var(--lime), var(--teal) 50%, var(--blue));
  border-radius: 1px;
  opacity: .9;
}

/* Labels — never inherit body white on light cards */
.wpcf7 label,
.wpcf7 .wpcf7-list-item-label,
.cfcf7-block label,
.gform_wrapper label,
.gform_wrapper .gfield_label,
.wpforms-container .wpforms-field-label,
.fluentform label,
.elementor-form label,
.entry-content .wpcf7 label,
.site-article__content .wpcf7 label{
  display: block;
  font-family: var(--tiny);
  font-size: clamp(.62rem, .3vw + .52rem, .72rem);
  letter-spacing: .14em;
  text-transform: uppercase;
  line-height: 1.45;
  color: var(--form-ink-muted) !important;
  -webkit-text-fill-color: var(--form-ink-muted);
  margin: 0 0 .45em;
}
.wpcf7 .wpcf7-list-item label{
  display: inline-flex;
  align-items: flex-start;
  gap: .55em;
  text-transform: none;
  letter-spacing: .02em;
  font-family: var(--body);
  font-size: clamp(.88rem, 1.1vw, .95rem);
  color: var(--form-ink) !important;
  -webkit-text-fill-color: var(--form-ink);
  margin: 0;
  cursor: pointer;
}
.wpcf7 .wpcf7-list-item-label{
  display: inline;
  text-transform: none;
  letter-spacing: .02em;
  font-family: var(--body);
  font-size: inherit;
}
.wpcf7 legend{
  font-family: var(--tiny);
  font-size: clamp(.62rem, .3vw + .52rem, .72rem);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--form-ink-muted) !important;
}

/* Fields — contact-form underline language, light-surface ink */
.wpcf7 .wpcf7-form-control-wrap{
  display: block;
  width: 100%;
  max-width: 100%;
}
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 input[type="date"],
.wpcf7 input[type="datetime-local"],
.wpcf7 input[type="time"],
.wpcf7 input[type="search"],
.wpcf7 textarea,
.wpcf7 select,
.cfcf7-block input[type="text"],
.cfcf7-block input[type="email"],
.cfcf7-block input[type="tel"],
.cfcf7-block input[type="url"],
.cfcf7-block input[type="number"],
.cfcf7-block input[type="date"],
.cfcf7-block textarea,
.cfcf7-block select,
.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper textarea,
.gform_wrapper select,
.wpforms-container input[type="text"],
.wpforms-container input[type="email"],
.wpforms-container textarea,
.wpforms-container select,
.fluentform input,
.fluentform textarea,
.fluentform select,
.elementor-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.elementor-form textarea,
.elementor-form select{
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  font-family: var(--body);
  font-size: clamp(.9rem, 1.2vw, .95rem);
  line-height: 1.5;
  color: var(--form-ink) !important;
  -webkit-text-fill-color: var(--form-ink);
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid var(--form-hairline) !important;
  border-radius: 0 !important;
  padding: .65em 0 .75em !important;
  box-shadow: none !important;
  transition: border-color .25s var(--ease), box-shadow .25s var(--ease);
}
.wpcf7 textarea,
.cfcf7-block textarea{
  resize: vertical;
  min-height: 7.5rem;
}
.wpcf7 select,
.cfcf7-block select{
  appearance: none;
  color-scheme: light;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2312141a' fill-opacity='.45' d='M1.4.6 6 5.2 10.6.6 12 2l-6 6-6-6z'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 0 center !important;
  padding-right: 1.5em !important;
  cursor: pointer;
}
.wpcf7 select option,
.cfcf7-block select option{
  background-color: #fff;
  color: var(--form-ink);
}
.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder,
.cfcf7-block input::placeholder,
.cfcf7-block textarea::placeholder{
  color: var(--form-ink-faint) !important;
  -webkit-text-fill-color: var(--form-ink-faint);
  opacity: 1;
}
.wpcf7 input:hover,
.wpcf7 textarea:hover,
.wpcf7 select:hover,
.cfcf7-block input:hover,
.cfcf7-block textarea:hover,
.cfcf7-block select:hover{
  border-bottom-color: var(--form-hairline-strong) !important;
}
.wpcf7 input:focus,
.wpcf7 textarea:focus,
.wpcf7 select:focus,
.wpcf7 input:focus-visible,
.wpcf7 textarea:focus-visible,
.wpcf7 select:focus-visible,
.cfcf7-block input:focus,
.cfcf7-block textarea:focus,
.cfcf7-block select:focus{
  outline: none !important;
  border-bottom-color: var(--teal) !important;
  box-shadow: 0 1px 0 0 var(--teal) !important;
}

/* Checkbox / acceptance */
.wpcf7 input[type="checkbox"],
.wpcf7 input[type="radio"],
.cfcf7-block input[type="checkbox"],
.cfcf7-block input[type="radio"]{
  width: auto;
  max-width: none;
  margin: .2em .15em 0 0;
  accent-color: var(--teal);
  border: none !important;
  border-bottom: none !important;
  padding: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  -webkit-text-fill-color: unset;
}
.wpcf7 .wpcf7-acceptance,
.wpcf7 .wpcf7-checkbox,
.wpcf7 .wpcf7-radio{
  margin-top: .35em;
}
.wpcf7 .wpcf7-list-item{
  margin: 0 0 .35em;
}

/* Submit — site button language adapted for light card */
.wpcf7 input[type="submit"],
.wpcf7 button[type="submit"],
.wpcf7 .wpcf7-submit,
.cfcf7-block .wpcf7-submit{
  font-family: var(--tiny);
  font-size: .82rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: min(100%, 14rem);
  min-height: 48px;
  padding: 1.1em 2.2em !important;
  margin-top: clamp(.35rem, 1vw, .75rem);
  border-radius: 2px !important;
  border: 1px solid rgba(18, 20, 26, .72) !important;
  cursor: pointer;
  color: var(--form-ink) !important;
  -webkit-text-fill-color: var(--form-ink);
  background: transparent !important;
  box-shadow: 0 8px 24px -14px rgba(1, 158, 199, .35);
  width: auto !important;
  max-width: 100%;
  transition: transform .35s var(--ease), background .35s var(--ease), border-color .35s var(--ease), color .35s var(--ease), box-shadow .35s var(--ease);
}
.wpcf7 input[type="submit"]:hover,
.wpcf7 input[type="submit"]:focus-visible,
.wpcf7 button[type="submit"]:hover,
.wpcf7 button[type="submit"]:focus-visible,
.wpcf7 .wpcf7-submit:hover,
.wpcf7 .wpcf7-submit:focus-visible,
.cfcf7-block .wpcf7-submit:hover,
.cfcf7-block .wpcf7-submit:focus-visible{
  color: var(--black) !important;
  -webkit-text-fill-color: var(--black);
  border-color: transparent !important;
  background: linear-gradient(100deg, var(--lime), var(--teal) 55%, var(--blue)) !important;
  box-shadow: 0 16px 40px -10px rgba(1, 158, 199, .45), 0 0 0 1px rgba(18, 20, 26, .06);
  transform: translateY(-3px) scale(1.015);
  outline: none;
}
.wpcf7 form.submitting .wpcf7-submit{
  opacity: .7;
  pointer-events: none;
}

/* Validation / response */
.wpcf7 .wpcf7-not-valid-tip{
  font-family: var(--tiny);
  font-size: .68rem;
  letter-spacing: .08em;
  color: #b42318 !important;
  margin-top: .4em;
}
.wpcf7 .wpcf7-response-output{
  margin: clamp(1.25rem, 2.5vw, 1.75rem) 0 0 !important;
  padding: clamp(1rem, 2vw, 1.25rem) !important;
  border-radius: 8px;
  font-family: var(--body);
  font-size: clamp(.9rem, 1.2vw, .95rem);
  color: var(--form-ink) !important;
  background: rgba(18, 163, 140, .08);
  border: 1px solid rgba(18, 163, 140, .35) !important;
}
.wpcf7 form.sent .wpcf7-response-output{
  color: #3d4a00 !important;
  background: rgba(199, 204, 0, .1);
  border-color: rgba(199, 204, 0, .4) !important;
}
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output{
  color: #7a1c14 !important;
  background: rgba(180, 35, 24, .06);
  border-color: rgba(180, 35, 24, .35) !important;
}
.wpcf7 .wpcf7-spinner{
  margin: 0 0 0 .75em;
}

@media (max-width: 640px){
  .wpcf7 input[type="submit"],
  .wpcf7 button[type="submit"],
  .wpcf7 .wpcf7-submit,
  .cfcf7-block .wpcf7-submit{
    width: 100% !important;
  }
}
/* === FORM-LIGHT-SURFACE END === */
