@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=Dancing+Script:wght@600&display=swap');

/* ── Variables ─────────────────────────────────────────────── */
:root {
  --primary:   #8DC63F;
  --primary-d: #6fa32e;
  --primary-l: #a8d85a;
  --dark:      #080808;
  --s1:        #0d0d0d;
  --s2:        #0f0f0f;
  --s3:        #141414;
  --s4:        #1a1a1a;
  --border:    rgba(255,255,255,.07);
  --border2:   rgba(255,255,255,.12);
  --offwhite:  #f5f5f5;
  --text:      #a0a0a0;
  --muted:     rgba(255,255,255,.3);
  --gold:      #C8A96E;
  --purple:    #a87ed8;
  --r:         8px;
  --rl:        12px;
  --nav-h:     56px;
  --container: 1200px;
  --pad:       clamp(1.5rem,5vw,2.5rem);
  --section:   clamp(3.5rem,7vw,6rem);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth}
body{font-family:'Inter',sans-serif;background:var(--dark);color:var(--text);line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:var(--primary);text-decoration:none;transition:color .2s}
a:hover{color:var(--primary-l)}
::-webkit-scrollbar{width:5px}
::-webkit-scrollbar-track{background:var(--dark)}
::-webkit-scrollbar-thumb{background:#2a2a2a;border-radius:3px}

/* ── Utilities ─────────────────────────────────────────────── */
.container{max-width:var(--container);margin:0 auto;padding:0 var(--pad)}
.section{padding:var(--section) 0}
.section-alt{background:var(--s1)}

.pill{display:inline-flex;align-items:center;gap:6px;font-size:.68rem;font-weight:500;text-transform:uppercase;letter-spacing:.14em;color:var(--primary);border:1px solid rgba(141,198,63,.22);border-radius:4px;padding:5px 13px}

.sec-label{font-size:.65rem;font-weight:500;text-transform:uppercase;letter-spacing:.15em;color:var(--primary);display:block;margin-bottom:.6rem}
.sec-title{font-size:clamp(1.6rem,4vw,2.4rem);font-weight:500;color:var(--offwhite);line-height:1.05;letter-spacing:-.01em}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:2rem}
.sec-more{font-size:.78rem;color:var(--muted);cursor:pointer;transition:color .2s}
.sec-more:hover{color:var(--primary)}

/* ── Buttons ───────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:500;padding:.7rem 1.6rem;border-radius:var(--r);border:none;cursor:pointer;transition:all .2s;text-decoration:none;letter-spacing:.02em;white-space:nowrap;font-family:'Inter',sans-serif}
.btn-primary{background:var(--primary);color:#000}
.btn-primary:hover{background:var(--primary-l);color:#000;transform:translateY(-1px)}
.btn-ghost{background:rgba(255,255,255,.05);color:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.1)}
.btn-ghost:hover{border-color:rgba(255,255,255,.2);color:var(--offwhite)}
.btn-lg{font-size:.9rem;padding:.8rem 2rem}

/* ── Reveal ────────────────────────────────────────────────── */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}
.reveal.visible{opacity:1;transform:none}
.reveal-delay-1{transition-delay:.1s}
.reveal-delay-2{transition-delay:.2s}
.reveal-delay-3{transition-delay:.3s}

/* ============================================================
   NAV
   ============================================================ */
.nav{position:fixed;top:0;left:0;right:0;z-index:1000;height:var(--nav-h);display:flex;align-items:center;transition:background .3s,border-color .3s;border-bottom:1px solid transparent}
.nav.scrolled{background:rgba(8,8,8,.92);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom-color:var(--border)}
.nav-inner{display:flex;align-items:center;width:100%;gap:1rem}
.nav-logo{display:flex;align-items:center;gap:.7rem;text-decoration:none}
.nav-logo-mark{width:42px;height:42px;background:transparent;border-radius:0;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.nav-logo-mark img{width:42px;height:42px;object-fit:contain}
.nav-logo-name{font-size:.82rem;font-weight:600;color:var(--offwhite);letter-spacing:.06em;text-transform:uppercase}
.nav-links{display:flex;gap:2px;margin:0 auto;list-style:none}
.nav-links a{font-size:.78rem;color:rgba(255,255,255,.4);padding:5px 11px;border-radius:6px;transition:all .15s;letter-spacing:.02em}
.nav-links a:hover,.nav-links a.active{color:var(--offwhite);background:rgba(255,255,255,.06)}
.nav-cta{display:flex;align-items:center;gap:.75rem}
.nav-open-badge{font-size:.68rem;font-weight:500;color:var(--primary);background:rgba(141,198,63,.1);border:1px solid rgba(141,198,63,.2);border-radius:20px;padding:4px 12px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.nav-open-badge::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--primary);flex-shrink:0;animation:pdot 2s infinite}
.nav-open-badge.cerrado{color:#f08080;background:rgba(240,128,128,.1);border-color:rgba(240,128,128,.2)}
.nav-open-badge.cerrado::before{background:#f08080;animation:none}
@keyframes pdot{0%,100%{opacity:1}50%{opacity:.4}}
.nav-btn{background:var(--primary);color:#000;border:none;border-radius:7px;font-size:.78rem;font-weight:500;padding:7px 18px;cursor:pointer;letter-spacing:.03em;font-family:'Inter',sans-serif;transition:background .2s}
.nav-btn:hover{background:var(--primary-l)}
.nav-hamburger{display:none;background:none;border:none;color:var(--offwhite);font-size:1.4rem;cursor:pointer;padding:.25rem;margin-left:auto}
.nav-mobile{display:none;position:fixed;top:var(--nav-h);left:0;right:0;background:rgba(8,8,8,.97);backdrop-filter:blur(16px);padding:1.25rem;border-bottom:1px solid var(--border);z-index:999;flex-direction:column;gap:.2rem}
.nav-mobile.open{display:flex}
.nav-mobile a{display:block;padding:.7rem 1rem;font-size:.88rem;color:rgba(255,255,255,.5);border-radius:var(--r);transition:all .15s}
.nav-mobile a:hover{color:var(--offwhite);background:var(--s3)}

/* ============================================================
   AVISO BAR
   ============================================================ */
.aviso-bar{background:rgba(200,169,110,.08);border-bottom:1px solid rgba(200,169,110,.2);padding:.55rem 0;text-align:center;font-size:.78rem;color:var(--gold);display:none}
.aviso-bar.cerrado{background:rgba(240,128,128,.08);border-bottom-color:rgba(240,128,128,.2);color:#f08080}

/* ============================================================
   HERO
   ============================================================ */
.hero{min-height:100svh;display:grid;grid-template-columns:1fr 1fr;position:relative;overflow:hidden;padding-top:var(--nav-h)}

.hero-left{display:flex;flex-direction:column;justify-content:center;padding:4rem var(--pad) 4rem clamp(1.5rem,5vw,4rem);position:relative;z-index:1}

.hero-right{position:relative;overflow:hidden}
.hero-right img{width:100%;height:100%;object-fit:cover;object-position:center}
.hero-right::before{content:'';position:absolute;left:0;top:0;bottom:0;width:120px;background:linear-gradient(to right,var(--dark),transparent);z-index:1}
.hero-right::after{content:'';position:absolute;inset:0;background:rgba(8,8,8,.25)}

.hero-announce{display:inline-flex;align-items:center;gap:.65rem;background:rgba(141,198,63,.08);border:1px solid rgba(141,198,63,.4);border-radius:8px;padding:.65rem 1.1rem .65rem .85rem;margin-bottom:1.1rem;animation:announce-blink 2.4s ease-in-out infinite}
@keyframes announce-blink{0%,100%{box-shadow:0 0 0 0 rgba(141,198,63,0),0 0 12px rgba(141,198,63,.1)}50%{box-shadow:0 0 0 4px rgba(141,198,63,.12),0 0 22px rgba(141,198,63,.25)}}
.hero-announce-dot{width:8px;height:8px;border-radius:50%;background:var(--primary);flex-shrink:0;animation:pulse-dot 1.6s ease-in-out infinite}
@keyframes pulse-dot{0%,100%{box-shadow:0 0 0 0 rgba(141,198,63,.7)}60%{box-shadow:0 0 0 7px rgba(141,198,63,0)}}
.hero-announce-text{font-size:.8rem;font-weight:500;color:rgba(255,255,255,.9);letter-spacing:.01em}
.hero-announce-cta{font-size:.74rem;font-weight:600;color:var(--primary);white-space:nowrap;border-left:1px solid rgba(141,198,63,.3);padding-left:.7rem;margin-left:.1rem;transition:opacity .15s}
.hero-announce-cta:hover{opacity:.75}
.hero-tag{display:inline-flex;align-items:center;gap:6px;font-size:.68rem;font-weight:500;text-transform:uppercase;letter-spacing:.14em;color:var(--primary);border:1px solid rgba(141,198,63,.22);border-radius:4px;padding:5px 13px;margin-bottom:1.5rem}

.hero-title{font-size:clamp(3rem,7vw,5.5rem);font-weight:500;color:var(--offwhite);line-height:.92;letter-spacing:-.02em;margin-bottom:.75rem}
.hero-title em{color:var(--primary);font-style:normal;display:block}

.hero-script{font-family:'Dancing Script',cursive;font-size:clamp(1.1rem,2.5vw,1.5rem);color:var(--gold);margin-bottom:1.25rem;font-weight:600}

.hero-desc{font-size:.9rem;color:rgba(255,255,255,.38);max-width:380px;line-height:1.85;margin-bottom:2rem}

.hero-btns{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:2.5rem}

.hero-stats{display:flex;gap:0;border-top:1px solid var(--border);padding-top:1.75rem}
.hstat{flex:1}
.hstat:not(:last-child){border-right:1px solid var(--border);margin-right:1.5rem;padding-right:1.5rem}
.hstat-val{font-size:1.5rem;font-weight:500;color:var(--offwhite)}
.hstat-label{font-size:.65rem;color:var(--muted);margin-top:.2rem;letter-spacing:.06em;text-transform:uppercase}

.hero-float{position:absolute;bottom:2rem;right:2rem;z-index:2;background:rgba(141,198,63,.1);border:1px solid rgba(141,198,63,.22);border-radius:var(--rl);padding:1rem 1.25rem;backdrop-filter:blur(8px)}
.hero-float-label{font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.35);margin-bottom:.35rem}
.hero-float-title{font-size:.88rem;font-weight:500;color:var(--offwhite);margin-bottom:.25rem}
.hero-float-date{font-size:.75rem;color:var(--primary)}

/* ============================================================
   STATUS BAR
   ============================================================ */
.estado-bar{background:var(--s1);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:.7rem 0}
.estado-bar-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}
.estado-abierto{font-size:.8rem;font-weight:500;color:var(--primary);display:flex;align-items:center;gap:.6rem}
.estado-abierto::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--primary);flex-shrink:0}
.estado-cerrado{color:#f08080}
.estado-cerrado::before{background:#f08080}
.horario-semana{display:flex;gap:1.25rem;flex-wrap:wrap}
.horario-item{font-size:.72rem;color:rgba(255,255,255,.25)}
.horario-item strong{color:rgba(255,255,255,.45);font-weight:500}
.horario-item.hoy{color:rgba(255,255,255,.85)}
.horario-item.hoy strong{color:var(--primary);font-weight:700}

/* ============================================================
   SERVICIOS
   ============================================================ */
.srv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border-radius:var(--rl);overflow:hidden}
.srv-card{background:var(--s2);display:flex;flex-direction:column;cursor:default;overflow:hidden;transition:box-shadow .3s}
.srv-card:hover .srv-img{transform:scale(1.05);filter:grayscale(0)}
.srv-img{height:210px;background-size:cover;background-position:center;flex-shrink:0;filter:grayscale(100%);transition:transform .5s ease,filter .5s ease;position:relative;-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,0) 0%,rgba(0,0,0,1) 20%,rgba(0,0,0,1) 60%,rgba(0,0,0,0) 100%);mask-image:linear-gradient(to bottom,rgba(0,0,0,0) 0%,rgba(0,0,0,1) 20%,rgba(0,0,0,1) 60%,rgba(0,0,0,0) 100%)}
.srv-img::after{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,rgba(80,80,80,.6) 0.5px,transparent 0.5px);background-size:3px 3px;pointer-events:none}
.srv-body{padding:1.5rem 1.75rem 1.75rem;background:var(--s1);position:relative;flex:1}
.srv-num{font-size:.68rem;color:rgba(255,255,255,.25);font-weight:500;margin-bottom:.75rem;letter-spacing:.08em}
.srv-name{font-size:1rem;font-weight:600;color:var(--offwhite);margin-bottom:.5rem}
.srv-desc{font-size:.8rem;color:rgba(255,255,255,.45);line-height:1.75;margin-bottom:1rem}
.srv-chip{display:inline-block;font-size:.62rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;border-radius:4px;padding:3px 9px}
.chip-green{color:var(--primary);background:rgba(141,198,63,.1)}
.chip-gold{color:var(--gold);background:rgba(200,169,110,.1)}
.chip-purple{color:var(--purple);background:rgba(168,126,216,.12)}

/* ============================================================
   TORNEOS
   ============================================================ */
.torneos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.75rem}
.torneo-card{background:var(--s2);border:1px solid var(--border);border-radius:var(--rl);overflow:hidden;transition:border-color .2s,transform .2s;text-decoration:none;display:flex;flex-direction:column}
.torneo-card:hover{border-color:rgba(141,198,63,.3);transform:translateY(-3px)}
.torneo-card-img{width:100%;aspect-ratio:16/9;object-fit:cover}
.torneo-card-img-placeholder{width:100%;aspect-ratio:16/9;background:var(--s3);display:flex;align-items:center;justify-content:center;font-size:2.5rem}
.torneo-card-body{padding:1.1rem 1.25rem;flex:1;display:flex;flex-direction:column}
.torneo-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem}
.torneo-tipo{font-size:.65rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--primary);display:flex;align-items:center;gap:4px}
.torneo-status{font-size:.62rem;font-weight:500;background:rgba(141,198,63,.1);color:var(--primary);border-radius:4px;padding:3px 8px}
.torneo-card-titulo{font-size:.95rem;font-weight:500;color:var(--offwhite);line-height:1.2;margin-bottom:.4rem}
.torneo-card-fecha{font-size:.72rem;color:rgba(255,255,255,.3);margin-bottom:.9rem}
.torneo-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:.9rem;border-top:1px solid var(--border)}
.torneo-precio{font-size:.9rem;font-weight:500;color:var(--gold)}
.plazas-wrap{text-align:right}
.plazas-txt{font-size:.68rem;color:var(--primary);margin-bottom:.3rem}
.plazas-bar{width:70px;height:3px;background:rgba(255,255,255,.08);border-radius:2px;overflow:hidden;margin-left:auto}
.plazas-fill{height:100%;border-radius:2px;background:var(--primary)}

/* ============================================================
   GALERÍA
   ============================================================ */
.galeria-mosaic{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:6px;height:420px}
.gal-main{grid-row:1/3;border-radius:var(--rl);overflow:hidden;cursor:pointer;position:relative;background:var(--s3)}
.gal-sm{border-radius:var(--r);overflow:hidden;cursor:pointer;position:relative;background:var(--s3)}
.gal-main img,.gal-sm img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.gal-main:hover img,.gal-sm:hover img{transform:scale(1.04)}
.gal-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.55),transparent);display:flex;align-items:flex-end;padding:12px;opacity:0;transition:opacity .2s}
.gal-main:hover .gal-overlay,.gal-sm:hover .gal-overlay{opacity:1}
.gal-tag{font-size:.68rem;color:rgba(255,255,255,.75);background:rgba(0,0,0,.5);border-radius:4px;padding:3px 9px;backdrop-filter:blur(4px)}
.gal-count{position:absolute;bottom:12px;right:12px;font-size:.68rem;color:rgba(255,255,255,.5);background:rgba(0,0,0,.55);border-radius:4px;padding:4px 10px;backdrop-filter:blur(4px)}
.gal-placeholder{width:100%;height:100%;background:var(--s3);display:flex;align-items:center;justify-content:center;font-size:2rem;color:rgba(255,255,255,.06)}

/* Lightbox */
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.95);z-index:2000;display:none;align-items:center;justify-content:center;padding:1rem}
.lightbox.open{display:flex}
.lightbox img{max-width:100%;max-height:90vh;object-fit:contain;border-radius:var(--r)}
.lightbox-close{position:absolute;top:1.25rem;right:1.25rem;background:rgba(255,255,255,.1);border:none;color:#fff;font-size:1.2rem;width:40px;height:40px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}
.lightbox-close:hover{background:rgba(255,255,255,.2)}

/* ============================================================
   NOTICIAS
   ============================================================ */
.noticias-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.75rem}
.noticia-card{background:var(--s2);border:1px solid var(--border);border-radius:var(--rl);overflow:hidden;transition:border-color .2s,transform .2s;text-decoration:none;display:flex;flex-direction:column}
.noticia-card:hover{border-color:rgba(141,198,63,.25);transform:translateY(-2px)}
.noticia-card-img{width:100%;aspect-ratio:16/9;object-fit:cover}
.noticia-card-img-placeholder{width:100%;aspect-ratio:16/9;background:var(--s3);display:flex;align-items:center;justify-content:center;font-size:2rem;color:rgba(255,255,255,.06)}
.noticia-card-body{padding:1.1rem 1.25rem;flex:1;display:flex;flex-direction:column}
.noticia-card-fecha{font-size:.65rem;color:rgba(255,255,255,.25);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.4rem}
.noticia-card-titulo{font-size:.9rem;font-weight:500;color:var(--offwhite);line-height:1.3;margin-bottom:.5rem}
.noticia-card-extracto{font-size:.78rem;color:rgba(255,255,255,.3);line-height:1.7;flex:1}
.noticia-card-link{display:inline-flex;align-items:center;gap:.3rem;font-size:.75rem;font-weight:500;color:var(--primary);margin-top:.9rem}

/* ============================================================
   RESERVAS
   ============================================================ */
.reservas-wrap{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}
.reservas-info h3{font-size:1.1rem;font-weight:500;color:var(--offwhite);margin-bottom:.75rem}
.reservas-info p{font-size:.82rem;color:rgba(255,255,255,.35);line-height:1.85;margin-bottom:1.25rem}
.tipo-cards{display:flex;flex-direction:column;gap:.6rem}
.tipo-card{display:flex;align-items:center;gap:.9rem;padding:.9rem 1.1rem;border:1px solid var(--border);border-radius:var(--r);cursor:pointer;transition:all .15s}
.tipo-card:hover,.tipo-card.selected{border-color:rgba(141,198,63,.35);background:rgba(141,198,63,.05)}
.tipo-card input[type="radio"]{display:none}
.tipo-card-icon{width:38px;height:38px;border-radius:var(--r);background:rgba(255,255,255,.04);display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0}
.tipo-card.selected .tipo-card-icon{background:rgba(141,198,63,.1)}
.tipo-card-title{font-size:.85rem;font-weight:500;color:#e0e0e0}
.tipo-card-desc{font-size:.72rem;color:rgba(255,255,255,.3)}
.reserva-note{margin-top:1.25rem;font-size:.78rem;color:rgba(255,255,255,.25);background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:var(--r);padding:.85rem 1.1rem;line-height:1.75}
.reserva-note a{color:var(--primary)}
.reserva-form{background:var(--s2);border:1px solid var(--border);border-radius:var(--rl);padding:1.75rem}
.reserva-form h3{font-size:.9rem;font-weight:500;color:var(--offwhite);margin-bottom:1.25rem;letter-spacing:.02em}
.form-group{margin-bottom:.85rem}
.form-group label{display:block;font-size:.65rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.3);margin-bottom:.35rem}
.form-group input,.form-group select,.form-group textarea{width:100%;background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:6px;color:#c8c8c8;font-family:'Inter',sans-serif;font-size:.82rem;padding:.65rem .9rem;outline:none;transition:border-color .15s;-webkit-appearance:none}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:rgba(141,198,63,.4)}
.form-group select option{background:var(--s3)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.form-submit{width:100%;background:var(--primary);color:#000;border:none;border-radius:var(--r);font-size:.85rem;font-weight:500;padding:.85rem;cursor:pointer;margin-top:.25rem;letter-spacing:.03em;font-family:'Inter',sans-serif;transition:background .2s}
.form-submit:hover{background:var(--primary-l)}
.form-msg{padding:.75rem 1rem;border-radius:var(--r);font-size:.8rem;margin-bottom:.85rem;display:none;border-left:3px solid transparent}
.form-msg.success{display:flex;background:rgba(141,198,63,.08);border-color:var(--primary);color:var(--primary-l)}
.form-msg.error{display:flex;background:rgba(240,128,128,.08);border-color:#f08080;color:#f08080}
.form-check{margin-bottom:.6rem}
.form-check label{display:flex;align-items:flex-start;gap:.55rem;font-size:.78rem;color:rgba(255,255,255,.35);line-height:1.6;cursor:pointer}
.form-check input[type="checkbox"]{width:14px;height:14px;flex-shrink:0;margin-top:.15rem;accent-color:var(--primary);cursor:pointer}
.form-check a{color:var(--primary);text-decoration:underline}
.form-legal{font-size:.7rem;color:rgba(255,255,255,.2);line-height:1.65;margin:.5rem 0 .85rem}
.form-legal a{color:rgba(255,255,255,.3);text-decoration:underline}

/* ============================================================
   CONTACTO
   ============================================================ */
.contacto-wrap{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}
.c-items{display:flex;flex-direction:column;gap:.6rem}
.c-item{display:flex;align-items:center;gap:.9rem;padding:.85rem 1.1rem;background:var(--s2);border:1px solid var(--border);border-radius:var(--r);text-decoration:none;color:var(--text);transition:border-color .15s,transform .15s;cursor:pointer}
.c-item:hover{border-color:rgba(141,198,63,.3);transform:translateX(3px)}
.c-icon{width:38px;height:38px;background:rgba(255,255,255,.04);border-radius:var(--r);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}
.c-label{font-size:.62rem;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.25);margin-bottom:.15rem}
.c-value{font-size:.85rem;font-weight:500;color:#e0e0e0}
.c-social{display:flex;gap:.5rem;margin-top:1.1rem}
.soc-btn{width:38px;height:38px;background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:var(--r);display:flex;align-items:center;justify-content:center;font-size:.95rem;text-decoration:none;transition:all .2s;cursor:pointer;color:rgba(255,255,255,.5)}
.soc-btn svg{width:18px;height:18px;flex-shrink:0}
.soc-btn:hover{transform:translateY(-2px)}
.soc-ig:hover{color:#e1306c;border-color:rgba(225,48,108,.4);background:rgba(225,48,108,.08)}
.soc-fb:hover{color:#1877f2;border-color:rgba(24,119,242,.4);background:rgba(24,119,242,.08)}
.soc-wa:hover{color:#25d366;border-color:rgba(37,211,102,.4);background:rgba(37,211,102,.08)}
.map-placeholder{border-radius:var(--rl);overflow:hidden;height:140px;background:var(--s2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;margin-top:1.1rem;position:relative}
.map-placeholder iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(1) invert(1) contrast(.8)}
.contacto-form{background:var(--s2);border:1px solid var(--border);border-radius:var(--rl);padding:1.75rem}
.contacto-form h3{font-size:.9rem;font-weight:500;color:var(--offwhite);margin-bottom:1.25rem}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{background:var(--s1);border-top:1px solid var(--border);padding:3.5rem 0 1.75rem}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2.5rem;margin-bottom:2.5rem}
.footer-brand-img{height:90px;width:auto;margin-bottom:.85rem;opacity:.9}
.footer-brand p{font-size:.78rem;color:rgba(255,255,255,.22);line-height:1.8;max-width:240px;margin-bottom:1rem}
.footer-title{font-size:.65rem;font-weight:500;text-transform:uppercase;letter-spacing:.14em;color:rgba(255,255,255,.35);margin-bottom:.85rem;display:block}
.footer-links{list-style:none;display:flex;flex-direction:column;gap:.45rem}
.footer-links a{font-size:.78rem;color:rgba(255,255,255,.25);transition:color .15s}
.footer-links a:hover{color:var(--primary)}
.footer-links li{font-size:.78rem;color:rgba(255,255,255,.25)}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;padding-top:1.75rem;border-top:1px solid var(--border);flex-wrap:wrap;gap:.75rem}
.footer-copy{font-size:.72rem;color:rgba(255,255,255,.2)}

/* ============================================================
   POP-UP
   ============================================================ */
.popup-overlay{position:fixed;inset:0;background:rgba(0,0,0,.8);z-index:3000;display:none;align-items:center;justify-content:center;padding:1rem;backdrop-filter:blur(6px)}
.popup-overlay.open{display:flex}
.popup-modal{background:var(--s2);border:1px solid var(--border);border-radius:var(--rl);max-width:440px;width:100%;overflow:hidden;position:relative;animation:popIn .35s cubic-bezier(.34,1.56,.64,1)}
@keyframes popIn{from{opacity:0;transform:scale(.88) translateY(16px)}to{opacity:1;transform:none}}
.popup-close{position:absolute;top:.65rem;right:.65rem;background:rgba(255,255,255,.08);border:none;color:#fff;font-size:.9rem;width:30px;height:30px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:1;transition:background .2s}
.popup-close:hover{background:rgba(255,255,255,.15)}
.popup-img{width:100%;aspect-ratio:16/9;object-fit:cover}
.popup-body{padding:1.5rem;text-align:center}
.popup-title{font-size:1.3rem;font-weight:500;color:var(--offwhite);margin-bottom:.6rem}
.popup-text{font-size:.82rem;color:rgba(255,255,255,.4);line-height:1.75;margin-bottom:1.25rem}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:1024px){
  .hero{grid-template-columns:1fr;min-height:auto}
  .hero-right{height:300px}
  .reservas-wrap,.contacto-wrap{grid-template-columns:1fr;gap:2rem}
  .srv-grid{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:768px){
  .nav-links,.nav-cta .nav-open-badge{display:none}
  .nav-hamburger{display:flex}
  .srv-grid{grid-template-columns:1fr}
  .galeria-mosaic{grid-template-columns:1fr 1fr;grid-template-rows:auto;height:auto}
  .gal-main{grid-row:auto;aspect-ratio:4/3}
  .gal-sm{aspect-ratio:1}
  .torneos-grid,.noticias-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
}
@media(max-width:480px){
  .hero-btns{flex-direction:column;align-items:flex-start}
  .hero-stats{gap:0}
  .hstat:not(:last-child){margin-right:1rem;padding-right:1rem}
}
