:root{
  --tee-azul:#ffffff;
  --tee-dorado:#dbb550;
  --overlay-blue: rgba(34,41,77,.72);
}
.cta-visita{ position:relative; border-left:6px solid var(--tee-dorado); padding:0; background:#ffffff; color:#22294d; border-radius:12px; box-shadow:0 2px 10px rgba(0,0,0,.06); max-width:980px; overflow:hidden; }
.cta-visita.has-bg{ background:#0f1322; }
.cta-visita.has-bg::before{ content:""; position:absolute; inset:0; background-size:cover; background-position:center; background-image:var(--cta-bg); filter:saturate(1) contrast(1) brightness(.9); z-index:0; }
.cta-visita.overlay-blue::after{ content:""; position:absolute; inset:0; z-index:1; background:var(--overlay-blue); }
.cta-visita.gradient-blue{ background:linear-gradient(135deg,#22294d 0%,#2f3a72 60%,#22294d 100%); color:#f3f5ff; }
.cta-visita .cta-surface{ position:relative; z-index:2; padding:18px 20px; background:transparent; }

/* Header */
.cta-visita .cta-head{ display:flex; align-items:center; gap:12px; }
.cta-visita .cta-icon{ display:block; border-radius:8px; flex:0 0 auto; }
.cta-visita h3{ margin:0; color:var(--tee-azul); font-weight:800; letter-spacing:.2px;
  font-size: clamp(1.35rem, 1.1rem + 1.1vw, 1.9rem); line-height:1.2; }
.cta-visita.has-bg h3, .cta-visita.gradient-blue h3{ color:#fff; }

/* Body copy bigger */
.cta-visita .cta-body{ margin:10px 0 0 0; font-size: clamp(1.05rem, .98rem + .35vw, 1.2rem); line-height:1.55; }
.cta-visita a{ color:var(--tee-dorado); font-weight:650; text-decoration:none; border-bottom:2px solid transparent; transition: all .15s ease; }
.cta-visita a:hover, .cta-visita a:focus{ color:#11162e; border-bottom-color:var(--tee-dorado); outline:none; }

/* Estado/horario: más separación y legibilidad */
.cta-visita .cta-hours{ margin-top:6px; margin-bottom:12px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:.98rem; }
.cta-visita .cta-hours .badge{ padding:3px 8px; border-radius:999px; font-weight:800; background:#eef2ff; color:#1d274a; border:1px solid #dfe6ff; }
.cta-visita.has-bg .cta-hours .badge, .cta-visita.gradient-blue .cta-hours .badge{ background:#fafafa; color:#fff; border-color:#3a4aa0; }
.cta-visita .cta-hours .ranges{ opacity:.9; }

/* Botonera: todos dorados */
.cta-visita .cta-actions{ margin-top:14px; display:flex; gap:10px; flex-wrap:wrap; }
.cta-visita .cta-btn{ display:inline-block; padding:11px 18px; border-radius:999px; font-weight:800; text-decoration:none;
  border:2px solid var(--tee-dorado); background:var(--tee-dorado); color:#1b1b1b; transition: transform .12s ease, box-shadow .12s ease; }
.cta-visita .cta-btn:hover{ transform:translateY(-1px); box-shadow:0 3px 0 rgba(0,0,0,.08); }
.cta-visita .cta-btn.ghost{ background:transparent; color:#22294d; } /* opcional */

/* Mapa */
.cta-visita .cta-map{ margin-top:16px; background:#ffffffd9; border:1px solid #e6e6e6; border-radius:12px; overflow:hidden; }
.cta-visita.has-bg .cta-map{ background:#0f1322cc; border-color:#2e344c; }
.cta-visita .cta-map iframe{ display:block; width:100%; height:var(--map-h,220px); }
.cta-visita .cta-map .map-link{ padding:10px 12px; text-align:right; }
.cta-visita .cta-map .map-link a{ font-weight:800; }

/* Variante espaciosa */
.cta-visita.spacious .cta-surface{ padding:26px 26px; }
.cta-visita.spacious{ border-radius:16px; }
.cta-visita.spacious .cta-map{ border-radius:16px; margin-top:20px; }
.cta-visita.spacious .cta-actions{ margin-top:18px; gap:12px; }
.cta-visita.spacious .cta-btn{ padding:12px 20px; }
.cta-visita.spacious h3{ font-size: clamp(1.45rem, 1.2rem + 1.2vw, 2.05rem); }
.cta-visita.spacious .cta-body{ font-size: clamp(1.1rem, 1.0rem + .4vw, 1.25rem); line-height:1.6; }
.cta-visita.spacious .cta-hours{ margin-top:10px; margin-bottom:14px; font-size:1rem; gap:12px; }

/* Toggle de tema */
.cta-visita .cta-theme-toggle{ margin-left:auto; margin-right:0; padding:8px 12px; border-radius:999px; border:2px solid var(--tee-dorado); background:transparent; color:#22294d; font-weight:800; cursor:pointer; }
.cta-visita.gradient-blue .cta-theme-toggle, .cta-visita.has-bg .cta-theme-toggle, .cta-visita.dark .cta-theme-toggle{ color:#fff; border-color:var(--tee-dorado); background:transparent; }
.cta-visita .cta-theme-toggle:hover{ transform:translateY(-1px); }

/* Dark theme */
.cta-visita.dark{ background:#11162e; color:#e9ecff; border-left-color:var(--tee-dorado); }
.cta-visita.dark .cta-surface{ background:transparent; }
.cta-visita.dark h3{ color:#fff; }
.cta-visita.dark .cta-body{ color:#e9ecff; }
.cta-visita.dark a{ color:var(--tee-dorado); }
.cta-visita.dark .cta-btn{ background:var(--tee-dorado); color:#161616; border-color:var(--tee-dorado); }
.cta-visita.dark .cta-map{ background:#0f1322cc; border-color:#2e344c; }
.cta-visita.dark .cta-hours .badge{ background:#22306b; color:#fff; border-color:#3a4aa0; }

/* Responsive: limitar alto del mapa en móviles */
@media (max-width: 480px){
  .cta-visita .cta-map iframe{ height: min(var(--map-h, 220px), 320px); }
}

/* Tema claro institucional (permanente) */
.cta-visita{ background:#ffffff; color:#828282; }
.cta-visita h3{ color:#22294d; }
.cta-visita .cta-body{ color:#22294d; }
/* Botones en claro: dorado con texto azul institucional */
.cta-visita .cta-btn{ background:#dbb550; color:#22294d; border-color:#dbb550; }
.cta-visita .cta-btn:hover{ box-shadow:0 3px 0 rgba(0,0,0,.08); }
