/* ================================================================
  DiseñaThor - Estilos del tarifario privado
  Archivo: assets/css/pages/tarifario.css
  Uso: página privada /tarifario.html (acceso por link directo)
================================================================ */

/* ── VARIABLES ── */
:root {
  --color-cyan:       #00FFFF;
  --color-turquesa:   #40E0D0;
  --color-morado:     #8000FF;
  --color-fucsia:     #FF00FF;
  --color-negro:      #000000;
  --gradient-primary:   linear-gradient(135deg, var(--color-cyan), var(--color-fucsia));
  --gradient-electric:  linear-gradient(90deg, var(--color-cyan), var(--color-morado), var(--color-fucsia), var(--color-cyan));
  --gradient-purple-cyan: linear-gradient(135deg, #6912d0, #ce1cd0, #64feff);
  --bg-dark:          #050510;
  --bg-card:          #0d0d2b;
  --bg-card-hover:    #11112e;
  --bg-surface:       rgba(255,255,255,0.04);
  --border-color:     rgba(0, 255, 255, 0.15);
  --border-hover:     rgba(0, 255, 255, 0.4);
  --text-primary:     #FFFFFF;
  --text-secondary:   rgba(255, 255, 255, 0.7);
  --text-muted:       rgba(255, 255, 255, 0.45);
  --accent-cyan:      #00FFFF;
  --accent-purple:    #8000FF;
  --accent-fucsia:    #FF00FF;
  --font-heading: 'Montserrat', sans-serif;
  --font-body:    'Open Sans', sans-serif;
  --fs-xs:   0.75rem;
  --fs-sm:   0.875rem;
  --fs-base: 1rem;
  --fs-md:   1.125rem;
  --fs-lg:   1.25rem;
  --fs-xl:   1.5rem;
  --fs-2xl:  2rem;
  --fs-3xl:  2.75rem;
  --space-xs:  0.5rem;
  --space-sm:  1rem;
  --space-md:  1.5rem;
  --space-lg:  2rem;
  --space-xl:  3rem;
  --space-2xl: 5rem;
  --radius-sm:  6px;
  --radius-md:  12px;
  --radius-lg:  20px;
  --radius-xl:  28px;
  --radius-full: 9999px;
  --transition-fast: 0.15s ease;
  --transition-base: 0.3s ease;
  --navbar-height: 72px;
  --container-max: 1280px;
}

/* ── RESET ── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; }
body { font-family:var(--font-body); background-color:var(--bg-dark); color:var(--text-primary); line-height:1.6; overflow-x:hidden; cursor:none; }
input, textarea, select, button, a, details, summary { cursor:none; }
img, svg { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
ul, ol { list-style:none; }

/* ── CURSOR ── */
.cursor-dot { width:8px; height:8px; background:var(--color-cyan); border-radius:50%; position:fixed; pointer-events:none; z-index:9999; transform:translate(-50%,-50%); transition:background var(--transition-fast), transform var(--transition-fast); box-shadow:0 0 10px var(--color-cyan); }
.cursor-ring { width:36px; height:36px; border:2px solid rgba(0,255,255,0.5); border-radius:50%; position:fixed; pointer-events:none; z-index:9998; transform:translate(-50%,-50%); transition:transform 0.12s ease, width var(--transition-base), height var(--transition-base); }
body.cursor-hover .cursor-dot { transform:translate(-50%,-50%) scale(0.5); background:var(--color-fucsia); }
body.cursor-hover .cursor-ring { width:56px; height:56px; border-color:rgba(255,0,255,0.6); }

/* ── CANVAS ── */
.particle-canvas { position:fixed; top:0; left:0; width:100%; height:100%; pointer-events:none; z-index:0; opacity:0.4; }

/* ── CONTAINER ── */
.container { max-width:var(--container-max); margin:0 auto; padding:0 var(--space-lg); position:relative; z-index:1; }

/* ── TIPOGRAFÍA ── */
h1,h2,h3,h4,h5,h6 { font-family:var(--font-heading); font-weight:700; line-height:1.2; color:var(--text-primary); }
.text-gradient { background:var(--gradient-electric); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; background-size:300% auto; animation:gradientShift 6s linear infinite; }
@keyframes gradientShift { 0%{background-position:0% center;} 100%{background-position:-300% center;} }

/* ── BOTONES ── */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:var(--space-xs); padding:0.75rem 1.75rem; border-radius:var(--radius-full); font-family:var(--font-heading); font-weight:600; font-size:var(--fs-sm); border:none; cursor:none; transition:all var(--transition-base); position:relative; overflow:hidden; text-decoration:none; }
.btn::before { content:''; position:absolute; top:0; left:-100%; width:100%; height:100%; background:linear-gradient(90deg,transparent,rgba(255,255,255,0.15),transparent); transition:left 0.5s ease; }
.btn:hover::before { left:100%; }
.btn-primary { background:var(--gradient-primary); color:var(--color-negro); font-weight:700; box-shadow:0 4px 20px rgba(0,255,255,0.25); }
.btn-primary:hover { transform:translateY(-2px); box-shadow:0 8px 32px rgba(0,255,255,0.4); }
.btn-ghost { background:transparent; color:var(--text-primary); border:1px solid var(--border-color); }
.btn-ghost:hover { border-color:var(--border-hover); background:var(--bg-surface); }
.btn-lg { padding:1rem 2.25rem; font-size:var(--fs-base); }

/* ── SECTION TAG ── */
.section-tag { display:inline-block; font-family:var(--font-heading); font-size:var(--fs-xs); font-weight:600; letter-spacing:0.15em; text-transform:uppercase; color:var(--color-cyan); background:rgba(0,255,255,0.08); border:1px solid rgba(0,255,255,0.25); padding:0.3rem 1rem; border-radius:var(--radius-full); margin-bottom:var(--space-sm); }

/* ── NAVBAR ── */
.navbar { position:fixed; top:0; left:0; right:0; z-index:1000; height:var(--navbar-height); display:flex; align-items:center; transition:background var(--transition-base), box-shadow var(--transition-base); }
.navbar .container { display:flex; align-items:center; justify-content:space-between; gap:var(--space-lg); width:100%; }
.navbar.scrolled { background:rgba(5,5,16,0.85); -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px); box-shadow:0 1px 0 var(--border-color); }
.logo { display:flex; align-items:center; gap:0.6rem; text-decoration:none; }
.logo-svg { width:28px; height:42px; flex-shrink:0; }
.logo-text { font-family:var(--font-heading); font-weight:900; font-size:var(--fs-xl); color:var(--text-primary); line-height:1; }
.logo-accent { background:var(--gradient-primary); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.nav-list { display:flex; align-items:center; gap:var(--space-xs); }
.nav-link { font-family:var(--font-heading); font-weight:600; font-size:var(--fs-sm); color:var(--text-secondary); padding:0.5rem 0.75rem; border-radius:var(--radius-sm); transition:color var(--transition-fast); position:relative; }
.nav-link::after { content:''; position:absolute; bottom:-2px; left:50%; transform:translateX(-50%); width:0; height:2px; background:var(--gradient-primary); border-radius:var(--radius-full); transition:width var(--transition-base); }
.nav-link:hover { color:var(--text-primary); }
.nav-link:hover::after { width:60%; }
.nav-cta { margin-left:var(--space-xs); }
.hamburger { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:none; padding:0.5rem; }
.hamburger span { display:block; width:24px; height:2px; background:var(--text-primary); border-radius:var(--radius-full); transition:all var(--transition-base); }
.hamburger.active span:nth-child(1) { transform:rotate(45deg) translate(5px,5px); }
.hamburger.active span:nth-child(2) { opacity:0; transform:scaleX(0); }
.hamburger.active span:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px); }

/* ── LANGUAGE SWITCH ── */
.lang-switch {
  position: relative;
}

.lang-switch-btn {
  list-style: none;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 0.8rem;
  color: var(--text-primary);
  padding: 0.45rem 0.65rem;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-full);
  background: rgba(255, 255, 255, 0.05);
  cursor: pointer;
}

.lang-switch-btn::-webkit-details-marker {
  display: none;
}

.lang-switch[open] .lang-switch-btn {
  border-color: rgba(255, 255, 255, 0.35);
}

.lang-switch-menu {
  position: absolute;
  top: calc(100% + 0.5rem);
  right: 0;
  min-width: 150px;
  display: grid;
  gap: 0.25rem;
  padding: 0.35rem;
  border-radius: 12px;
  border: 1px solid var(--border-color);
  background: rgba(8, 8, 22, 0.95);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.35);
  z-index: 20;
}

.lang-switch:not([open]) .lang-switch-menu {
  display: none;
}

.lang-switch-menu a {
  display: block;
  padding: 0.5rem 0.65rem;
  border-radius: 8px;
  font-size: 0.86rem;
  color: var(--text-secondary);
}

.lang-switch-menu a:hover,
.lang-switch-menu a[aria-current="page"] {
  color: var(--text-primary);
  background: rgba(255, 255, 255, 0.08);
}

/* ── PRIVATE BADGE NAV ── */
.private-badge {
  display:inline-flex; align-items:center; gap:0.4rem;
  background:rgba(255,165,0,0.1); border:1px solid rgba(255,165,0,0.35);
  color:#ffb44d; font-family:var(--font-heading); font-weight:700;
  font-size:0.65rem; letter-spacing:0.12em; text-transform:uppercase;
  padding:0.25rem 0.75rem; border-radius:var(--radius-full);
  margin-left:var(--space-xs);
}
.private-badge::before { content:''; width:6px; height:6px; border-radius:50%; background:#ffb44d; box-shadow:0 0 8px #ffb44d; }

/* ── FOOTER ── */
.footer { background:#020209; border-top:1px solid var(--border-color); padding:var(--space-2xl) 0 var(--space-lg); position:relative; z-index:1; }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:var(--space-xs); }
.footer-bottom p { font-size:var(--fs-xs); color:var(--text-muted); }

/* ── SCROLL TOP ── */
.scroll-top { position:fixed; bottom:var(--space-lg); right:var(--space-lg); z-index:500; width:48px; height:48px; border-radius:50%; background:var(--gradient-primary); border:none; color:var(--color-negro); display:flex; align-items:center; justify-content:center; cursor:none; opacity:0; transform:translateY(20px); transition:opacity var(--transition-base), transform var(--transition-base); box-shadow:0 4px 20px rgba(0,255,255,0.3); }
.scroll-top.visible { opacity:1; transform:translateY(0); }
.scroll-top:hover { transform:translateY(-4px); }

/* ── AOS ── */
[data-aos] { opacity:0; transition:opacity 0.7s ease, transform 0.7s ease; }
[data-aos="fade-up"]    { transform:translateY(40px); }
[data-aos="fade-down"]  { transform:translateY(-40px); }
[data-aos="fade-right"] { transform:translateX(-60px); }
[data-aos="fade-left"]  { transform:translateX(60px); }
[data-aos="zoom-in"]    { transform:scale(0.92); }
[data-aos].aos-animate  { opacity:1; transform:translate(0,0) scale(1); }

/* ══════════════════════════════════════════════════════════
   ESTILOS PROPIOS DEL TARIFARIO
══════════════════════════════════════════════════════════ */

/* ── HERO ── */
.tarifa-hero { padding:9rem 0 3rem; text-align:center; position:relative; }
.tarifa-hero::before {
  content:''; position:absolute; inset:0;
  background:
    radial-gradient(circle at 20% 30%, rgba(105,18,208,0.15), transparent 40%),
    radial-gradient(circle at 80% 60%, rgba(0,255,255,0.1), transparent 40%);
  pointer-events:none; z-index:0;
}
.tarifa-hero .container { position:relative; z-index:1; }
.tarifa-hero h1 { font-size:clamp(2.2rem,5vw,3.6rem); font-weight:900; margin-bottom:1rem; }
.tarifa-hero .lead {
  color:var(--text-secondary); max-width:720px; margin:0 auto;
  font-size:var(--fs-md); line-height:1.7;
}
.tarifa-hero .private-warn {
  display:inline-flex; align-items:center; gap:0.6rem;
  margin-top:1.75rem; padding:0.7rem 1.25rem;
  background:rgba(255,165,0,0.07); border:1px dashed rgba(255,165,0,0.4);
  border-radius:var(--radius-full); font-size:var(--fs-xs);
  color:#ffb44d; letter-spacing:0.04em;
}
.tarifa-hero .private-warn .lock-ico { font-size:1rem; }

/* ── CURRENCY TOGGLE ── */
.currency-toggle-wrap { display:flex; justify-content:center; margin:2.5rem 0 1rem; }
.currency-toggle {
  display:inline-flex; gap:0.25rem; padding:0.3rem;
  background:var(--bg-card); border:1px solid var(--border-color);
  border-radius:var(--radius-full);
  box-shadow:0 4px 24px rgba(0,255,255,0.08);
}
.currency-btn {
  display:inline-flex; align-items:center; gap:0.45rem;
  padding:0.6rem 1.3rem; border:none; background:transparent;
  color:var(--text-muted); font-family:var(--font-heading);
  font-weight:700; font-size:var(--fs-sm); letter-spacing:0.05em;
  border-radius:var(--radius-full); cursor:none;
  transition:all var(--transition-base);
}
.currency-btn:hover { color:var(--text-secondary); }
.currency-btn.active {
  background:var(--gradient-primary); color:var(--color-negro);
  box-shadow:0 4px 16px rgba(0,255,255,0.35);
}
.currency-btn .flag { display:inline-flex; align-items:center; }
.currency-btn .flag img { width:1.3rem; height:auto; border-radius:2px; vertical-align:middle; box-shadow:0 1px 3px rgba(0,0,0,0.4); }

/* ── MAIN CONTENT ── */
.tarifa-main { max-width:1180px; padding-bottom:5rem; }

/* ── INDEX / TOC ── */
.tarifa-toc {
  background:var(--bg-card); border:1px solid var(--border-color);
  border-radius:var(--radius-lg); padding:1.5rem 2rem; margin-bottom:3rem;
}
.tarifa-toc-title {
  font-size:0.7rem; text-transform:uppercase; letter-spacing:0.14em;
  color:var(--text-muted); margin-bottom:0.85rem; font-weight:700;
}
.tarifa-toc ul {
  list-style:none; padding:0; margin:0;
  display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
  gap:0.5rem;
}
.tarifa-toc ul li a {
  color:var(--text-secondary); text-decoration:none;
  font-family:var(--font-heading); font-weight:600;
  font-size:0.82rem; display:flex; align-items:center; gap:0.5rem;
  padding:0.45rem 0.7rem; border-radius:var(--radius-sm);
  transition:color 0.2s, background 0.2s; line-height:1.4;
}
.tarifa-toc ul li a:hover {
  color:var(--accent-cyan); background:rgba(0,255,255,0.05);
}
.tarifa-toc ul li a .toc-emoji { font-size:1rem; }

/* ── CATEGORÍA / SERVICIO BLOQUE ── */
.service-block {
  background:var(--bg-card); border:1px solid var(--border-color);
  border-radius:var(--radius-lg); padding:2.5rem;
  margin-bottom:2rem; transition:border-color 0.3s;
  scroll-margin-top:100px;
}
.service-block:hover { border-color:var(--accent-purple); }

.service-block-head {
  display:flex; align-items:center; gap:1rem; margin-bottom:0.5rem;
  flex-wrap:wrap;
}
.service-icon-big {
  width:52px; height:52px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:rgba(0,255,255,0.06); border:1px solid rgba(0,255,255,0.2);
  border-radius:var(--radius-md); font-size:1.65rem;
}
.service-block h2 {
  font-size:clamp(1.4rem,3vw,1.85rem); font-weight:800;
  margin:0; line-height:1.2;
}
.service-block .service-desc {
  color:var(--text-secondary); font-size:var(--fs-sm);
  line-height:1.7; margin:0.4rem 0 1.75rem; max-width:780px;
}

/* ── PRICING GRID (3 tiers) ── */
.pricing-grid {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:1.25rem; margin-top:0.25rem; padding-top:2rem;
}
.pricing-card {
  position:relative; background:rgba(255,255,255,0.02);
  border:1px solid var(--border-color); border-radius:var(--radius-lg);
  padding:1.75rem 1.5rem; transition:all var(--transition-base);
  display:flex; flex-direction:column;
}
.pricing-card:hover {
  border-color:var(--accent-cyan);
  transform:translateY(-4px);
  box-shadow:0 12px 40px rgba(0,255,255,0.08);
}
.pricing-card.featured {
  border:1px solid transparent;
  background:
    linear-gradient(var(--bg-card),var(--bg-card)) padding-box,
    var(--gradient-purple-cyan) border-box;
  box-shadow:0 8px 32px rgba(206,28,208,0.18);
}
.pricing-card.featured::after {
  content:''; position:absolute; inset:-1px;
  border-radius:var(--radius-lg); padding:1px;
  background:var(--gradient-purple-cyan);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude;
  pointer-events:none; opacity:0.6;
}
.pricing-card .tier-badge {
  position:absolute; top:0; left:50%;
  transform:translateX(-50%) translateY(-50%);
  z-index:2;
  background:var(--gradient-primary); color:var(--color-negro);
  font-family:var(--font-heading); font-weight:700; font-size:0.65rem;
  letter-spacing:0.14em; text-transform:uppercase;
  padding:0.35rem 0.85rem; border-radius:var(--radius-full);
  white-space:nowrap; box-shadow:0 4px 14px rgba(0,255,255,0.35);
}
.pricing-card .tier-name {
  font-family:var(--font-heading); font-weight:800;
  font-size:var(--fs-lg); margin-bottom:0.25rem; color:var(--text-primary);
}
.pricing-card .tier-tagline {
  color:var(--text-muted); font-size:var(--fs-xs);
  margin-bottom:1.25rem; line-height:1.5;
}
.pricing-card .price {
  display:flex; align-items:baseline; gap:0.35rem;
  margin-bottom:0.4rem;
}
.pricing-card .price .currency {
  font-family:var(--font-heading); font-weight:700;
  font-size:0.8rem; color:var(--accent-cyan); letter-spacing:0.05em;
}
.pricing-card .price .amount {
  font-family:var(--font-heading); font-weight:900;
  font-size:1.85rem; line-height:1;
  background:var(--gradient-electric);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
  background-clip:text; background-size:300% auto;
}
.pricing-card .price .unit {
  color:var(--text-muted); font-size:var(--fs-xs);
}
.pricing-card .price-from {
  font-size:0.6rem; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--text-muted); margin-bottom:0.25rem;
}
.pricing-card .features {
  margin-top:1.1rem; padding-top:1.1rem;
  border-top:1px solid rgba(255,255,255,0.06);
  display:flex; flex-direction:column; gap:0.55rem; flex:1;
}
.pricing-card .features li {
  color:var(--text-secondary); font-size:0.83rem; line-height:1.55;
  display:flex; align-items:flex-start; gap:0.55rem;
}
.pricing-card .features li::before {
  content:'⚡'; color:var(--accent-cyan); font-size:0.7rem;
  flex-shrink:0; margin-top:0.2em;
}
.pricing-card .features li.no::before { content:'×'; color:rgba(255,80,80,0.6); font-weight:700; }
.pricing-card .features li.no { color:var(--text-muted); text-decoration:line-through; opacity:0.55; }

/* ── PRICE TABLE (alternativa para muchos items) ── */
.price-table-wrap {
  overflow-x:auto; margin-top:1rem;
  border-radius:var(--radius-md); border:1px solid var(--border-color);
}
.price-table {
  width:100%; border-collapse:collapse; font-size:0.87rem;
  min-width:600px;
}
.price-table thead { background:rgba(0,255,255,0.07); }
.price-table thead th {
  padding:0.95rem 1.2rem; text-align:left;
  font-family:var(--font-heading); font-weight:700; font-size:0.65rem;
  letter-spacing:0.12em; text-transform:uppercase;
  color:var(--accent-cyan); border-bottom:1px solid var(--border-color);
}
.price-table thead th.right { text-align:right; }
.price-table tbody td {
  padding:0.85rem 1.2rem; color:var(--text-secondary);
  border-bottom:1px solid rgba(255,255,255,0.04);
  vertical-align:middle;
}
.price-table tbody td.right { text-align:right; }
.price-table tbody td.price-cell {
  text-align:right; font-family:var(--font-heading);
  font-weight:700; color:var(--text-primary);
  white-space:nowrap;
}
.price-table tbody td.price-cell .currency-tag {
  font-size:0.65rem; color:var(--accent-cyan);
  letter-spacing:0.05em; margin-right:0.3rem;
}
.price-table tbody tr:last-child td { border-bottom:none; }
.price-table tbody tr:hover td { background:rgba(0,255,255,0.02); }
.price-table tbody td .item-title {
  display:block; color:var(--text-primary);
  font-weight:600; font-size:0.92rem; margin-bottom:0.1rem;
}
.price-table tbody td .item-sub {
  display:block; color:var(--text-muted); font-size:0.75rem;
  line-height:1.4;
}

/* ── NOTA / TIP ── */
.tarifa-note {
  display:flex; gap:1rem; align-items:flex-start;
  background:rgba(255,165,0,0.06); border:1px solid rgba(255,165,0,0.25);
  border-radius:var(--radius-md); padding:1rem 1.2rem; margin-top:1.25rem;
}
.tarifa-note--cyan   { background:rgba(0,255,255,0.06);    border-color:rgba(0,255,255,0.25); }
.tarifa-note--purple { background:rgba(105,18,208,0.08);   border-color:rgba(105,18,208,0.35); }
.tarifa-note .note-icon { font-size:1.05rem; flex-shrink:0; margin-top:0.05rem; }
.tarifa-note p { color:var(--text-secondary); line-height:1.7; font-size:0.83rem; margin:0; }
.tarifa-note p strong { color:var(--text-primary); }

/* ── SECTION HEADER (entre bloques mayores) ── */
.section-header-tarifa {
  text-align:center; margin:4rem 0 2rem;
}
.section-header-tarifa h2 {
  font-size:clamp(1.6rem,4vw,2.4rem); font-weight:900;
  margin-bottom:0.5rem;
}
.section-header-tarifa p {
  color:var(--text-secondary); max-width:600px; margin:0.5rem auto 0;
  font-size:var(--fs-sm);
}

/* ── PLAN MENSUAL DESTACADO ── */
.monthly-plans {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:1.25rem; margin-top:1.5rem;
}
.monthly-plan {
  position:relative; background:var(--bg-card);
  border:1px solid var(--border-color); border-radius:var(--radius-lg);
  padding:2rem 1.75rem; transition:all var(--transition-base);
  overflow:hidden;
}
.monthly-plan::before {
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background:var(--gradient-electric); background-size:300% auto;
  animation:gradientShift 6s linear infinite;
  opacity:0.5;
}
.monthly-plan:hover {
  border-color:var(--accent-cyan); transform:translateY(-4px);
  box-shadow:0 14px 40px rgba(0,255,255,0.1);
}
.monthly-plan:hover::before { opacity:1; }
.monthly-plan .plan-icon { font-size:2rem; margin-bottom:0.5rem; }
.monthly-plan h3 {
  font-size:var(--fs-lg); font-weight:800; margin-bottom:0.4rem;
}
.monthly-plan .plan-tagline {
  color:var(--text-muted); font-size:0.78rem;
  margin-bottom:1.25rem; line-height:1.5;
}
.monthly-plan .plan-price {
  display:flex; align-items:baseline; gap:0.35rem;
  margin-bottom:0.25rem;
}
.monthly-plan .plan-price .currency {
  font-family:var(--font-heading); font-weight:700;
  font-size:0.78rem; color:var(--accent-cyan);
}
.monthly-plan .plan-price .amount {
  font-family:var(--font-heading); font-weight:900;
  font-size:1.7rem; color:var(--text-primary);
}
.monthly-plan .plan-price .unit { color:var(--text-muted); font-size:var(--fs-xs); }
.monthly-plan .plan-includes {
  margin-top:1rem; padding-top:1rem;
  border-top:1px solid rgba(255,255,255,0.06);
  display:flex; flex-direction:column; gap:0.5rem;
}
.monthly-plan .plan-includes li {
  color:var(--text-secondary); font-size:0.82rem; line-height:1.55;
  display:flex; align-items:flex-start; gap:0.5rem;
}
.monthly-plan .plan-includes li::before {
  content:'⚡'; color:var(--accent-cyan); font-size:0.7rem;
  flex-shrink:0; margin-top:0.25em;
}

/* ── HOURLY RATES ── */
.hourly-grid {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:1rem; margin-top:1.25rem;
}
.hourly-card {
  background:rgba(255,255,255,0.02); border:1px solid var(--border-color);
  border-radius:var(--radius-md); padding:1.25rem; text-align:center;
  transition:border-color 0.2s;
}
.hourly-card:hover { border-color:var(--accent-cyan); }
.hourly-card .h-label {
  font-size:0.7rem; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--text-muted); margin-bottom:0.4rem; font-weight:600;
}
.hourly-card .h-amount {
  font-family:var(--font-heading); font-weight:900;
  font-size:1.45rem;
  background:var(--gradient-electric);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
  background-clip:text; background-size:300% auto;
}
.hourly-card .h-currency { font-size:0.7rem; color:var(--accent-cyan); }
.hourly-card .h-desc {
  margin-top:0.4rem; font-size:0.75rem; color:var(--text-muted);
  line-height:1.45;
}

/* ── SURCHARGE / RECARGOS ── */
.surcharge-list {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:0.85rem; margin-top:1.25rem;
}
.surcharge-item {
  background:rgba(255,0,255,0.04); border:1px solid rgba(255,0,255,0.2);
  border-radius:var(--radius-md); padding:1rem 1.15rem;
  display:flex; align-items:center; gap:0.75rem;
}
.surcharge-item .s-icon { font-size:1.4rem; flex-shrink:0; }
.surcharge-item .s-info strong {
  display:block; color:var(--text-primary);
  font-size:0.9rem; font-weight:700;
}
.surcharge-item .s-info span {
  color:var(--accent-fucsia); font-size:0.78rem; font-weight:600;
}

/* ── BACK LINK ── */
.back-link {
  display:inline-flex; align-items:center; gap:0.5rem;
  color:var(--text-muted); text-decoration:none;
  font-size:0.85rem; margin-bottom:2rem; transition:color 0.2s;
}
.back-link:hover { color:var(--accent-cyan); }

/* ── CTA FINAL ── */
.tarifa-cta {
  margin-top:4rem; padding:3rem 2rem;
  background:
    radial-gradient(circle at top right, rgba(206,28,208,0.18), transparent 60%),
    radial-gradient(circle at bottom left, rgba(0,255,255,0.12), transparent 60%),
    var(--bg-card);
  border:1px solid var(--border-color); border-radius:var(--radius-xl);
  text-align:center; position:relative; overflow:hidden;
}
.tarifa-cta::before {
  content:''; position:absolute; inset:0; padding:1px;
  background:var(--gradient-electric); background-size:300% auto;
  animation:gradientShift 8s linear infinite;
  border-radius:var(--radius-xl);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude;
  pointer-events:none; opacity:0.35;
}
.tarifa-cta h2 {
  font-size:clamp(1.5rem,3.5vw,2.2rem); font-weight:900;
  margin-bottom:0.75rem;
}
.tarifa-cta p {
  color:var(--text-secondary); max-width:600px; margin:0 auto 1.5rem;
  font-size:var(--fs-base); line-height:1.7;
}
.tarifa-cta .cta-actions {
  display:flex; gap:0.75rem; justify-content:center; flex-wrap:wrap;
}

/* ── META ── */
.tarifa-meta {
  text-align:center; color:var(--text-muted); font-size:0.78rem;
  margin-top:3rem; padding-top:2rem;
  border-top:1px solid var(--border-color); line-height:1.8;
}
.tarifa-meta a { color:var(--accent-cyan); }

/* ══════════════════════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════════════════════ */
@media (max-width:768px) {
  :root { --navbar-height:64px; }
  .nav-menu {
    position:fixed; top:var(--navbar-height); left:0; right:0;
    background:rgba(5,5,16,0.97); -webkit-backdrop-filter:blur(20px);
    backdrop-filter:blur(20px); border-bottom:1px solid var(--border-color);
    padding:var(--space-md);
    transform:translateY(-100%); opacity:0; pointer-events:none;
    transition:transform var(--transition-base), opacity var(--transition-base);
    z-index:999;
  }
  .nav-menu.open { transform:translateY(0); opacity:1; pointer-events:auto; }
  .nav-list { flex-direction:column; gap:var(--space-xs); }
  .nav-link { display:block; padding:var(--space-sm) var(--space-md); font-size:var(--fs-base); }
  .hamburger { display:flex; }
  .nav-cta, .private-badge { display:none; }
  .lang-switch { margin-left:auto; }
  .lang-switch-menu { right:0; }
  .footer-bottom { flex-direction:column; text-align:center; }
  .cursor-dot, .cursor-ring { display:none; }
  body { cursor:auto; }
  a, button, summary, .currency-btn, .hamburger, .scroll-top, .btn { cursor:pointer; }
  .service-block { padding:1.5rem; }
  .pricing-grid { grid-template-columns:1fr; }
  .monthly-plans { grid-template-columns:1fr; }
  .currency-toggle-wrap { margin:1.5rem 0 0.5rem; }
  .currency-btn { padding:0.5rem 1rem; font-size:var(--fs-xs); }
}
@media (max-width:480px) {
  .container { padding:0 var(--space-sm); }
  .tarifa-hero { padding:7rem 0 2rem; }
  .service-block { padding:1.25rem; }
  .price-table thead th, .price-table tbody td { padding:0.7rem 0.85rem; }
}
