:root {
  --black: #090909;
  --black-2: #111111;
  --black-3: #191919;
  --gold: #c89d3d;
  --gold-2: #e0b64e;
  --cream: #f7f2e7;
  --muted: #bdb8ad;
  --line: rgba(255,255,255,.12);
  --shadow: 0 18px 60px rgba(0,0,0,.35);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: white;
  background: var(--black);
  line-height: 1.55;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
.container { width: min(1120px, calc(100% - 36px)); margin: 0 auto; }
.site-header {
  position: sticky; top: 0; z-index: 50;
  backdrop-filter: blur(14px);
  background: rgba(9,9,9,.88);
  border-bottom: 1px solid var(--line);
}
.nav { height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: flex; align-items: center; gap: 12px; font-weight: 900; letter-spacing: .04em; }
.brand img { width: 50px; height: 50px; object-fit: contain; }
.brand small { display:block; color: var(--gold-2); font-size: .68rem; letter-spacing: .18em; margin-top: -2px; }
.menu { display: flex; gap: 24px; align-items: center; font-size: .95rem; }
.menu a { color: #eaeaea; }
.menu a:hover { color: var(--gold-2); }

.menu a.btn {
  background: var(--gold);
  color: #111;
}
.menu a.btn:hover {
  background: var(--gold-2);
  color: #111;
}

.header-whatsapp {
  width: 50px;
  height: 50px;
  flex: 0 0 50px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: transform .2s ease, filter .2s ease;
}
.header-whatsapp:hover {
  transform: translateY(-1px) scale(1.04);
  filter: brightness(1.08);
}
.header-whatsapp svg {
  width: 46px;
  height: 46px;
  display: block;
}
.header-whatsapp .wa-bg {
  fill: #25D366;
  stroke: none;
}
.header-whatsapp .wa-phone,
.header-whatsapp .wa-tail {
  fill: none;
  stroke: #fff;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 48px; padding: 0 20px; border-radius: 10px;
  background: var(--gold); color: #111; font-weight: 900; border: 1px solid transparent;
  transition: .2s ease; cursor: pointer;
}
.btn:hover { transform: translateY(-1px); background: var(--gold-2); }
.btn.ghost { background: transparent; color: white; border-color: rgba(255,255,255,.22); }
.btn.ghost:hover { border-color: var(--gold); color: var(--gold-2); }
.hero {
  position: relative; min-height: 610px; display: grid; align-items: center;
  background:
    linear-gradient(90deg, rgba(4,4,4,.94) 0%, rgba(4,4,4,.76) 42%, rgba(4,4,4,.20) 100%),
    url('assets/fachada-invictus.jpg') center/cover no-repeat;
  border-bottom: 1px solid var(--line);
}
.hero-content { max-width: 690px; padding: 34px 0 24px; }
.eyebrow { color: var(--gold-2); font-weight: 900; letter-spacing: .18em; text-transform: uppercase; font-size: .78rem; }
h1 { font-size: clamp(3.1rem, 7vw, 6.7rem); line-height: .88; margin: 8px 0 18px; letter-spacing: -.05em; text-transform: uppercase; }
.hero-quote {
  font-size: clamp(1.95rem, 4.1vw, 3.85rem);
  line-height: .98;
  margin: 10px 0 8px;
}
.hero-quote-gold {
  color: var(--gold-2);
}

.hero p { color: #ddd8ce; font-size: clamp(1.05rem, 2vw, 1.25rem); max-width: 590px; }
.hero-actions { margin-top: 30px; display: flex; flex-wrap: wrap; gap: 12px; }
.hero-note { margin-top: 16px; color: #a9a49a; font-size: .88rem; }
section { padding: 92px 0; }
.section-kicker { color: var(--gold-2); text-transform: uppercase; letter-spacing: .16em; font-weight: 900; font-size: .76rem; }
h2 { font-size: clamp(2rem, 4vw, 3.3rem); line-height: 1; margin: 10px 0 18px; letter-spacing: -.035em; }
.lead { max-width: 720px; color: #c7c3ba; font-size: 1.06rem; }
.pricing { background: var(--black-2); }
.price-grid { margin-top: 34px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.card {
  background: linear-gradient(180deg, #171717, #101010);
  border: 1px solid var(--line); border-radius: 18px; padding: 26px;
  box-shadow: var(--shadow); position: relative;
}
.card.featured { border-color: rgba(200,157,61,.75); box-shadow: 0 20px 70px rgba(200,157,61,.12); }
.badge { position:absolute; top:16px; right:16px; background: var(--gold); color:#111; font-size:.68rem; font-weight:900; padding:6px 9px; border-radius:999px; text-transform:uppercase; letter-spacing:.08em; }
.card h3 { margin: 4px 0 12px; font-size: 1.12rem; }
.card.featured h3 { margin-top: 30px; }
.price { font-size: 2.9rem; font-weight: 950; letter-spacing: -.05em; line-height: 1; }
.price span { font-size: .95rem; color: #aaa59b; font-weight: 700; letter-spacing: 0; }
.card p { color: #aaa59b; min-height: 48px; }
.card .btn { width:100%; margin-top: 16px; }

.pricing-layout {
  margin-top: 34px;
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(300px, .75fr);
  gap: 30px;
  align-items: stretch;
}
.pricing-layout .price-grid { margin-top: 0; }
.price-grid-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pricing-photo-panel {
  background: #050505;
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 16px;
  min-width: 0;
  box-shadow: var(--shadow);
  overflow: hidden;
}
.pricing-photo-panel img {
  width: 100%;
  height: 100%;
  min-height: 100%;
  object-fit: cover;
  border-radius: 14px;
}
.temporary-pass-card { display: flex; flex-direction: column; }
.temporary-pass-card h3 { margin-top: 4px; color: var(--gold-2); letter-spacing: .06em; }
.temporary-pass-intro { min-height: 0 !important; margin: 0 0 16px; }
.temporary-pass-options { display: grid; gap: 10px; margin-bottom: 2px; }
.temporary-pass-option {
  min-height: 58px;
  padding: 11px 13px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 11px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  background: rgba(255,255,255,.025);
}
.temporary-pass-option strong { font-size: 1.3rem; white-space: nowrap; }
.temporary-pass-name { display: block; font-weight: 900; color: #f5f2eb; }
.temporary-pass-note { display: block; margin-top: 2px; color: #c9c3b7; font-size: .78rem; line-height: 1.25; }
.temporary-pass-monthly {
  border-color: rgba(255,255,255,.12);
  background: rgba(255,255,255,.025);
  box-shadow: none;
}
.temporary-pass-monthly .temporary-pass-name,
.temporary-pass-monthly strong { color: #f5f2eb; }
.temporary-pass-card .btn { margin-top: auto; }

.info-grid { display:grid; grid-template-columns: 1.1fr .9fr; gap: 42px; align-items: center; }
.logo-panel { background: #050505; border:1px solid var(--line); border-radius: 22px; padding: 28px; }
.logo-panel img { width:min(460px,100%); margin:auto; }
/* Horario */
.schedule-block {
  width: min(100%, 455px);
  margin-top: 10px;
}
.schedule-block h2 {
  margin-bottom: 34px;
  white-space: nowrap;
  font-size: 2.525rem;
  display: inline-block;
}
.schedule-days {
  margin: 0 0 18px;
  text-align: left;
  color: #f1ede4;
  font-size: 1.28rem;
  letter-spacing: .035em;
}
.schedule-days strong {
  color: var(--gold-2);
}
.hours {
  display: grid;
  gap: 5px;
  margin-top: 0;
}
.hours-row {
  display: grid;
  grid-template-columns: auto minmax(28px, 1fr) auto;
  align-items: baseline;
  column-gap: 10px;
  padding: 2px 0;
  border: 0;
  font-size: 1.34rem;
  line-height: 1.35;
}
.hours-row strong {
  grid-column: 3;
  color: #fff;
  text-align: right;
  white-space: nowrap;
}
.hours-row::after {
  content: "";
  grid-column: 2;
  grid-row: 1;
  align-self: baseline;
  border-bottom: 2px dotted rgba(241,237,228,.52);
  transform: translateY(-0.18em);
}
.hours-saturday {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid rgba(241,237,228,.28);
}
.hours-saturday span {
  color: var(--gold-2);
  font-weight: 700;
}
.hours-note {
  margin: 22px 0 0;
  text-align: center;
  color: #9f9a91;
  font-size: 1rem;
  line-height: 1.35;
}
@media (max-width: 560px) {
  .gallery-nav-btn { min-height: 40px; padding: 0 12px; }
  .gallery-grid { columns: 1; }
  .schedule-block { width: 100%; }
  .schedule-block h2 { white-space: normal; display: block; }
  .schedule-days { font-size: 1.12rem; }
  .hours-row { font-size: 1.08rem; column-gap: 8px; }
}

.gallery-nav-btn {
  min-height: 42px;
  padding: 0 16px;
}
.gallery-section {
  background: var(--black-2);
}
.gallery-grid {
  margin-top: 32px;
  columns: 3 280px;
  column-gap: 16px;
}
.gallery-item {
  display: block;
  break-inside: avoid;
  margin: 0 0 16px;
  border: 1px solid var(--line);
  border-radius: 16px;
  overflow: hidden;
  background: #0b0b0b;
  box-shadow: var(--shadow);
}
.gallery-item img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform .25s ease, filter .25s ease;
}
.gallery-item:hover img {
  transform: scale(1.018);
  filter: brightness(1.05);
}

.cta { background: linear-gradient(135deg, #c89d3d 0%, #e1b94f 100%); color:#111; }
.cta-wrap { display:flex; align-items:center; justify-content:space-between; gap:34px; }
.cta h2 { margin-bottom: 8px; }
.cta p { margin:0; max-width:680px; color:#2d271b; }
.cta .btn { background:#0a0a0a; color:white; }
.contact-grid { margin-top:30px; display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.contact-box { padding:20px; border:1px solid var(--line); border-radius:14px; background:#111; }
.contact-box span { display:block; color:var(--gold-2); font-weight:800; margin-bottom:6px; }
.contact-grid-links { align-items: stretch; }
.contact-card {
  min-height: 260px;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: linear-gradient(180deg, #151515, #101010);
  display: flex;
  flex-direction: column;
  box-shadow: var(--shadow);
}
.contact-card:hover { border-color: rgba(200,157,61,.55); }
.contact-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: rgba(200,157,61,.10);
  border: 1px solid rgba(200,157,61,.25);
  margin-bottom: 0;
}
.contact-card-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}
.contact-icon svg { width: 22px; height: 22px; fill: none; stroke: var(--gold-2); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.contact-card-copy { display: grid; gap: 5px; }
.contact-label { color: var(--gold-2); font-size: .76rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.contact-card strong { font-size: 1.15rem; }
.contact-address strong { color: #f5f2eb; font-size: 1.15rem; font-weight: 700; line-height: 1.45; }
.contact-card small { color: #aaa59b; font-size: .88rem; line-height: 1.45; }
.contact-detail { color: #cfcac0; font-size: .93rem; font-weight: 700; text-decoration: none; width: fit-content; display: inline-flex; align-items: center; gap: 3px; }
.contact-detail:hover { color: var(--gold-2); }
.contact-email, .contact-phone { font-size: .93rem; font-weight: 700; color: #cfcac0; }
.whatsapp-inline { width: 1.05em; height: 1.05em; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }
.contact-whatsapp {
  width: fit-content;
  margin-top: 2px;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.contact-whatsapp-number {
  color: #cfcac0;
  font-size: .93rem;
  font-weight: 700;
}
.contact-whatsapp:hover .contact-whatsapp-number { color: var(--gold-2); }
.whatsapp-large {
  width: 1.8rem;
  height: 1.8rem;
  fill: none;
  stroke: #25D366;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: drop-shadow(0 0 6px rgba(37,211,102,.18));
}
.social-link-facebook .social-mark-facebook { color: #1877F2; }
.social-link-instagram .social-mark-instagram { color: #E4405F; }

.contact-link {
  margin-top: auto;
  padding-top: 22px;
  color: var(--gold-2);
  font-weight: 900;
  text-decoration: none;
  display: inline-flex;
  gap: 8px;
  align-items: center;
}
.contact-link:hover { color: #fff; }
.google-maps-icon {
  width: 28px;
  height: 28px;
  object-fit: contain;
  border-radius: 6px;
  flex: 0 0 28px;
}
.contact-direct-copy {
  flex: 1;
  align-content: space-evenly;
  gap: 10px;
}

.contact-hint { margin-top: auto; padding-top: 22px; color: #77736b; font-size: .78rem; }
.social-links { margin-top: auto; padding-top: 22px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.social-link {
  min-height: 46px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 11px;
  color: #f5f2eb;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-weight: 800;
  font-size: .9rem;
  transition: .2s ease;
}
.social-link:hover { border-color: var(--gold); color: var(--gold-2); transform: translateY(-1px); }
.social-mark { color: var(--gold-2); font-size: 1.1rem; font-weight: 950; }
footer { border-top:1px solid var(--line); padding:30px 0 42px; color:#8f8b83; font-size:.88rem; }
.footer-row { display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.footer-links { display:flex; gap:16px; flex-wrap:wrap; }

/* Signup */
.signup-hero { padding: 72px 0 36px; background: radial-gradient(circle at 75% 10%, rgba(200,157,61,.15), transparent 28%), #0b0b0b; }
.signup-wrap { display:grid; grid-template-columns: .8fr 1.2fr; gap:34px; align-items:start; }
.summary { position:sticky; top:100px; }
.summary .price { margin:14px 0; }
.form-card { background:#141414; border:1px solid var(--line); border-radius:20px; padding:28px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.field { display:grid; gap:7px; }
.field.full { grid-column:1/-1; }
label { font-size:.88rem; color:#d8d4cb; font-weight:700; }
input, select {
  width:100%; border:1px solid #363636; background:#0c0c0c; color:white; border-radius:10px;
  min-height:48px; padding:0 13px; font:inherit; outline:none;
}
input:focus, select:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(200,157,61,.12); }
.check { display:flex; gap:10px; align-items:flex-start; color:#c0bcb3; font-size:.9rem; }
.check input { width:18px; height:18px; min-height:0; margin-top:3px; }
.notice { margin-top:16px; padding:14px 15px; border-radius:10px; background:rgba(200,157,61,.08); border:1px solid rgba(200,157,61,.25); color:#d8c9a2; font-size:.88rem; }
.payment-placeholder { margin-top:18px; padding:20px; border:1px dashed rgba(255,255,255,.22); border-radius:12px; color:#aaa59b; }

@media (max-width: 900px) {
  .pricing-layout { grid-template-columns: 1fr; }
  .pricing-photo-panel img { height: auto; min-height: 0; }
  .menu a:not(.btn):not(.header-whatsapp) { display:none; }
  .price-grid { grid-template-columns:1fr 1fr; }
  .info-grid, .signup-wrap { grid-template-columns:1fr; }
  .summary { position:static; }
  .contact-grid { grid-template-columns:1fr; }
  .cta-wrap { align-items:flex-start; flex-direction:column; }
}
@media (max-width: 560px) {
  .container { width:min(100% - 24px,1120px); }
  .nav { height:68px; gap:10px; }
  .menu { gap:8px; }
  .menu a.btn { min-height:42px; padding:0 12px; font-size:.78rem; }
  .header-whatsapp { width:44px; height:44px; flex-basis:44px; }
  .header-whatsapp svg { width:42px; height:42px; }
  .brand span { font-size:.86rem; }
  .brand img { width:42px; height:42px; }
  .hero { min-height:560px; background-position: 62% center; }
  .hero-content { padding:72px 0; }
  .price-grid { grid-template-columns:1fr; }
  .form-grid { grid-template-columns:1fr; }
  .field.full { grid-column:auto; }
  section { padding:70px 0; }
}


/* QR de suscripción en portada */
.hero-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  align-items: start;
  padding: 22px 0 30px;
}
.hero-layout .hero-content { max-width: 690px; padding: 0; transform: translateY(-26px); }
.hero-qr {
  justify-self: start;
  margin-top: 18px;
  width: 580px;
  max-width: calc(100vw - 36px);
  background: rgba(10,10,10,.88);
  border: 1px solid rgba(224,182,78,.55);
  border-radius: 22px;
  padding: 16px;
  box-shadow: 0 22px 70px rgba(0,0,0,.48);
  backdrop-filter: blur(10px);
}
.qr-kicker {
  color: var(--gold-2);
  text-transform: uppercase;
  letter-spacing: .16em;
  font-weight: 900;
  font-size: .72rem;
}
.hero-qr h2, .qr-modal-dialog h2 {
  font-size: 1.65rem;
  line-height: 1.02;
  margin: 5px 0 12px;
  letter-spacing: -.03em;
}
.hero-qr h2 {
  display: inline-block;
  white-space: normal;
}
.qr-title-second {
  display: block;
}
.qr-row-layout {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 14px;
  width: 100%;
  align-items: stretch;
}
.qr-frame {
  background: white;
  border-radius: 16px;
  padding: 10px;
  width: 180px;
  max-width: 100%;
  margin: 0;
  box-shadow: 0 10px 26px rgba(0,0,0,.28);
}
.qr-frame img { width: 100%; height: auto; }
.qr-frame.large { width: 260px; }
.hero-qr p, .qr-modal-dialog p {
  color: #d8d4cb;
  font-size: .88rem;
  margin: 0;
}
.hero-qr .qr-row-layout p {
  display: flex;
  align-items: center;
  min-height: 100%;
  line-height: 1.4;
}
.qr-support-text {
  margin-top: 14px;
  color: var(--gold-2);
  font-size: .98rem;
  line-height: 1.3;
  text-align: center;
}
.qr-demo {
  color: #8f8b83;
  font-size: .73rem;
  margin-top: 10px;
  text-align: center;
}
.qr-modal[hidden] { display: none; }
.qr-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  padding: 20px;
}
.qr-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.78);
  backdrop-filter: blur(6px);
}
.qr-modal-dialog {
  position: relative;
  z-index: 1;
  width: min(440px, 100%);
  background: #111;
  border: 1px solid rgba(224,182,78,.55);
  border-radius: 22px;
  padding: 28px;
  text-align: center;
  box-shadow: 0 28px 90px rgba(0,0,0,.62);
}
.qr-modal-close {
  position: absolute;
  top: 10px;
  right: 12px;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.16);
  background: #191919;
  color: white;
  font-size: 1.55rem;
  line-height: 1;
  cursor: pointer;
}
.qr-modal-close:hover { border-color: var(--gold); color: var(--gold-2); }
.qr-device-link { margin-top: 8px; width: 100%; }
body.modal-open { overflow: hidden; }

@media (max-width: 900px) {
  .hero-layout { grid-template-columns: 1fr; gap: 0; padding: 28px 0 36px; }
  .hero-layout .hero-content { padding: 0; }
  .hero-qr { justify-self: start; width: auto; max-width: calc(100vw - 36px); }
}
@media (max-width: 560px) {
  .hero-layout { padding: 28px 0 42px; }
  .hero-qr { width: 100%; }
  .hero-qr h2 { white-space: normal; }
  .qr-row-layout { grid-template-columns: 1fr; gap: 14px; }
  .qr-frame { width: 180px; margin: 0 auto; }
  .hero-qr .qr-row-layout p { text-align: center; }
}


/* Condiciones de suscripción */
.conditions-page strong {
  color: var(--gold-2);
}

.conditions-page h2,
.conditions-page h3 {
  color: var(--gold-2);
  text-decoration: underline;
  text-decoration-color: var(--gold-2);
  text-underline-offset: 0.14em;
}


/* Información adicional de tarifas */
.subscription-info-btn {
  margin-top: 10px !important;
}
.temporary-pass-highlight {
  margin-top: 28px;
  padding: 16px 18px;
  border: 1px solid rgba(200,157,61,.45);
  border-radius: 12px;
  background: rgba(200,157,61,.08);
}


/* Bono temporal: solo títulos y destacados iniciales en dorado */
.bonus-page strong {
  color: inherit;
}
.bonus-page strong.bonus-gold {
  color: var(--gold-2);
}


/* Icono de Instagram en Contacto */
.social-mark svg {
  width: 1.1rem;
  height: 1.1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Información básica de privacidad en el alta */
.privacy-summary {
  display: grid;
  gap: 5px;
  padding: 15px 16px;
  border: 1px solid rgba(224,182,78,.28);
  border-radius: 10px;
  background: rgba(224,182,78,.06);
  color: #bdb8ad;
  font-size: .82rem;
  line-height: 1.45;
}
.privacy-summary > strong { color: var(--gold-2); font-size: .9rem; }
.privacy-summary b { color: #ddd8ce; }
.privacy-summary a { color: var(--gold-2); text-decoration: underline; text-underline-offset: .12em; }

/* Aviso legal y privacidad */
.legal-content { max-width: 900px; }
.legal-page h2,
.legal-page h3 { color: var(--gold-2); }
.legal-page h3 { margin-top: 34px; margin-bottom: 10px; font-size: 1.2rem; }
.legal-page p,
.legal-page li { color: #d4d0c7; }
.legal-page strong { color: #f5f2eb; }
.legal-page a:not(.btn) { color: var(--gold-2); text-decoration: underline; text-underline-offset: .12em; }
.legal-page ul { padding-left: 1.25rem; }
.legal-page li { margin: 7px 0; }
.legal-actions { margin-top: 38px; }

#suscripcion-segura {
  scroll-margin-top: 86px;
}


.pricing-benefits {
  display: inline-block;
  margin-top: 6px;
  color: #f5f2eb;
  font-weight: 700;
}
.temporary-pass-presential-note {
  min-height: 0 !important;
  margin: -8px 0 16px;
  color: #eee9df !important;
  font-size: .76rem !important;
  line-height: 1.3;
}
.bonus-presential-note {
  color: #eee9df !important;
  font-size: .84rem;
  line-height: 1.4;
}


/* Banner flotante de cookies */
.cookie-banner {
  position: fixed;
  left: 50%;
  bottom: 18px;
  z-index: 2000;
  width: min(980px, calc(100% - 28px));
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 18px 20px;
  border: 1px solid rgba(224,182,78,.55);
  border-radius: 16px;
  background: rgba(10,10,10,.96);
  box-shadow: 0 18px 60px rgba(0,0,0,.62);
  backdrop-filter: blur(14px);
  transition: opacity .2s ease, transform .2s ease;
}
.cookie-banner-hiding {
  opacity: 0;
  transform: translate(-50%, 12px);
}
.cookie-banner-copy {
  min-width: 0;
}
.cookie-banner-copy strong {
  display: block;
  margin-bottom: 4px;
  color: var(--gold-2);
  font-size: 1rem;
}
.cookie-banner-copy p {
  margin: 0;
  color: #d8d4cb;
  font-size: .87rem;
  line-height: 1.45;
}
.cookie-banner-copy a {
  color: var(--gold-2);
  text-decoration: underline;
  text-underline-offset: .12em;
}
.cookie-banner-actions {
  display: flex;
  flex: 0 0 auto;
  gap: 9px;
}
.cookie-btn {
  min-height: 42px;
  padding: 0 15px;
  border-radius: 9px;
  border: 1px solid transparent;
  font: inherit;
  font-size: .84rem;
  font-weight: 900;
  cursor: pointer;
  transition: .2s ease;
}
.cookie-btn-primary {
  background: var(--gold);
  color: #111;
}
.cookie-btn-primary:hover {
  background: var(--gold-2);
  transform: translateY(-1px);
}
.cookie-btn-secondary {
  background: transparent;
  color: #f5f2eb;
  border-color: rgba(255,255,255,.2);
}
.cookie-btn-secondary:hover {
  border-color: var(--gold);
  color: var(--gold-2);
}

/* Tabla de la política de cookies */
.cookie-table-wrap {
  overflow-x: auto;
  margin: 18px 0 28px;
}
.cookie-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 680px;
}
.cookie-table th,
.cookie-table td {
  padding: 12px 14px;
  border: 1px solid rgba(255,255,255,.12);
  text-align: left;
  vertical-align: top;
}
.cookie-table th {
  color: var(--gold-2);
  background: rgba(224,182,78,.06);
}
.cookie-table td {
  color: #d4d0c7;
}
.cookie-table td strong {
  color: #f5f2eb;
}

@media (max-width: 720px) {
  .cookie-banner {
    bottom: 10px;
    width: calc(100% - 20px);
    align-items: stretch;
    flex-direction: column;
    gap: 14px;
    padding: 16px;
  }
  .cookie-banner-actions {
    width: 100%;
  }
  .cookie-btn {
    flex: 1 1 0;
  }
}


/* Baja online */
.notice a { color: var(--gold-2); text-decoration: underline; text-underline-offset: .12em; }
.hp-field { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.cancellation-result { width:min(100% - 36px,760px); margin:0 auto; }
.cancellation-status { margin-top:20px; padding:18px 20px; border-radius:12px; line-height:1.55; }
.cancellation-status p { margin:0 0 10px; }
.cancellation-status p:last-child { margin-bottom:0; }
.cancellation-status-success { border:1px solid rgba(224,182,78,.45); background:rgba(224,182,78,.08); color:#e8dfca; }
.cancellation-status-error { border:1px solid rgba(210,90,90,.45); background:rgba(210,90,90,.08); color:#ead0d0; }
.cancellation-result-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }


/* Alta de familiares y menores */
.signup-family-note {
  margin: 0 0 18px;
}
.minor-representative {
  margin-top: 4px;
  padding: 18px;
  border: 1px solid rgba(224,182,78,.30);
  border-radius: 12px;
  background: rgba(224,182,78,.055);
}
.minor-representative-head {
  display: grid;
  gap: 5px;
  margin-bottom: 15px;
}
.minor-representative-head strong {
  color: var(--gold-2);
  font-size: 1rem;
}
.minor-representative-head span {
  color: #c4bfb5;
  font-size: .86rem;
  line-height: 1.45;
}
.minor-representative-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
@media (max-width: 560px) {
  .minor-representative-grid {
    grid-template-columns: 1fr;
  }
  .minor-representative-grid .field.full {
    grid-column: auto;
  }
}


/* Evidencia de aceptación y autorización de cobros recurrentes */
.consent-panel {
  display: grid;
  gap: 14px;
  padding: 18px;
  border: 1px solid rgba(224,182,78,.35);
  border-radius: 14px;
  background: rgba(224,182,78,.045);
}
.consent-summary {
  display: grid;
  gap: 5px;
  padding-bottom: 13px;
  border-bottom: 1px solid rgba(255,255,255,.10);
  color: #c9c4ba;
  font-size: .88rem;
  line-height: 1.45;
}
.consent-summary > strong {
  color: var(--gold-2);
  font-size: 1rem;
}
.consent-summary b {
  color: #f1ede4;
}
.consent-summary a {
  color: var(--gold-2);
  text-decoration: underline;
  text-underline-offset: .12em;
}
.consent-check {
  padding: 10px 0;
  margin: 0;
}
.consent-check strong {
  color: #f4efe5;
}
.electronic-confirmation {
  margin-top: 2px;
}
.electronic-confirmation small {
  display: block;
  margin-top: 7px;
  color: #a9a49a;
  font-size: .78rem;
  line-height: 1.4;
}
.consent-evidence-note {
  margin: 0;
  padding-top: 11px;
  border-top: 1px solid rgba(255,255,255,.10);
  color: #aaa59b;
  font-size: .78rem;
  line-height: 1.45;
}


.minor-toggle-row {
  margin-top: -4px;
}
.minor-toggle {
  width: fit-content;
  margin: 0;
  padding: 8px 0 2px;
}
.minor-toggle span {
  font-weight: 800;
  color: #f1ede4;
}


/* El bloque del representante legal debe permanecer completamente oculto
   hasta marcar expresamente "El usuario es menor de 16 años". */
.minor-representative[hidden] {
  display: none !important;
}
