/* ==========================
   Pilla la Caleta — styles
   Paleta: blanco, azul, amarillo, naranja
========================== */

/* = Variables de color y sombras = */
:root{
  --blue-900:#0C1736;
  --blue-700:#1C2E57;
  --yellow-500:#FFC12E;
  --orange-500:#FF7A00;
  --orange-600:#FF6D00;
  --bg:#FFFFFF;
  --text:#0C1736;
  --muted:#5A667E;
  --card:#FFFFFF;
  --shadow: 0 10px 30px rgba(12,23,54,0.08);
}

/* ==========================
   Base & Resets
========================== */
*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0;
  font-family:'Poppins', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.6;
}
img{ max-width:100%; height:auto; display:block; }
.container{ width:min(1120px, 92%); margin:0 auto; }

.pillalacaleta-name{
  color: var(--orange-600);
  font-weight: 700;
}

/* ==========================
   Tipografía
========================== */
h1,h2,h3,h4{ line-height:1.2; margin:0 0 .5rem; }
h1{ font-size:clamp(2rem,4.2vw,3.2rem); font-weight:800; }
h2{ font-size:clamp(1.6rem,3vw,2.2rem); font-weight:700; }
h3{ font-size:1.25rem; font-weight:700; }
p{ margin:.5rem 0 1rem; }
.lead{ font-size:1.125rem; color:var(--blue-700); }
.muted{ color:var(--muted); }
.highlight{ color:var(--orange-600); }

/* Accesibilidad: enlace para saltar al contenido */
.skip-to-content{ position:absolute; left:-999px; top:auto; }
.skip-to-content:focus{
  left:1rem; top:1rem;
  background:#fff; padding:.5rem .75rem; border-radius:.5rem; z-index:10;
}

/* ==========================
   Header & Navegación
========================== */
.site-header{
  position:sticky; top:0; z-index:20;
  background:rgba(255,255,255,.8);
  backdrop-filter: blur(6px);
  border-bottom:1px solid rgba(12,23,54,.06);
}
.header-inner{
  display:flex; align-items:center; gap:1rem;
  padding:.6rem 0; min-height:64px;
}
.brand{ display:flex; align-items:center; gap:.75rem; }
.logo{ width:56px; height:auto; }

.top-nav{
  margin-left:auto; display:flex; gap:.75rem; flex-wrap:wrap; align-items:center;
}
.nav-link{
  padding:.55rem .75rem; border-radius:.75rem;
  text-decoration:none; color:var(--blue-900); font-weight:600;
}
.nav-link:hover{ background:rgba(12,23,54,.06); }

/* ==========================
   Botones
========================== */
.button{
  --bgc: linear-gradient(135deg,var(--yellow-500),var(--orange-600));
  background:var(--bgc);
  color:#fff; text-decoration:none;
  border:0; padding:.75rem 1rem; border-radius:1rem; font-weight:700;
  box-shadow:var(--shadow);
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
}
.button--ghost{
  background:transparent;
  border:2px solid var(--orange-600);
  color:var(--orange-600);
}
.button--sm{ padding:.5rem .75rem; border-radius:.75rem; font-size:.9rem; }
.button--xl{ padding:1rem 1.25rem; border-radius:1rem; font-size:1.06rem; }

/* ==========================
   Secciones / Layout
========================== */
.section{ padding:clamp(48px,8vw,50px) 0; position:relative; }
.section.alt{
  background:linear-gradient(180deg, rgba(255,193,46,.06), rgba(255,122,0,.06));
}
.narrow{ width:min(800px, 92%); margin:0 auto; }
.two-col{ display:grid; grid-template-columns:1.2fr .8fr; gap:2rem; align-items:center; }
.two-col .col-media{ display:flex; align-items:center; justify-content:center; }

.mockup, .mockup-duck{
  width:100%; max-width:380px; aspect-ratio:1/1; border-radius:1.5rem; padding:1.5rem;
}

/* ==========================
   Hero
========================== */
.hero{ padding-top:72px; }
.hero-inner{ display:grid; grid-template-columns:1.1fr 1fr; gap:2rem; align-items:center; }
.hero-text{ padding:1rem 0; }

.menu-grid{ display:grid; gap:1rem; grid-template-columns:repeat(2, minmax(0,1fr)); }
.menu-card{
  background:var(--card);
  border-radius:1.25rem; padding:1rem 1.1rem;
  box-shadow:var(--shadow);
  border:1px solid rgba(12,23,54,.06);
  text-decoration:none; color:inherit;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  display:flex; flex-direction:column; gap:.35rem;
}
.menu-card--xl{ min-height:160px; }
.menu-card:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 40px rgba(12,23,54,.12);
  border-color:rgba(255,122,0,.3);
}
.menu-card__icon{ font-size:1.4rem; }

/* Botón scroll (flecha hacia abajo) */
.scroll-down{
  position:absolute; left:50%; transform:translateX(-50%);
  bottom:1.25rem; border:0; width:44px; height:44px; border-radius:999px;
  background:rgba(12,23,54,.06); cursor:pointer;
}
.scroll-down:hover{ background:rgba(12,23,54,.12); }

/* ==========================
   Listas & Pills
========================== */
.steps{ padding-left:1.1rem; }
.steps li{ margin:.4rem 0; }

.info-cards{
  display:grid; grid-template-columns:repeat(2, minmax(0,1fr));
  gap:1rem; margin:1rem 0;
}
.info-card{
  background:#fff; border:1px solid rgba(12,23,54,.06);
  border-radius:1rem; padding:1rem; box-shadow:var(--shadow);
}

.checklist{ list-style:none; padding-left:0; }
.checklist li{ padding-left:1.75rem; position:relative; margin:.35rem 0; }
.checklist li::before{
  content:"✓"; position:absolute; left:0; top:0; color:var(--orange-600); font-weight:800;
}

.pill-grid{ display:flex; flex-wrap:wrap; gap:.5rem; margin:1rem 0; }
.pill{
  background:rgba(255,193,46,.2);
  border:1px dashed rgba(255,122,0,.4);
  padding:.5rem .75rem; border-radius:999px; font-weight:600;
}

/* ==========================
   Formularios
========================== */
.contact-form{ margin-top:.75rem; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.field{ display:flex; flex-direction:column; gap:.4rem; }
label{ font-weight:600; }

input, textarea{
  padding:.8rem .9rem; border:1.5px solid rgba(12,23,54,.12);
  border-radius:.9rem; font:inherit;
  transition:border-color .2s ease, box-shadow .2s ease; background:#fff;
}
input:focus, textarea:focus{
  outline:none; border-color:var(--orange-600);
  box-shadow:0 0 0 3px rgba(255,122,0,.15);
}
.error{ color:#B00020; height:1.1rem; }
.form-status{ margin-top:.5rem; min-height:1.2rem; }

/* ==========================
   Terms (acordeón)
========================== */
.terms details{
  background:#fff; border:1px solid rgba(12,23,54,.08);
  border-radius:1rem; padding:1rem; margin:.6rem 0; box-shadow:var(--shadow);
}
.terms summary{ cursor:pointer; font-weight:700; }

/* ==========================
   Modal
========================== */
.modal{
  border:0; border-radius:1rem; padding:0;
  box-shadow:0 30px 80px rgba(12,23,54,.25);
}
.modal::backdrop{ background:rgba(12,23,54,.45); }
.modal__content{ padding:1.2rem; }
.modal__actions{ display:flex; gap:.75rem; justify-content:flex-end; }

/* ==========================
   Botón flotante “To top”
========================== */
.to-top{
  position:fixed; right:1rem; bottom:1rem;
  width:44px; height:44px; border-radius:999px; border:0;
  background:linear-gradient(135deg,var(--yellow-500),var(--orange-600));
  box-shadow:var(--shadow); cursor:pointer; display:none;
}
.to-top.show{ display:block; }

/* ==========================
   Footer
========================== */
.site-footer{
  background:var(--blue-900); color:#fff;
  border-top:4px solid var(--yellow-500);
}
.footer-grid{
  display:grid; grid-template-columns:1.2fr 1fr 1fr 1fr;
  gap:2rem; padding:2rem 0;
}
.footer-brand{ display:flex; flex-direction:column; gap:.5rem; align-items:center; }
.footer-logo{ width:72px; height:auto; }
.tagline{ margin:0; color:#E6EBFF; }

.footer-col h4{
  margin:0 0 .6rem; font-size:1rem; color:var(--yellow-500);
}
.footer-list{ list-style:none; margin:0; padding:0; display:grid; gap:.35rem; }
.footer-list a{ color:#fff; text-decoration:none; opacity:.9; }
.footer-list a:hover{ opacity:1; text-decoration:underline; }

/* Barra inferior del footer */
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.12);
  background:var(--blue-700); color:#fff;
}
.footer-bottom-inner{
  position:relative; display:flex; align-items:center; justify-content:center;
  min-height:72px; padding:8px 0;
}
.footer-bottom .copyright,
.footer-bottom-inner > p{
  margin:0; font-size:.98rem; letter-spacing:.2px;
}

/* Botón “Arriba” dentro del footer */
.footer-top{
  position:absolute; right:0; top:50%; transform:translateY(-50%);
  display:inline-flex; align-items:center; gap:.5rem;
  height:40px; padding:0 .9rem; border-radius:999px;
  color:#fff; background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.25);
  text-decoration:none;
  transition:transform .15s ease, background .2s ease, box-shadow .2s ease;
}
.footer-top:hover{
  transform:translateY(-50%) translateY(-1px);
  background:rgba(255,255,255,.14);
  box-shadow:0 10px 24px rgba(0,0,0,.2);
}
.icon-up{ width:16px; height:16px; display:block; }

/* ==========================
   Lista social minimal
========================== */
.social-min{ list-style:none; margin:0; padding:0; display:grid; }
.social-min li{ margin:0; }
.social-min .link{
  display:inline-flex; align-items:center; gap:.5rem;
  color:var(--blue-900); text-decoration:none; font-weight:600;
}
.social-min .link::before{
  content:""; width:12px; height:12px; border-radius:50%; display:inline-block;
  background:var(--orange-600); opacity:.9;
}
.social-min .fb::before{ background:var(--yellow-500); }
.social-min .ig::before{ background:var(--orange-600); }
.social-min .tk::before{ background:var(--blue-900); }
.social-min .link:hover{ text-decoration:underline; }
.on-dark .social-min .link{ color:#fff; }
.on-dark .social-min .tk::before{ background:#fff; }

/* ==========================
   Hamburguesa + menú móvil
========================== */
.nav-toggle{
  display:none; margin-left:auto; width:42px; height:42px;
  border:0; background:transparent; cursor:pointer;
  border-radius:.75rem; position:relative;
}
.nav-toggle:hover{ background:rgba(12,23,54,.06); }
.nav-toggle .bar{
  position:absolute; left:10px; right:10px; height:2px;
  background:var(--blue-900); border-radius:2px;
  transition:transform .2s ease, opacity .2s ease, top .2s ease, bottom .2s ease;
}
.nav-toggle .bar:nth-child(1){ top:12px; }
.nav-toggle .bar:nth-child(2){ top:20px; }
.nav-toggle .bar:nth-child(3){ bottom:12px; }

/* Estado abierto (X) */
.site-header.is-open .nav-toggle .bar:nth-child(1){ top:20px; transform:rotate(45deg); }
.site-header.is-open .nav-toggle .bar:nth-child(2){ opacity:0; }
.site-header.is-open .nav-toggle .bar:nth-child(3){ bottom:auto; top:20px; transform:rotate(-45deg); }

/* ==========================
   CTA Banner (titular + subtítulo + botón)
========================== */
.cta-white-title{
  margin:0; font-weight:800; letter-spacing:-.02em; line-height:1.05;
  font-size:clamp(1.6rem, 4vw, 2.6rem);
  color:var(--blue-900);
}
.cta-white-title .accent{ color:var(--orange-600); }

.cta-white-sub{
  margin:.1rem 0 .6rem;
  color:var(--blue-700);
  font-size:clamp(1rem, 1.6vw, 1.125rem);
}
.cta-white-btn{ box-shadow:0 14px 36px rgba(255,122,0,.25); }

/* Botón mejorado para el anchor del banner */
#contactanos-banner{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  text-decoration:none; border-radius:1rem;
  padding:1rem 1.25rem; font-weight:800; color:#fff; /* texto blanco */
  background:linear-gradient(135deg, var(--yellow-500), var(--orange-600));
  box-shadow:0 14px 36px rgba(255,122,0,.25), inset 0 1px 0 rgba(255,255,255,.35);
  transform:translateY(0);
  transition:transform .12s ease, box-shadow .2s ease, filter .2s ease;
  user-select:none; -webkit-tap-highlight-color:transparent; cursor:pointer;
}
#contactanos-banner:hover{
  filter:brightness(1.03);
  transform:translateY(-1px);
  box-shadow:0 18px 44px rgba(255,122,0,.28);
}
#contactanos-banner:active{
  transform:translateY(1px);
  box-shadow:0 10px 24px rgba(255,122,0,.22) inset, 0 8px 18px rgba(255,122,0,.2);
}
#contactanos-banner:focus-visible{
  outline:none;
  box-shadow:0 0 0 4px rgba(255,122,0,.25), 0 18px 44px rgba(255,122,0,.28);
}

/* ==========================
   Helpers
========================== */
/* Bloquea scroll cuando menú abierto */
.body-lock{ overflow:hidden; }

/* ==========================
   Responsive
========================== */
@media (max-width:980px){
  .hero-inner{ grid-template-columns:1fr; }
  .menu-grid{ grid-template-columns:1fr 1fr; }
  .two-col{ grid-template-columns:1fr; gap:1.25rem; }
  .mockup{ max-width:300px; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
}

@media (max-width:800px){
  .nav-toggle{ display:block; }
  .top-nav{ display:none; } /* oculto por defecto */
  .cta-row{ display:flex; flex-direction:column; gap:1rem; }

  .site-header.is-open .top-nav{
    display:flex; position:fixed; top:100px; left:0; right:0;
    flex-direction:column; gap:.25rem; padding:2.75rem;
    background:#fff; border-bottom:1px solid rgba(12,23,54,.08);
    box-shadow:0 12px 30px rgba(12,23,54,.12); z-index:25;
  }
  .site-header.is-open .top-nav .nav-link,
  .site-header.is-open .top-nav .button--sm{
    padding:.85rem 1rem; border-radius:.9rem;
  }
  .site-header.is-open .top-nav .button--sm{ text-align:center; }
}

@media (max-width:820px){
  .cta-white-inner{ justify-items:stretch; text-align:left; }
  .cta-white-btn{ width:100%; text-align:center; }
  #contactanos-banner{ width:100%; text-align:center; }
}

@media (max-width:640px){
  .menu-grid{ grid-template-columns:1fr; }
  .form-row{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr; gap:1.25rem; }
  .footer-bottom-inner{ flex-direction:column; justify-content:center; padding:12px 0; min-height:88px; }
  .footer-top{ position:static; transform:none; margin-top:8px; }
}

/* ===== Banner CTA suscripción (sin fondo) ===== */
.cta-subscribe-inner{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding: clamp(12px, 4vw, 16px) 0;   /* aire sin caja */
}

.title-row{ display:flex; align-items:center; gap:.6rem; }
.cta-title{
  margin:0; font-weight:800; letter-spacing:-.02em;
  color: var(--blue-900);
  font-size: clamp(1.3rem, 3.6vw, 2rem);
}

/* Icono Facebook en color de marca */
.fb-icon{
  width:44px; height:44px; border-radius:999px; display:grid; place-items:center;
  border:2px solid #1877F2;              /* color oficial Facebook */
}
.fb-icon svg{ width:22px; height:22px; fill:#1877F2; }

.cta-sub{
  margin:.15rem 0 .5rem; color: var(--blue-700);
  font-weight:600;
}

/* Beneficios como lista simple, sin caja */
.cta-benefits{
  list-style:none; margin:0; padding:0; display:grid; gap:.3rem;
  color: var(--blue-700);
  font-size: clamp(1rem, 1.6vw, 1.0625rem);
}
.cta-benefits li{ display:flex; gap:.5rem; align-items:flex-start; }
.cta-benefits li span{
  display:inline-grid; place-items:center; width:22px; height:22px; border-radius:999px;
  font-weight:800; color:#101214;
  background: linear-gradient(135deg, var(--yellow-500), var(--orange-600));
  line-height:1;
}

/* Botón Facebook grande */
.fb-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding: clamp(12px, 2.8vw, 16px) clamp(16px, 3.2vw, 22px);
  border-radius: 999px;
  background: #1877F2; color: #fff; text-decoration:none; font-weight:800;
  box-shadow: 0 16px 40px rgba(24,119,242,.35), inset 0 1px 0 rgba(255,255,255,.35);
  transition: transform .12s ease, filter .2s ease, box-shadow .2s ease;
}
.fb-btn svg{ width:20px; height:20px; fill:#fff; }
.fb-btn:hover{ filter: brightness(1.05); transform: translateY(-1px); box-shadow: 0 20px 52px rgba(24,119,242,.4); }
.fb-btn:active{ transform: translateY(1px); }

.cta-note{ display:block; margin-top:.35rem; color: var(--blue-700); }

.cta-subscribe{
  padding: clamp(0px, 0vw, 0px) 0;
}

/* Responsive: apilado y botón 100% ancho */
@media (max-width: 900px){
  .cta-subscribe-inner{ flex-direction:column; align-items:flex-start; }
  .cta-action .fb-btn{ width:100%; text-align:center; }
}

/* ===== Patrocinadores — carrusel full width, sin duplicados visibles ===== */
.sponsors-wide{
  background:
    radial-gradient(900px 420px at 95% -10%, rgba(255,122,0,.08), transparent 60%),
    linear-gradient(180deg, rgba(255,193,46,.10), rgba(255,122,0,.06));
  border-top:6px solid transparent;
  border-image: linear-gradient(90deg, var(--yellow-500), var(--orange-600)) 1;
}
.s-head{ text-align:center; }
.s-head h2{
  margin:0 0 .2rem; color:var(--blue-900);
  font-weight:800; letter-spacing:-.02em; font-size:clamp(1.6rem,4.5vw,2.4rem);
}
.s-sub{ margin:0 0 .8rem; color:var(--blue-700); font-weight:600; }

.s-viewport{
  width:100%;
  height:150px;                /* alto del carrusel */
  overflow:hidden;
  position:relative;
}

.s-track{
  /* Estos valores los ajusta JS según el ancho y cantidad */
  --gap: 24px;
  --itemW: 180px;
  list-style:none; margin:0; padding:0;
  display:flex; gap:var(--gap); align-items:center;
  height:100%;
  will-change: transform;
  touch-action: pan-y;
  transform: translateX(0);
}

.s-item{
  flex: 0 0 var(--itemW);
  width: var(--itemW);
  height: 150px;
  display:flex; align-items:center; justify-content:center;
}
.s-item a{ display:inline-flex; }
.s-item img{
  width:100px; height:100px; object-fit:contain;
  filter:grayscale(1) contrast(1.05) opacity(.95);
  transition:filter .2s, transform .2s;
}
.s-item:hover img{ filter:none; transform:scale(1.06); }

.s-item.placeholder{
  flex:0 0 auto; width:auto; height:auto; padding:.6rem .8rem;
  background:transparent; border:0; box-shadow:none; color:var(--blue-700);
}

/* Accesibilidad */
@media (prefers-reduced-motion: reduce){
  .s-track{ transition:none !important; transform:none !important; }
}

/* Tooltip para nombres de patrocinadores */
.s-item, .s-item a { position: relative; }

[data-tooltip]::after,
[data-tooltip]::before{
  position: absolute; left: 50%;
  transform: translateX(-50%);
  opacity: 0; pointer-events: none;
  transition: opacity .18s ease, transform .18s ease;
}

/* Flechita */
[data-tooltip]::before{
  content: "";
  bottom: 100%; margin-bottom: 4px;
  border: 7px solid transparent;
  border-top-color: var(--blue-900);
}

/* Mostrar en hover/focus */
.s-item:hover > [data-tooltip]::after,
.s-item:hover > [data-tooltip]::before,
.s-item[data-tooltip]:hover::after,
.s-item[data-tooltip]:hover::before,
.s-item:focus-within > [data-tooltip]::after,
.s-item:focus-within > [data-tooltip]::before{
  opacity: 1;
  transform: translate(-50%, -2px);
}

/* El link ocupa toda la tarjeta para clic fácil */
.s-item a.card-link{
  display:flex; align-items:center; justify-content:center;
  width:100%; height:100%; border-radius:12px;
  text-decoration:none; cursor:pointer;
}




























/* ===== Banner Ranking La Caleta ===== */
.ranking-banner {
  background: #fff;
  border: 1px solid rgba(12,23,54,0.1);
  border-radius: 18px;
  padding: 1.2rem 1.5rem;
  margin: 2rem auto;
  max-width: 850px;
  box-shadow: 0 6px 14px rgba(0,0,0,0.08);
  transition: transform 0.2s ease;
}
.ranking-banner:hover {
  transform: translateY(-3px);
}

.ranking-inner {
  display: flex;
  align-items: center;
  gap: 1.2rem;
}

.ranking-icon {
  width: auto;
  height: 188px;
  flex-shrink: 0;
}

.ranking-content {
  flex: 1;
}

.ranking-text {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--blue-900);
  line-height: 1.4;
}

.ranking-text span {
  background: linear-gradient(135deg, var(--yellow-500), var(--orange-600));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.ranking-link {
  display: inline-block;
  margin-top: 1.4rem;
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--orange-600);
  text-decoration: none;
  border-bottom: 2px solid transparent;
  transition: border-color .2s, color .2s;
}

.ranking-link:hover {
  border-color: var(--orange-600);
  color: var(--orange-700);
}

/* Responsive */
@media (max-width: 700px) {
  .ranking-inner {
    flex-direction: column;
    text-align: center;
  }
  .ranking-icon {
    margin-bottom: .6rem;
  }
}