/* PRESENTACIÓN: colores, cabecera y componentes compartidos.
   Datos, hosting y autenticación permanecen en sus módulos originales. */
:root {
  --ink:#183e34;
  --paper:#f7f3e9;
  --rust:#9e492c
}
html {
  scroll-padding-top:90px
}
body.branded-site {
  background:var(--paper);
  color:var(--ink)
}
.brand-stage {
  padding:12px 24px 8px
}
.brand-signature {
  border:0;
  box-shadow:none;
  background:none;
  backdrop-filter:none;
  padding:0;
  gap:25px;
  max-width:none
}
.brand-mark {
  width:133px
}
.brand-divider {
  height:35px
}
.brand-destination {
  display:none
}
.branded-site nav {
  top:0;
  border-radius:0;
  width:100%;
  max-width:none;
  border:0;
  border-bottom:1px solid #173f3420;
  background:var(--paper)!important;
  box-shadow:none;
  backdrop-filter:none
}
.branded-site nav>div {
  min-height:56px;
  padding:10px 28px;
  gap:32px
}
.branded-site nav a.bg-primary {
  background:var(--ink);
  color:white;
  border-radius:3px
}
.branded-site #mobile-menu {
  top:56px;
  left:0;
  width:100%;
  border-radius:0;
  background:var(--paper);
  max-height:calc(100dvh - 65px);
  overflow:auto
}
.branded-site:not(.home-tropical)>main {
  padding-top:40px
}
.home-tropical {
  background:var(--paper)!important
}
.home-tropical main {
  overflow:hidden
}
.editorial-hero {
  position:relative;
  min-height:610px;
  height:calc(90svh - 125px);
  max-height:830px;
  background:#173e34;
  color:#fff
}
.editorial-hero>img {
  position:absolute;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 55%
}
.hero-shade {
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#071d19d9 0%,#071d1966 55%,#071d1910),linear-gradient(0deg,#071d1955,transparent 40%)
}
.editorial-hero-copy {
  position:relative;
  max-width:1340px;
  margin:auto;
  padding:90px 6vw 100px
}
.eyebrow {
  font-size:11px;
  font-weight:700;
  letter-spacing:.18em;
  line-height:1.6;
  text-transform:uppercase;
  margin:0 0 22px
}
.editorial-hero h1 {
  font-family:'Playfair Display',serif;
  font-size:clamp(52px,6.3vw,91px);
  font-weight:400;
  line-height:1.04;
  letter-spacing:-.045em;
  max-width:850px;
  color:#fff;
  margin:0 0 25px
}
.editorial-hero .intro {
  max-width:420px;
  font-size:18px;
  line-height:1.65;
  color:#f5f0df
}
.editorial-actions {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:30px
}
.button-solid,.button-light,.button-outline {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:49px;
  padding:13px 25px;
  font-size:14px;
  font-weight:700;
  border-radius:3px;
  text-decoration:none;
  transition:background .2s,transform .2s
}
.button-solid {
  background:#c05f3d;
  color:#fff
}
.button-light {
  background:var(--paper);
  color:var(--ink)
}
.button-outline {
  border:1px solid var(--ink);
  color:var(--ink)
}
.button-solid:hover {
  background:#9e492c
}
.button-light:hover {
  background:#e4dac8
}
.hero-next {
  position:absolute;
  bottom:26px;
  left:6vw;
  font-size:10px;
  letter-spacing:.18em;
  font-weight:700
}
.place-line {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:24px 6vw;
  border-bottom:1px solid #183e3426;
  font-size:10px;
  letter-spacing:.14em;
  font-weight:700
}
.editorial-section {
  max-width:1440px;
  padding:88px 6vw;
  margin:0 auto
}
.section-heading {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:35px
}
.editorial-section h2,.night-section h2,.visit-section h2 {
  font-family:'Playfair Display',serif;
  font-size:clamp(33px,3.7vw,55px);
  font-weight:400;
  line-height:1.14;
  letter-spacing:-.035em;
  color:var(--ink)
}
.section-heading a {
  font-size:14px;
  border-bottom:1px solid var(--ink);
  padding-bottom:7px;
  white-space:nowrap
}
.food-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:26px
}
.food-card img {
  width:100%;
  height:auto;
  aspect-ratio:1.06;
  object-fit:cover;
  border-radius:2px
}
.food-card>div {
  position:relative;
  padding:20px 0
}
.food-card h3 {
  font-family:'Playfair Display',serif;
  font-size:28px;
  margin:0 0 5px
}
.food-card p {
  font-size:12px;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:#4c6358
}
.food-card span {
  position:absolute;
  right:0;
  top:22px;
  font-size:25px
}
.food-card:hover img {
  filter:brightness(1.05)
}
.brand-stories {
  border-top:1px solid #183e3426
}
.story-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:45px
}
.story-grid article>img {
  aspect-ratio:1.35;
  width:100%;
  object-fit:cover
}
.story-grid article>div {
  padding:28px 0
}
.story-grid .eyebrow {
  font-size:10px;
  margin-bottom:15px
}
.story-grid h3 {
  font-family:'Playfair Display',serif;
  font-size:34px;
  line-height:1.2;
  margin-bottom:15px
}
.story-grid p:not(.eyebrow) {
  line-height:1.75;
  max-width:450px;
  color:#4b6054
}
.story-grid a {
  display:inline-block;
  margin-top:24px;
  border-bottom:1px solid var(--ink);
  padding-bottom:5px;
  font-size:14px
}
.night-section {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  background:#153c33;
  color:var(--paper)
}
.night-visual img {
  width:100%;
  height:100%;
  min-height:550px;
  object-fit:cover
}
.night-copy {
  padding:80px 6vw;
  align-self:center
}
.night-section h2 {
  color:var(--paper)
}
.night-copy>p:not(.eyebrow) {
  line-height:1.75;
  margin:26px 0;
  color:#e4e6d9;
  max-width:430px
}
.event-section {
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:50px;
  align-items:center
}
.event-section>div>p:last-child {
  line-height:1.7;
  max-width:340px;
  margin-top:22px;
  color:#4b6054
}
.live-event {
  display:grid;
  grid-template-columns:150px 1fr;
  gap:25px;
  align-items:center;
  border:1px solid #183e3433;
  padding:20px
}
.live-event>div:first-child {
  background:#234e40 center/cover;
  min-height:195px;
  height:100%
}
.live-event h3 {
  font-family:'Playfair Display',serif;
  font-size:28px;
  line-height:1.2;
  margin-bottom:12px
}
.live-event p {
  font-size:13px;
  line-height:1.6
}
.live-event p:first-child {
  font-size:10px;
  letter-spacing:.1em;
  margin-bottom:12px;
  font-weight:700;
  color:var(--rust)
}
.visit-section {
  text-align:center;
  background:#e8e7d5;
  padding:80px 24px
}
.visit-section h2 {
  font-size:clamp(43px,5.3vw,75px);
  margin-bottom:24px
}
.visit-section .editorial-actions {
  justify-content:center
}
.visit-section>p:not(.eyebrow) {
  font-size:14px
}
.skip-link {
  position:fixed;
  top:-100px;
  left:12px;
  background:white;
  color:#153c33;
  padding:15px;
  z-index:100
}
.skip-link:focus {
  top:5px
}
a:focus-visible,button:focus-visible {
  outline:3px solid #ae5436;
  outline-offset:5px
}
.home-tropical footer {
  background:var(--paper)
}
@media(max-width:767px) {
  .brand-stage {
    padding:10px 15px
  }
  .brand-mark {
    width:106px
  }
  .brand-signature {
    gap:22px
  }
  .brand-divider {
    height:28px
  }
  .branded-site nav>div {
    justify-content:space-between;
    gap:10px;
    padding:10px 18px
  }
  .branded-site #mobile-menu>div {
    align-items:stretch;
    text-align:left
  }
  .nav-destination {
    font-size:9px
  }
  .editorial-hero {
    height:calc(88svh - 112px);
    min-height:560px;
    max-height:720px
  }
  .editorial-hero>img {
    object-position:60% center
  }
  .hero-shade {
    background:linear-gradient(90deg,#071d19c9,#071d1930),linear-gradient(0deg,#071d1980,transparent)
  }
  .editorial-hero-copy {
    padding:72px 25px 80px
  }
  .editorial-hero h1 {
    font-size:55px
  }
  .editorial-hero .intro {
    font-size:16px;
    max-width:290px
  }
  .editorial-hero .eyebrow {
    font-size:9px
  }
  .hero-next {
    left:25px;
    bottom:22px
  }
  .editorial-actions {
    gap:10px
  }
  .button-solid,.button-light,.button-outline {
    font-size:13px;
    padding:13px 19px
  }
  .place-line {
    padding:21px 24px;
    font-size:9px;
    gap:15px
  }
  .place-line>span:last-child {
    display:none
  }
  .editorial-section {
    padding:57px 24px
  }
  .section-heading {
    display:block
  }
  .section-heading>a {
    display:inline-block;
    margin-top:22px
  }
  .food-grid {
    grid-template-columns:1fr;
    gap:20px
  }
  .food-card img {
    aspect-ratio:1.32
  }
  .food-card>div {
    padding:17px 0
  }
  .story-grid {
    grid-template-columns:1fr;
    gap:24px
  }
  .story-grid article>img {
    aspect-ratio:1.15
  }
  .story-grid h3 {
    font-size:30px
  }
  .story-grid p:not(.eyebrow) {
    font-size:15px
  }
  .night-section {
    grid-template-columns:1fr
  }
  .night-visual img {
    min-height:0;
    height:auto;
    aspect-ratio:1.15
  }
  .night-copy {
    padding:47px 24px 55px
  }
  .event-section {
    grid-template-columns:1fr;
    gap:30px
  }
  .live-event {
    grid-template-columns:95px 1fr;
    gap:18px;
    padding:14px
  }
  .live-event>div:first-child {
    min-height:185px
  }
  .live-event h3 {
    font-size:24px
  }
  .visit-section {
    padding:60px 24px
  }
  .visit-section>p:not(.eyebrow) {
    line-height:1.7
  }
  .eyebrow {
    margin-bottom:16px
  }
  .branded-site:not(.home-tropical)>main {
    padding-top:30px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto!important
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important
  }
}
/* MENÚ: paleta suave, botones táctiles y filtros horizontales contenidos. */
#menu-tabs {
  scrollbar-width:thin;
  scrollbar-color:#a5b3a6 transparent;
  padding-bottom:14px
}
#menu-tabs button {
  min-height:44px;
  border-radius:2px;
  color:#183e34
}
#menu-tabs button[aria-pressed=true] {
  background:#183e34;
  color:white;
  border-color:#183e34
}
.menu-card {
  background:#fffdf7!important;
  border:1px solid #183e3415;
  border-radius:3px!important;
  box-shadow:none!important
}
.menu-card .text-primary {
  color:#99452e!important
}
[hidden] {
  display:none!important
}
.food-card h3 {
  font-size:24px
}
.story-grid article {
  background:#e9e8d8
}
.story-grid article>div {
  padding:28px
}
.night-visual {
  background:#183e34
}
.editorial-hero>img {
  display:block
}
.food-card[hidden] {
  display:none!important
}
@media(max-width:380px) {
  footer .flex.items-center.justify-center.gap-4 {
    gap:9px;
    flex-wrap:wrap
  }
  footer a.w-14 {
    width:44px;
    height:44px;
    flex:none
  }
  .branded-site .footer-brand {
    width:240px
  }
}
/* V2: portada nocturna y recorrido fotográfico administrado desde Galería. */
.night-hero {
  min-height:620px;
  height:calc(94svh - 125px);
  max-height:880px;
  background:#101917
}
.night-hero>img {
  object-position:center 45%;
  width:100%;
  height:100%
}
.night-hero .hero-shade {
  background:linear-gradient(90deg,#091511d9 0%,#09151180 40%,#09151112 78%),linear-gradient(0deg,#08141080,transparent 35%)
}
.night-hero .editorial-hero-copy {
  padding-top:115px
}
.night-hero h1 {
  font-size:clamp(58px,6.8vw,98px)
}
.night-hero .button-solid {
  background:#ae5138
}
.night-hero .hero-next {
  bottom:30px
}
.home-tropical .place-line {
  background:#101e19;
  color:#e7d5ad;
  border-color:#ffffff20
}
.night-intro {
  text-align:center;
  padding-top:95px;
  padding-bottom:85px
}
.night-intro h2 {
  font-size:clamp(40px,5vw,70px)
}
.night-intro>p:last-child {
  max-width:590px;
  margin:28px auto 0;
  line-height:1.8;
  font-size:17px;
  color:#4b6054
}
.presentation-film {
  background:#101e19;
  color:#f3ead5;
  padding:70px max(24px,6vw) 80px
}
.film-heading {
  max-width:1180px;
  margin:0 auto 32px
}
.film-heading h2 {
  font:400 clamp(32px,3.7vw,50px)/1.2 'Playfair Display',serif
}
.film-frame {
  position:relative;
  width:100%;
  max-width:1180px;
  margin:auto;
  background:#0a1410;
  aspect-ratio:16/9;
  overflow:hidden
}
.film-frame video {
  width:100%;
  height:100%;
  object-fit:contain;
  display:block
}
.film-play {
  position:absolute;
  inset:0;
  display:flex;
  gap:20px;
  align-items:center;
  justify-content:center;
  background:#07151044;
  color:#fff;
  font-size:15px;
  letter-spacing:.04em
}
.play-symbol {
  display:grid;
  place-items:center;
  border:1px solid #fff9;
  border-radius:50%;
  height:74px;
  width:74px;
  font-size:22px;
  background:#17291da6
}
.film-play:hover {
  background:#07151066
}
#film-error {
  max-width:1180px;
  margin:20px auto;
  color:#f3ead5
}
.long-story {
  padding:90px 0 10px
}
.story-intro {
  text-align:center;
  padding:0 24px 65px
}
.story-intro h2 {
  font:400 clamp(42px,4.5vw,65px)/1.2 'Playfair Display',serif;
  color:#183e34
}
.story-row {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  min-height:510px;
  max-width:1440px;
  margin:0 auto 58px;
  padding:0 6vw;
  align-items:stretch;
  gap:0
}
.story-row:nth-child(even) {
  grid-template-columns:1fr 1.2fr
}
.story-row:nth-child(even) .story-photo {
  order:2
}
.story-photo {
  aspect-ratio:1.1;
  background:#e4e2d2;
  overflow:hidden;
  display:grid;
  place-items:center;
  min-width:0
}
.story-photo img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform 1.1s ease
}
.story-copy {
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:55px clamp(30px,4vw,70px);
  background:#ece9dd;
  min-width:0
}
.story-copy .eyebrow {
  font-size:10px;
  color:#6b715e
}
.story-copy h2 {
  font:400 clamp(30px,3.4vw,48px)/1.12 'Playfair Display',serif;
  letter-spacing:-.025em;
  color:#183e34;
  overflow-wrap:anywhere
}
.story-copy>p:last-child:not(.eyebrow) {
  font-size:16px;
  line-height:1.85;
  color:#4a5a4f;
  max-width:360px
}
.story-rule {
  display:block;
  width:40px;
  height:1px;
  background:#b16444;
  margin:26px 0
}
.story-row:nth-child(3n) .story-copy {
  background:#183d32;
  color:#f8efd9
}
.story-row:nth-child(3n) .story-copy h2 {
  color:#f8efd9
}
.story-row:nth-child(3n) .story-copy p {
  color:#d7dbcb!important
}
.story-reveal .story-copy {
  transform:translateY(18px);
  opacity:.3;
  transition:opacity .7s ease,transform .7s ease
}
.story-visible .story-copy {
  transform:translateY(0);
  opacity:1
}
.photo-unavailable {
  min-height:250px;
  color:#183e34
}
.home-tropical .event-section {
  border-top:1px solid #183e3426
}
@media(min-width:1600px) {
  .story-row {
    padding-left:50px;
    padding-right:50px
  }
}
@media(max-width:1023px) and (min-width:768px) {
  .story-row {
    min-height:0;
    padding:0 32px
  }
  .story-copy {
    padding:35px 25px
  }
  .story-copy h2 {
    font-size:34px
  }
  .story-photo {
    aspect-ratio:.85
  }
  .story-copy>p:last-child:not(.eyebrow) {
    font-size:15px
  }
}
@media(max-width:767px) {
  .night-hero {
    height:calc(93svh - 115px);
    min-height:610px;
    max-height:760px
  }
  .night-hero>img {
    object-position:60% center
  }
  .night-hero .hero-shade {
    background:linear-gradient(90deg,#07140ebe,#07140e22),linear-gradient(0deg,#07140ec2,transparent 55%)
  }
  .night-hero .editorial-hero-copy {
    padding:88px 24px 90px
  }
  .night-hero h1 {
    font-size:58px
  }
  .night-hero .intro {
    max-width:285px
  }
  .night-intro {
    padding:60px 24px
  }
  .night-intro h2 {
    font-size:41px
  }
  .night-intro>p:last-child {
    font-size:16px
  }
  .presentation-film {
    padding:44px 20px 48px
  }
  .film-heading {
    margin-bottom:25px
  }
  .film-heading h2 {
    font-size:32px
  }
  .film-frame {
    aspect-ratio:4/3
  }
  .film-play {
    flex-direction:column;
    gap:12px;
    font-size:12px
  }
  .play-symbol {
    width:56px;
    height:56px;
    font-size:18px
  }
  .long-story {
    padding-top:55px
  }
  .story-intro {
    padding-bottom:40px
  }
  .story-row,.story-row:nth-child(even) {
    display:flex;
    flex-direction:column;
    margin:0 0 32px;
    padding:0 20px;
    min-height:0
  }
  .story-row:nth-child(even) .story-photo {
    order:0
  }
  .story-photo {
    aspect-ratio:4/3;
    width:100%
  }
  .story-copy {
    padding:30px 25px 35px
  }
  .story-copy h2 {
    font-size:33px
  }
  .story-copy>p:last-child:not(.eyebrow) {
    font-size:15px;
    line-height:1.8
  }
  .story-copy .eyebrow {
    margin-bottom:15px
  }
  .story-rule {
    margin:20px 0
  }
  .home-tropical .place-line {
    align-items:flex-start
  }
  .home-tropical .place-line span {
    max-width:150px;
    line-height:1.8
  }
  .home-tropical .place-line a {
    text-align:right;
    line-height:1.8;
    max-width:130px
  }
}
@media(max-width:350px) {
  .night-hero h1 {
    font-size:51px
  }
  .night-hero .editorial-hero-copy {
    padding-top:65px
  }
  .story-copy h2 {
    font-size:30px
  }
}
@media(prefers-reduced-motion:reduce) {
  .story-reveal .story-copy {
    transform:none;
    opacity:1;
    transition:none
  }
  .story-photo img {
    transition:none
  }
}
/* VIDEO OPCIONAL: bloque compacto, controlado por el primer video visible del Admin. */
.presentation-film {
  max-width:1280px;
  margin:10px auto 70px;
  padding:45px 6vw;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:35px;
  align-items:center
}
.film-heading {
  margin:0;
  max-width:420px
}
.film-heading h2 {
  font-size:35px
}
.film-frame {
  max-width:480px;
  aspect-ratio:16/9
}
.film-play {
  font-size:12px;
  gap:12px
}
.play-symbol {
  width:54px;
  height:54px;
  font-size:18px
}
#film-error {
  grid-column:1/-1
}
body.branded-site footer {
  max-width:none!important;
  background:#101e19!important;
  color:#f2eedf!important;
  padding:60px max(24px,6vw)!important;
  border:0!important
}
footer>div:first-child {
  max-width:1100px
}
footer .footer-brand {
  width:165px!important;
  margin-bottom:20px!important;
  mix-blend-mode:normal;
  animation:brand-drift 7s ease-in-out infinite alternate
}
footer .brand-corales.footer-brand {
  animation-direction:alternate-reverse
}
footer .footer-brand img {
  filter:brightness(0) invert(1)
}
footer .text-title,footer .text-secondary,footer .text-on-surface-variant,footer .font-display-lg {
  color:#e9e6d8!important
}
footer .font-display-lg {
  font-size:22px!important
}
footer .w-px,footer .h-px {
  background:#ffffff26!important
}
footer a {
  color:#e9e6d8!important
}
footer a img {
  filter:brightness(0) invert(1)
}
footer a.w-14 {
  border-color:#ffffff40!important
}
footer .divide-x>*,footer .divide-y>* {
  border-color:#ffffff26!important
}
footer:hover .footer-brand,footer:focus-within .footer-brand,footer.footer-motion-paused .footer-brand {
  animation-play-state:paused
}
.footer-motion-control {
  font:12px 'Hanken Grotesk',sans-serif;
  border:1px solid #ffffff50;
  padding:9px 15px;
  margin-top:25px;
  border-radius:3px;
  color:#e9e6d8
}
.footer-motion-control:hover {
  background:#ffffff12
}
@keyframes brand-drift {
  from {
    transform:translateX(-6px)
  }
  to {
    transform:translateX(6px)
  }
}
@media(max-width:767px) {
  .presentation-film {
    margin:0 20px 45px;
    padding:30px 22px;
    grid-template-columns:1fr;
    gap:24px
  }
  .film-heading h2 {
    font-size:30px
  }
  .film-frame {
    max-width:360px
  }
  .film-play {
    flex-direction:row;
    font-size:10px;
    gap:9px
  }
  .play-symbol {
    width:42px;
    height:42px;
    font-size:14px
  }
  footer .footer-brand {
    width:145px!important;
    animation-duration:9s
  }
  @keyframes brand-drift {
    from {
      transform:translateX(-3px)
    }
    to {
      transform:translateX(3px)
    }
  }
}
@media(prefers-reduced-motion:reduce) {
  footer .footer-brand {
    animation:none!important
  }
  .footer-motion-control {
    display:none
  }
}
.story-reveal .story-copy {
  opacity:1
}
.story-photo {
  aspect-ratio:4/3
}
.story-row {
  min-height:460px
}
@media(max-width:1023px) and (min-width:768px) {
  .story-photo {
    aspect-ratio:.9
  }
}
@media(max-width:767px) {
  .story-row {
    min-height:0
  }
  .story-photo {
    aspect-ratio:4/3
  }
}
body.branded-site.home-tropical {
  background:var(--paper)!important
}
footer a img {
  filter:none
}
.site-icon {
  width:1em;
  height:1em;
  min-width:1em;
  display:inline-block;
  vertical-align:middle;
  font-size:24px;
  flex-shrink:0
}
#mobile-menu-toggle {
  min-width:44px;
  min-height:44px;
  display:grid;
  place-items:center
}
.play-symbol {
  font-family:Arial,sans-serif
}

/* AGENDA: hoy siempre visible; fechas calculadas en Santo Domingo.
   Este bloque no modifica el hero ni las filas del recorrido aprobado. */
.home-agenda { border-top: 1px solid #183e3426; }
.agenda-section-title { font: 400 clamp(30px,4vw,48px)/1.15 'Playfair Display',serif; color:var(--ink); }
.agenda-date { color:#4a5a4f; font-size:14px; margin:14px 0 28px; }
.agenda-today { display:grid; gap:20px; }
.agenda-card { display:grid; grid-template-columns:minmax(100px,180px) 1fr; background:#eae6db; overflow:hidden; border:1px solid #183e3418; }
.agenda-portrait { min-height:180px; background:#193d32 url('../img/logo/enjoy-identidad.png') center/75% auto no-repeat; }
.agenda-portrait img { width:100%; height:100%; min-height:180px; max-height:360px; object-fit:cover; }
.agenda-copy { padding:28px; min-width:0; }
.agenda-copy h3 { font:400 clamp(23px,2.4vw,34px)/1.2 'Playfair Display',serif; color:#183e34; margin:8px 0 12px; overflow-wrap:anywhere; }
.agenda-copy p { line-height:1.6; }
.agenda-badge { font-size:11px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:#704028; }
.agenda-hours { font-weight:700; margin-top:14px; color:#183e34; }
.agenda-empty { padding:32px; background:#183e34; color:#fff7e8; }
.agenda-empty h3 { font:400 clamp(25px,3vw,38px)/1.2 'Playfair Display',serif; margin:0 0 16px; }
.agenda-empty p { line-height:1.7; }
.agenda-empty a { display:inline-block; margin-top:18px; padding:12px 0; text-decoration:underline; }
.agenda-next { margin-top:30px; max-width:800px; }
.agenda-note { font-size:12px; color:#4a5a4f; margin-top:24px; }
.agenda-today-section { margin-bottom:64px; scroll-margin-top:95px; }
#semana { scroll-margin-top:95px; }
.agenda-day { display:grid; grid-template-columns:180px 1fr; gap:28px; padding:26px 0; border-top:1px solid #183e3430; }
.agenda-day>h3 { font-size:17px; font-weight:700; text-transform:capitalize; }
.agenda-day-cards { display:grid; gap:18px; }
.agenda-no-entry { color:#4a5a4f; padding:10px 0; }
.section-access { position:static!important; display:flex; flex-wrap:wrap; gap:12px; padding:0 0 28px!important; margin-bottom:24px; background:none!important; border:0!important; }
.section-access a,.section-access button { padding:12px 18px; min-height:44px; border:1px solid #183e3455; border-radius:3px; font-size:14px; }
.section-access button[aria-pressed="true"] { background:#183e34; color:#fff7e8; }
.organized-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; align-items:start; }
.organized-gallery .gallery-item { background:#eae6db; border-radius:3px; }
.organized-gallery img,.organized-gallery video { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:0; }
.gallery-caption { padding:20px; font-size:14px; line-height:1.7; color:#183e34; }
.gallery-item:focus-visible,.section-access :focus-visible { outline:3px solid #9e492c; outline-offset:4px; }
@media(max-width:900px) {
  .organized-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-agenda .section-heading { align-items:start; flex-direction:column; }
}
@media(max-width:600px) {
  .agenda-card { grid-template-columns:100px minmax(0,1fr); }
  .agenda-copy { padding:18px; }
  .agenda-copy h3 { font-size:24px; }
  .agenda-portrait img { max-height:none; }
  .agenda-empty { padding:24px; }
  .agenda-day { grid-template-columns:1fr; gap:14px; }
  .organized-gallery { grid-template-columns:1fr; }
  .section-access { gap:8px; }
  .home-agenda .section-heading a { white-space:normal; }
}

/* SVG arrows remain vector artwork on iOS. */
.inline-arrow{display:inline-block;width:1em;height:1em;margin-left:.4em;vertical-align:-.12em;flex-shrink:0}
[data-cms-hidden]{display:none!important}
