:root{
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
  --bg:#FAFAFA;
  --bg-soft:#E0F3F6;
  --ink:#0A0A0A;
  --muted:#5b6266;
  --cyan:#00C2CB;
  --teal:#00A3AA;
  --teal-deep:#007F86;
  --orange:#E8952A;
  --orange-text:#B5690B;
  --grey-shape:#E2E2E2;
  --card:#FFFFFF;
  --line:#d9dfe1;
  --on-cyan:#062b2d;
  --gris:#0E0F09;
  --orange:#E8952A;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0F1415;
    --bg-soft:#12292B;
    --ink:#F4F7F7;
    --muted:#9fb0b3;
    --orange-text:#F0A54B;
    --grey-shape:#1a2223;
    --card:#161D1E;
    --line:#2a3537;
  }
}
:root[data-theme="dark"]{
  --bg:#0F1415;
  --bg-soft:#12292B;
  --ink:#F4F7F7;
  --muted:#9fb0b3;
  --orange-text:#F0A54B;
  --grey-shape:#1a2223;
  --card:#161D1E;
  --line:#2a3537;
}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 84px);scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
a{color:inherit}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px;border-radius:4px}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}

/* top bar */
/* header fijo */
.site-header{
  position:sticky;top:env(safe-area-inset-top,0px);z-index:100;
  background:var(--bg);
  border-bottom:1px solid var(--line);
}
@supports (background:color-mix(in srgb,red 50%,blue)){
  .site-header{
    background:color-mix(in srgb,var(--bg) 88%,transparent);
    -webkit-backdrop-filter:saturate(1.4) blur(10px);
    backdrop-filter:saturate(1.4) blur(10px);
  }
}
.bar{display:flex;align-items:center;justify-content:space-between;padding:12px 0}
.brand{font-weight:500;font-size:20px;letter-spacing:-.01em;text-decoration:none}
.brand b{font-weight:800}
.brand i{display:inline-block;width:16px;height:16px;background:var(--cyan);margin:0 3px 0 4px;transform:rotate(45deg) scale(.8);border-radius:3px;vertical-align:-1px}
.bar a.pill{font-size:15px}

/* logos */
.brand{display:inline-flex;align-items:center}
.logo{display:block;height:46px;width:auto;mix-blend-mode:multiply}
.foot-brand{display:flex;align-items:center;gap:12px;font-weight:600;color:var(--ink)}
.logo-sm{display:block;height:34px;width:auto;mix-blend-mode:multiply}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .logo,
  :root:not([data-theme="light"]) .logo-sm{mix-blend-mode:normal;background:#fff;border-radius:8px;padding:3px 6px}
}
:root[data-theme="dark"] .logo,
:root[data-theme="dark"] .logo-sm{mix-blend-mode:normal;background:#fff;border-radius:8px;padding:3px 6px}

/* buttons */
.btn{
  display:inline-block;background:var(--cyan);color:var(--on-cyan);font-weight:800;font-size:17px;
  padding:16px 30px;border-radius:999px;text-decoration:none;border:0;cursor:pointer;
  transition:transform .15s ease, background .15s ease;
}
.btn:hover{background:var(--teal);color:#fff;transform:translateY(-2px)}
.btn.ghost{background:transparent;border:2px solid var(--ink);color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--bg)}
.pill{display:inline-block;background:var(--orange);color:#1a1203;padding:9px 20px;border-radius:999px;text-decoration:none;font-weight:600}

/* hero */
.hero{position:relative;padding:36px 0 90px;isolation:isolate}
.hero h1{
  margin:0;font-weight:900;letter-spacing:-.045em;line-height:.92;
  font-size:clamp(50px,11.5vw,132px);
}
.hero h1 .a{display:block}
.hero h1 .b{display:block;color:var(--cyan)}
.hero .tag{
  font-family:"Caveat Brush","Montserrat",cursive;font-size:clamp(28px,4.6vw,46px);
  color:var(--orange-text);margin:14px 0 0;transform:rotate(-2deg);display:inline-block;
}
.hero .lead{max-width:34em;font-size:clamp(18px,2.2vw,21px);margin:26px 0 30px;color:var(--ink)}
.hero .lead strong{font-weight:800}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center}

.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:64px;border-top:3px solid var(--ink)}
.fact{padding:22px 18px 0 0}
.fact strong{display:block;font-size:clamp(34px,5vw,54px);font-weight:900;letter-spacing:-.04em;line-height:1;color:var(--teal)}
.fact span{display:block;margin-top:8px;font-weight:600;font-size:15px;color:var(--muted)}

/* sections */
section{padding:84px 0}
h2{
  margin:0 0 18px;font-weight:900;letter-spacing:-.04em;line-height:1;
  font-size:clamp(38px,7vw,76px);
}
h2 .c{color:var(--cyan)}
h2 .d{color:var(--bg)}
.intro{max-width:36em;color:var(--muted);font-size:19px;margin:0 0 44px}

/* why */
.why{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.why article{border-top:6px solid var(--cyan);padding-top:18px}
.why article:nth-child(2){border-color:var(--ink)}
.why article:nth-child(3){border-color:var(--orange)}
.why h3{margin:0 0 8px;font-size:22px;font-weight:800;letter-spacing:-.02em;line-height:1.2}
.why p{margin:0;color:var(--muted)}

/* class flow */
.flow{background:var(--bg-soft)}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:0}
.steps li{
  display:grid;grid-template-columns:130px 1fr;gap:24px;align-items:baseline;
  padding:26px 0;border-bottom:2px solid var(--line);
}
.steps li:first-child{border-top:2px solid var(--line)}
.steps .t{font-weight:900;font-size:clamp(34px,5vw,54px);letter-spacing:-.04em;color:var(--teal);line-height:1}
.steps .t small{font-size:.4em;font-weight:700;margin-left:4px;letter-spacing:0}
.steps h3{margin:0 0 4px;font-size:22px;font-weight:800;letter-spacing:-.02em}
.steps p{margin:0;color:var(--muted);max-width:40em}
.note{font-size:14px;color:var(--muted);margin-top:16px;font-style:italic}

/* levels */
.levels{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:56px}
.lvl{background:var(--card);border:2px solid var(--line);border-radius:22px;padding:26px 24px 28px}
.lvl .n{font-size:15px;font-weight:800;color:var(--muted)}
.lvl .big{font-size:42px;font-weight:700;letter-spacing:-.05em;line-height:1;margin:6px 0 0}
.lvl:nth-child(1) .big{color:var(--cyan)}
.lvl:nth-child(2) .big{color:var(--teal)}
.lvl:nth-child(3) .big{color:var(--orange)}
.lvl .s{font-weight:700}
.lvl p{margin:12px 0 0;color:var(--muted);font-size:15.5px}
.rest{font-weight:600;margin:-28px 0 56px}

.circuit-title{font-family:"Caveat Brush","Montserrat",cursive;font-size:36px;color:var(--orange-text);margin:0 0 6px;font-weight:400}
.circuit{display:grid;grid-template-columns:repeat(3,1fr);gap:0 28px;list-style:none;margin:0;padding:0}
.circuit li{display:flex;align-items:baseline;gap:14px;padding:16px 0;border-bottom:2px solid var(--line)}
.circuit b{font-size:34px;font-weight:900;letter-spacing:-.04em;min-width:64px;line-height:1}
.circuit span{font-weight:600;font-size:17px}
.circuit em{display:block;font-size:13px;font-weight:500;color:var(--muted)}

/* price */
.price{position:relative;overflow:hidden;isolation:isolate;background:var(--cyan);color:var(--on-cyan)}
.price .wrap{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center}
.price h2{color:var(--on-cyan)}
.price .amount{font-weight:900;letter-spacing:-.06em;line-height:.85;font-size:clamp(110px,22vw,230px);color:#000}
.price .amount sup{font-size:.36em;vertical-align:top;letter-spacing:0;margin-left:4px;position:relative;top:.15em}
.price .per{font-weight:800;font-size:22px;margin:6px 0 0}
.price .per .blanco{color:#fff}
.price ul{list-style:none;padding:0;margin:0 0 30px;display:grid;gap:12px}
.price li{font-weight:600;padding-left:32px;position:relative;font-size:18px}
.price li::before{content:"";position:absolute;left:0;top:.42em;width:16px;height:16px;background:#000;border-radius:4px;transform:rotate(45deg) scale(.85)}
.price .btn{background:var(--orange);color:#1a1203}
.price .btn:hover{background:var(--orange);color:#1a1203}

/* faq */
details{border-bottom:2px solid var(--line);padding:0}
details:first-of-type{border-top:2px solid var(--line)}
summary{
  cursor:pointer;list-style:none;padding:22px 44px 22px 0;font-weight:800;font-size:20px;
  letter-spacing:-.015em;position:relative;
}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:4px;top:50%;transform:translateY(-52%);font-size:34px;font-weight:500;color:var(--teal);transition:transform .2s ease}
details[open] summary::after{transform:translateY(-52%) rotate(45deg)}
details p{margin:0 0 24px;color:var(--muted);max-width:42em}

/* final cta */
.final{text-align:left;padding-bottom:110px; background:#e6e9eb}
.final h2{font-size:clamp(44px,9vw,110px)}
.final p{max-width:32em;font-size:19px;color:var(--muted);margin:0 0 30px}

footer{border-top:0px solid var(--ink);padding:26px 0 40px;font-size:15px;color:var(--muted);}
footer .wrap{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}
footer b{color:var(--ink)}

/* Contenedor de los tres bloques A4 */
.circuit-a4-container {
  display: flex;
  gap: 24px;
  justify-content: center;
  flex-wrap: wrap;
  margin: 30px auto;
  padding: 0 20px;
  max-width: 1100px;
}

/* Tarjeta con proporción exacta A4 (1:1.4142) */
.a4-card {
  flex: 1;
  min-width: 260px;
  max-width: 320px;
  aspect-ratio: 1 / 1.4142;
  background-color: #f7f9fa; /* Fondo neutro mientras carga la imagen */
  border: 1px solid #e1e6eb;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
  transition: transform 0.2s ease;
}

/* Efecto sutil al pasar el cursor */
.a4-card:hover {
  transform: translateY(-4px);
}

/* Ajuste de la imagen dentro del contenedor */
.a4-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

@media (max-width:820px){
  .facts{grid-template-columns:repeat(2,1fr);gap:8px 0}
  .fact{padding-bottom:16px}
  .why,.levels{grid-template-columns:1fr}
  .circuit{grid-template-columns:1fr}
  .price .wrap{grid-template-columns:1fr;gap:28px}
  .steps li{grid-template-columns:1fr;gap:6px}
  section{padding:60px 0}
  .rest{margin-top:-36px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .btn,summary::after{transition:none}
}
/* ==========================================================================
   RESPONSIVE DESIGN (Media Query para Móviles y Tablets)
   ========================================================================== */
@media (max-width: 768px) {
  /* 1. Ajuste del Logo y la Barra de Navegación */
  .logo {
    height: 32px; /* Reduce el tamaño del logo de 46px a 32px */
  }
  
  .bar {
    padding: 16px 0; /* Un poco más de espacio vertical en móvil */
  }

  /* 2. Ajustes del Bloque Hero (Principal) */
  .hero {
    padding: 24px 0 60px;
  }
  
  /* Pasa los 4 datos (facts) de 4 columnas a 2 columnas */
  .facts {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px 0;
  }

  /* 3. Secciones Generales */
  section {
    padding: 56px 0; /* Reduce el espaciado exagerado entre secciones */
  }

  /* Pasa la sección "Por qué" de 3 columnas a 1 sola columna vertical */
  .why {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  /* 4. Flujo de Clases (Steps) */
  /* Cambia la estructura de filas horizontales a bloques apilados */
  .steps li {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 20px 0;
  }

  /* 5. Tarjetas de Niveles y Circuitos */
  /* Pasa los niveles de 3 columnas a 1 sola columna */
  .levels {
    grid-template-columns: 1fr;
    margin-bottom: 40px;
  }

  /* Pasa el circuito de 3 columnas a 1 sola columna */
  .circuit {
    grid-template-columns: 1fr;
  }

  /* 6. Sección de Precios */
  /* Pasa la fila horizontal a dos bloques verticales (Texto arriba, Precio abajo) */
  .price .wrap {
    grid-template-columns: 1fr;
    gap: 36px;
  }
  
  /* Centrar llamado a la acción (CTA) y Footer solo en móviles (pantallas menores a 768px) */
@media (max-width: 768px) {
  .final {
    text-align: left; /* Centra el título y el botón en móvil */
  }

  .final p {
    margin: 0 auto 30px;
    /* Centra la caja del párrafo en móvil */
  }

  footer .wrap {
    justify-content: center; /* Agrupa los elementos al centro en móvil */
    text-align: left;      /* Asegura que los textos internos se centren */
    flex-direction: column;  /* Apila los elementos verticalmente si el espacio es muy estrecho */
    gap: 16px;               /* Añade un poco más de separación entre los elementos apilados */
  }
}

