/* ================================================================
   SONENE — Selva Oscura · Ámbar Castaña · Crema 2025
   style.css — componentes custom + fixes para Tailwind CDN
   ================================================================ */

/* ─── VARIABLES CSS ─── */
:root {
  --nav-h: 70px;
  --forest:      #0D1F1A;
  --forest-card: #162B22;
  --forest-dark: #0A1A15;
  --castana:     #C8A96E;
  --castana-lt:  #D9BC85;
  --castana-dk:  #A88850;
  --verde:       #4A7C5F;
  --cream:       #F0EBE1;
  --cream-dim:   rgba(240,235,225,.6);
  --cream-muted: rgba(240,235,225,.35);
  --border-gold: rgba(200,169,110,.15);
  --border-gold-hover: rgba(200,169,110,.3);
  --bg-gold-soft: rgba(200,169,110,.08);
  --shadow-card:  0 2px 20px rgba(0,0,0,.3);
  --shadow-card-lg: 0 8px 40px rgba(0,0,0,.45);
  --shadow-gold:  0 8px 32px rgba(200,169,110,.25);
  --shadow-gold-sm: 0 4px 16px rgba(200,169,110,.2);
  --t: all .3s cubic-bezier(.4,0,.2,1);
  --tf: all .18s cubic-bezier(.4,0,.2,1);
}

/* ─── RESET + BASE ─── */
*, *::before, *::after { box-sizing: border-box }
html { scroll-behavior: smooth }
body {
  font-family: 'Inter', 'DM Sans', sans-serif;
  background: var(--forest);
  color: var(--cream);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
  padding-top: var(--nav-h);
  line-height: 1.6;
}

/* Páginas con banner: el banner ya maneja el offset del nav */
body:has(.page-banner-section),
body:has(.castana-hero-full) {
  padding-top: 0;
}

a { transition: var(--tf); text-decoration: none }
img { max-width: 100% }
h1,h2,h3,h4,h5,h6 {
  font-family: 'Playfair Display', Georgia, serif;
  line-height: 1.15;
  color: var(--cream);
}

/* ─── SCROLLBAR ─── */
::-webkit-scrollbar { width: 5px }
::-webkit-scrollbar-track { background: var(--forest) }
::-webkit-scrollbar-thumb { background: var(--castana); border-radius: 3px }

/* ─── SECTION HELPERS ─── */
.section-py { padding-top: 6rem; padding-bottom: 6rem }

/* ─── REVEAL ANIMATION ─── */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .65s ease, transform .65s ease;
}
.reveal.visible { opacity: 1; transform: none }

/* Stagger delays for grid items */
.reveal:nth-child(2) { transition-delay: .08s }
.reveal:nth-child(3) { transition-delay: .16s }
.reveal:nth-child(4) { transition-delay: .24s }

/* ─── LINE CLAMP ─── */
.line-clamp-2 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.line-clamp-3 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}

/* ─── PAGE BANNER — Encabezados de páginas internas ─── */
.page-banner-section {
  min-height: 420px;
  background-size: cover;
  background-position: center;
  background-attachment: scroll;
  background-color: #0D1F1A;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  padding-top: var(--nav-h);
  padding-bottom: 4rem;
  padding-left: max(0px, env(safe-area-inset-left));
  padding-right: max(0px, env(safe-area-inset-right));
}
.page-banner-section.banner-sm { min-height: 320px }
.page-banner-section.banner-lg { min-height: 560px }
.banner-overlay-dark {
  position: absolute;
  inset: 0;
  background: linear-gradient(160deg, rgba(10,26,21,.9) 0%, rgba(10,26,21,.48) 100%);
}
.banner-content-z { position: relative; z-index: 1 }

/* ─── HERO SLIDER (home) ─── */
.hero-slide {
  position: absolute; inset: 0;
  opacity: 0; transition: opacity 1s ease;
  background-size: cover; background-position: center;
}
.hero-slide.active { opacity: 1 }

/* ─── ALIADOS CAROUSEL ─── */
.aliados-carousel-wrap { overflow: hidden }
.aliados-carousel-track { display: flex; transition: transform .5s cubic-bezier(.4,0,.2,1) }
.aliados-slide { flex-shrink: 0 }

/* ─── GALLERY MASONRY ─── */
.gallery-masonry { columns: 3; gap: 1rem }
.gallery-masonry .gallery-item {
  break-inside: avoid;
  margin-bottom: 1rem;
  overflow: hidden;
  border-radius: 12px;
  cursor: pointer;
  position: relative;
  display: block;
}
.gallery-masonry .gallery-item img {
  width: 100%; height: auto; display: block;
  transition: transform .55s ease;
}
.gallery-masonry .gallery-item:hover img { transform: scale(1.06) }
.gallery-overlay-dark {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(10,26,21,.88) 0%, transparent 55%);
  opacity: 0; transition: opacity .3s;
  display: flex; align-items: flex-end; padding: 1rem;
}
.gallery-item:hover .gallery-overlay-dark { opacity: 1 }

/* ─── PROSE — Contenido editorial dark ─── */
.prose-dark {
  color: rgba(240,235,225,.78);
  line-height: 1.9;
  font-size: .97rem;
}
.prose-dark > * + * { margin-top: 1rem }
.prose-dark h2 {
  font-family: 'Playfair Display', serif;
  font-size: clamp(1.4rem,2.5vw,1.9rem);
  color: var(--cream);
  margin-top: 2.5rem;
  margin-bottom: .75rem;
  font-weight: 700;
  padding-bottom: .5rem;
  border-bottom: 1px solid var(--border-gold);
}
.prose-dark h3 {
  font-family: 'Playfair Display', serif;
  font-size: clamp(1.15rem,2vw,1.5rem);
  color: var(--cream);
  margin-top: 2rem;
  margin-bottom: .6rem;
  font-weight: 700;
}
.prose-dark h4 {
  font-family: 'Playfair Display', serif;
  font-size: 1.1rem;
  color: rgba(240,235,225,.9);
  margin-top: 1.5rem;
  margin-bottom: .5rem;
  font-weight: 600;
}
.prose-dark p { margin-bottom: 1.2rem }
.prose-dark a { color: var(--castana); text-decoration: underline; text-underline-offset: 3px }
.prose-dark a:hover { color: var(--castana-lt) }
.prose-dark strong { color: var(--cream); font-weight: 600 }
.prose-dark em { color: rgba(240,235,225,.85); font-style: italic }
.prose-dark ul, .prose-dark ol {
  padding-left: 1.6rem;
  margin-bottom: 1.2rem;
  color: rgba(240,235,225,.75);
}
.prose-dark ul { list-style: disc }
.prose-dark ol { list-style: decimal }
.prose-dark li { margin-bottom: .45rem; line-height: 1.75 }
.prose-dark blockquote {
  border-left: 3px solid var(--castana);
  padding: .9rem 1.4rem;
  background: rgba(200,169,110,.06);
  border-radius: 0 10px 10px 0;
  margin: 1.5rem 0;
  font-style: italic;
  color: rgba(240,235,225,.7);
}
.prose-dark img {
  max-width: 100%; border-radius: 12px;
  margin: 1.5rem 0; box-shadow: 0 8px 32px rgba(0,0,0,.4);
}
.prose-dark hr {
  border: none; border-top: 1px solid var(--border-gold); margin: 2rem 0;
}
.prose-dark table { width: 100%; margin: 1.5rem 0; border-collapse: collapse }
.prose-dark table th {
  background: rgba(200,169,110,.08); color: var(--castana);
  font-size: .78rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .06em; padding: .6rem 1rem; text-align: left;
  border: 1px solid var(--border-gold);
}
.prose-dark table td {
  padding: .6rem 1rem; color: rgba(240,235,225,.75); font-size: .9rem;
  border: 1px solid rgba(200,169,110,.08);
}
.prose-dark table tr:hover td { background: rgba(200,169,110,.03) }
.prose-dark code {
  background: rgba(200,169,110,.1); color: var(--castana-lt);
  padding: .15rem .4rem; border-radius: 4px; font-size: .88em;
  font-family: 'Fira Code', monospace;
}
.prose-dark pre {
  background: rgba(10,26,21,.8); border: 1px solid var(--border-gold);
  border-radius: 10px; padding: 1.25rem; overflow-x: auto; margin: 1.5rem 0;
}
.prose-dark pre code { background: none; padding: 0; color: rgba(240,235,225,.8) }

/* ─── CERTIFICACIÓN PILL ─── */
.cert-badge {
  display: inline-flex; align-items: center; gap: .5rem;
  background: var(--bg-gold-soft); border: 1px solid var(--border-gold);
  color: rgba(240,235,225,.8); font-size: .78rem; font-weight: 500;
  padding: .38rem 1rem; border-radius: 50px;
}
.cert-badge:hover { border-color: var(--border-gold-hover) }
.certif-pill {
  display: inline-flex; align-items: center; gap: .4rem;
  font-size: .75rem; font-weight: 600;
  padding: .3rem .9rem; border-radius: 50px;
}

/* ─── NUTRICIÓN CARD (castaña) ─── */
.nutrition-card {
  display: flex; align-items: center; gap: .85rem;
  background: var(--forest-card); border: 1px solid var(--border-gold);
  border-radius: 10px; padding: .9rem 1.1rem;
  transition: border-color .2s;
}
.nutrition-card:hover { border-color: var(--border-gold-hover) }
.nutrition-icon { font-size: 1.4rem; flex-shrink: 0 }

/* ─── SPECS CARD (castaña / producto) ─── */
.product-specs-card {
  background: var(--forest-card);
  border-left: 3px solid var(--castana);
  border-radius: 14px;
  padding: 1.75rem;
}
.specs-title {
  font-size: .78rem; font-weight: 700; color: var(--castana);
  text-transform: uppercase; letter-spacing: .1em;
  margin-bottom: 1rem; margin-top: 0;
}
.specs-table { width: 100%; border-collapse: collapse }
.specs-table th {
  font-size: .76rem; color: rgba(240,235,225,.38);
  font-weight: 600; width: 44%;
  padding: .52rem 0; vertical-align: top;
  border-bottom: 1px solid rgba(200,169,110,.06);
}
.specs-table td {
  font-size: .85rem; color: rgba(240,235,225,.82);
  padding: .52rem 0;
  border-bottom: 1px solid rgba(200,169,110,.06);
}

/* ─── FORMULARIO CONTACTO ─── */
.contact-input {
  display: block;
  width: 100%;
  background: rgba(22,43,34,.85);
  border: 1px solid rgba(200,169,110,.18);
  color: var(--cream);
  border-radius: 10px;
  padding: .75rem 1rem;
  font-size: .9rem;
  font-family: 'Inter', 'DM Sans', sans-serif;
  outline: none;
  transition: border-color .2s, box-shadow .2s;
  -webkit-appearance: none;
  appearance: none;
}
.contact-input:focus {
  border-color: rgba(200,169,110,.55);
  box-shadow: 0 0 0 3px rgba(200,169,110,.1);
}
.contact-input::placeholder { color: rgba(240,235,225,.28) }
.contact-input option { background: var(--forest-card); color: var(--cream) }
textarea.contact-input { resize: vertical; min-height: 130px; line-height: 1.6 }
.contact-label {
  display: block;
  font-size: .7rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .12em;
  color: rgba(240,235,225,.45);
  margin-bottom: .4rem;
}

/* ─── TARJETA EQUIPO ─── */
.team-card {
  background: var(--forest-card);
  border: 1px solid var(--border-gold);
  border-radius: 18px;
  padding: 2rem 1.5rem;
  text-align: center;
  transition: var(--t);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.team-card::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, var(--castana), var(--castana-lt));
  transform: scaleX(0); transform-origin: left;
  transition: transform .35s ease;
}
.team-card:hover {
  transform: translateY(-6px);
  border-color: var(--border-gold-hover);
  box-shadow: var(--shadow-card-lg);
}
.team-card:hover::before { transform: scaleX(1) }
.team-photo {
  width: 110px; height: 110px;
  border-radius: 50%; object-fit: cover;
  border: 3px solid rgba(200,169,110,.25);
  margin: 0 auto 1rem; display: block;
  transition: var(--t);
}
.team-card:hover .team-photo { border-color: var(--castana); transform: scale(1.04) }
.team-name {
  font-family: 'Playfair Display', serif;
  font-size: 1.08rem; font-weight: 700; color: var(--cream);
  margin-bottom: .35rem;
}
.team-role {
  display: inline-block;
  font-size: .65rem; font-weight: 600; letter-spacing: .06em;
  color: var(--castana);
  background: rgba(200,169,110,.1);
  padding: .28rem .9rem; border-radius: 50px;
  margin-bottom: .6rem;
}

/* ─── TARJETA ALIADO ─── */
.partner-card {
  background: var(--forest-card);
  border: 1px solid var(--border-gold);
  border-left: 3px solid transparent;
  border-radius: 14px;
  padding: 1.5rem;
  transition: var(--t);
  height: 100%;
}
.partner-card:hover {
  border-left-color: var(--castana);
  transform: translateX(4px);
  box-shadow: 0 8px 30px rgba(0,0,0,.35);
}
.partner-initial {
  width: 44px; height: 44px;
  background: rgba(200,169,110,.1); color: var(--castana);
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: .9rem; flex-shrink: 0;
}
.partner-type-badge {
  display: inline-block;
  font-size: .62rem; font-weight: 700; letter-spacing: .04em;
  padding: .22rem .65rem; border-radius: 50px;
}
.partner-type-comercial    { background: rgba(200,169,110,.12); color: var(--castana) }
.partner-type-tecnico      { background: rgba(66,153,225,.12);  color: #63B3ED }
.partner-type-financiero   { background: rgba(74,124,95,.15);   color: #90D4A8 }
.partner-type-conservacion { background: rgba(200,169,110,.08); color: var(--castana-lt) }

/* ─── MAPA EMBED ─── */
.map-embed {
  border-radius: 14px; overflow: hidden;
  border: 1px solid var(--border-gold);
}
.map-embed iframe { display: block }

/* ─── SIDEBAR WIDGET ─── */
.sidebar-widget {
  background: var(--forest-card);
  border: 1px solid var(--border-gold);
  border-radius: 16px; padding: 1.5rem;
}
.widget-title {
  font-size: .82rem; font-weight: 700;
  color: var(--cream); margin-bottom: 1rem; margin-top: 0;
  padding-bottom: .65rem;
  border-bottom: 1px solid rgba(200,169,110,.12);
  position: relative;
}
.widget-title::after {
  content: '';
  position: absolute; bottom: -1px; left: 0;
  width: 24px; height: 2px; background: var(--castana);
}

/* ─── PASOS PROCESO ─── */
.process-step-dot {
  width: 44px; height: 44px;
  background: var(--castana); color: var(--forest);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: .88rem; flex-shrink: 0;
  border: 4px solid var(--forest);
  box-shadow: 0 0 0 2px var(--castana);
}

/* ─── THUMBS PRODUCTO ─── */
.product-thumb-btn {
  width: 68px; height: 56px;
  object-fit: cover; border-radius: 8px; cursor: pointer;
  border: 2px solid transparent; transition: var(--t); display: block;
}
.product-thumb-btn:hover,
.product-thumb-btn.active { border-color: var(--castana); transform: scale(1.05) }

/* ─── PAGINACIÓN ─── */
.paginator { display: flex; gap: .4rem; flex-wrap: wrap; justify-content: center; list-style: none; padding: 0; margin: 0 }
.page-link {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 38px; height: 38px; padding: 0 .75rem;
  background: var(--forest-card); border: 1px solid var(--border-gold);
  color: rgba(240,235,225,.6); border-radius: 9px; font-size: .83rem;
  text-decoration: none; transition: var(--t);
}
.page-link:hover { background: rgba(200,169,110,.1); color: var(--cream); border-color: var(--border-gold-hover) }
.page-link.active { background: var(--castana); color: var(--forest); font-weight: 700; border-color: transparent }
.page-link.disabled { opacity: .35; pointer-events: none }

/* ─── FLASH ALERTS ─── */
@keyframes slideInRight { from { opacity: 0; transform: translateX(20px) } to { opacity: 1; transform: none } }
.flash-alert { animation: slideInRight .32s ease }

/* ─── TARJETA QUICK INFO (productos show) ─── */
.quick-info-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: .6rem;
}
.quick-info-item {
  display: flex; align-items: center; gap: .75rem;
  background: rgba(22,43,34,.8); border: 1px solid var(--border-gold);
  border-radius: 11px; padding: .75rem 1rem;
  transition: border-color .2s;
}
.quick-info-item:hover { border-color: var(--border-gold-hover) }

/* ─── TAGS en artículo ─── */
.article-tag {
  display: inline-block;
  font-size: .7rem; font-weight: 600;
  padding: .28rem .85rem; border-radius: 50px;
  background: var(--bg-gold-soft); border: 1px solid var(--border-gold);
  color: rgba(240,235,225,.6);
  transition: var(--tf);
}
.article-tag:hover { background: rgba(200,169,110,.15); color: var(--cream) }

/* ─── CASTAÑA HERO ─── */
.castana-hero-full {
  position: relative;
  overflow: hidden;
  /* -mt-[70px] en Tailwind cuida el offset */
}

/* ─── FILTER BUTTONS (galería / productos) ─── */
.filter-btn-dark {
  display: inline-flex; align-items: center; gap: .4rem;
  font-size: .82rem; font-weight: 600;
  padding: .42rem 1.1rem; border-radius: 50px;
  background: rgba(255,255,255,.04); border: 1px solid var(--border-gold);
  color: rgba(240,235,225,.55); cursor: pointer;
  transition: var(--t); text-decoration: none;
}
.filter-btn-dark:hover { color: var(--cream); background: rgba(200,169,110,.1); border-color: var(--border-gold-hover) }
.filter-btn-dark.active { background: linear-gradient(135deg,#C8A96E,#D9BC85); color: var(--forest); border-color: transparent; font-weight: 700 }

/* ─── NOSOTROS — Data table ─── */
.data-table { width: 100%; border-collapse: collapse }
.data-table tr { border-bottom: 1px solid rgba(200,169,110,.07) }
.data-table tr:last-child { border-bottom: none }
.data-table td { padding: .55rem 0; font-size: .85rem }
.data-table td:first-child { color: rgba(240,235,225,.35); font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; width: 44% }
.data-table td:last-child { color: rgba(240,235,225,.82); font-weight: 500 }

/* ─── NOTICIA FEATURED ─── */
.news-featured-card {
  display: grid; grid-template-columns: 1fr 1fr;
  border-radius: 20px; overflow: hidden;
  background: var(--forest-card); border: 1px solid var(--border-gold);
  transition: var(--t);
}
.news-featured-card:hover {
  border-color: var(--border-gold-hover);
  box-shadow: 0 20px 50px rgba(0,0,0,.5);
  transform: translateY(-4px);
}
.news-featured-card .nf-img { overflow: hidden }
.news-featured-card .nf-img img { width: 100%; height: 100%; object-fit: cover; min-height: 340px; transition: transform .65s ease }
.news-featured-card:hover .nf-img img { transform: scale(1.05) }
.news-featured-card .nf-body { padding: 2.5rem 2.25rem; display: flex; flex-direction: column; justify-content: center }

/* ─── BOTONES GLOBALES ─── */
.btn-gold {
  display: inline-flex; align-items: center; gap: .5rem;
  background: linear-gradient(135deg,#C8A96E,#D9BC85);
  color: var(--forest); font-weight: 700; font-size: .85rem;
  padding: .75rem 1.75rem; border-radius: 50px;
  border: none; cursor: pointer; transition: var(--t);
  text-decoration: none;
}
.btn-gold:hover { transform: translateY(-2px); box-shadow: var(--shadow-gold); background: linear-gradient(135deg,#D9BC85,#C8A96E) }
.btn-ghost-gold {
  display: inline-flex; align-items: center; gap: .5rem;
  background: transparent; color: rgba(240,235,225,.7); font-weight: 500; font-size: .85rem;
  padding: .75rem 1.75rem; border-radius: 50px;
  border: 1.5px solid rgba(200,169,110,.2); cursor: pointer; transition: var(--t);
  text-decoration: none;
}
.btn-ghost-gold:hover { color: var(--cream); border-color: rgba(200,169,110,.4); background: rgba(200,169,110,.06) }

/* ─── EYEBROW (subtítulo decorativo) ─── */
.eyebrow-gold {
  display: inline-flex; align-items: center; gap: .6rem;
  font-size: .62rem; font-weight: 700; letter-spacing: .24em; text-transform: uppercase;
  color: var(--castana);
}
.eyebrow-gold::before, .eyebrow-gold::after {
  content: ''; display: inline-block; height: 1.5px; width: 28px;
  background: var(--castana); border-radius: 2px; flex-shrink: 0;
}

/* ─── TARJETA GENÉRICA DARK ─── */
.card-dark {
  background: var(--forest-card);
  border: 1px solid var(--border-gold);
  border-radius: 16px; padding: 1.5rem;
  transition: var(--t);
}
.card-dark:hover { border-color: var(--border-gold-hover); box-shadow: var(--shadow-card-lg) }

/* ─── TABLA SPECS (variante light) ─── */
.specs-table-light th { color: var(--cream); background: rgba(200,169,110,.06) }
.specs-table-light td { color: rgba(240,235,225,.75) }

/* ─── STICKY SIDEBAR ─── */
.sticky-sidebar { position: sticky; top: calc(var(--nav-h) + 1.5rem) }

/* ─── SEPARADOR ─── */
.gold-separator {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(200,169,110,.3), transparent);
  border: none; margin: 0;
}
.gold-separator-top {
  position: absolute; top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(200,169,110,.3), transparent);
  pointer-events: none;
}

/* ─── SECTION HEADINGS ─── */
.section-eyebrow {
  display: flex; align-items: center; gap: .65rem;
  margin-bottom: 1rem;
}
.section-eyebrow span { display: inline-block; height: 1.5px; width: 24px; background: var(--castana); border-radius: 2px; flex-shrink: 0 }
.section-eyebrow em { font-size: .62rem; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: var(--castana); font-style: normal }

/* ─── EQUIPO sin foto — Avatar inicial ─── */
.team-avatar-initial {
  width: 110px; height: 110px; border-radius: 50%;
  background: rgba(200,169,110,.1); border: 3px solid rgba(200,169,110,.25);
  display: flex; align-items: center; justify-content: center;
  font-family: 'Playfair Display', serif;
  font-size: 2rem; font-weight: 700; color: var(--castana);
  margin: 0 auto 1rem;
}

/* ─── CERTIFICACIÓN CARDS ─── */
.certif-card-dark {
  background: var(--forest-card); border: 1px solid var(--border-gold);
  border-radius: 18px; padding: 2.25rem; text-align: center;
  transition: var(--t);
}
.certif-card-dark:hover { border-color: var(--border-gold-hover); transform: translateY(-5px); box-shadow: var(--shadow-card-lg) }
.certif-icon-wrap {
  width: 68px; height: 68px; border-radius: 18px;
  display: flex; align-items: center; justify-content: center;
  font-size: 2rem; margin: 0 auto 1.25rem;
}

/* ─── MERCADO CARD ─── */
.market-card {
  background: var(--forest-dark); border: 1px solid var(--border-gold);
  border-radius: 14px; padding: 1.5rem 1rem; text-align: center;
  transition: var(--t);
}
.market-card:hover { border-color: var(--border-gold-hover); transform: translateY(-4px); box-shadow: var(--shadow-card) }
.market-flag { font-size: 2.5rem; margin-bottom: .5rem; display: block }
.market-name { font-weight: 700; color: var(--cream); font-size: .88rem; margin-bottom: .2rem }
.market-desc { font-size: .72rem; color: rgba(240,235,225,.4) }

/* ─── EXPERIENCIAS TURISMO ─── */
.exp-card {
  background: var(--forest-card); border: 1px solid var(--border-gold);
  border-radius: 20px; overflow: hidden;
  transition: var(--t); height: 100%;
}
.exp-card:hover { border-color: var(--border-gold-hover); transform: translateY(-6px); box-shadow: var(--shadow-card-lg) }
.exp-card-img { overflow: hidden; height: 220px }
.exp-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; display: block }
.exp-card:hover .exp-card-img img { transform: scale(1.07) }
.exp-card-body { padding: 1.5rem }
.exp-badge { font-size: .62rem; font-weight: 700; padding: .25rem .75rem; border-radius: 50px }

/* ─── RESPONSIVE ─── */
@media (max-width: 1024px) {
  .news-featured-card { grid-template-columns: 1fr }
  .news-featured-card .nf-img img { min-height: 240px }
  .news-featured-card .nf-body { padding: 1.75rem }
}
@media (max-width: 768px) {
  .section-py { padding-top: 4rem; padding-bottom: 4rem }
  .page-banner-section { min-height: 320px; padding-bottom: 3rem }
  .gallery-masonry { columns: 2; gap: .75rem }
  .gallery-masonry .gallery-item { margin-bottom: .75rem }
  .process-step-dot { width: 36px; height: 36px; font-size: .78rem }
  .team-photo { width: 90px; height: 90px }
}
@media (max-width: 480px) {
  .gallery-masonry { columns: 1 }
  .news-featured-card { grid-template-columns: 1fr }
  .quick-info-grid { grid-template-columns: 1fr 1fr }
}
