/* Sistema de Oftalmología — Oftalmología moderna
   Paleta: azul eléctrico + gris/verde oscuro, alto contraste, look tech */

:root{
  --bg:        oklch(0.16 0.03 258);
  --bg-soft:   oklch(0.195 0.035 258);
  --surface:   oklch(0.225 0.04 258);
  --surface-2: oklch(0.27 0.045 258);
  --border:    oklch(1 0 0 / 10%);
  --border-2:  oklch(1 0 0 / 16%);
  --text:      oklch(0.97 0.01 258);
  --text-dim:  oklch(0.76 0.03 258);
  --text-mute: oklch(0.56 0.025 258);

  --blue:      oklch(0.70 0.18 246);
  --blue-2:    oklch(0.52 0.19 260);
  --green:     oklch(0.64 0.14 155);
  --green-dim: oklch(0.64 0.14 155 / 18%);
  --blue-dim:  oklch(0.70 0.18 246 / 16%);

  --radius-sm: 10px;
  --radius: 16px;
  --radius-lg: 24px;
  --shadow-glow: 0 0 0 1px var(--border), 0 20px 60px -20px oklch(0.70 0.18 246 / 35%);
}

*{box-sizing:border-box}

html{scroll-behavior:smooth}

body{
  background:var(--bg);
  color:var(--text);
  font-family:"Inter",system-ui,-apple-system,Segoe UI,sans-serif;
  font-size:16px;
  line-height:1.6;
}

h1,h2,h3,h4,.brand{
  font-family:"Space Grotesk","Inter",sans-serif;
  letter-spacing:-0.02em;
}

section{ scroll-margin-top:88px; }

a{ text-decoration:none; }

.text-dim{ color:var(--text-dim) !important; }
.text-mute{ color:var(--text-mute) !important; }

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-family:"Space Grotesk",sans-serif;
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--blue);
  padding:.4rem .9rem;
  border:1px solid var(--border-2);
  border-radius:999px;
  background:var(--blue-dim);
}
.eyebrow .dot{
  width:6px;height:6px;border-radius:50%;
  background:var(--blue);
  box-shadow:0 0 10px 2px var(--blue);
}

/* Navbar */
.navbar-nova{
  position:fixed; top:0; left:0; right:0; z-index:1000;
  padding:1.1rem 0;
  background:transparent;
  border-bottom:1px solid transparent;
  transition:background .25s ease, border-color .25s ease, padding .25s ease;
}
.navbar-nova.scrolled{
  background:oklch(0.16 0.03 258 / 88%);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--border);
  padding:.7rem 0;
}
.navbar-nova .brand{
  font-size:1.3rem; font-weight:700; color:var(--text);
  display:flex; align-items:center; gap:.55rem;
}
.navbar-nova .brand .mark{
  width:34px;height:34px;border-radius:9px;
  background:linear-gradient(135deg,var(--blue),var(--blue-2));
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 0 18px oklch(0.70 0.18 246 / 45%);
}
.navbar-nova .nav-link{
  color:var(--text-dim) !important;
  font-weight:500;
  padding:.5rem 1rem !important;
  transition:color .2s;
}
.navbar-nova .nav-link:hover,
.navbar-nova .nav-link.active{ color:var(--text) !important; }

.btn-nova-primary{
  background:linear-gradient(135deg,var(--blue),var(--blue-2));
  color:oklch(0.14 0.02 258);
  font-weight:600;
  border:none;
  border-radius:var(--radius-sm);
  padding:.72rem 1.5rem;
  box-shadow:0 8px 24px -8px oklch(0.70 0.18 246 / 55%);
  transition:transform .18s, box-shadow .18s;
}
.btn-nova-primary:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 30px -8px oklch(0.70 0.18 246 / 70%);
  color:oklch(0.12 0.02 258);
}
.btn-nova-outline{
  background:transparent;
  color:var(--text);
  font-weight:600;
  border:1px solid var(--border-2);
  border-radius:var(--radius-sm);
  padding:.72rem 1.5rem;
  transition:border-color .18s, background .18s;
}
.btn-nova-outline:hover{
  border-color:var(--blue);
  background:var(--blue-dim);
  color:var(--text);
}

/* Hero */
.hero{
  position:relative;
  padding:9.5rem 0 6rem;
  overflow:hidden;
  background:
    radial-gradient(60% 50% at 82% 8%, oklch(0.70 0.18 246 / 22%), transparent 70%),
    radial-gradient(45% 40% at 10% 90%, oklch(0.64 0.14 155 / 16%), transparent 70%),
    var(--bg);
}
.hero-grid{
  position:absolute; inset:0;
  background-image:
    linear-gradient(oklch(1 0 0 / 4%) 1px, transparent 1px),
    linear-gradient(90deg, oklch(1 0 0 / 4%) 1px, transparent 1px);
  background-size:56px 56px;
  mask-image:radial-gradient(ellipse 70% 60% at 60% 20%, black, transparent);
  pointer-events:none;
}
.hero h1{
  font-size:clamp(2.4rem, 5vw, 3.9rem);
  font-weight:700;
  line-height:1.08;
}
.hero .lead{
  font-size:1.15rem;
  max-width:540px;
}
.stat{ border-top:1px solid var(--border); padding-top:1rem; }
.stat .num{
  font-family:"Space Grotesk",sans-serif;
  font-size:1.9rem; font-weight:700; color:var(--text);
}
.stat .label{ font-size:.85rem; color:var(--text-mute); }

.placeholder-visual{
  position:relative;
  aspect-ratio:1/1;
  border-radius:var(--radius-lg);
  border:1px solid var(--border-2);
  overflow:hidden;
  background:
    repeating-linear-gradient(135deg, oklch(1 0 0 / 4%) 0 2px, transparent 2px 14px),
    linear-gradient(160deg, var(--surface), var(--bg-soft));
  box-shadow:var(--shadow-glow);
}
.placeholder-visual::before{
  content:"";
  position:absolute; inset:0;
  background:radial-gradient(circle at 50% 45%, oklch(0.70 0.18 246 / 30%), transparent 60%);
}
.placeholder-visual .ring{
  position:absolute; left:50%; top:45%; translate:-50% -50%;
  width:58%; aspect-ratio:1/1; border-radius:50%;
  border:2px solid oklch(0.70 0.18 246 / 55%);
}
.placeholder-visual .ring.r2{ width:38%; border-color:oklch(0.64 0.14 155 / 65%); }
.placeholder-visual .ring.r3{ width:20%; border-color:oklch(1 0 0 / 60%); }
.placeholder-visual .cap{
  position:absolute; left:0; right:0; bottom:0;
  padding:.9rem 1.1rem;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.72rem;
  color:var(--text-mute);
  background:linear-gradient(0deg, oklch(0.16 0.03 258 / 90%), transparent);
}

/* Sections */
.section-head{ max-width:640px; }
.section-tag{
  font-family:"Space Grotesk",sans-serif;
  font-size:.78rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--green);
}
.section-pad{ padding:6rem 0; }
.bg-soft{ background:var(--bg-soft); }

/* Cards */
.card-nova{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:2rem;
  height:100%;
  transition:transform .22s ease, border-color .22s ease, background .22s ease;
}
.card-nova:hover{
  transform:translateY(-4px);
  border-color:var(--border-2);
  background:var(--surface-2);
}
.icon-tile{
  width:52px; height:52px;
  display:flex; align-items:center; justify-content:center;
  border-radius:12px;
  font-size:1.35rem;
  margin-bottom:1.25rem;
}
.icon-tile.blue{ background:var(--blue-dim); color:var(--blue); }
.icon-tile.green{ background:var(--green-dim); color:var(--green); }

.feature-row{
  display:flex; gap:1.1rem;
  padding:1.5rem 0;
  border-bottom:1px solid var(--border);
}
.feature-row:last-child{ border-bottom:none; }
.feature-row .icon-tile{ margin-bottom:0; flex:none; }

/* Testimonials */
.quote-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:2.2rem;
  height:100%;
}
.quote-card .stars{ color:var(--green); letter-spacing:.15em; font-size:.9rem; }
.quote-card p{ font-size:1.05rem; color:var(--text-dim); }
.avatar-ph{
  width:44px;height:44px;border-radius:50%;
  background:linear-gradient(135deg,var(--surface-2),var(--bg-soft));
  border:1px solid var(--border-2);
  display:flex;align-items:center;justify-content:center;
  font-family:"Space Grotesk",sans-serif; font-weight:700; font-size:.85rem; color:var(--text-dim);
}
.carousel-indicators [data-bs-target]{
  background:var(--border-2); width:8px; height:8px; border-radius:50%; opacity:1;
}
.carousel-indicators .active{ background:var(--blue); }

/* Cita / form */
.cita-panel{
  background:linear-gradient(160deg, var(--surface), var(--bg-soft));
  border:1px solid var(--border-2);
  border-radius:var(--radius-lg);
  padding:3rem;
  box-shadow:var(--shadow-glow);
}
.form-control, .form-select{
  background:var(--bg-soft);
  border:1px solid var(--border-2);
  color:var(--text);
  padding:.7rem .9rem;
  border-radius:var(--radius-sm);
}
.form-control::placeholder{ color:var(--text-mute); }
.form-control:focus, .form-select:focus{
  background:var(--bg-soft);
  color:var(--text);
  border-color:var(--blue);
  box-shadow:0 0 0 .2rem var(--blue-dim);
}
.form-label{ font-size:.85rem; color:var(--text-dim); font-weight:500; margin-bottom:.4rem; }
.form-text{ color:var(--text-mute); }
.invalid-feedback{ color:oklch(0.72 0.19 25); }
.was-validated .form-control:invalid, .form-control.is-invalid{
  border-color:oklch(0.72 0.19 25);
}
#citaStatus{ display:none; }

/* Contact / footer */
.contact-item{ display:flex; gap:1rem; align-items:flex-start; padding:1rem 0; border-bottom:1px solid var(--border); }
.contact-item:last-child{ border-bottom:none; }
.map-ph{
  aspect-ratio:16/10; border-radius:var(--radius); border:1px solid var(--border-2);
  background:
    repeating-linear-gradient(45deg, oklch(1 0 0 / 3%) 0 2px, transparent 2px 12px),
    var(--surface);
  display:flex; align-items:center; justify-content:center;
  font-family:ui-monospace,monospace; font-size:.8rem; color:var(--text-mute);
}

footer.site-footer{
  background:var(--bg-soft);
  border-top:1px solid var(--border);
  padding:3.5rem 0 2rem;
}
.footer-brand{ font-family:"Space Grotesk",sans-serif; font-weight:700; font-size:1.2rem; }
.social-ico{
  width:38px;height:38px;border-radius:9px;
  border:1px solid var(--border-2);
  display:flex;align-items:center;justify-content:center;
  color:var(--text-dim);
  transition:.2s;
}
.social-ico:hover{ color:var(--text); border-color:var(--blue); background:var(--blue-dim); }

/* Reveal on scroll: contenido siempre visible por defecto; solo se anima
   un desplazamiento sutil al entrar en el viewport, nunca la opacidad. */
.reveal{ transform:translateY(18px); transition:transform .6s ease; }
.reveal.is-visible{ transform:translateY(0); }

/* Nav toggler */
.navbar-toggler{ border:1px solid var(--border-2); }
.navbar-toggler:focus{ box-shadow:0 0 0 .2rem var(--blue-dim); }

@media (max-width: 991.98px){
  .navbar-collapse{
    background:var(--bg-soft);
    margin-top:1rem;
    padding:1rem 1.25rem;
    border-radius:var(--radius);
    border:1px solid var(--border);
  }
  .cita-panel{ padding:1.75rem; }
}
