/* ===== Academia Gauss — estilos compartidos ===== */

/* Tipografías autoalojadas (sin depender de fonts.googleapis.com) */
@font-face{
  font-family:'Cormorant';
  src:url('fonts/cormorant-latin-300-normal.woff2') format('woff2');
  font-weight:300; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Cormorant';
  src:url('fonts/cormorant-latin-400-normal.woff2') format('woff2');
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Cormorant';
  src:url('fonts/cormorant-latin-500-normal.woff2') format('woff2');
  font-weight:500; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Cormorant';
  src:url('fonts/cormorant-latin-600-normal.woff2') format('woff2');
  font-weight:600; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Work Sans';
  src:url('fonts/work-sans-latin-300-normal.woff2') format('woff2');
  font-weight:300; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Work Sans';
  src:url('fonts/work-sans-latin-400-normal.woff2') format('woff2');
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Work Sans';
  src:url('fonts/work-sans-latin-500-normal.woff2') format('woff2');
  font-weight:500; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Work Sans';
  src:url('fonts/work-sans-latin-600-normal.woff2') format('woff2');
  font-weight:600; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Work Sans';
  src:url('fonts/work-sans-latin-700-normal.woff2') format('woff2');
  font-weight:700; font-style:normal; font-display:swap;
}

:root{
  --ink:#141A21;
  --ink-soft:#3B434C;
  --muted:#6B7480;
  --paper:#FBFAF8;
  --paper-alt:#F0F6FA;
  --line:#E3E8EC;
  --accent:#0095D3;
  --accent-light:#81CFF5;
  --accent-deep:#065E86;
}

*{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
  margin:0;
  background:var(--paper);
  font-family:'Work Sans', -apple-system, 'Segoe UI', sans-serif;
  color:var(--ink);
}

h1,h2,h3{
  font-family:'Cormorant', Georgia, serif;
  font-weight:500;
  color:var(--ink);
  margin:0;
}

p, span, div, a, button, input, textarea, label{
  font-family:'Work Sans', -apple-system, 'Segoe UI', sans-serif;
}

a{ color:var(--accent-deep); text-decoration:none; }
a:hover{ color:var(--accent); }

img{ max-width:100%; display:block; }

.eyebrow{
  font-size:12.5px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:600;
}

.chip{
  border:1px solid var(--line);
  border-radius:999px;
  padding:9px 18px;
  font-size:14.5px;
  color:var(--ink-soft);
  background:#fff;
  white-space:nowrap;
}

.pill{
  border:1.5px solid var(--line);
  border-radius:9px;
  padding:10px 16px;
  font-size:14px;
  color:var(--ink-soft);
  background:#fff;
  white-space:nowrap;
  display:inline-block;
  cursor:pointer;
  transition:border-color .15s ease, color .15s ease, background .15s ease;
}
.pill.is-active{
  border-color:var(--accent);
  background:var(--paper-alt);
  color:var(--accent);
  font-weight:600;
}

.btn{
  display:inline-block;
  background:var(--accent);
  color:#fff;
  font-size:15px;
  font-weight:600;
  padding:15px 30px;
  border:none;
  border-radius:8px;
  cursor:pointer;
  text-align:center;
}
.btn:hover{ background:var(--accent-deep); color:#fff; }
.btn-sm{ font-size:14px; padding:11px 22px; }

/* ===== Header ===== */

.site-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 64px;
  height:92px;
  border-bottom:1px solid var(--line);
  background:rgba(251,250,248,.92);
  position:sticky;
  top:0;
  z-index:50;
  backdrop-filter:saturate(180%) blur(6px);
}

.brand{ display:flex; align-items:center; gap:14px; text-decoration:none; }
.brand img{ height:34px; width:auto; }
.brand-name{ display:flex; flex-direction:column; line-height:1; }
.brand-name strong{
  font-family:'Cormorant', serif;
  font-size:22px;
  font-weight:600;
  color:var(--ink);
  letter-spacing:.02em;
}
.brand-name span{
  font-size:9.5px;
  letter-spacing:.28em;
  color:var(--muted);
  margin-top:2px;
}

.main-nav{ display:flex; align-items:center; gap:38px; }
.main-nav a{
  font-size:14.5px;
  color:var(--ink-soft);
  border-bottom:2px solid transparent;
  padding-bottom:4px;
}
.main-nav a.is-current{
  color:var(--ink);
  border-bottom-color:var(--accent);
}

.header-actions{ display:flex; align-items:center; gap:20px; }

.nav-toggle{
  display:none;
  position:relative;
  width:42px;
  height:42px;
  padding:0;
  border:none;
  cursor:pointer;
  /* raya central */
  background:linear-gradient(var(--ink),var(--ink)) center/22px 2px no-repeat;
}
.nav-toggle::before,
.nav-toggle::after{
  content:"";
  position:absolute;
  left:10px;
  width:22px;
  height:2px;
  background:var(--ink);
}
.nav-toggle::before{ top:13px; }
.nav-toggle::after{ bottom:13px; }

/* ===== Footer ===== */

.site-footer{
  padding:26px 64px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-top:1px solid var(--line);
  font-size:12.5px;
  color:var(--muted);
}

/* ===== Aviso de cookies ===== */

[data-cookie-banner]{
  position:fixed;
  left:20px;
  right:20px;
  bottom:20px;
  max-width:640px;
  margin:0 auto;
  background:var(--ink);
  color:#EDEFF1;
  border-radius:14px;
  padding:22px 26px;
  box-shadow:0 10px 30px rgba(20,26,33,.28);
  z-index:100;
  display:flex;
  flex-direction:column;
  gap:16px;
}
[data-cookie-banner] p{ font-size:13.5px; line-height:1.6; margin:0; color:#D7DBE0; }
[data-cookie-banner] a{ color:#fff; text-decoration:underline; }
[data-cookie-banner] [data-cookie-actions]{ display:flex; gap:12px; justify-content:flex-end; }

/* ===== CTA banda oscura ===== */

.cta-band{
  padding:70px 64px;
  background:var(--ink);
}
.cta-band .cta-inner{
  max-width:1160px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  flex-wrap:wrap;
}
.cta-band h2{ font-size:30px; color:#fff; }
.cta-band p{ font-size:15px; color:#B7BEC6; margin-top:10px; }

/* ===== Animaciones ===== */

@keyframes fadeUp{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:translateY(0); } }
@keyframes drawCurve{ from{ stroke-dashoffset:900; } to{ stroke-dashoffset:0; } }
.fade1{ animation:fadeUp .7s ease-out .05s both; }
.fade2{ animation:fadeUp .7s ease-out .2s both; }
.curve-path{ stroke-dasharray:900; animation:drawCurve 1.6s ease-out .3s both; }

/* ===== Formulario reserva ===== */

.field{
  padding:13px 16px;
  border:1px solid var(--line);
  border-radius:8px;
  font-size:14.5px;
  background:#fff;
  width:100%;
  font-family:'Work Sans', sans-serif;
}
textarea.field{ resize:none; }

.field-label{
  font-size:12.5px;
  font-weight:600;
  color:var(--ink-soft);
  margin-bottom:9px;
  display:block;
}

.pill-group{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:20px; }

/* ===== Equipo ===== */

.team-grid{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:28px; }
.team-card{
  border:1px solid var(--line);
  border-radius:16px;
  padding:32px;
  background:#fff;
}
.team-avatar{
  width:52px;
  height:52px;
  border-radius:50%;
  background:var(--paper-alt);
  color:var(--accent-deep);
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:'Cormorant', serif;
  font-size:19px;
  font-weight:600;
  margin-bottom:18px;
}
.team-card h3{ font-size:19px; font-weight:600; font-family:'Work Sans',sans-serif; }
.team-card .team-role{
  font-size:12.5px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--accent);
  font-weight:600;
  margin-top:4px;
  display:block;
}
.team-card ul{
  margin:16px 0 0;
  padding-left:18px;
  font-size:14px;
  color:var(--ink-soft);
  line-height:1.7;
}

/* ===== Utilidades de layout ===== */

.wrap{ max-width:1160px; margin:0 auto; }
.wrap-narrow{ max-width:760px; }
.grid-2{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:28px; }

/* ===== Responsive ===== */

@media (max-width: 980px){
  .site-header{ padding:0 24px; }
  .main-nav{
    position:absolute;
    top:92px; left:0; right:0;
    background:var(--paper);
    border-bottom:1px solid var(--line);
    flex-direction:column;
    align-items:flex-start;
    gap:0;
    padding:8px 24px 18px;
    display:none;
  }
  .main-nav.is-open{ display:flex; }
  .main-nav a{ padding:12px 0; width:100%; border-bottom:1px solid var(--line); }
  .main-nav a.is-current{ border-bottom-color:var(--line); }
  /* La hamburguesa va siempre la última, pegada al borde derecho */
  .nav-toggle{ display:block; order:3; margin-left:16px; }
  .header-actions{ order:2; margin-left:auto; }
  .header-actions .btn-sm{ padding:9px 16px; font-size:13px; }

  section{ padding-left:24px !important; padding-right:24px !important; }
  .cta-band{ padding:48px 24px; }
  .site-footer{ padding:22px 24px; flex-direction:column; gap:6px; text-align:center; }

  .grid-2, .team-grid{ grid-template-columns:1fr; }
  .hero{ flex-direction:column; }
  .hero-copy{ flex:1 1 auto !important; }
  .hero-graphic{ width:100%; height:280px !important; }
  h1{ font-size:38px !important; }
}

/* ===== Pantallas estrechas: cabecera y bocadillos ===== */

@media (max-width: 640px){
  /* Sin sitio para el botón: el logo a la izquierda y la hamburguesa sola
     a la derecha. El CTA sigue disponible en el hero y en la banda final. */
  .header-actions{ display:none; }

  /* Los bocadillos largos parten de línea en vez de desbordar el contenedor */
  .chip, .pill{
    white-space:normal;
    max-width:100%;
    padding:8px 14px;
    font-size:13.5px;
  }

  /* Cajas grandes con padding generoso: se ajusta para ganar ancho útil */
  .wrap.panel{ padding:30px 20px !important; }
}
