/* ══ DESIGN TOKENS · Paleta Viví San Roque ══ */
:root {
  --brand-primary: #355E4A;
  --brand-primary-hover: #2C4F3D;
  --brand-primary-light: rgba(53,94,74,0.09);
  --surface: #F6F3EE;
  --surface-elevated: #FFFFFF;
  --text: #2F2F2F;
  --text-muted: #5C5C5C;
  --accent: #D8A441;
  --accent-light: rgba(216,164,65,0.12);
  --border: rgba(47,47,47,0.08);
  --shadow: 0 8px 24px rgba(47,47,47,0.08);
  --shadow-hover: 0 16px 40px rgba(47,47,47,0.12);
  --shadow-card: 0 8px 24px rgba(47,47,47,0.08);
  --radius-card: 16px;
  --motion: 300ms;
  --motion-base: 300ms;
  --color-river-teal: #355E4A;
  --color-primary: #355E4A;
  --color-on-primary: #FFFFFF;
  --color-golden-sand: #D8A441;
  --color-sun-haze: #F5D98A;
  --color-text-primary: #355E4A;
  --color-bg-surface: #F6F3EE;
}

  .material-symbols-outlined { font-family:'Material Symbols Outlined';font-weight:normal;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:'liga';-webkit-font-smoothing:antialiased; }
  .material-symbols-outlined.filled { font-variation-settings:'FILL' 1,'wght' 400,'GRAD' 0,'opsz' 24; }

  .fade-in-up { opacity:0;transform:translateY(24px);transition:opacity 0.7s cubic-bezier(.22,1,.36,1),transform 0.7s cubic-bezier(.22,1,.36,1); }
  .fade-in-up.visible { opacity:1;transform:translateY(0); }
  @keyframes viewFadeIn { from{opacity:0;transform:translateY(15px)} to{opacity:1;transform:translateY(0)} }
  .animate-view-in { animation:viewFadeIn 0.5s cubic-bezier(0.22,1,0.36,1) forwards; }

  .hero-slide { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;opacity:0;animation:heroFade 24s infinite; }
  .hero-slide:nth-child(1){animation-delay:0s} .hero-slide:nth-child(2){animation-delay:6s} .hero-slide:nth-child(3){animation-delay:12s} .hero-slide:nth-child(4){animation-delay:18s}
  @keyframes heroFade { 0%{opacity:0;transform:scale(1.06)} 4%{opacity:1;transform:scale(1)} 25%{opacity:1;transform:scale(1)} 29%{opacity:0;transform:scale(1.05)} 100%{opacity:0} }

  .main-nav-buttons {
    background:none;
    padding:0;
    display:flex;
    align-items:center;
    gap:0.8rem;
    flex-wrap:wrap;
    justify-content:flex-end;
  }
  .main-nav-buttons > .nav-dropdown,
  .main-nav-buttons > a {
    background: rgba(255,255,255,0.95);
    border-radius: 9999px;
    padding: 0.7rem 1rem;
    box-shadow: 0 12px 28px rgba(0,0,0,0.08);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    color: #274F10;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    line-height: 1.2;
  }
  .main-nav-buttons > a:hover,
  .main-nav-buttons > .nav-dropdown:hover {
    transform: translateY(-1px);
    box-shadow: 0 18px 38px rgba(0,0,0,0.12);
  }
  .main-nav-buttons > .nav-dropdown {
    position: relative;
  }
  .main-nav-buttons > .nav-dropdown .nav-dropdown-trigger {
    padding: 0 0.05rem;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    white-space: nowrap;
    color: inherit;
  }

  .img-zoom { transition:transform 0.7s cubic-bezier(.22,1,.36,1); }
  article:hover .img-zoom { transform:scale(1.06); }
  .card-item {
    position: relative;
    transform: translateY(0) scale(1);
    transition: transform 0.35s cubic-bezier(.22,1,.36,1), box-shadow 0.35s ease, border-color 0.35s ease;
  }
  .card-item:hover,
  .card-item:focus-within,
  .card-item.touch-active {
    transform: translateY(-8px) scale(1.01);
    box-shadow: 0 18px 40px rgba(53,94,74,0.14);
    border-color: rgba(53,94,74,0.2);
  }
  .card-item:hover img,
  .card-item:focus-within img,
  .card-item.touch-active img {
    transform: scale(1.06);
  }
  .card-item img {
    transition: transform 0.55s cubic-bezier(.22,1,.36,1);
  }
  .hero-text-shadow { text-shadow:0 2px 20px rgba(0,0,0,0.55); }
  .hide-scrollbar::-webkit-scrollbar{display:none} .hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}

  /* ── TYPEWRITER ── */
  .typewriter-cursor { display:inline-block;width:3px;height:0.82em;background:#F5D98A;margin-left:3px;vertical-align:middle;border-radius:2px;animation:blink 0.75s step-end infinite; }
  @keyframes blink { 0%,100%{opacity:1} 50%{opacity:0} }

  /* ── HERO FULLSCREEN ── */
  img { max-width: 100%; height: auto; }
  .hero-slide,
  .monjita-hero-img,
  .event-img,
  .atractivo-card-media img,
  .tourism-related-card picture img,
  .editorial-gallery picture img,
  .agenda-card-media img,
  .hero-rotor-monjita img { width:100%; height:100%; object-fit: cover; object-position: center; display:block; }
  #hero-section { position:relative;width:100%;height:100vh;min-height:600px;display:flex;align-items:center;justify-content:center;overflow:hidden;margin-bottom:0; }
  #hero-section .hero-wave { position:absolute;bottom:-2px;left:0;width:100%;z-index:15;line-height:0; }

  /* ── WEATHER WIDGET · terracota complementario del verde institucional ── */
  :root {
    --weather-900:#4B211C;
    --weather-800:#6F2F25;
    --weather-650:#98452E;
    --weather-500:#B85E38;
    --weather-sun:#FFD27A;
  }
  .weather-sky { background:linear-gradient(155deg,var(--weather-900) 0%,var(--weather-800) 54%,var(--weather-650) 100%); box-shadow:0 18px 44px -18px rgba(75,33,28,.72); }
  .weather-pill { background:linear-gradient(135deg,var(--weather-800) 0%,var(--weather-500) 100%); border-color:rgba(255,210,122,.38) !important; }
  .weather-pill span { text-shadow:0 1px 3px rgba(48,18,14,.6); }
  .weather-pill .material-symbols-outlined,.weather-panel #wp-icon { color:var(--weather-sun) !important; }
  .weather-widget:hover .weather-pill,.weather-widget:focus-within .weather-pill { background:linear-gradient(135deg,var(--weather-900) 0%,var(--weather-650) 100%); }
  .weather-widget { transition:transform 0.3s cubic-bezier(0.175,0.885,0.32,1.275);outline:none; }
  .weather-panel { opacity:0;transform:scale(0.95) translateY(10px);pointer-events:none;transition:opacity 0.3s ease,transform 0.3s cubic-bezier(0.175,0.885,0.32,1.275);transform-origin:bottom left; }
  .weather-widget:hover .weather-panel,.weather-widget:focus .weather-panel,.weather-widget:focus-within .weather-panel { opacity:1;transform:scale(1) translateY(0);pointer-events:auto; }

  .service-badge { display:flex;align-items:center;gap:6px;background:var(--brand-primary-light);border:1px solid rgba(53,94,74,0.14);border-radius:12px;padding:11px 14px;font-size:13px;font-weight:650;color:var(--brand-primary);transition:transform .15s ease,box-shadow .15s ease,background .15s ease; }
  .service-badge:hover { transform:translateY(-2px);background:rgba(53,94,74,0.1);box-shadow:0 8px 18px rgba(53,94,74,.12); }
  /* Título de sección con acento brand (detalle de alojamiento) */
  .det-section-title { position:relative;padding-left:15px; }
  .det-section-title::before { content:"";position:absolute;left:0;top:1px;height:22px;width:4px;border-radius:3px;background:linear-gradient(180deg,#D8A441,#355E4A); }
  .capacity-row { transition:background .15s ease;border-radius:10px; }
  .capacity-row:hover { background:rgba(51,106,21,0.05); }
  .capacity-row { display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid rgba(0,0,0,0.05); }
  .capacity-row:last-child { border-bottom:none; }

  .leaflet-container { z-index:10 !important;font-family:'Manrope','DM Sans',sans-serif; }
  .leaflet-popup-content-wrapper { border-radius:16px;padding:8px;box-shadow:0 10px 25px rgba(0,0,0,0.1); }
  .leaflet-popup-content { margin:8px; }

  /* ── INTRO SPLASH ── */
  #intro-splash { position:fixed;inset:0;z-index:9999;background:#F6F3EE;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;transition:opacity 0.65s ease,visibility 0.65s ease; }
  #intro-splash.hidden-out { opacity:0;visibility:hidden;pointer-events:none; }
  #splash-logo { opacity:0;transform:scale(0.72);transition:opacity 0.9s cubic-bezier(.22,1,.36,1),transform 0.9s cubic-bezier(.22,1,.36,1); }
  #splash-logo.show { opacity:1;transform:scale(1); }
  #splash-text { opacity:0;transform:translateY(12px);transition:opacity 0.7s ease 0.6s,transform 0.7s ease 0.6s; }
  #intro-splash .splash-title { color:#2F2F2F; }
  #intro-splash .splash-subtitle { color:#5C5C5C; }
  #splash-text.show { opacity:1;transform:translateY(0); }
  .splash-crest { width:clamp(164px,22vw,220px);aspect-ratio:1;display:block;border-radius:50%;object-fit:cover;box-shadow:0 0 0 1px rgba(216,164,65,.25),0 24px 60px rgba(0,0,0,.18); }

  /* ── FOOTER INSTITUCIONAL ── */
  .site-footer { overflow:hidden;box-shadow:0 -18px 50px rgba(39,79,16,.08); }
  .site-footer::before { content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,#E23B2E,#EE7A1B,#F3B21C,#3DA33A,#17A398,#2E93C7,#2B57A7,#7E3F98); }
  .footer-brand-mark { width:64px;height:64px;border-radius:20px;overflow:hidden;border:1px solid rgba(245,217,138,.45);box-shadow:0 14px 28px rgba(0,0,0,.2); }
  .footer-brand-mark img { width:100%;height:100%;object-fit:cover; }
  .footer-link { display:inline-flex;align-items:center;gap:6px;color:rgba(255,255,255,.78);font-size:14px;line-height:1.5;text-decoration:none;transition:color .2s ease,transform .2s ease; }
  .footer-link:hover { color:#F5D98A;transform:translateX(3px); }
  .footer-contact { display:flex;align-items:flex-start;gap:10px;color:rgba(255,255,255,.78);line-height:1.5;text-decoration:none;overflow-wrap:anywhere; }
  a.footer-contact:hover { color:#F5D98A; }
  .footer-contact .material-symbols-outlined { flex:0 0 auto;font-size:19px;color:#F5D98A;margin-top:1px; }
  .social-link { min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:0 15px;border-radius:999px;border:1px solid rgba(255,255,255,.22);color:#fff;font-size:13px;font-weight:700;text-decoration:none;background:rgba(255,255,255,.06);transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease; }
  .social-link:hover { background:#F5D98A;color:#274F10;border-color:#F5D98A;transform:translateY(-2px); }
  .social-link i { font-size:18px; }
  .footer-link:focus-visible,.footer-contact:focus-visible,.social-link:focus-visible { outline:3px solid #F5D98A;outline-offset:4px;border-radius:8px; }

  /* ── MAPA (siempre visible, sin ocultamiento) ── */
  .map-collapsible { overflow:hidden;border-radius:28px;box-shadow:0 22px 52px -22px rgba(16,52,10,.48);border:1px solid rgba(39,79,16,.15); }
  .map-peek { display:flex;align-items:center;gap:14px;padding:18px 24px;background:linear-gradient(135deg,#fff 0%,#f6f3e9 100%);border-radius:28px 28px 0 0;position:relative;z-index:401;border-bottom:1px solid rgba(39,79,16,.13); }
  .map-peek-hint { display:none; }
  .map-heading-icon { display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:#e9f1df;color:#315d20;font-size:25px; }
  .map-legend { display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:8px 14px;color:#40523c;font-size:11px;font-weight:700; }
  .map-legend span { display:inline-flex;align-items:center;gap:7px;white-space:nowrap; }
  .map-legend i { display:inline-block;flex:0 0 auto; }
  .map-legend-trace { width:22px;height:10px;border:2px dashed #9A4D24;border-radius:4px;background:rgba(214,166,69,.16); }
  .map-legend-stay { width:12px;height:12px;border-radius:50% 50% 50% 0;background:#315D20;transform:rotate(-45deg);box-shadow:0 0 0 3px rgba(49,93,32,.13); }
  #main-map { border-radius:0 0 28px 28px;background:#e8eadf; }
  #main-map .leaflet-tile-pane { filter:saturate(.88) contrast(1.08); }
  .map-urban-trace { stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 2px 2px rgba(75,33,28,.25)); }
  .map-trace-tooltip { border:0;border-radius:10px;background:#4B211C;color:#fff;font-weight:700;box-shadow:0 8px 20px rgba(0,0,0,.18); }
  .accommodation-map-marker { display:grid;place-items:center;width:38px !important;height:38px !important;margin-top:-38px !important;margin-left:-19px !important;border:3px solid #fff;border-radius:50% 50% 50% 0;background:#315D20;color:#fff;transform:rotate(-45deg);box-shadow:0 7px 18px rgba(24,56,17,.34); }
  .accommodation-map-marker .material-symbols-outlined { font-size:19px;transform:rotate(45deg); }
  #main-map .leaflet-control-zoom a { color:#315D20;border-color:rgba(49,93,32,.16); }
  #main-map .leaflet-control-attribution { background:rgba(255,255,255,.86);font-size:10px; }
  @media (max-width:640px) {
    .map-peek { align-items:flex-start;padding:15px 16px; }
    .map-heading-icon { width:38px;height:38px;border-radius:12px; }
    .map-legend { width:100%;justify-content:flex-start;margin-top:9px; }
    .map-peek { flex-wrap:wrap; }
  }

  /* ── GEO BADGE en cards ── */
  .geo-btn { display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:#336A15;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:999px;padding:5px 12px;transition:background 0.2s,transform 0.2s;cursor:pointer;text-decoration:none; }
  .geo-btn:hover { background:#dcfce7;transform:scale(1.04); }
  .geo-btn .material-symbols-outlined { font-size:13px;color:#16a34a; }

  /* ── EVENT CARD imagen ── */
  .event-img { width:100%;height:130px;object-fit:cover;display:block; }
  .event-img-wrap { position:relative;overflow:hidden; }
  .event-img-wrap .event-img { transition:transform 0.5s cubic-bezier(.22,1,.36,1); }
  .event-card:hover .event-img { transform:scale(1.06); }
  .event-img-overlay { position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0.08) 0%,rgba(0,0,0,0.38) 100%); }
  .event-badge-over { position:absolute;top:10px;left:10px; }
  .event-icon-over { position:absolute;top:10px;right:10px;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,0.92);display:flex;align-items:center;justify-content:center; }
  .event-card { transition:transform 0.3s cubic-bezier(.22,1,.36,1),box-shadow 0.3s ease; }
  .event-card:hover { transform:translateY(-5px);box-shadow:0 20px 40px rgba(39,79,16,0.14); }
  .ebadge { font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:3px 10px;border-radius:999px; }
  .ebadge.futsal{background:#fef9c3;color:#854d0e}
  .ebadge.voley{background:#dbeafe;color:#1d4ed8}
  .ebadge.festivo{background:#fce7f3;color:#9d174d}
  .ebadge.defensores{background:#f0fdf4;color:#166534;border:1px solid #86efac}

  /* =========================================
     CSS DATOS ÚTILES
     ========================================= */
  .datos-utiles-lista { list-style: none; display: flex; flex-wrap: wrap; gap: 15px; justify-content: center; }
  .datos-utiles-lista li a { display: flex; align-items: center; gap: 10px; background: white; padding: 15px 25px; border-radius: 12px; color: #274F10; text-decoration: none; font-weight: bold; font-size: 1rem; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border-bottom: 3px solid #D4A83C; transition: transform 0.3s ease, box-shadow 0.3s ease; }
  .datos-utiles-lista li a:hover { transform: translateY(-4px); box-shadow: 0 8px 25px rgba(0,0,0,0.1); }
  .datos-utiles-lista li a i { font-size: 1.2rem; color: #D4A83C; }

  /* =========================================

   CHATBOT FLOTANTE MUNIAYUDA
========================================= */


.chatbot{
    position:fixed;
    bottom:20px;
    right:20px;
    z-index:9999;
    font-family:'Manrope','DM Sans',sans-serif;
}


/* BOTON FLOTANTE — el botón ES la imagen completa */

.chat-button{

    border:0;
    padding:0;
    font-family:inherit;

    width:75px;
    height:75px;

    background:#274F10;

    border-radius:50%;

    display:flex;
    align-items:center;
    justify-content:center;

    cursor:pointer;

    color:white;

    font-size:11px;

    overflow:hidden;

    box-shadow:
    0 6px 18px rgba(0,0,0,.25);

    transition:transform .3s ease, box-shadow .3s ease;

}


.chat-button:hover{
    transform:scale(1.08);
}


.chat-button img{

    width:100%;
    height:100%;

    object-fit:cover;

    display:block;

    margin:0;

    pointer-events:none;

}

/* Texto oculto visualmente (accesibilidad), la imagen ocupa todo el botón */
.chat-button span{

    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;

}


/* ANIMACION AL HACER CLICK (el botón nunca se oculta, solo se anima) */

@keyframes chatButtonPop{

    0%{ transform:scale(1); }
    30%{ transform:scale(0.82); }
    55%{ transform:scale(1.18); }
    80%{ transform:scale(0.95); }
    100%{ transform:scale(1); }

}


@keyframes chatButtonRing{

    0%{ box-shadow:0 6px 18px rgba(0,0,0,.25), 0 0 0 0 rgba(39,79,16,.55); }
    100%{ box-shadow:0 6px 18px rgba(0,0,0,.25), 0 0 0 24px rgba(39,79,16,0); }

}


.chat-button.clicked{

    animation:
    chatButtonPop .45s ease,
    chatButtonRing .6s ease-out;

    /* opacity y visibilidad se mantienen intactas: el botón sigue siempre visible */

}


/* VENTANA */

.chat-window{

    display:none;

    width:360px;
    height:520px;

    background:white;

    border-radius:22px;

    overflow:hidden;

    margin-bottom:15px;

    box-shadow:
    0 15px 40px rgba(0,0,0,.30);

    flex-direction:column;

    position:absolute;

    bottom:80px;
    right:0;

}


/* HEADER */

.chat-header{

    background:
    linear-gradient(
    135deg,
    #274F10,
    #0f766e
    );

    color:white;

    padding:15px;

    display:flex;

    align-items:center;

    gap:12px;

}


.chat-header img{

    width:45px;
    height:45px;

    background:white;

    border-radius:50%;

    padding:5px;

}



.chat-header h3{

    font-size:18px;

    margin:0;

    font-weight:700;

}


.chat-header p{

    font-size:12px;

    margin-top:3px;

    opacity:.85;

}



/* CUERPO CHAT */

.chat-box{

    flex:1;

    padding:12px;

    overflow-y:auto;

    font-size:14px;

    background:#f8fafc;

}



/* MENSAJES */

.chat-box div{

    animation:
    aparecer .25s ease;

}



@keyframes aparecer{

from{
opacity:0;
transform:translateY(8px);
}

to{
opacity:1;
transform:translateY(0);
}

}



/* BOTONES RAPIDOS */

.chat-quick{

    padding:12px;

    border-top:1px solid #e5e7eb;

    display:flex;

    gap:8px;

    flex-wrap:wrap;

    background:white;

}



.quick-btn{

    background:white;

    border:1px solid #d5dddd;

    border-radius:15px;

    padding:9px 13px;

    cursor:pointer;

    font-size:12px;

    color:#274F10;

    font-family:inherit;

    font-weight:600;

    transition:.2s;

}



.quick-btn:hover{

    background:#274F10;

    color:white;

    transform:translateY(-2px);

}



/* INPUT */

.chat-input-area{

    display:flex;

    border-top:1px solid #ddd;

    background:white;

}



.chat-input-area input{

    flex:1;

    padding:14px;

    border:none;

    outline:none;

    font-family:inherit;

    font-size:14px;

}



.chat-input-area button{

    width:55px;

    background:#274F10;

    color:white;

    border:none;

    cursor:pointer;

    font-size:18px;

}



/* TARJETAS DENTRO DEL CHAT */

.chat-card{
    margin: 10px 0;
    border-radius: 18px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    box-shadow: 0 10px 28px rgba(15,23,42,0.06);
}

.chat-card-header{
    padding: 16px 16px 10px 16px;
    background: linear-gradient(135deg, rgba(53,94,74,0.08), rgba(216,164,65,0.12));
}

.chat-card-title{
    font-size: 14px;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 4px;
}

.chat-card-subtitle{
    font-size: 12px;
    color: #475569;
    line-height: 1.4;
}

.chat-card-list{
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 12px 14px 16px;
}

.chat-card-item{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    background: white;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    padding: 12px 14px;
    box-shadow: 0 4px 10px rgba(15,23,42,0.05);
}

.chat-card-item-info{
    min-width: 0;
}

.chat-card-item-title{
    font-size: 13px;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 4px;
}

.chat-card-item-subtitle{
    font-size: 12px;
    color: #475569;
}

.chat-card-actions{
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.chat-card-button{
    background: #274F10;
    color: white;
    border: none;
    padding: 8px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    text-align: center;
    cursor: pointer;
    transition: transform .2s ease, background .2s ease;
}

.chat-card-button:hover{
    background: #1f3f33;
    transform: translateY(-1px);
}

.chat-card-button[type="button"]{
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.chat-box .bot-with-cards{
    padding: 0;
    box-shadow: none;
    border: none;
}

.chat-options{

    display:flex;

    flex-direction:column;

    gap:8px;

    margin-top:15px;

}



.chat-options button{

    background:white;

    border:1px solid #dbe4e3;

    border-radius:15px;

    padding:12px;

    text-align:left;

    font-size:14px;

    font-weight:600;

    color:#274F10;

    cursor:pointer;

    box-shadow:
    0 2px 8px rgba(0,0,0,.05);

    transition:.2s;

}



.chat-options button:hover{

    background:#274F10;

    color:white;

}



/* ESCRIBIENDO */

.typing{

    display:flex;

    gap:4px;

    margin:10px;

}


.typing span{

    width:7px;

    height:7px;

    border-radius:50%;

    background:#64748b;

    animation:bounce 1s infinite;

}


.typing span:nth-child(2){
animation-delay:.2s;
}


.typing span:nth-child(3){
animation-delay:.4s;
}



@keyframes bounce{

0%,100%{
transform:translateY(0);
}

50%{
transform:translateY(-5px);
}

}



/* CELULAR */

@media(max-width:480px){

.chat-window{

width:calc(100vw - 30px);

height:520px;

right:-5px;

}


.chatbot{

right:15px;

bottom:15px;

}

}
/* ══ TAILWIND COLOR OVERRIDES · Paleta Viví San Roque ══ */
/* Estas reglas sobreescriben las utilidades Tailwind hardcodeadas en tw-base.css */
.bg-primary { background-color: var(--brand-primary) !important; }
.bg-primary\/95 { background-color: rgba(53,94,74,0.95) !important; }
.bg-primary\/90 { background-color: rgba(53,94,74,0.9) !important; }
.bg-river-teal { background-color: var(--brand-primary) !important; }
.text-primary { color: var(--brand-primary) !important; }
.text-river-teal { color: var(--brand-primary) !important; }
.border-primary { border-color: var(--brand-primary) !important; }
.border-river-teal\/20 { border-color: rgba(53,94,74,0.2) !important; }
.border-river-teal\/30 { border-color: rgba(53,94,74,0.3) !important; }
.hover\:text-primary:hover { color: var(--brand-primary) !important; }
.hover\:text-river-teal:hover { color: var(--brand-primary) !important; }
.hover\:bg-primary:hover { background-color: var(--brand-primary-hover) !important; }
.hover\:bg-river-teal:hover { background-color: var(--brand-primary-hover) !important; }
.hover\:border-river-teal:hover { border-color: var(--brand-primary) !important; }
/* tw-base.css define hover:text-white sin !important, así que .text-river-teal
   (!important) ganaba y el texto quedaba verde sobre el fondo verde del hover.
   Afecta a los botones "Ver ubicación en mapa", "Compartir" y similares. */
.hover\:text-white:hover, .hover\:text-white:hover .material-symbols-outlined { color: #fff !important; }
/* Gradient overrides — paleta brand-primary en vez de oliva */
.from-primary\/95 { --tw-gradient-from: rgba(53,94,74,0.95) var(--tw-gradient-from-position); }
.via-primary\/50 { --tw-gradient-stops: var(--tw-gradient-from),rgba(53,94,74,0.5) var(--tw-gradient-via-position),var(--tw-gradient-to); }
.via-primary\/55 { --tw-gradient-stops: var(--tw-gradient-from),rgba(53,94,74,0.55) var(--tw-gradient-via-position),var(--tw-gradient-to); }
.via-primary\/60 { --tw-gradient-stops: var(--tw-gradient-from),rgba(53,94,74,0.6) var(--tw-gradient-via-position),var(--tw-gradient-to); }
.bg-teal-50 { background-color: rgba(53,94,74,0.06) !important; }
.text-on-background { color: var(--text) !important; }
/* Las familias tipográficas salen del build (tailwind.config.js): ya no hace
   falta el parche que corregía el DM Sans del bundle de gastronomía. */

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}

@media (max-width: 480px) {
  .chat-window{
    width:calc(100vw - 30px);
    height:520px;
    right:-5px;
  }
  .chatbot{ right:15px; bottom:15px; }
}

  /* =========================================
     CSS BANNER DE EVENTOS (NUEVO AGREGADO)
     ========================================= */
  .banner-eventos {
      position: relative;
      width: 100%;
      min-height: 400px;
      background-image: url('../img/logo-muni.jpg');
      background-size: cover;
      background-position: center;
      border-radius: 20px;
      overflow: hidden;
      box-shadow: 0 10px 40px rgba(13, 57, 55, 0.3);
  }
  .banner-overlay {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: linear-gradient(
          135deg,
          rgba(13, 57, 55, 0.88) 0%,
          rgba(51, 106, 21, 0.80) 50%,
          rgba(26, 107, 101, 0.85) 100%
      );
      z-index: 1;
  }
  .banner-content {
      position: relative;
      z-index: 2;
      display: flex;
      align-items: center;
      gap: 3rem;
      padding: 4rem 3rem;
  }
  .banner-icono {
      width: 100px !important;
      height: 100px !important;
      flex-shrink: 0;
      animation: floatIcon 3s ease-in-out infinite;
  }
  .banner-svg {
      width: 100px !important;
      height: 100px !important;
      filter: drop-shadow(0 2px 6px rgba(0,0,0,0.3));
  }
  .banner-texto {
      flex: 1;
  }
  .banner-titulo {
      font-size: 4.5rem;
      font-family: 'Syne', sans-serif;
      font-weight: 900;
      margin: 0;
      line-height: 1;
      text-transform: uppercase;
      letter-spacing: 2px;
      display: flex;
      flex-direction: column;
      gap: 0.3rem;
  }
  .titulo-linea {
      display: block;
      color: #ffffff;
      text-shadow: 0 2px 10px rgba(0,0,0,0.3);
      animation: titleGlow 3s ease-in-out infinite;
  }
  .titulo-linea.highlight {
      color: #d4a83c;
      text-shadow: 
          0 0 30px rgba(212, 168, 60, 0.6),
          0 0 60px rgba(212, 168, 60, 0.3),
          0 2px 10px rgba(0,0,0,0.3);
      animation: highlightPulse 2.5s ease-in-out infinite;
  }
  .banner-subtitulo {
      font-size: 1.4rem;
      color: #f5d98a;
      margin: 1.5rem 0 0 0;
      font-weight: 600;
      letter-spacing: 5px;
      text-transform: uppercase;
  }
  .banner-decoracion {
      margin-top: 1.5rem;
      width: 100%;
      max-width: 450px;
  }
  .linha-dorada {
      height: 3px;
      background: linear-gradient(90deg, #d4a83c 0%, #f5d98a 50%, #d4a83c 100%);
      border-radius: 2px;
      box-shadow: 0 0 10px rgba(212, 168, 60, 0.5);
  }

  @keyframes floatIcon {
      0%, 100% { transform: translateY(0px); }
      50% { transform: translateY(-8px); }
  }
  @keyframes titleGlow {
      0%, 100% { filter: brightness(1); }
      50% { filter: brightness(1.15); }
  }
  @keyframes highlightPulse {
      0%, 100% { 
          filter: brightness(1);
          text-shadow: 
              0 0 30px rgba(212, 168, 60, 0.6),
              0 0 60px rgba(212, 168, 60, 0.3),
              0 2px 10px rgba(0,0,0,0.3);
      }
      50% { 
          filter: brightness(1.25);
          text-shadow: 
              0 0 40px rgba(212, 168, 60, 0.9),
              0 0 80px rgba(212, 168, 60, 0.5),
              0 2px 10px rgba(0,0,0,0.3);
      }
  }

  @media (max-width: 768px) {
      .banner-eventos { min-height: 350px; }
      .banner-content { flex-direction: column; text-align: center; gap: 2rem; padding: 3rem 2rem; }
      .banner-icono { width: 80px !important; height: 80px !important; }
      .banner-svg { width: 80px !important; height: 80px !important; }
      .banner-titulo { font-size: 2.8rem; }
      .banner-subtitulo { font-size: 1rem; letter-spacing: 3px; }
  }

/* Gastronomía: ajustes mobile y paquete standalone */
html, body { max-width: 100%; overflow-x: hidden; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { min-height: 100vh; }
#gastronomia-grid .card-item { width: 100%; }
.chatbot img { max-width: 100%; object-fit: contain; }
img, svg, video { max-width: 100%; height: auto; }
a, button, input, select, textarea { min-height: 44px; }

@media (max-width: 768px) {
  #main-nav { padding-top: 10px !important; padding-bottom: 10px !important; }
  #main-nav > div { padding-left: 14px !important; padding-right: 14px !important; gap: 12px; }
  #main-nav a.font-display-lg { font-size: 24px !important; }
  #mobile-nav-panel a.mobile-nav-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 12px 14px;
    margin-bottom: 6px;
    border-radius: 14px;
    color: rgba(255,255,255,0.95);
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
    background: rgba(255,255,255,0.08);
  }
  #mobile-nav-panel a.mobile-nav-link.active {
    background: rgba(245,217,138,0.2);
    color: #f5d98a;
  }
  .weather-panel { right: 0; width: min(16rem, calc(100vw - 32px)); transform-origin: top right; }
}

.mobile-bottom-nav {
  display: none;
}

@media (max-width: 768px) {
  #main-nav { padding-top: 10px !important; padding-bottom: 10px !important; }
  #main-nav > div { padding-left: 14px !important; padding-right: 14px !important; gap: 12px; }
  #main-nav a.font-display-lg { font-size: 24px !important; }
  #mobile-nav-panel a.mobile-nav-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 12px 14px;
    margin-bottom: 6px;
    border-radius: 14px;
    color: rgba(255,255,255,0.95);
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
    background: rgba(255,255,255,0.08);
  }
  #mobile-nav-panel a.mobile-nav-link.active {
    background: rgba(245,217,138,0.2);
    color: #f5d98a;
  }
  .weather-panel { right: 0; width: min(16rem, calc(100vw - 32px)); transform-origin: top right; }
  .mobile-bottom-nav {
    position: fixed;
    left: 8px;
    right: 8px;
    bottom: max(8px, env(safe-area-inset-bottom));
    max-width: calc(100vw - 16px);
    z-index: 40;
    display: flex;
    justify-content: space-around;
    align-items: center;
    background: rgba(255,255,255,0.96);
    backdrop-filter: blur(18px);
    border: 1px solid rgba(39,79,16,0.1);
    border-radius: 22px;
    padding: 7px;
    box-shadow: 0 16px 40px rgba(39,79,16,0.18);
  }
  .bottom-nav-item {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    min-height: 52px;
    min-width: 0;
    padding: 7px 4px;
    border-radius: 14px;
    color: #64748b;
    font-size: 10px;
    font-weight: 700;
    text-decoration: none;
  }
  .bottom-nav-item.active,
  .bottom-nav-item:active {
    color: #274F10;
    background: rgba(212,168,60,0.18);
  }
  .bottom-nav-item:focus-visible { outline:3px solid #D4A83C;outline-offset:1px; }
  .bottom-nav-item .material-symbols-outlined {
    font-size: 20px;
  }
  body {
    padding-bottom: calc(88px + env(safe-area-inset-bottom));
  }
  #hero-section { min-height: 520px; height: min(78svh, 700px); padding-left: 18px; padding-right: 18px; }
  #hero-section .hero-slide { object-position: center 42%; }
  #hero-section h1 { font-size: 38px !important; line-height: 1.08 !important; }
  #hero-section p { font-size: 15px !important; line-height: 1.55 !important; }
  #directory { padding-top: 72px !important; padding-bottom: 72px !important; }
  #directory .mb-16 { margin-bottom: 32px !important; }
  #gastronomia-grid { gap: 24px !important; }
  #gastronomia-grid .card-item { min-height: 640px; border-radius: 20px; }
  #gastronomia-grid .card-item p,
  #gastronomia-grid .card-item li,
  #gastronomia-grid .card-item a,
  #gastronomia-grid .card-item span { overflow-wrap: anywhere; }
  .chatbot { right: 12px; bottom: calc(88px + env(safe-area-inset-bottom)); max-width: calc(100vw - 24px); }
  .chat-button { width: 64px; height: 64px; font-size: 10px; flex-shrink: 0; }
  .chat-button img { width: 100%; height: 100%; }
  .chat-window { width: min(calc(100vw - 24px), 420px); height: min(78vh, 560px); right: 0; bottom: 74px; border-radius: 18px; }
  .chat-quick { max-height: 118px; overflow-y: auto; }
  .quick-btn { padding: 8px 10px; font-size: 11px; }
  .chat-input-area input { min-width: 0; }
footer .flex.gap-6 { flex-wrap: wrap; justify-content: center; gap: 16px; }
  .site-footer { text-align:left; }
  .site-footer .social-link { flex:1;max-width:150px; min-height: 44px; }
}

/* Experiencias editoriales 2026 */  .events-editorial-banner {
  position: relative;
  min-height: 310px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  overflow: hidden;
  isolation: isolate;
  padding: clamp(34px, 6vw, 76px);
  color: #fff;
  border-radius: 30px 10px 30px 10px;
  background: linear-gradient(112deg, var(--brand-primary) 0%, #456D55 65%, #568469 100%);
  box-shadow: 0 24px 54px rgba(53,94,74,.18);
}
.events-editorial-banner::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: .18;
  background: repeating-linear-gradient(125deg, transparent 0 34px, rgba(245,217,138,.28) 35px 36px);
}
.events-banner-watermark { position:absolute;z-index:-2;right:-5%;top:50%;width:min(48vw,520px);height:min(48vw,520px);object-fit:cover;border-radius:50%;transform:translateY(-50%);opacity:.13;filter:grayscale(1) contrast(1.2); }
.events-banner-copy { max-width:740px; }
.events-banner-kicker { display:inline-flex;align-items:center;gap:10px;margin-bottom:20px;color:#F5D98A;font:600 11px/1.2 "JetBrains Mono",monospace;letter-spacing:.18em;text-transform:uppercase; }
.events-banner-kicker::before { content:"";width:42px;height:1px;background:#D4A83C; }
.events-banner-copy h2 { margin:0;font:800 clamp(46px,7vw,92px)/.88 "Syne",sans-serif;letter-spacing:-.055em;text-transform:uppercase; }
.events-banner-copy h2 span { display:block;color:#F5D98A;font-size:.58em;letter-spacing:.02em; }
.events-banner-copy p { margin:24px 0 0;max-width:540px;color:rgba(255,255,255,.82);font-size:clamp(16px,2vw,20px); }
.events-banner-date { display:grid;justify-items:center;gap:3px;padding-left:34px;border-left:1px solid rgba(245,217,138,.45);color:#F5D98A;font:600 10px/1 "JetBrains Mono",monospace;letter-spacing:.22em; }
.events-banner-date strong { color:#fff;font:800 clamp(40px,6vw,74px)/1 "Syne",sans-serif;letter-spacing:-.08em; }

.gastronomy-story-cta {
  position:relative;margin:clamp(60px,10vw,120px) calc(50% - 50vw) 0;padding:clamp(90px,12vw,160px) 24px;overflow:hidden;isolation:isolate;color:#fff;text-align:center;
  /* Verde vivo con amaneceres dorados que respiran (adiós al verde apagado) */
  background:
    radial-gradient(58rem 32rem at 12% 6%, rgba(245,217,138,.38), transparent 58%),
    radial-gradient(48rem 32rem at 90% 94%, rgba(238,154,27,.42), transparent 62%),
    radial-gradient(40rem 26rem at 55% 45%, rgba(76,181,68,.55), transparent 70%),
    linear-gradient(120deg,#2E9433 0%,#4CB544 40%,#3DA33A 62%,#1E7A2F 100%);
  background-size:160% 160%,160% 160%,140% 140%,100% 100%;
  animation:ctaBreath 16s ease-in-out infinite;
}
@keyframes ctaBreath {
  0%,100% { background-position:0% 20%,100% 80%,50% 50%,0% 0%; }
  50% { background-position:40% 0%,60% 100%,45% 60%,0% 0%; }
}
.gastronomy-story-cta::before,.gastronomy-story-cta::after { content:"";position:absolute;left:-5%;width:110%;height:70px;background:#f0f4f3;z-index:1; }
.gastronomy-story-cta::before { top:-46px;border-radius:0 0 50% 50%; }
.gastronomy-story-cta::after { bottom:-50px;border-radius:50% 50% 0 0; }
.gastronomy-story-inner { position:relative;z-index:2;max-width:980px;margin:auto; }
.gastronomy-story-kicker { display:block;margin-bottom:25px;color:#F5D98A;font:600 11px/1.2 "JetBrains Mono",monospace;letter-spacing:.24em;text-transform:uppercase; }
.gastronomy-story-cta h2 { min-height:2.1em;margin:0;color:#fff;font:700 clamp(40px,7vw,76px)/1.03 "Syne",sans-serif;letter-spacing:-.04em; }
.gastronomy-story-cta p { max-width:680px;margin:28px auto 0;color:rgba(255,255,255,.92);font-size:clamp(17px,2vw,21px);line-height:1.65;text-shadow:0 1px 8px rgba(10,30,8,.35); }
.gastronomy-story-orbit { position:absolute;left:50%;top:50%;width:min(82vw,850px);aspect-ratio:1;border:1.5px solid rgba(245,217,138,.38);border-radius:50%;transform:translate(-50%,-50%);animation:ctaOrbit 46s linear infinite; }
.gastronomy-story-orbit::before { content:"";position:absolute;inset:12%;border:1px solid rgba(245,217,138,.18);border-radius:50%; }
/* Lucero dorado que recorre la órbita */
.gastronomy-story-orbit::after { content:"";position:absolute;top:-7px;left:calc(50% - 7px);width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff6da,#F5D98A 55%,#EE9A1B);box-shadow:0 0 22px rgba(245,217,138,.95),0 0 44px rgba(238,154,27,.5); }
@keyframes ctaOrbit { to { transform:translate(-50%,-50%) rotate(360deg); } }
@media (prefers-reduced-motion:reduce) { .gastronomy-story-cta,.gastronomy-story-orbit { animation:none; } }
.gastronomy-story-orbit::after { inset:28%; }
.gastronomy-story-mark { position:absolute;right:4%;bottom:2%;color:rgba(245,217,138,.14);font:800 min(26vw,340px)/1 "Syne",sans-serif;letter-spacing:-.12em;text-shadow:0 0 60px rgba(245,217,138,.25); }
.gastronomy-story-detail { display:flex;align-items:center;justify-content:center;gap:18px;margin-top:42px;color:#F5D98A;font:500 10px/1.4 "JetBrains Mono",monospace;letter-spacing:.15em;text-transform:uppercase; }
.gastronomy-story-detail span { width:54px;height:1px;background:#D4A83C; }

.academic-credits { display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px 24px 22px;color:#b9c99a;font-size:12px;line-height:1.55;text-align:center; }
.academic-credits strong { color:#e3ebca;font-size:12.5px;font-weight:700;letter-spacing:.01em; }
.academic-credits b { color:#f6f3e8;font-weight:700; }
.academic-credits .academic-institute { color:#c9d89f;font-weight:600;font-size:12px; }
.academic-credits .academic-authors { margin-top:4px;color:#b9c99a; }
.academic-kicker { color:#e0b858;font:700 10px/1.4 "JetBrains Mono",monospace;letter-spacing:.14em;text-transform:uppercase; }

/* Base del footer turístico: las superficies claras dominan y el verde queda como acento. */
.site-footer {
  --footer-night:#13230f;
  --footer-cream:#f4f1e6;
  --footer-gold:#d8b15d;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:var(--surface);
  color:var(--text);
  box-shadow:0 -18px 50px rgba(39,79,16,.12);
}
.site-footer::before { display:none; }
.footer-tapiz {
  position:absolute;inset:90px 0 auto;height:430px;z-index:0;pointer-events:none;opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='220'%20height='220'%3E%3Cg%20fill='none'%20stroke='%23b4c78a'%20stroke-width='1'%20stroke-opacity='.12'%3E%3Ccircle%20cx='110'%20cy='110'%20r='28'/%3E%3Ccircle%20cx='110'%20cy='110'%20r='54'/%3E%3Ccircle%20cx='110'%20cy='110'%20r='82'/%3E%3Ccircle%20cx='110'%20cy='110'%20r='106'/%3E%3C/g%3E%3C/svg%3E");
  background-size:220px 220px;
  -webkit-mask-image:linear-gradient(#000,transparent);
  mask-image:linear-gradient(#000,transparent);
}
.site-footer > *:not(.footer-tapiz) { position:relative;z-index:1; }
.footer-landscape { height:92px;background:var(--footer-cream);overflow:hidden; }
.footer-landscape::before,.footer-landscape::after { content:"";position:absolute;bottom:-50px;width:62%;height:104px;border-radius:50% 50% 0 0;background:var(--brand-primary); }
.footer-landscape::before { left:-8%;transform:rotate(1deg); }
.footer-landscape::after { right:-8%;transform:rotate(-1deg); }
.footer-landscape { border-bottom:3px solid var(--footer-gold); }

.sr-wordmark { display:inline-flex;white-space:nowrap;font-family:"Syne",sans-serif;font-weight:800;letter-spacing:-.055em;line-height:.9; }
.sr-wordmark span { display:inline-block;transition:transform .25s ease,filter .25s ease; }
.sr-wordmark:hover span { transform:translateY(-4px);filter:saturate(1.18) brightness(1.06); }
.sr-wordmark:hover .sr-l1 { transition-delay:0s; }
.sr-wordmark:hover .sr-l2 { transition-delay:.03s; }
.sr-wordmark:hover .sr-l3 { transition-delay:.06s; }
.sr-wordmark:hover .sr-l4 { transition-delay:.09s; }
.sr-wordmark:hover .sr-l5 { transition-delay:.12s; }
.sr-wordmark:hover .sr-l6 { transition-delay:.15s; }
.sr-wordmark:hover .sr-l7 { transition-delay:.18s; }
.sr-wordmark:hover .sr-l8 { transition-delay:.21s; }
.sr-l1 { color:#ef2024; }
.sr-l2 { color:#f47b20; }
.sr-l3 { color:#f6bd16; }
.sr-l4 { color:#45ad2f; }
.sr-l5 { color:#159bd3; }
.sr-l6 { color:#68409b; }
.sr-l7 { color:#c92d67; }
.sr-l8 { color:#ef541c; }

.footer-hero { display:flex;flex-direction:column;align-items:center;gap:22px;margin-top:-69px;padding:0 24px 62px;text-align:center; }
.sr-wordmark-hero { max-width:100%;font-size:clamp(62px,9.4vw,148px);-webkit-text-stroke:1px rgba(25,21,14,.32); }
.sr-wordmark-hero span {
  filter:saturate(1.1);
  text-shadow:0 -1px 0 rgba(255,255,255,.6),1px 1px 0 rgba(0,0,0,.12),2px 2px 0 rgba(0,0,0,.08),4px 4px 8px rgba(0,0,0,.06);
}
.footer-tagline { margin:4px 0 0;color:#dce7c4;font-size:clamp(15px,1.6vw,19px);font-weight:500; }
.footer-hero-actions { display:flex;align-items:center;justify-content:center;gap:12px; }
.footer-social-pill { display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:10px 19px 10px 12px;border:1px solid rgba(255,255,255,.7);border-radius:999px;background:var(--footer-cream);color:#172311;font-size:14px;font-weight:700;text-decoration:none;box-shadow:0 10px 24px rgba(8,19,6,.22);transition:transform .2s ease,box-shadow .2s ease,background .2s ease; }
.footer-social-pill i { display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#182b13;color:#fff;font-size:13px; }
.footer-social-pill:hover { transform:translateY(-3px);background:#fff;box-shadow:0 14px 30px rgba(8,19,6,.32); }
.footer-social-pill:focus-visible { outline:3px solid var(--footer-gold);outline-offset:4px; }

.footer-navigation { background:rgba(24,57,19,.84);border-top:1px solid rgba(255,255,255,.05); }
.footer-navigation-inner { display:grid;grid-template-columns:minmax(260px,1.45fr) repeat(3,minmax(145px,1fr));gap:clamp(34px,5vw,76px);padding-top:54px;padding-bottom:56px; }
.footer-brand-column { display:flex;flex-direction:column;align-items:flex-start;gap:12px; }
.footer-brand-column h2 { margin:0;color:#fff;font:700 clamp(27px,3vw,35px)/1.1 "Syne",sans-serif;letter-spacing:-.035em; }
.footer-brand-column p { max-width:290px;margin:0;color:#d5e1bf;font-size:15px;line-height:1.55; }
.footer-brand-column a { color:#d8e7b9;font-size:14px;font-weight:700;text-decoration:none; }
.footer-brand-column > span { margin-top:5px;color:#aabd83;font:700 10px/1.5 "JetBrains Mono",monospace;letter-spacing:.14em; }
.footer-link-column { display:flex;flex-direction:column;align-items:flex-start;gap:14px; }
.footer-link-column h3 { margin:0 0 3px;color:var(--footer-gold);font:700 11px/1.4 "JetBrains Mono",monospace;letter-spacing:.13em;text-transform:uppercase; }
.footer-link-column a { display:inline-flex;align-items:center;gap:10px;color:#fff;font-size:15px;line-height:1.4;text-decoration:none; }
.footer-link-column a::before { content:"";width:13px;height:2px;border-radius:2px;background:#829f58;transition:width .2s ease,background .2s ease; }
.footer-link-column a:hover { color:#eef5dd; }
.footer-link-column a:hover::before { width:21px;background:var(--footer-gold); }
.footer-link-column a:focus-visible,.footer-brand-column a:focus-visible { outline:2px solid var(--footer-gold);outline-offset:4px;border-radius:3px; }

.footer-bottombar { background:var(--surface);padding:0 0 8px; }
.footer-bottombar .academic-credits { border-top:0; }
.footer-photo-credit { padding:10px 24px 0;color:#99ac77;font-size:11px;line-height:1.5;text-align:center; }
.footer-photo-credit a { color:#7d9455;font-weight:700;text-decoration:underline;text-underline-offset:2px; }
.footer-photo-credit a:hover { color:var(--brand-primary); }
.compact-footer-legal { padding:14px 24px 18px;border-top:1px solid rgba(180,199,138,.28);color:#99ac77;font-size:11px;line-height:1.5;text-align:center; }

@media (max-width:900px) {
  .footer-navigation-inner { grid-template-columns:1.3fr 1fr; }
  .footer-brand-column { grid-row:span 2; }
}
@media (max-width:640px) {
  .footer-landscape { height:72px; }
  .footer-landscape::before,.footer-landscape::after { bottom:-36px;height:72px; }
  .footer-hero { gap:18px;margin-top:-48px;padding:0 20px 40px; }
  .sr-wordmark-hero { font-size:clamp(54px,16vw,72px); }
  .footer-tagline { max-width:330px;line-height:1.5; }
  .footer-social-pill { min-height:44px;padding:9px 14px 9px 10px;font-size:13px; }
  .footer-navigation-inner { grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 20px;padding-top:40px;padding-bottom:42px; }
  .footer-brand-column { grid-column:1/-1;grid-row:auto; }
  .footer-brand-column p { max-width:340px; }
  .footer-link-column:last-child { grid-column:1/-1;display:grid;grid-template-columns:repeat(3,max-content);column-gap:18px; }
  .footer-link-column:last-child h3 { grid-column:1/-1; }
  .footer-link-column:last-child a { font-size:13px; }
  .academic-credits { padding:32px 24px 20px;font-size:11px; }
  .academic-credits strong { font-size:12px; }
}
@media (max-width:390px) {
  .sr-wordmark-hero { font-size:52px; }
  .footer-social-pill span { display:none; }
  .footer-social-pill { width:46px;padding:9px;justify-content:center; }
  .footer-social-pill i { width:26px;height:26px; }
  .footer-link-column:last-child { grid-template-columns:1fr; }
  .footer-link-column:last-child h3 { grid-column:auto; }
}
@media (prefers-reduced-motion:reduce) {
  .sr-wordmark span,.footer-social-pill,.footer-link-column a::before { transition:none; }
  .sr-wordmark:hover span,.footer-social-pill:hover { transform:none; }
}

/* ── FOOTER 2026 · paisaje institucional por capas ── */
.site-footer {
  isolation:isolate;
  color:var(--text);
  background:var(--surface);
  box-shadow:0 -20px 58px rgba(22,52,17,.1);
}
.site-footer::before { display:none; }
.footer-cream-crown { height:54px;background:#F6F1E7; }
.footer-cream-crown::after {
  content:"";position:absolute;left:-3%;right:-3%;bottom:-24px;height:48px;z-index:0;
  background:var(--surface);border-radius:50% 55% 0 0 / 78% 86% 0 0;
  box-shadow:inset 0 -1px 0 rgba(53,94,74,0.06);
}
.footer-wordmark-wrap {
  position:absolute !important;inset:10px 0 auto;z-index:4 !important;
  display:flex;justify-content:center;pointer-events:none;text-align:center;
}
.site-footer .sr-wordmark-hero {
  font-size:clamp(34px,4.1vw,56px);margin:0;line-height:.88;white-space:nowrap;
  transform:translateY(0);filter:drop-shadow(0 7px 6px rgba(6,22,5,.24));
}

.tourism-skip-link { position:fixed;left:16px;top:-80px;z-index:9999;padding:11px 17px;border-radius:10px;background:#fff;color:#234534;font-weight:800;box-shadow:0 12px 32px rgba(0,0,0,.2); }
.tourism-skip-link:focus { top:16px; }

/* Fichas turísticas editoriales y galería accesible. */
.tourism-detail-view { background:linear-gradient(180deg,#f4f1ea 0,#fff 340px)!important; }
.tourism-detail-view #det-main-img { aspect-ratio:16/10; }
.tourism-related { max-width:1200px;margin:clamp(52px,8vw,96px) auto 0;padding:clamp(28px,5vw,56px) 0;border-top:1px solid rgba(53,94,74,.16); }
.tourism-section-heading { margin-bottom:24px; }
.tourism-section-heading > span,.detail-kicker { display:block;margin-bottom:8px;color:var(--accent);font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase; }
.tourism-section-heading h2 { margin:0;color:var(--brand-primary);font-size:clamp(1.8rem,3vw,2.7rem);line-height:1.05; }
.tourism-related-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px; }
.tourism-related-card { display:block;overflow:hidden;border:1px solid rgba(53,94,74,.12);border-radius:var(--radius-card);background:#fff;color:inherit;box-shadow:0 12px 32px rgba(35,45,40,.08);transition:transform var(--motion-base),box-shadow var(--motion-base); }
.tourism-related-card:hover { transform:translateY(-6px);box-shadow:0 22px 46px rgba(35,45,40,.13); }
.tourism-related-card picture,.tourism-related-card img { display:block;width:100%;height:210px;object-fit:cover; }
.tourism-related-card > div { padding:18px; }
.tourism-related-card span { color:var(--accent);font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase; }
.tourism-related-card h3 { margin:5px 0;color:var(--brand-primary);font-size:1.14rem; }
.tourism-related-card p { margin:0;color:#666;font-size:.86rem; }

.gastronomy-detail { max-width:1280px;margin:0 auto;padding:120px clamp(18px,4vw,56px) 72px; }
.detail-back { margin-bottom:22px;padding:10px 16px;border:1px solid rgba(53,94,74,.2);border-radius:999px;background:#fff;color:var(--brand-primary);font-weight:750; }
/* Tarjeta clara flotando sobre la esquina de la foto (como obera.tur.ar),
   no un overlay oscuro con texto blanco. La tarjeta vive DENTRO de
   .detail-hero-media (así el orden en el DOM ya es foto→tarjeta→columna de
   acciones, correcto también cuando la grilla se apila en mobile) pero
   "cuelga" por fuera del borde inferior de la foto con bottom negativo —
   por eso el redondeado ya no lo pone el contenedor con overflow:hidden
   (cortaría la tarjeta) sino cada mitad por separado (foto/columna), y la
   columna de la derecha reserva un margen arriba para no quedar tapada. */
.tourism-detail-hero-wrap { position:relative;margin-bottom:clamp(50px,7vw,72px); }
.tourism-detail-hero { display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);min-height:460px;border-radius:30px;box-shadow:0 28px 70px rgba(33,45,39,.13); }
.detail-hero-media { position:relative;min-height:460px;background:#e9ebe7;border-radius:30px 0 0 30px;overflow:visible; }
.detail-hero-media picture,.detail-hero-media img { width:100%;height:100%;display:block;object-fit:cover;border-radius:30px 0 0 30px; }
.detail-hero-media > button { position:absolute;top:20px;right:20px;z-index:3;display:flex;align-items:center;gap:10px;padding:12px 16px;border:0;border-radius:999px;background:rgba(255,255,255,.94);color:var(--brand-primary);font-weight:800;box-shadow:0 8px 28px rgba(0,0,0,.18); }
.detail-hero-media > button span { min-width:28px;padding:4px 7px;border-radius:999px;background:var(--brand-primary);color:#fff; }
.detail-hero-card { position:absolute;left:clamp(20px,3vw,40px);bottom:clamp(-58px,-5.5vw,-42px);z-index:4;max-width:min(480px,80%);padding:clamp(22px,2.8vw,32px) clamp(24px,3vw,36px);border-radius:22px;background:#fff;box-shadow:0 22px 54px rgba(33,45,39,.19); }
.detail-hero-card > span { display:inline-flex;align-items:center;color:var(--accent);font-size:.72rem;font-weight:850;letter-spacing:.16em;text-transform:uppercase; }
.detail-hero-card h1 { margin:8px 0 0;color:var(--brand-primary);font-size:clamp(1.7rem,2.4vw,2.5rem);line-height:1.08;letter-spacing:-.02em;overflow-wrap:break-word; }
.detail-hero-card .detail-estado-line { margin-top:12px; }
.detail-hero-copy { display:flex;flex-direction:column;justify-content:center;gap:16px;padding:clamp(30px,5vw,64px);background:linear-gradient(145deg,#fff,#f4f0e7);border-radius:0 30px 30px 0; }
.detail-hero-copy p { margin:0;color:#555;font-size:1.02rem;line-height:1.7; }
.tourism-actions { display:flex;flex-wrap:wrap;gap:9px;margin-top:28px; }
.tourism-action { display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 17px;border:1px solid rgba(53,94,74,.22);border-radius:999px;background:#fff;color:var(--brand-primary);font-weight:800;text-decoration:none;transition:background var(--motion-base),color var(--motion-base),transform var(--motion-base); }
.tourism-action:hover { transform:translateY(-2px);background:#edf4ef; }
.tourism-action.primary { border-color:var(--brand-primary);background:var(--brand-primary);color:#fff; }
.tourism-action.primary:hover { background:var(--brand-primary-hover); }
.tourism-detail-layout { display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(28px,5vw,64px);margin-top:clamp(46px,7vw,88px);align-items:start; }
.tourism-detail-main { display:grid;gap:56px; }
.tourism-detail-main section { scroll-margin-top:110px; }
.tourism-detail-main h2,.tourism-practical-card h2 { margin:0 0 16px;color:var(--brand-primary);font-size:clamp(1.7rem,3vw,2.5rem); }
.tourism-detail-main p { color:#555;font-size:1.02rem;line-height:1.85; }
/* Descripciones con estructura (programas de eventos): subtítulos y viñetas.
   El ancho de lectura importa: a 950 px el ojo pierde el renglón. */
.detail-rich { max-width:68ch; }
.detail-rich > * + * { margin-top:14px; }
.detail-rich p { text-align:justify;text-justify:inter-word;hyphens:auto; }
.detail-rich strong { color:#2f2f2b;font-weight:800; }
@media (max-width:560px) { .detail-rich p { text-align:left;hyphens:manual; } }
.detail-rich h3 { margin-top:28px;color:var(--brand-primary);font-family:'Syne',sans-serif;font-size:1.15rem;line-height:1.3; }
.detail-rich h3:first-child { margin-top:0; }
.detail-rich ul { margin:0;padding:0;list-style:none;display:grid;gap:8px; }
.detail-rich li { position:relative;padding:10px 14px 10px 34px;border-radius:12px;background:#fff;border:1px solid rgba(53,94,74,.09);color:#555;font-size:.98rem;line-height:1.5; }
.detail-rich li::before { content:'';position:absolute;left:15px;top:1.05em;width:7px;height:7px;border-radius:50%;background:var(--accent); }
.detail-service-grid { display:flex;flex-wrap:wrap;gap:9px; }
.detail-service-grid span { padding:10px 14px;border:1px solid rgba(53,94,74,.16);border-radius:999px;background:#f4f7f4;color:#365544;font-weight:720;font-size:.86rem; }
.tourism-practical-card { position:sticky;top:110px;display:grid;gap:18px;padding:26px;border:1px solid rgba(53,94,74,.13);border-radius:22px;background:#fff;box-shadow:0 18px 48px rgba(33,45,39,.09); }
.tourism-practical-card > div { padding-top:14px;border-top:1px solid #ecece8; }
.tourism-practical-card strong { color:#333; }
.tourism-practical-card p { margin:5px 0 0;color:#666;line-height:1.6; }
.editorial-gallery { display:grid;grid-template-columns:1.25fr .75fr;grid-auto-rows:220px;gap:10px;overflow:hidden;border-radius:20px; }
.editorial-gallery button { overflow:hidden;padding:0;border:0;background:#e9ebe7;cursor:zoom-in; }
.editorial-gallery button:first-child { grid-row:span 2; }
.editorial-gallery picture,.editorial-gallery img { width:100%;height:100%;display:block;object-fit:cover;transition:transform var(--motion-base); }
.editorial-gallery button:hover img { transform:scale(1.035); }

body.lightbox-open { overflow:hidden; }
.tourism-lightbox { position:fixed;inset:0;z-index:9999;display:grid;grid-template-columns:72px minmax(0,1fr) 72px;grid-template-rows:auto minmax(0,1fr) 96px;gap:12px;padding:18px;background:rgba(8,14,11,.96);color:#fff; }
.tourism-lightbox[hidden] { display:none; }
.lightbox-toolbar { grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:16px; }
.lightbox-toolbar button,.lightbox-arrow { min-width:48px;min-height:48px;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(255,255,255,.1);color:#fff;font-weight:800; }
.lightbox-stage { display:grid;place-items:center;min-width:0;min-height:0; }
.lightbox-stage picture { width:100%;height:100%;display:grid;place-items:center; }
.lightbox-image { max-width:100%;max-height:100%;object-fit:contain; }
.lightbox-arrow { align-self:center;font-size:2.3rem; }
.lightbox-thumbs { grid-column:1/-1;display:flex;justify-content:center;gap:8px;overflow-x:auto; }
.lightbox-thumbs button { width:96px;height:72px;flex:0 0 auto;padding:2px;border:2px solid transparent;border-radius:10px;background:transparent;opacity:.58; }
.lightbox-thumbs button[aria-current="true"] { border-color:var(--accent);opacity:1; }
.lightbox-thumbs picture,.lightbox-thumbs img { width:100%;height:100%;display:block;object-fit:cover;border-radius:7px; }

@media (max-width:900px) {
  .tourism-related-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tourism-detail-hero-wrap { margin-bottom:clamp(28px,5vw,40px); }
  .tourism-detail-hero { grid-template-columns:1fr;min-height:0; }
  .detail-hero-media { min-height:64vw;border-radius:30px 30px 0 0; }
  .detail-hero-media picture,.detail-hero-media img { border-radius:30px 30px 0 0; }
  /* La grilla se apila (foto arriba, columna de acciones abajo); la tarjeta
     sigue colgando del borde inferior de la foto (absolute), así que la
     columna de abajo necesita aire arriba para no quedar tapada por ella. */
  .detail-hero-card { left:16px;right:16px;max-width:none; }
  .detail-hero-copy { margin-top:clamp(84px,20vw,112px);border-radius:0 0 30px 30px; }
  .tourism-detail-layout { grid-template-columns:1fr; }
  .tourism-practical-card { position:static; }
}
@media (max-width:640px) {
  .tourism-related-grid { display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px; }
  .tourism-related-card { min-width:82vw;scroll-snap-align:start; }
  .gastronomy-detail { padding:96px 14px 64px; }
  .tourism-detail-hero { border-radius:20px; }
  .detail-hero-media { min-height:72vw;border-radius:20px 20px 0 0; }
  .detail-hero-media picture,.detail-hero-media img { border-radius:20px 20px 0 0; }
  .detail-hero-card { left:12px;right:12px;bottom:-34px;padding:18px 20px 22px;border-radius:18px; }
  .detail-hero-card h1 { font-size:1.5rem;line-height:1.18; }
  .detail-hero-copy { margin-top:96px;padding:26px 20px 30px;border-radius:0 0 20px 20px; }
  .tourism-action { flex:1 1 calc(50% - 9px); }
  .editorial-gallery { grid-template-columns:1fr 1fr;grid-auto-rows:150px; }
  .tourism-lightbox { grid-template-columns:44px minmax(0,1fr) 44px;grid-template-rows:auto minmax(0,1fr) 82px;padding:10px; }
  .lightbox-arrow { min-width:42px;min-height:42px; }
}
.footer-social-band {
  position:relative;background:var(--surface-elevated);
  padding:36px 0 17px;border-top:3px solid #D4A83C;
}
.footer-social-band .footer-tagline { margin:0 auto 10px;padding:0 20px;color:rgba(47,47,47,0.6);font-size:12px;text-align:center; }
.footer-social-actions { display:flex;align-items:center;justify-content:center;gap:8px; }
.footer-social-band .social-link {
  min-width:118px;min-height:40px;padding:0 16px;border:1px solid rgba(28,64,23,.1);
  background:#F8F4EB;color:#193617;box-shadow:0 10px 24px rgba(13,36,10,.18);
}
.footer-social-band .social-link:hover { background:#FFD981;color:#183915;border-color:#FFD981;transform:translateY(-3px); }
.footer-navigation { background:#F6F1E7;border-top:1px solid rgba(53,94,74,0.1); }
.footer-grid {
  display:grid;grid-template-columns:1.35fr repeat(3,1fr);gap:clamp(28px,5vw,74px);
  padding-top:48px;padding-bottom:48px;
}
.footer-intro { display:flex;flex-direction:column;align-items:flex-start;gap:11px; }
.footer-intro h2 { margin:0;font:800 clamp(24px,2.2vw,31px)/1.05 "Syne",sans-serif;letter-spacing:-.04em;color:var(--text); }
.footer-intro p { max-width:280px;margin:7px 0 1px;color:var(--text-muted);font-size:14px;line-height:1.55; }
.footer-intro a { color:var(--brand-primary);font-weight:700;font-size:13px;text-decoration:none; }
.footer-intro span { color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase; }
.footer-grid nav { display:flex;flex-direction:column;align-items:flex-start;gap:13px; }
.footer-grid nav h3 { margin:0 0 4px;color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase; }
.footer-grid nav a { position:relative;padding-left:20px;color:var(--text);font-size:14px;text-decoration:none;transition:color .2s ease,transform .2s ease; }
.footer-grid nav a::before { content:"";position:absolute;left:0;top:.68em;width:9px;height:1px;background:var(--brand-primary); }
.footer-grid nav a:hover { color:var(--accent);transform:translateX(3px); }
.site-footer .footer-bottombar { background:#E8E2D4;padding:14px 0 0; }
.site-footer .academic-credits { gap:3px;padding-bottom:8px;color:var(--brand-primary);font-size:11px;line-height:1.35; }
.site-footer .academic-credits strong,
.site-footer .academic-credits b,
.site-footer .academic-credits .academic-institute,
.site-footer .academic-credits .academic-authors,
.site-footer .academic-label { color:var(--brand-primary); }
.site-footer .academic-label { font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase; }
.site-footer .compact-footer-legal { border-top-color:rgba(212,168,60,.22);padding:7px 24px 9px;color:rgba(47,47,47,0.46);font-size:10px; }
@media (max-width:900px) {
  .footer-grid { grid-template-columns:1.25fr 1fr 1fr; }
  .footer-grid nav:last-child { grid-column:2 / 4;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center; }
  .footer-grid nav:last-child h3 { grid-column:1 / -1; }
}
@media (max-width:640px) {
  .footer-cream-crown { height:41px; }
  .footer-wordmark-wrap { top:12px; }
  .site-footer .sr-wordmark-hero { font-size:clamp(30px,10vw,38px);letter-spacing:-.055em; }
  .footer-social-band { padding-top:28px; }
  .footer-social-actions { flex-direction:row;flex-wrap:wrap;gap:8px; }
  .footer-social-band .social-link { width:auto;min-width:112px; }
  .footer-grid { grid-template-columns:1fr 1fr;gap:34px 24px;padding-top:39px;padding-bottom:42px; }
  .footer-intro { grid-column:1 / -1; }
  .footer-grid nav:last-child { grid-column:1 / -1;display:flex; }
}
@media (max-width:390px) {
  .footer-grid { grid-template-columns:1fr; }
  .footer-grid nav:last-child { grid-column:auto; }
}

/* ── MONJITA DOMINICA: tarjeta interactiva del hero ── */
#hero-section .monjita-hero-card { position:absolute;z-index:25;top:auto;bottom:118px;left:clamp(16px,3vw,42px);display:flex;align-items:center;gap:12px;max-width:300px;padding:11px 16px 11px 11px;border:1px solid rgba(245,217,138,.4);border-radius:18px;background:rgba(0,32,29,.5);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff;text-align:left;cursor:pointer;box-shadow:0 12px 30px rgba(0,0,0,.28);transition:transform .25s ease,background .25s ease,box-shadow .25s ease;animation:monjitaCardIn .8s cubic-bezier(.22,1,.36,1) .4s both; }
@keyframes monjitaCardIn { from { opacity:0;transform:translateY(14px); } to { opacity:1;transform:none; } }
.monjita-hero-card:hover { transform:translateY(-3px);background:rgba(0,40,36,.62);box-shadow:0 18px 42px rgba(0,0,0,.36); }
.monjita-hero-card:focus-visible { outline:3px solid #F5D98A;outline-offset:3px; }
.monjita-hero-imgs { position:relative;width:62px;height:62px;flex:0 0 auto;border-radius:14px;overflow:hidden;border:1px solid rgba(245,217,138,.5); }
.monjita-hero-img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .9s ease; }
.monjita-hero-img.is-active { opacity:1; }
.monjita-hero-body { display:flex;flex-direction:column;gap:2px;min-width:0; }
.monjita-hero-kicker { display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#F5D98A; }
.monjita-hero-kicker .material-symbols-outlined { font-size:14px; }
.monjita-hero-title { font:700 16px/1.15 "Syne",sans-serif; }
.monjita-hero-cta { display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:700;color:rgba(255,255,255,.85); }
.monjita-hero-cta .material-symbols-outlined { font-size:14px;transition:transform .2s ease; }
.monjita-hero-card:hover .monjita-hero-cta .material-symbols-outlined { transform:translateX(3px); }
@media (max-width:640px) { #hero-section .monjita-hero-card { top:auto;bottom:88px;left:12px;right:12px;max-width:none; } #hero-section .relative.z-20 { padding-bottom:128px; } }

/* ── Accesos rápidos del hero (reemplazan al buscador) ── */
.hero-brand-badge {
  position:absolute !important;top:18px;right:18px;z-index:20;
  display:inline-flex;align-items:center;gap:10px;
  padding:10px 14px;border-radius:999px;
  background:rgba(255,255,255,.14);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.24);color:#fff;text-decoration:none;
  font:700 14px/1.2 "Manrope",sans-serif;letter-spacing:.02em;
  box-shadow:0 14px 40px rgba(0,0,0,.2);transition:transform .2s ease,background .2s ease;
}
.hero-brand-badge img { width:28px;height:28px;border-radius:50%;object-fit:cover; }
.hero-brand-badge:hover { background:rgba(255,255,255,.22);transform:translateY(-1px); }
@media (min-width:900px) {
  #main-nav > a { display:none !important; }
  .hero-brand-badge { left:18px; right:auto; }
}
@media (max-width:640px) { .hero-brand-badge { top:14px;right:14px; padding:8px 12px;font-size:12px; } }
.hero-quick-links { margin-top:38px;display:flex;flex-wrap:wrap;justify-content:center;gap:10px; }
.hero-chip {
  display:inline-flex;align-items:center;gap:7px;
  padding:11px 20px;border-radius:999px;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  color:#fff;font:700 13.5px/1 "Manrope",sans-serif;letter-spacing:.02em;
  text-decoration:none;box-shadow:0 10px 26px rgba(0,0,0,.18);
  transition:background .22s ease,border-color .22s ease,transform .22s ease,box-shadow .22s ease;
}
.hero-chip .material-symbols-outlined { font-size:17px;color:#F5D98A; }
.hero-chip:hover { background:rgba(255,255,255,.26);border-color:rgba(245,217,138,.6);transform:translateY(-2px);box-shadow:0 16px 34px rgba(0,0,0,.26); }
.hero-chip:focus-visible { outline:3px solid #F5D98A;outline-offset:3px; }
.hero-quick-links + div { margin-top:44px; }
.hero-action-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:0 auto;
  padding:0.95rem 1.6rem;
  border-radius:999px;
  background:rgba(255,255,255,0.14);
  border:1px solid rgba(255,255,255,0.28);
  color:#fff;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:0.12em;
  text-decoration:none;
  transition:transform 0.2s ease,background 0.2s ease,box-shadow 0.2s ease;
}
.hero-action-btn:hover { background:rgba(255,255,255,0.28);transform:translateY(-1px);box-shadow:0 18px 38px rgba(0,0,0,.18); }
.hero-quick-links + div { margin-top:24px; }
@media (max-width:640px) { .hero-quick-links { display:none !important; gap:8px; } .hero-chip { padding:10px 15px;font-size:12.5px; } .hero-action-btn { width:100%; padding:0.95rem 1.2rem; } }

/* ── MONJITA DOMINICA: modal con galería + nota ── */
.monjita-modal { position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px; }
.monjita-modal[hidden] { display:none; }
.monjita-modal-backdrop { position:absolute;inset:0;background:rgba(0,20,18,.72);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px); }
.monjita-modal-panel { position:relative;z-index:1;width:min(980px,100%);max-height:90vh;overflow:hidden;display:grid;grid-template-columns:minmax(0,42%) minmax(0,58%);background:#fff;border-radius:24px;box-shadow:0 40px 90px rgba(0,0,0,.42);animation:viewFadeIn .35s cubic-bezier(.22,1,.36,1); }
.monjita-modal-x { position:absolute;top:12px;right:12px;z-index:2;width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:50%;background:rgba(0,0,0,.5);color:#fff;cursor:pointer;transition:background .2s ease; }
.monjita-modal-x:hover { background:rgba(0,0,0,.78); }
.monjita-gallery { background:linear-gradient(175deg,#fbf8ef 0%,#f3edda 70%,#eee5cc 100%);border-right:1px solid rgba(212,168,60,.25);padding:16px;display:flex;flex-direction:column;gap:10px; }
#monjita-gallery-main { width:100%;height:auto;max-height:54vh;object-fit:cover;border-radius:16px; }
.monjita-thumbs { display:flex;gap:8px;flex-wrap:wrap; }
.monjita-thumb { width:52px;height:52px;border-radius:10px;overflow:hidden;border:2px solid rgba(212,168,60,.25);padding:0;cursor:pointer;background:none;transition:border-color .2s ease,transform .2s ease; }
.monjita-thumb:hover { transform:translateY(-2px); }
.monjita-thumb.is-active { border-color:#D4A83C;box-shadow:0 4px 12px rgba(212,168,60,.35); }
.monjita-thumb img { width:100%;height:100%;object-fit:cover; }
.monjita-article { padding:28px 30px;overflow-y:auto;max-height:90vh; }
.monjita-article-kicker { display:inline-block;font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:#336A15;background:#eef4e4;padding:5px 12px;border-radius:999px;margin-bottom:12px; }
.monjita-article h2 { font:700 25px/1.22 "Syne",sans-serif;color:#274F10;margin:0 0 10px; }
.monjita-article h3 { font:700 17px/1.3 "Syne",sans-serif;color:#336A15;margin:20px 0 6px; }
.monjita-article p { color:#374151;font-size:14.5px;line-height:1.65;margin:0 0 10px; }
.monjita-article em { color:#336A15;font-style:italic; }
@media (max-width:820px) { .monjita-modal-panel { grid-template-columns:1fr;max-height:92vh;overflow-y:auto; } #monjita-gallery-main { max-height:34vh; } .monjita-article { max-height:none;overflow:visible; } }
.compact-footer-inner { max-width:1280px;margin:auto;padding:24px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#fff; }
.compact-footer-inner strong { font:700 22px/1.2 "Syne",sans-serif;color:#F5D98A; }
.compact-footer-inner p { margin:4px 0 0;color:rgba(255,255,255,.68);font-size:13px; }
.compact-footer-links { display:flex;flex-wrap:wrap;gap:18px; }
.compact-footer-links a { color:rgba(255,255,255,.78);font-size:12px;text-decoration:none; }
.compact-footer-links a:hover { color:#F5D98A; }
.compact-footer-legal { padding-top:13px;padding-bottom:15px;border-top:1px solid rgba(255,255,255,.08);color:rgba(255,255,255,.55);font-size:11px;text-align:center; }

@media (max-width: 700px) {
  .events-editorial-banner { min-height:270px;grid-template-columns:1fr;padding:34px 26px;border-radius:24px 8px; }
  .events-banner-watermark { width:330px;height:330px;right:-40%; }
  .events-banner-date { display:none; }
  .events-banner-copy h2 { font-size:48px; }
  .gastronomy-story-cta { padding:105px 22px 120px; }
  .gastronomy-story-detail span { width:22px; }
  .compact-footer-inner { align-items:flex-start;flex-direction:column; }
}

@media (max-width: 390px) {
  #hero-section h1 { font-size: 34px !important; }
  #gastronomia-grid .card-item { min-height: 690px; }
  .geo-btn { font-size: 10px; }
}
/* Fix seguro: temperatura y chatbot sin romper contenido */
.weather-widget:focus .weather-panel,
.weather-widget:focus-within .weather-panel {
  opacity: 0;
  transform: scale(0.95) translateY(10px);
  pointer-events: none;
}
.weather-widget.weather-open .weather-panel {
  opacity: 1 !important;
  transform: scale(1) translateY(0) !important;
  pointer-events: auto !important;
}
@media (hover: hover) and (pointer: fine) {
  .weather-widget:hover .weather-panel {
    opacity: 1;
    transform: scale(1) translateY(0);
    pointer-events: auto;
  }
}
@media (max-width: 768px) {
  .weather-widget:hover .weather-panel {
    opacity: 0;
    transform: scale(0.95) translateY(10px);
    pointer-events: none;
  }
  .weather-widget.weather-open .weather-panel {
    opacity: 1 !important;
    transform: scale(1) translateY(0) !important;
    pointer-events: auto !important;
  }
  .chat-window { max-height: calc(100svh - 96px); }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior:auto !important;animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important; }
  #intro-splash { display:none; }
}

/* ══ PORTAL TURÍSTICO EDITORIAL 2026 ══ */
html { background:var(--surface);scroll-behavior:smooth; }
body.tourism-page,
body:has(.internal-hero),
body:has(.detail-hero) { background:var(--surface) !important;color:var(--text);font-family:"Manrope",sans-serif; }

.tourism-page main,
body:has(.internal-hero) main,
body:has(.detail-hero) main { position:relative; }

.tourism-hero#hero-section { height:min(82svh,780px);min-height:590px;border-radius:0 0 clamp(28px,5vw,64px) clamp(28px,5vw,64px);box-shadow:0 24px 70px rgba(32,52,43,.16); }
.tourism-hero::after { content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(15,31,25,.68),rgba(15,31,25,.2) 62%,rgba(15,31,25,.36)); }
.tourism-hero > * { position:relative;z-index:2; }
.tourism-hero .hero-rotor-monjita { position:absolute; }
.tourism-hero .max-w-3xl { width:min(100% - 32px,760px);text-align:left; }
/* El hero se comparte entre páginas que cargan bundles Tailwind distintos
   (tw-base.css e tw-gastronomia.css). En gastronomía faltaban text-canvas-white,
   text-lg y max-w-xl, así que la bajada heredaba el gris del body (#2F2F2F)
   sobre la foto: invisible. El color vive acá, donde lo ven todas las páginas. */
.tourism-hero h1 { color:#FFFFFF; }
.tourism-hero > div > p { max-width:36rem;margin-left:auto;margin-right:auto;color:rgba(255,255,255,.88);font-size:1.125rem;line-height:1.6; }
.tourism-hero .hero-eyebrow { color:rgba(255,255,255,.92); }
@media (min-width:768px) { .tourism-hero > div > p { font-size:1.25rem; } }
.tourism-hero .max-w-xl { margin-left:0; }
.tourism-hero form,
.tourism-hero .bg-white\/95 { border:1px solid rgba(255,255,255,.62);border-radius:18px !important;box-shadow:0 18px 50px rgba(15,31,25,.22); }

#datos-utiles,
#directory,
#agenda,
#main-explorer-view > section:not(#hero-section) { scroll-margin-top:110px; }
.datos-utiles-lista li a,
.card-item,
#events-grid > article,
#actividades-grid > article,
#eventos-grid > article { border-radius:var(--radius-card) !important;border:1px solid rgba(47,47,47,.07) !important;background:var(--surface-elevated) !important;box-shadow:var(--shadow-card) !important;transition:transform var(--motion-base) ease,box-shadow var(--motion-base) ease,border-color var(--motion-base) ease !important; }
.datos-utiles-lista li a:hover,
.card-item:hover,
#events-grid > article:hover,
#actividades-grid > article:hover,
#eventos-grid > article:hover { transform:translateY(-6px);box-shadow:var(--shadow-hover) !important;border-color:rgba(53,94,74,.18) !important; }

.filter-btn,
.filters button { transition:color var(--motion-base) ease,background var(--motion-base) ease,transform var(--motion-base) ease,box-shadow var(--motion-base) ease !important; }
.filter-btn:hover,
.filters button:hover { transform:translateY(-2px); }

.internal-hero,
.detail-hero { min-height:clamp(320px,44vw,510px) !important;padding-top:clamp(150px,18vw,210px) !important;padding-bottom:clamp(48px,7vw,76px) !important;overflow:hidden;isolation:isolate;border-radius:0 0 clamp(28px,5vw,58px) clamp(28px,5vw,58px); }
.internal-hero::after,
.detail-hero::after { content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(20,45,35,.74),rgba(20,45,35,.3) 68%,rgba(20,45,35,.16));pointer-events:none; }
.internal-hero h1,
.detail-hero h1 { max-width:900px;font-weight:800;letter-spacing:-.045em;text-wrap:balance; }

body:has(.internal-hero) main,
body:has(.detail-hero) main { width:min(100% - 32px,1180px) !important;max-width:1180px !important;padding-top:clamp(52px,8vw,96px) !important;padding-bottom:clamp(64px,9vw,110px) !important; }
body:has(.internal-hero) main > div,
body:has(.detail-hero) main > section,
body:has(.detail-hero) main > aside { border-radius:var(--radius-card); }

.gastronomy-page #hero-section { height:min(78svh,720px) !important;min-height:560px;border-radius:0 0 clamp(28px,5vw,64px) clamp(28px,5vw,64px); }
.gastronomy-page #directory { padding-top:clamp(72px,9vw,120px);padding-bottom:clamp(72px,9vw,120px); }
.gastronomy-page #gastronomia-grid { gap:clamp(20px,3vw,34px); }
.gastronomy-page .gastronomy-story-cta {
  margin-top:0;
  background:
    radial-gradient(58rem 32rem at 12% 6%, rgba(245,217,138,.38), transparent 58%),
    radial-gradient(48rem 32rem at 90% 94%, rgba(238,154,27,.42), transparent 62%),
    radial-gradient(40rem 26rem at 55% 45%, rgba(76,181,68,.55), transparent 70%),
    linear-gradient(120deg,#2E9433 0%,#4CB544 40%,#3DA33A 62%,#1E7A2F 100%);
  background-size:160% 160%,160% 160%,140% 140%,100% 100%;
}

.gastronomy-premium-page { --green:#355E4A !important;--green-dark:#2C4F3D !important;--cream:#F6F3EE !important;--gold:#D8A441 !important; }
.gastronomy-premium-page .hero { min-height:min(82svh,760px);border-radius:0 0 clamp(28px,5vw,64px) clamp(28px,5vw,64px); }
.gastronomy-premium-page .finder-card,
.gastronomy-premium-page .card,
.gastronomy-premium-page .info-card { border-radius:var(--radius-card) !important;box-shadow:var(--shadow-card) !important; }
.gastronomy-premium-page .card { transition:transform var(--motion-base) ease,box-shadow var(--motion-base) ease !important; }
.gastronomy-premium-page .card:hover { transform:translateY(-6px);box-shadow:var(--shadow-hover) !important; }
.gastronomy-premium-page .cta { background:linear-gradient(145deg,#284738,#355E4A 62%,#466E5A) !important; }

@media (max-width:767px) {
  .tourism-hero#hero-section { height:76svh;min-height:560px;align-items:flex-end;padding-bottom:90px; }
  .tourism-hero .max-w-3xl { text-align:left; }
  .tourism-hero h1 { font-size:clamp(38px,12vw,54px); }
  .internal-hero,.detail-hero { min-height:350px !important; }
  #accommodation-filters,.filters { flex-wrap:nowrap !important;overflow-x:auto;padding:4px 4px 12px;scroll-snap-type:x proximity; }
  #accommodation-filters > *, .filters > * { flex:0 0 auto;scroll-snap-align:start; }
  body:has(.internal-hero) main,body:has(.detail-hero) main { width:min(100% - 24px,1180px) !important; }
  .site-footer .sr-wordmark-hero { max-width:100%;font-size:clamp(30px,10vw,38px) !important;letter-spacing:-.065em; }
}

/* ══ CUSTOM OVERRIDES FOR DESKTOP HEADER AND HERO ══ */
#main-nav { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; }
.main-nav-buttons > .nav-dropdown {
  padding: 0 !important;
  background: none !important;
  box-shadow: none !important;
}
.main-nav-buttons > .nav-dropdown .nav-dropdown-trigger {
  background: rgba(255,255,255,0.95) !important;
  border-radius: 9999px !important;
  padding: 0.75rem 1rem !important;
  box-shadow: 0 12px 28px rgba(0,0,0,0.08) !important;
  min-height: 44px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.3rem !important;
  white-space: nowrap !important;
  color: #274F10 !important;
  line-height: 1.2 !important;
}
.main-nav-buttons > .nav-dropdown .nav-dropdown-trigger:hover {
  transform: translateY(-1px) !important;
}
#hero-section { min-height: 520px !important; height: min(55svh, 560px) !important; align-items: flex-end !important; padding-bottom: 30px !important; }
@media (min-width: 900px) {
  .tourism-hero#hero-section,
  .gastronomy-page #hero-section,
  #hero-section.tourism-hero {
    height: 560px !important;
    min-height: 560px !important;
    align-items: flex-start !important;
    justify-content: center !important;
    padding-top: 5rem !important;
    padding-bottom: 0 !important;
  }
  .tourism-hero#hero-section .hero-slide,
  .gastronomy-page #hero-section .hero-slide,
  #hero-section.tourism-hero .hero-slide {
    object-position: center 30% !important;
  }
}

/* ══ SUPERFICIES PÚBLICAS NEUTRAS ══ */
#main-nav.bg-primary\/95 {
  background:rgba(255,255,255,.94) !important;
  color:var(--text) !important;
  border-bottom:1px solid rgba(47,47,47,.08);
  box-shadow:0 10px 30px rgba(22,33,29,.1) !important;
}
#main-nav.bg-primary\/95 a,
#main-nav.bg-primary\/95 button { color:var(--text) !important;text-shadow:none; }
#main-nav.bg-primary\/95 a[aria-current="page"],
#main-nav.bg-primary\/95 a.font-bold { color:var(--brand-primary) !important; }
#main-nav.bg-primary\/95 .weather-pill,
#main-nav.bg-primary\/95 .weather-pill span { color:#fff !important; }
#mobile-nav-panel { background:var(--surface-elevated); }
#mobile-nav-panel > div {
  background:var(--surface-elevated) !important;
  border-color:rgba(47,47,47,.08) !important;
  box-shadow:0 18px 40px rgba(22,33,29,.16);
}
#mobile-nav-panel a { color:var(--text) !important; }

.site-footer { background:var(--surface) !important;color:var(--text) !important; }
.site-footer::after {
  content:"";position:absolute;inset:auto 0 0;height:4px;z-index:8;
  background:var(--brand-primary);
}
.site-footer .footer-social-band { background:var(--surface-elevated) !important; }
.site-footer .footer-bottombar { background:var(--surface); }
.site-footer .academic-credits { background:transparent;color:var(--brand-primary); }
.site-footer .compact-footer-legal { background:transparent;color:var(--text-muted); }

/* ══ ACCESIBILIDAD (auditoría WCAG corta) ══ */
/* WhatsApp: blanco sobre #25D366 daba ~2:1 — verde accesible (≥4.5:1) */
#det-wa-btn-desktop, #det-wa-btn-mobile { background-color:#0E7C3F !important; }
#det-wa-btn-desktop:hover, #det-wa-btn-mobile:active { background-color:#0A6633 !important; }
/* Anillo de foco visible para todo control sin foco propio */
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline:3px solid #C88A2B; outline-offset:2px;
}
.chat-button:focus-visible { outline:3px solid #F5D98A; outline-offset:3px; }
.quick-btn:focus-visible, .chat-input-area button:focus-visible { outline:3px solid #274F10; outline-offset:2px; }

/* ══ BRILLO Y VIDA (la página se sentía apagada) ══ */
/* Fondo con luz: washes suaves de verde, dorado y cielo en vez del beige plano */
body {
  background:
    radial-gradient(60rem 40rem at 8% 22%, rgba(61,163,58,.075), transparent 60%),
    radial-gradient(52rem 36rem at 94% 12%, rgba(245,217,138,.16), transparent 62%),
    radial-gradient(64rem 44rem at 50% 88%, rgba(46,147,199,.07), transparent 65%),
    var(--surface);
  background-attachment: fixed;
}

/* Subrayado dorado luminoso en los títulos de sección */
#main-explorer-view section h2.font-display-lg::after {
  content:""; display:block; width:72px; height:4px; margin-top:10px;
  border-radius:999px;
  background:linear-gradient(90deg,#D4A83C,#F5D98A 45%,#EE9A1B);
  box-shadow:0 2px 10px rgba(212,168,60,.45);
}
#main-explorer-view section .text-center h2.font-display-lg::after { margin-inline:auto; }

/* Datos útiles: chips con calidez y glow dorado al pasar */
.datos-utiles-lista li a { background:linear-gradient(180deg,#ffffff,#fffaf0); }
.datos-utiles-lista li a:hover {
  transform:translateY(-4px) scale(1.02);
  box-shadow:0 12px 30px rgba(212,168,60,.28);
  border-bottom-color:#EE9A1B;
}

/* Cards de hospedaje: elevación con luz cálida */
.card-item { transition:transform .35s ease, box-shadow .35s ease !important; }
.card-item:hover {
  transform:translateY(-6px);
  box-shadow:0 24px 55px rgba(32,52,43,.16), 0 10px 30px rgba(212,168,60,.18) !important;
}

/* Chips del hero con un toque más de luz */
.hero-chip { background:rgba(255,255,255,.18); }
.hero-chip:hover { background:rgba(255,255,255,.3); }

/* Botón "Ver más": presencia dorada */
#btn-ver-mas-alojamientos:hover {
  background:linear-gradient(180deg,#F5D98A,#D4A83C);
  border-color:#D4A83C; color:#274F10;
}

/* ══ ARMÁ TU VISITA — planificador de itinerario ══ */
.visita-add {
  display:inline-flex;align-items:center;gap:5px;
  padding:8px 13px;border-radius:999px;
  border:1.5px solid #D4A83C;background:#fff;color:#8a6512;
  font:700 11px/1 "Manrope",sans-serif;text-transform:uppercase;letter-spacing:.06em;
  cursor:pointer;transition:background .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease;
}
.visita-add .material-symbols-outlined { font-size:15px; }
.visita-add:hover { background:#fdf6e3;transform:translateY(-1px);box-shadow:0 6px 16px rgba(212,168,60,.25); }
.visita-add.is-added { background:linear-gradient(180deg,#F5D98A,#D4A83C);border-color:#C08F1F;color:#274F10; }
.visita-add.is-added .visita-add-label { font-weight:800; }

.visita-fab {
  position:fixed;left:18px;bottom:20px;z-index:1500;
  display:inline-flex;align-items:center;gap:8px;
  padding:13px 18px;border:0;border-radius:999px;cursor:pointer;
  background:linear-gradient(135deg,#2D5C13,#3DA33A);color:#fff;
  font:800 13.5px/1 "Manrope",sans-serif;letter-spacing:.02em;
  box-shadow:0 14px 34px rgba(24,52,9,.4), 0 0 0 3px rgba(245,217,138,.35);
  transition:transform .22s ease,box-shadow .22s ease;
  animation:visitaFabIn .5s cubic-bezier(.22,1,.36,1) both;
}
.visita-fab:hover { transform:translateY(-3px);box-shadow:0 20px 44px rgba(24,52,9,.5), 0 0 0 3px rgba(245,217,138,.55); }
.visita-fab .material-symbols-outlined { font-size:19px;color:#F5D98A; }
.visita-fab-count {
  min-width:22px;height:22px;display:grid;place-items:center;
  padding:0 6px;border-radius:999px;background:#F5D98A;color:#274F10;
  font-size:12px;font-weight:800;
}
@keyframes visitaFabIn { from { opacity:0;transform:translateY(16px); } to { opacity:1;transform:none; } }

.visita-panel {
  position:fixed;left:18px;bottom:86px;z-index:1600;
  width:min(360px,calc(100vw - 36px));max-height:min(560px,72vh);
  display:flex;flex-direction:column;overflow:hidden;
  background:#fff;border:1px solid rgba(212,168,60,.4);border-radius:22px;
  box-shadow:0 34px 80px rgba(23,33,29,.32);
  animation:visitaFabIn .3s ease both;
}
.visita-panel[hidden] { display:none; }
.visita-panel-head {
  display:flex;align-items:flex-start;justify-content:space-between;gap:10px;
  padding:16px 18px 12px;border-bottom:1px solid rgba(47,47,47,.08);
  background:linear-gradient(180deg,#fdf9ee,#fff);
}
.visita-panel-kicker { display:block;font:800 10px/1.2 "Manrope",sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#C08F1F; }
.visita-panel-head strong { font:800 17px/1.25 "Syne",sans-serif;color:#274F10; }
.visita-panel-x { width:32px;height:32px;border:0;border-radius:50%;background:#f2efe8;color:#5C5C5C;cursor:pointer;font-size:13px; }
.visita-panel-x:hover { background:#e7e2d6; }
.visita-panel-body { flex:1;overflow-y:auto;padding:12px 18px; }
.visita-empty { margin:8px 0;color:#5C5C5C;font-size:13.5px;line-height:1.55; }
.visita-group { margin-bottom:12px; }
.visita-group-title { font:800 12px/1 "Manrope",sans-serif;text-transform:uppercase;letter-spacing:.08em;color:#2D5C13;margin-bottom:7px; }
.visita-item {
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:8px 10px;margin-bottom:6px;border-radius:12px;
  background:#faf8f2;border:1px solid rgba(47,47,47,.07);
}
.visita-item-name { font-size:13.5px;font-weight:700;color:#2F2F2F;min-width:0; }
.visita-item-name small { display:block;font-weight:600;color:#8a8a85;font-size:11.5px; }
.visita-item-x { width:26px;height:26px;flex:0 0 auto;border:0;border-radius:50%;background:#f0e9e2;color:#a83232;cursor:pointer;font-size:12px; }
.visita-item-x:hover { background:#f5d9d3; }
.visita-panel-actions { padding:12px 18px 16px;border-top:1px solid rgba(47,47,47,.08);display:grid;gap:8px; }
.visita-panel-row { display:flex;gap:8px; }
.visita-btn {
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  padding:12px 16px;border-radius:999px;border:0;cursor:pointer;
  font:800 13px/1 "Manrope",sans-serif;text-decoration:none;
  transition:filter .15s ease,transform .15s ease;
}
.visita-btn:hover { filter:brightness(1.06);transform:translateY(-1px); }
.visita-btn-wa { background:#0E7C3F;color:#fff;box-shadow:0 8px 22px rgba(14,124,63,.35); }
.visita-btn-wa.is-disabled { pointer-events:none;opacity:.45; }
.visita-btn-wa .material-symbols-outlined { font-size:17px; }
.visita-btn-ghost { flex:1;background:#f2efe8;color:#2F2F2F; }
.visita-btn-danger { color:#a83232; }

@media (max-width:768px) {
  /* la barra de navegación inferior móvil mide ~64px: el FAB va arriba de ella */
  .visita-fab { bottom:86px;left:12px;padding:12px 15px; }
  .visita-panel { bottom:148px;left:12px; }
}

/* ══ WORDMARK "San Roque" DEL FOOTER: +30 %, sin aplastar, brillante y vivo ══ */
.site-footer .sr-wordmark-hero {
  /* antes: clamp(34px,4.1vw,56px) con line-height .88 — se veía chico y aplastado */
  font-size: clamp(44px, 5.4vw, 73px);
  line-height: 1;
  letter-spacing: -0.04em;
  filter: drop-shadow(0 9px 12px rgba(6, 22, 5, 0.3));
}
.site-footer .sr-wordmark-hero span {
  filter: saturate(1.4) brightness(1.1);
  text-shadow:
    0 -1px 0 rgba(255, 255, 255, 0.8),
    0 0 16px rgba(255, 255, 255, 0.38),
    1px 1px 0 rgba(0, 0, 0, 0.15),
    3px 3px 0 rgba(0, 0, 0, 0.1),
    5px 5px 10px rgba(0, 0, 0, 0.12);
  animation: srWave 3.4s ease-in-out infinite, srShine 3.4s ease-in-out infinite;
}
@keyframes srWave {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-7px) rotate(-1.2deg); }
}
@keyframes srShine {
  0%, 100% { filter: saturate(1.4) brightness(1.08); }
  50% { filter: saturate(1.75) brightness(1.32) drop-shadow(0 0 12px rgba(255, 244, 200, 0.55)); }
}
/* Ola arcoíris: cada letra entra a la danza con un pequeño retraso */
.site-footer .sr-wordmark-hero .sr-l1 { animation-delay: 0s, 0s; }
.site-footer .sr-wordmark-hero .sr-l2 { animation-delay: 0.14s, 0.14s; }
.site-footer .sr-wordmark-hero .sr-l3 { animation-delay: 0.28s, 0.28s; }
.site-footer .sr-wordmark-hero .sr-l4 { animation-delay: 0.42s, 0.42s; }
.site-footer .sr-wordmark-hero .sr-l5 { animation-delay: 0.56s, 0.56s; }
.site-footer .sr-wordmark-hero .sr-l6 { animation-delay: 0.7s, 0.7s; }
.site-footer .sr-wordmark-hero .sr-l7 { animation-delay: 0.84s, 0.84s; }
.site-footer .sr-wordmark-hero .sr-l8 { animation-delay: 0.98s, 0.98s; }
/* Accesibilidad: sin animación para quien la desactivó en su sistema */
@media (prefers-reduced-motion: reduce) {
  .site-footer .sr-wordmark-hero span { animation: none; }
}

/* ══ WORDMARK v2: letras corpóreas de cartel, artísticas (adiós WordArt) ══
   Cada letra extruye en 3D con la sombra de SU propio color (como letras
   físicas de madera pintada), lleva una inclinación fija tipo rótulo pintado
   a mano y flota apenas. Sin halos blancos ni destellos plásticos. */
.site-footer .sr-wordmark-hero { letter-spacing: 0.015em; }
.site-footer .sr-wordmark-hero .sr-l1 { --sr-dk: #9c1013; --sr-tilt: -2.6deg; animation-delay: 0s; }
.site-footer .sr-wordmark-hero .sr-l2 { --sr-dk: #a34a0e; --sr-tilt: 1.8deg; animation-delay: 0.12s; }
.site-footer .sr-wordmark-hero .sr-l3 { --sr-dk: #a87b06; --sr-tilt: -1.3deg; animation-delay: 0.24s; }
.site-footer .sr-wordmark-hero .sr-l4 { --sr-dk: #276d18; --sr-tilt: 2.3deg; animation-delay: 0.36s; }
.site-footer .sr-wordmark-hero .sr-l5 { --sr-dk: #0a6289; --sr-tilt: -2.1deg; animation-delay: 0.48s; }
.site-footer .sr-wordmark-hero .sr-l6 { --sr-dk: #3f2363; --sr-tilt: 1.5deg; animation-delay: 0.6s; }
.site-footer .sr-wordmark-hero .sr-l7 { --sr-dk: #7e1a3f; --sr-tilt: -1.9deg; animation-delay: 0.72s; }
.site-footer .sr-wordmark-hero .sr-l8 { --sr-dk: #9e3510; --sr-tilt: 2.5deg; animation-delay: 0.84s; }
.site-footer .sr-wordmark-hero span {
  animation: srFloat 5.4s ease-in-out infinite;
  filter: saturate(1.25) brightness(1.05);
  text-shadow:
    0 -1px 0 rgba(255, 255, 255, 0.45),
    1px 1px 0 var(--sr-dk),
    2px 2px 0 var(--sr-dk),
    3px 3px 0 var(--sr-dk),
    4px 4px 0 var(--sr-dk),
    5px 5px 0 var(--sr-dk),
    6px 6px 0 var(--sr-dk),
    7px 7px 0 color-mix(in srgb, var(--sr-dk) 72%, #000),
    9px 11px 2px rgba(0, 0, 0, 0.18),
    14px 20px 22px rgba(6, 22, 5, 0.34);
}
@keyframes srFloat {
  0%, 100% { transform: rotate(var(--sr-tilt, 0deg)) translateY(0); }
  50% { transform: rotate(var(--sr-tilt, 0deg)) translateY(-4px); }
}
@media (prefers-reduced-motion: reduce) {
  .site-footer .sr-wordmark-hero span { animation: none; transform: rotate(var(--sr-tilt, 0deg)); }
}

/* Botón minimizar del asistente MuniAyuda */
.chat-header { position:relative; }
.chat-close {
  position:absolute;top:10px;right:10px;
  width:32px;height:32px;display:grid;place-items:center;
  border:0;border-radius:50%;cursor:pointer;
  background:rgba(255,255,255,.18);color:#fff;font-size:14px;line-height:1;
  transition:background .2s ease,transform .2s ease;
}
.chat-close:hover { background:rgba(255,255,255,.32);transform:scale(1.08); }
.chat-close:focus-visible { outline:3px solid #F5D98A;outline-offset:2px; }

/* ══ EXPLORADOR GASTRONÓMICO: buscador, categorías, filtros y estados ══ */
.gastro-explorer { display:flex;flex-direction:column;gap:14px; }
.gastro-search {
  display:flex;align-items:center;gap:10px;
  max-width:560px;padding:14px 20px;border-radius:999px;
  background:#fff;border:1.5px solid rgba(53,94,74,.18);
  box-shadow:0 10px 30px rgba(35,45,40,.08);
  transition:border-color .2s ease,box-shadow .2s ease;
}
.gastro-search:focus-within { border-color:var(--brand-primary);box-shadow:0 12px 34px rgba(53,94,74,.16); }
.gastro-search .material-symbols-outlined { color:#D4A83C;font-size:22px; }
.gastro-search input { flex:1;border:0;outline:0;background:none;font:600 15.5px/1.3 "Manrope",sans-serif;color:var(--text); }
.gastro-search input::placeholder { color:#9a9a94; }

.gastro-chips { display:flex;flex-wrap:wrap;gap:8px; }
.gastro-chip {
  display:inline-flex;align-items:center;gap:6px;
  padding:9px 15px;border-radius:999px;cursor:pointer;
  background:#fff;border:1.5px solid rgba(53,94,74,.16);color:#4b554e;
  font:700 12.5px/1 "Manrope",sans-serif;
  transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease;
}
.gastro-chip:hover { border-color:var(--brand-primary);transform:translateY(-1px); }
.gastro-chip.active { background:var(--brand-primary);border-color:var(--brand-primary);color:#fff; }
.gastro-chip-filter.active { background:#B85C38;border-color:#B85C38; }
.gastro-dot { width:8px;height:8px;border-radius:50%;background:#2fae4e;box-shadow:0 0 6px rgba(47,174,78,.8); }
.gastro-chip.active .gastro-dot { background:#b7f5c6; }
.gastro-results-info { min-height:18px;font:650 13px/1.3 "Manrope",sans-serif;color:#77807a; }

/* Estado abierto/cerrado (tarjetas y fichas) */
.gastro-estado {
  display:inline-flex;align-items:center;gap:7px;
  padding:5px 12px;border-radius:999px;
  font:750 12px/1 "Manrope",sans-serif;
}
.gastro-estado i { width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 7px currentColor; }
.gastro-estado.is-open { background:#e5f8e9;color:#187a33; }
.gastro-estado.is-soon { background:#fdf1dc;color:#a05c10; }
.gastro-estado.is-closed { background:#f4e9e7;color:#a04030; }
.detail-estado-line { margin:6px 0 2px; }

/* Calificación en la ficha */
.detail-rating { margin:14px 0 4px;padding:12px 16px;border-radius:14px;background:rgba(212,168,60,.09);border:1px solid rgba(212,168,60,.25);max-width:340px; }

/* Barra móvil de acciones de la ficha (Llamar · WhatsApp · Cómo llegar) */
.gastro-action-bar { display:none; }
@media (max-width:767px) {
  .gastro-action-bar {
    position:fixed;left:0;right:0;bottom:64px;z-index:45;
    display:flex;gap:1px;
    background:rgba(23,33,29,.06);
    border-top:1px solid rgba(53,94,74,.15);
    box-shadow:0 -10px 30px rgba(23,33,29,.14);
  }
  .gastro-action-bar a {
    flex:1;display:flex;align-items:center;justify-content:center;gap:7px;
    padding:14px 6px;background:#fff;color:var(--brand-primary);
    font:800 13px/1 "Manrope",sans-serif;text-decoration:none;
  }
  .gastro-action-bar a .material-symbols-outlined { font-size:19px;color:#D4A83C; }
  .gastro-action-bar a.is-wa { background:#0E7C3F;color:#fff; }
  .gastro-action-bar a.is-wa .material-symbols-outlined { color:#fff; }
  /* que el contenido no quede tapado por la barra */
  .gastronomy-detail { padding-bottom:140px; }
}

/* ══ DESTACADOS ROTATIVOS: tira horizontal, misma tarjeta que el listado ══ */
.gastro-featured { margin:0 0 44px; }
.gastro-featured[hidden] { display:none; }
.gastro-featured-head { display:flex;flex-direction:column;gap:4px;margin-bottom:18px; }
.gastro-featured-kicker {
  display:inline-flex;align-items:center;gap:7px;
  font:800 11px/1 "Manrope",sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#B8862A;
}
.gastro-featured-kicker::before { content:"";width:16px;height:2px;border-radius:2px;background:#D4A83C; }
.gastro-featured-head h2 { margin:0;font:800 clamp(22px,2.6vw,30px)/1.1 "Syne",sans-serif;color:var(--brand-primary);letter-spacing:-.02em; }
.gastro-featured-track {
  display:flex;gap:20px;overflow-x:auto;padding:6px 6px 14px;
  scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;
  scrollbar-width:thin;scrollbar-color:#D4A83C transparent;
}
.gastro-featured-track::-webkit-scrollbar { height:7px; }
.gastro-featured-track::-webkit-scrollbar-thumb { background:#D4A83C;border-radius:99px; }
.gastro-featured-card {
  flex:0 0 min(86vw,360px);scroll-snap-align:start;
  border-radius:20px;box-shadow:0 0 0 2px #F5D98A,0 14px 34px rgba(184,134,42,.18);
}
.gastro-featured-card .card-item,
.gastro-featured-card article { min-height:520px !important;height:100%; }
@media (min-width:1024px) { .gastro-featured-card { flex-basis:400px; } }

/* ══ AGENDA: tarjetas de evento, esqueleto de carga y toggle de pasados ══ */
.agenda-card {
  display:flex;flex-direction:column;overflow:hidden;
  background:#fff;border:1px solid rgba(53,94,74,.14);border-radius:22px;
  box-shadow:0 8px 24px rgba(35,45,40,.06);
  transition:transform .28s ease,box-shadow .28s ease;
}
.agenda-card:hover { transform:translateY(-4px);box-shadow:0 20px 44px rgba(35,45,40,.13); }
.agenda-card.is-past { opacity:.82; }
.agenda-card-media { position:relative;display:block;height:220px;overflow:hidden; }
.agenda-card-media img { width:100%;height:100%;object-fit:cover;transition:transform .5s ease; }
.agenda-card:hover .agenda-card-media img { transform:scale(1.05); }
.agenda-card-flag {
  position:absolute;top:14px;left:14px;z-index:2;
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 12px;border-radius:999px;
  background:rgba(20,40,15,.72);backdrop-filter:blur(6px);
  color:#fff;font:800 10.5px/1 "Manrope",sans-serif;letter-spacing:.06em;text-transform:uppercase;
}
.agenda-card-flag i { width:7px;height:7px;border-radius:50%;background:#3DA33A;box-shadow:0 0 7px #3DA33A; }
.agenda-card-body { padding:24px;display:flex;flex-direction:column;gap:10px;flex:1; }
.agenda-card-date { display:flex;align-items:center;gap:7px;font:800 11px/1 "Manrope",sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#2E93C7; }
.agenda-card-body h2 { margin:0;font:800 20px/1.25 "Syne",sans-serif;color:var(--brand-primary); }
.agenda-card-body h2 a { color:inherit;text-decoration:none; }
.agenda-card-body h2 a:hover { text-decoration:underline; }
.agenda-card-body p { margin:0;color:#6b6b66;font-size:14px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden; }
.agenda-card-foot { display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:6px; }
.agenda-card-place { display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#8a8a85; }
.agenda-card-cta { display:inline-flex;align-items:center;gap:4px;font:800 12.5px/1 "Manrope",sans-serif;color:var(--brand-primary);text-decoration:none;white-space:nowrap; }
.agenda-card-cta:hover { text-decoration:underline; }
.agenda-card-visita { margin-top:2px; }

.agenda-skeleton {
  height:360px;border-radius:22px;
  background:linear-gradient(100deg,#f1efe8 30%,#f8f6f0 50%,#f1efe8 70%);
  background-size:220% 100%;animation:agendaShimmer 1.4s ease-in-out infinite;
}
@keyframes agendaShimmer { 0% { background-position:120% 0; } 100% { background-position:-20% 0; } }
@media (prefers-reduced-motion:reduce) { .agenda-skeleton { animation:none; } }

.agenda-past-toggle {
  display:flex;align-items:center;gap:10px;width:100%;margin:36px 0 20px;
  padding:14px 18px;border:1px dashed rgba(53,94,74,.3);border-radius:16px;
  background:transparent;color:var(--brand-primary);font-weight:800;font-size:13.5px;
  cursor:pointer;transition:background .2s ease;
}
.agenda-past-toggle:hover { background:rgba(53,94,74,.05); }
.agenda-past-toggle .agenda-past-chevron { margin-left:auto;transition:transform .25s ease; }
.agenda-past-toggle.is-open .agenda-past-chevron { transform:rotate(180deg); }

/* Agenda: espacio para que la barra móvil inferior no tape la última tarjeta */
@media (max-width:767px) { #agenda-explorer { padding-bottom:112px; } }

/* ══ GUÍA PRÁCTICA: tarjetas de categoría y contenido del directorio ══
   (varias utilidades de Tailwind usadas acá — hover:shadow-lg, bg-color/10,
   sm:*, list-disc, rounded-lg, etc. — no están en el build estático
   css/tw-base.css porque nunca se usaron en el HTML que se escaneó al
   compilarlo; se reemplazan por clases propias en vez de parchear cada
   utilidad suelta.) */
.guia-cat-card { position:relative; }
.guia-cat-card:hover { transform:translateY(-4px);box-shadow:0 16px 34px rgba(35,45,40,.12); }
.guia-cat-card.is-active { border-color:#D4A83C;box-shadow:0 0 0 2px #F5D98A,0 14px 30px rgba(184,134,42,.16); }
.guia-cat-card.is-active .material-symbols-outlined { color:#B8862A; }

.guia-contact-row {
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:16px;border-radius:14px;background:#fafaf8;border:1px solid rgba(47,47,47,.06);
}
.guia-icon-btn {
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  width:38px;height:38px;border-radius:50%;
  background:rgba(46,147,199,.1);color:#2E93C7;
  transition:background .2s ease,color .2s ease;
}
.guia-icon-btn:hover { background:#2E93C7;color:#fff; }

.guia-btn {
  display:inline-flex;align-items:center;gap:7px;
  padding:9px 16px;border-radius:12px;
  font-size:12px;font-weight:800;text-decoration:none;
  transition:background .2s ease,transform .15s ease;
}
.guia-btn:hover { transform:translateY(-1px); }
.guia-btn-outline { border:1px solid rgba(47,47,47,.14);color:#3a3a36;background:#fff; }
.guia-btn-outline:hover { background:#fafaf8; }
.guia-btn-primary { background:#2E93C7;color:#fff; }
.guia-btn-primary:hover { background:#276f96; }

.guia-list { list-style:disc;list-style-position:inside;font-size:13.5px;color:#4d4d48;display:flex;flex-direction:column;gap:5px; }

/* Guía Práctica: espacio para que la barra móvil inferior no tape contenido */
@media (max-width:767px) { #guia-main { padding-bottom:112px; } }

/* ══ Héroe de sección con tarjeta clara flotando sobre la foto (obera.tur.ar):
   misma filosofía que .detail-hero-card de las fichas pero para páginas de
   listado (una sola foto ancha, sin columna de acciones al lado). ══ */
.section-hero-wrap { position:relative;margin:0 auto clamp(56px,7vw,80px);max-width:1280px;padding:0 clamp(18px,4vw,56px); }
.section-hero { position:relative;border-radius:30px;overflow:visible; }
.section-hero-media { position:relative;min-height:340px;border-radius:30px;overflow:hidden;background:#e9ebe7;box-shadow:0 28px 70px rgba(33,45,39,.13); }
.section-hero-media img { width:100%;height:100%;display:block;object-fit:cover; }
.section-hero-card { position:absolute;left:clamp(20px,3vw,40px);right:clamp(20px,3vw,40px);bottom:clamp(-64px,-6vw,-46px);z-index:4;max-width:min(620px,80%);padding:clamp(24px,3vw,34px) clamp(26px,3.2vw,38px);border-radius:24px;background:#fff;box-shadow:0 22px 54px rgba(33,45,39,.19); }
.section-hero-card > span { display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-size:.72rem;font-weight:850;letter-spacing:.16em;text-transform:uppercase; }
.section-hero-card h1 { margin:8px 0 10px;color:var(--brand-primary);font-size:clamp(1.9rem,3.4vw,3rem);line-height:1.06;letter-spacing:-.02em;overflow-wrap:break-word; }
.section-hero-card p { margin:0;color:#5b5b56;font-size:.98rem;line-height:1.6; }

/* ══ NAVEGACIÓN SOBRE EL HERO ══
   Estas reglas vivían en un <style> dentro de index.html, alojamientos.html y
   gastronomia.html, repetidas y con !important en cada propiedad para ganarle
   a las utilidades del propio elemento. Acá alcanza con la especificidad del
   id #main-nav, y styles.css se carga después del bundle. */
#main-nav { padding-top:.5rem;padding-bottom:.5rem; }
#main-nav .main-nav-buttons { gap:.75rem; }
#main-nav .main-nav-buttons > a,
#main-nav .main-nav-buttons > .nav-dropdown .nav-dropdown-trigger {
  display:inline-flex;align-items:center;justify-content:center;margin:0;
  min-height:44px;padding:.75rem 1rem;border-radius:9999px;
  background:rgba(255,255,255,.95);box-shadow:0 10px 24px rgba(0,0,0,.08);
  /* El valor suelto era #274F10; se usa el token de marca para que el nav no
     quede desalineado del resto del sistema si cambia la paleta. */
  color:var(--brand-primary);text-transform:uppercase;letter-spacing:.12em;white-space:nowrap;
}
#main-nav .main-nav-buttons > .nav-dropdown .nav-dropdown-trigger { gap:.3rem; }
#main-nav .main-nav-buttons > .nav-dropdown { padding:0;background:none;box-shadow:none; }
.tourism-hero .hero-brand-badge { position:absolute;top:18px;right:18px;z-index:30; }

@media (min-width:900px) {
  .tourism-hero#hero-section { height:560px;min-height:560px;align-items:flex-start;justify-content:center;padding-top:5rem;padding-bottom:0; }
  .tourism-hero#hero-section .hero-slide { object-position:center 30%; }
}
@media (max-width:767px) {
  /* En móvil manda la barra inferior y el panel desplegable. */
  #main-nav { display:none; }
  .hero-quick-links { display:none; }
  .hero-quick-links + div { margin-top:0; }
  .tourism-hero .hero-brand-badge { top:14px;right:14px; }
  .tourism-hero#hero-section { align-items:center; }
}

/* Gastronomía: hero fijo y sin rotación (una sola foto) y chapa de marca. */
.gastronomy-page .hero-slide { opacity:1;animation:none; }
.gastronomy-page .hero-rotor-monjita { position:absolute;inset:0; }
.tourism-hero .hero-brand-badge {
  display:inline-flex;align-items:center;gap:8px;padding:8px 10px;
  border:1px solid rgba(255,255,255,.32);border-radius:999px;
  background:rgba(255,255,255,.18);box-shadow:0 16px 35px rgba(0,0,0,.2);
  color:#fff;font-size:12px;text-decoration:none;
}
.tourism-hero .hero-brand-badge img { width:24px;height:24px; }
.tourism-hero .hero-brand-badge-label { display:inline-block; }
@media (min-width:900px) {
  .gastronomy-page#hero-section,
  .gastronomy-page #hero-section { height:560px;min-height:560px;align-items:flex-start;justify-content:center;padding-top:5rem;padding-bottom:0; }
  .gastronomy-page #hero-section .hero-slide { object-position:center 30%; }
}
@media (max-width:900px) {
  .tourism-hero .hero-brand-badge-label { display:none; }
  .tourism-hero .hero-brand-badge { padding:10px; }
}

/* La entradilla del evento no puede estirar la tarjeta: se corta a tres líneas. */
.evento-card-resumen { display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden; }

/* ══ ACCESOS DE PORTADA ══ */
.portal-shortcuts { display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px; }
.portal-shortcut { position:relative;display:block;border-radius:24px;overflow:hidden;min-height:260px;background:#e9ebe7;box-shadow:0 18px 44px rgba(33,45,39,.12);text-decoration:none;transition:transform .35s ease,box-shadow .35s ease; }
.portal-shortcut:hover { transform:translateY(-4px);box-shadow:0 26px 56px rgba(33,45,39,.18); }
.portal-shortcut img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s ease; }
.portal-shortcut:hover img { transform:scale(1.05); }
.portal-shortcut-body { position:relative;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;gap:4px;height:100%;min-height:260px;padding:22px;background:linear-gradient(180deg,rgba(15,31,25,0) 35%,rgba(15,31,25,.82) 100%);color:#fff; }
.portal-shortcut-kicker { display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-size:.7rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase; }
.portal-shortcut-kicker .material-symbols-outlined { font-size:16px; }
.portal-shortcut strong { font-family:'Syne',sans-serif;font-size:1.5rem;line-height:1.15; }
.portal-shortcut-desc { color:rgba(255,255,255,.86);font-size:.9rem;line-height:1.45; }

/* ══ LONG READ · fichas editoriales de atractivos (Puente Carretero, etc.) ══ */
/* La foto de portada define su propia altura: sin este tope, un original
   vertical empuja el hero fuera de pantalla y el título queda bajo el pliegue. */
.long-read-hero .section-hero-media { height:clamp(300px,40vw,460px);min-height:0; }
/* El ancho vive acá y no en una utilidad Tailwind: tw-base.css está compilado
   con las clases en uso y no incluye max-w-3xl, la medida de lectura correcta. */
.long-read { max-width:760px;padding-top:clamp(28px,4vw,44px);color:#4a4a45;font-size:1.02rem;line-height:1.75; }
.long-read section { margin-top:clamp(38px,5vw,58px); }
.long-read h2 { position:relative;margin:0 0 14px;padding-left:18px;color:var(--brand-primary);font-family:'Syne',sans-serif;font-size:clamp(1.35rem,2.4vw,1.75rem);line-height:1.2;letter-spacing:-.01em; }
/* Barra de acento: el mismo recurso que encabeza las secciones de las fichas. */
.long-read h2::before { content:'';position:absolute;left:0;top:.16em;bottom:.16em;width:5px;border-radius:3px;background:var(--accent); }
/* Justificado con partición de palabras (lang="es"): sin hyphens el texto
   justificado abre "ríos" de espacio en las líneas con palabras largas. */
.long-read p { margin:0 0 14px;text-align:justify;text-justify:inter-word;hyphens:auto; }
/* La entradilla arranca la lectura con más presencia que el cuerpo. */
.long-read section:first-of-type > p:first-of-type { color:#3f3f3a;font-size:1.12rem;line-height:1.7; }
.long-read strong { color:#2f2f2b;font-weight:800; }
.long-read-facts { display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin:0;padding:0;list-style:none; }
.long-read-facts li { padding:16px 14px;border-radius:16px;background:#fff;border:1px solid rgba(53,94,74,.10);box-shadow:0 10px 26px rgba(33,45,39,.06);text-align:center; }
.long-read-facts strong { display:block;color:var(--brand-primary);font-family:'Syne',sans-serif;font-size:1.5rem;line-height:1.1; }
.long-read-facts span { display:block;margin-top:4px;color:#7d7d76;font-size:.76rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase; }
.long-read-gallery { margin:24px 0 0; }
.long-read-gallery-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px; }
.long-read-gallery img { width:100%;height:230px;object-fit:cover;border-radius:18px;box-shadow:0 16px 38px rgba(33,45,39,.12); }
.long-read-gallery figcaption { margin-top:10px;color:#8d8d86;font-size:.82rem;line-height:1.5;text-align:left; }
.long-read-warning { display:flex;gap:14px;margin-top:22px;padding:18px 20px;border-radius:18px;background:#FDF4E3;border:1px solid rgba(242,193,78,.5); }
.long-read-warning .material-symbols-outlined { color:#B8801F;font-size:24px;flex:none; }
.long-read-warning strong { display:block;margin-bottom:4px;color:#7a5410; }
.long-read-warning p { margin:0;color:#7a6640;font-size:.94rem; }
.long-read-cta { display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:clamp(34px,4vw,48px); }
.long-read-cta-btn { display:inline-flex;align-items:center;gap:8px;padding:14px 26px;border-radius:999px;background:var(--brand-primary);color:#fff;font-weight:800;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;transition:background .18s ease; }
.long-read-cta-btn:hover { background:var(--brand-primary-hover);color:#fff; }
.long-read-cta-link { color:var(--brand-primary);font-weight:700;font-size:.92rem;text-decoration:underline;text-underline-offset:3px; }
.long-read-source { margin-top:26px;padding-top:16px;border-top:1px solid rgba(53,94,74,.12);color:#8d8d86;font-size:.82rem; }
/* En pantallas angostas el justificado abre huecos entre palabras: se alinea
   a la izquierda, que es lo legible cuando entran pocas palabras por línea. */
@media (max-width:560px) {
  .long-read p { text-align:left;hyphens:manual; }
  .long-read-gallery img { height:190px; }
}
@media (max-width:640px) {
  .section-hero-media { min-height:52vw; }
  .section-hero-card { right:12px;max-width:none;bottom:-40px;padding:20px 22px 24px;border-radius:18px; }
  .section-hero-card h1 { font-size:1.7rem; }
}

/* ══ Qué hacer: chips de filtro por categoría + tarjetas de atractivo ══ */
.atractivo-filters { display:flex;flex-wrap:wrap;gap:10px;margin:0 0 32px; }
.atractivo-filter {
  display:inline-flex;align-items:center;gap:7px;padding:10px 18px;border-radius:999px;
  border:1px solid rgba(53,94,74,.2);background:#fff;color:var(--brand-primary);
  font-size:13px;font-weight:800;transition:background .2s ease,color .2s ease,transform .15s ease;
}
.atractivo-filter:hover { transform:translateY(-1px); }
.atractivo-filter.is-active { background:var(--brand-primary);border-color:var(--brand-primary);color:#fff; }
.atractivo-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px; }
.atractivo-card { display:flex;flex-direction:column;overflow:hidden;background:#fff;border:1px solid rgba(53,94,74,.14);border-radius:22px;box-shadow:0 8px 24px rgba(35,45,40,.06);transition:transform .28s ease,box-shadow .28s ease; }
.atractivo-card:hover { transform:translateY(-4px);box-shadow:0 20px 44px rgba(35,45,40,.13); }
.atractivo-card-media { position:relative;display:block;height:200px;overflow:hidden; }
.atractivo-card-media img { width:100%;height:100%;object-fit:cover;transition:transform .5s ease; }
.atractivo-card:hover .atractivo-card-media img { transform:scale(1.05); }
.atractivo-card-pill { position:absolute;top:14px;left:14px;z-index:2;padding:6px 12px;border-radius:999px;font:800 10.5px/1 "Manrope",sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:rgba(20,40,15,.72);backdrop-filter:blur(6px); }
.atractivo-card-pill.cat-patrimonio { background:rgba(168,110,26,.86); }
.atractivo-card-pill.cat-naturaleza { background:rgba(31,93,104,.86); }
.atractivo-card-pill.cat-plazas { background:rgba(53,94,74,.86); }
.atractivo-card-body { padding:22px;display:flex;flex-direction:column;gap:8px;flex:1; }
.atractivo-card-body h2 { margin:0;font:800 19px/1.25 "Syne",sans-serif;color:var(--brand-primary); }
.atractivo-card-body p { margin:0;color:#6b6b66;font-size:13.5px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden; }
.atractivo-card-cta { display:inline-flex;align-items:center;gap:5px;margin-top:auto;padding-top:10px;font:800 12.5px/1 "Manrope",sans-serif;color:var(--brand-primary);text-decoration:none; }
.atractivo-card-cta:hover { text-decoration:underline; }
/* Cuando el atractivo tiene ficha propia conviven dos CTA: la historia manda. */
.atractivo-card-actions { display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;margin-top:auto; }
.atractivo-card-actions .atractivo-card-cta { margin-top:0; }
.atractivo-card-cta.is-secondary { color:#7d7d76;font-weight:700; }
@media (max-width:767px) { #que-hacer-main { padding-bottom:112px; } }

/* ══ Submenú "Qué hacer" en el nav (desktop): se abre con hover/focus, sin
   JS. El padding-top (no margin-top) en .nav-dropdown-menu hace que el hueco
   visual entre el link y la tarjeta siga siendo parte del área "hoverable"
   — si fuera margin, mover el mouse en diagonal perdería el :hover a mitad
   de camino y el menú se cerraría solo. ══ */
/* El min-height:44px del área táctil deja el texto pegado al borde superior en
   los enlaces normales, mientras que el trigger del desplegable lo centra por
   ser inline-flex: "Qué hacer" quedaba 12 px más abajo que el resto del menú. */
#main-nav a { display:inline-flex;align-items:center; }
#main-nav .nav-dropdown-menu a { display:flex; }
.nav-dropdown { position:relative; }
.nav-dropdown-trigger { display:inline-flex;align-items:center;gap:3px; }
.nav-dropdown-trigger .material-symbols-outlined { font-size:16px;transition:transform .18s ease; }
.nav-dropdown:hover .nav-dropdown-trigger .material-symbols-outlined,
.nav-dropdown:focus-within .nav-dropdown-trigger .material-symbols-outlined { transform:rotate(180deg); }
.nav-dropdown-menu { position:absolute;top:100%;left:50%;transform:translateX(-50%);padding-top:14px;z-index:60;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,visibility .18s; }
.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown:focus-within .nav-dropdown-menu { opacity:1;visibility:visible;pointer-events:auto; }
.nav-dropdown-menu > div { min-width:250px;padding:10px;border-radius:16px;background:#fff;box-shadow:0 20px 46px rgba(33,45,39,.18);border:1px solid rgba(53,94,74,.08); }
.nav-dropdown-menu a { display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;color:#3a3a36;font-size:13px;font-weight:700;text-decoration:none;text-transform:none;letter-spacing:normal;transition:background .15s ease; }
.nav-dropdown-menu a:hover { background:#f4f2ec;color:var(--brand-primary); }
.nav-dropdown-menu a .material-symbols-outlined { font-size:18px;color:var(--accent); }
.nav-dropdown-menu hr { border:0;border-top:1px solid rgba(53,94,74,.1);margin:6px 4px; }
.nav-dropdown-all { color:var(--brand-primary) !important;font-weight:800 !important; }
