/* =========================================================
   RABBIT HOUSE — STUDIO
   Por qué Rabbit House / v3
   ========================================================= */

   :root {
    --negro:      #0a0a0a;
    --negro-2:    #131313;
    --blanco:     #ffffff;
    --hueso:      #f4f2ed;
    --gris:       #ccc;
    --gris-linea: rgba(255, 255, 255, .14);
    --rojo:       #e60023;
  }
  
  .rh-studio {
    position: relative;
    overflow: hidden;
  
    background:
      radial-gradient(
        ellipse 70% 50% at 15% 0%,
        rgba(255, 255, 255, 0.045),
        transparent 65%
      ),
      radial-gradient(
        ellipse 65% 55% at 90% 100%,
        rgba(255, 255, 255, 0.025),
        transparent 70%
      ),
      #11101a;
  
    color: var(--blanco);
    font-family: var(--sans);
  }
  
  
  /* =========================================================
     RETÍCULA DE PUNTOS
     ========================================================= */
  
  .rh-studio::before {
    content: "";
    position: absolute;
    inset: 0;
  
    pointer-events: none;
  
    background-image:
      radial-gradient(
        circle,
        rgba(150, 147, 170, 0.42) 1px,
        transparent 1.2px
      );
  
    background-size: 48px 48px;
    background-position: 12px 12px;
  
    opacity: 0.48;
  }
  
  
  /* =========================================================
     LUZ AMBIENTE
     ========================================================= */
  
  .rh-studio::after {
    content: "";
    position: absolute;
  
    width: 75vw;
    height: 75vw;
  
    max-width: 1000px;
    max-height: 1000px;
  
    left: -20%;
    top: -25%;
  
    pointer-events: none;
  
    background:
      radial-gradient(
        circle,
        rgba(255, 255, 255, 0.035),
        transparent 65%
      );
  
    filter: blur(40px);
  }
  
  
  /* =========================================================
     CONTENIDO
     ========================================================= */
  
  .rh-studio > * {
    position: relative;
    z-index: 1;
  }
  
  
  .rh-studio h1,
  .rh-studio h2,
  .rh-studio h3 {
    font-family: var(--display);
    font-weight: 400;
    letter-spacing: -.045em;
    margin: 0;
  }
  
  /* =========================================================
     1 · LA CAÍDA
     ========================================================= */
  
  .caida {
    position: relative;
    overflow: hidden;
    padding: clamp(110px, 16vw, 210px) clamp(20px, 6vw, 90px) clamp(90px, 12vw, 160px);
  }
  
  /* anillos de la madriguera, en perspectiva */
  .caida__tunel {
    position: absolute;
    top: 50%;
    left: 50%;
    width: min(1100px, 130vw);
    aspect-ratio: 1;
    transform: translate(-50%, -50%);
    pointer-events: none;
    opacity: .5;
  }
  
  .caida__tunel span {
    position: absolute;
    inset: 0;
    margin: auto;
    border: 1px solid var(--gris-linea);
    border-radius: 50%;
  }
  
  .caida__tunel span:nth-child(1) { width: 100%; height: 100%; }
  .caida__tunel span:nth-child(2) { width: 74%;  height: 74%;  }
  .caida__tunel span:nth-child(3) { width: 52%;  height: 52%;  }
  .caida__tunel span:nth-child(4) { width: 33%;  height: 33%;  border-color: rgba(230, 0, 35, .4); }
  .caida__tunel span:nth-child(5) { width: 17%;  height: 17%;  }
  .caida__inner {
    position: relative;
    max-width: 900px;
    margin: 0 auto;
    padding: 0 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  
  .caida h1 {
    max-width: 760px;
    margin: 0 auto;
    font-size: clamp(2.8rem, 7vw, 6.8rem);
    line-height: .96;
    letter-spacing: -.065em;
    font-weight: 500;
    text-align: center;
    text-wrap: balance;
  }
  
  .caida__chica {
    display: block;
    max-width: 560px;
    margin: 32px auto 0;
    font-size: clamp(.95rem, 1.4vw, 1.1rem);
    line-height: 1.65;
    letter-spacing: -.01em;
    color: var(--gris);
    text-align: center;
    text-wrap: balance;
  }
  
  .caida__promesa {
    max-width: 680px;
    margin: clamp(70px, 9vw, 120px) auto 0;
    font-family: var(--display);
    font-size: clamp(1.8rem, 4vw, 3.4rem);
    line-height: 1.08;
    letter-spacing: -.045em;
    font-weight: 400;
    text-align: center;
    text-wrap: balance;
  }
  
  .caida__promesa b {
    font-weight: 500;
    color: var(--rojo);
  }
  
  
  /* =========================
     MOBILE
  ========================= */
  
  @media (max-width: 600px) {
  
    .caida__inner {
      max-width: 100%;
      padding: 0 20px;
    }
  
    .caida h1 {
      max-width: 100%;
      font-size: clamp(2.7rem, 14vw, 4.5rem);
      line-height: .94;
      letter-spacing: -.06em;
    }
  
    .caida__chica {
      max-width: 330px;
      margin-top: 24px;
      font-size: .95rem;
      line-height: 1.6;
    }
  
    .caida__promesa {
      max-width: 340px;
      margin-top: 64px;
      font-size: clamp(1.7rem, 8vw, 2.5rem);
      line-height: 1.08;
      letter-spacing: -.04em;
    }
  
  }
  /* =========================================================
     2 · POR QUÉ RABBIT HOUSE
     ========================================================= */
  
  .razones {
    padding: clamp(80px, 11vw, 150px) clamp(20px, 6vw, 90px);
    border-top: 1px solid var(--gris-linea);
    text-align: center;
  }
  
  .razones__inner {
    max-width: 1200px;
    margin: 0 auto;
    text-align: center;
  }

  
  .razones h2 {
    width: 100%;
    max-width: none;
    margin: 0 auto clamp(56px, 7vw, 96px);
    font-size: clamp(2rem, 5vw, 4.2rem);
    line-height: 1;
    text-align: center;
  }
  
  .razones__lista {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 0;
    text-align: center;
  }
  
  .razon {
    padding: clamp(32px, 4vw, 52px) clamp(24px, 3vw, 44px) clamp(40px, 5vw, 64px);
    border-top: 1px solid var(--gris-linea);
    border-left: 1px solid var(--gris-linea);
    text-align: center;
  }
  
  .razon:first-child { border-left: 0; }
  
  .razon h3 {
    max-width: 14ch;
    margin-bottom: 16px;
    font-size: clamp(1.25rem, 2.1vw, 1.7rem);
    line-height: 1.1;
    text-align: center;
  }
  
  .razon p {
    max-width: 34ch;
    margin: 0;
    font-size: .87rem;
    line-height: 1.85;
    color: var(--gris);
    text-align: center;
  }
  
  /* un dato duro en rojo, chico, al pie de cada razón */
  .razon__dato {
    display: block;
    margin-top: 22px;
    font-size: .72rem;
    letter-spacing: .04em;
    color: var(--rojo);
  }
  
  @media (max-width: 860px) {
    .razon { border-left: 0; }
  }

  @media (max-width: 860px) {

    .razones {
      padding: 80px 20px;
      text-align: center;
    }
  
    .razones__inner {
      width: 100%;
      max-width: 100%;
      margin: 0 auto;
      text-align: center;
    }
  
    .razones__inner h2 {
        width: 100%;
        text-align: center;
        margin-left: auto;
        margin-right: auto;
      }

      .puertas__inner h2 {
        width: 100%;
        text-align: center;
        margin-left: auto;
        margin-right: auto;
      }
  
    .razones__lista {
      display: grid;
      grid-template-columns: 1fr;
      width: 100%;
      text-align: center;
    }
  
    .razon {
      width: 100%;
      padding: 40px 20px 52px;
      border-left: 0;
      border-top: 1px solid var(--gris-linea);
      text-align: center;
    }
  
    .razon h3 {
      max-width: 14ch;
      margin: 0 auto 16px;
      text-align: center;
    }
  
    .razon p {
      max-width: 34ch;
      margin: 0 auto;
      text-align: center;
    }
  
    .razon__dato {
      display: block;
      margin-top: 22px;
      text-align: center;
    }
  
  }
  
  
  /* =========================================================
   3 · LAS PUERTAS
   ========================================================= */

.puertas {
    padding: clamp(90px, 12vw, 160px) clamp(20px, 6vw, 90px);
    border-top: 1px solid var(--gris-linea);
  }
  
  .puertas__inner {
    max-width: 1200px;
    margin: 0 auto;
  }
  
  /* ---------------------------------------------------------
     ENCABEZADO
     --------------------------------------------------------- */
  
 .puertas h2 {
  width: 100%;
  max-width: none;
  margin: 0 auto clamp(56px, 7vw, 96px);
  font-size: clamp(2rem, 5vw, 4.2rem);
  line-height: 1;
  text-align: center;
}

.puertas__bajada {
  width: 100%;
  max-width: 48ch;
  margin: 0 auto clamp(50px, 7vw, 90px);
  font-size: .92rem;
  line-height: 1.8;
  color: var(--gris);
  text-align: center;
} 


/* =========================================================
   4 · EL ESPEJO
   ========================================================= */

   .espejo {
    padding: clamp(90px, 12vw, 160px) clamp(20px, 6vw, 90px);
    border-top: 1px solid var(--gris-linea);
  }
  
  .espejo__inner {
    max-width: 1200px;
    margin: 0 auto;
  }
  
  /* ---------------------------------------------------------
     ENCABEZADO
     --------------------------------------------------------- */
  
  .espejo h2 {
    width: 100%;
    max-width: none;
    margin: 0 auto clamp(50px, 6vw, 84px);
    font-size: clamp(2rem, 5vw, 4.2rem);
    line-height: .98;
    text-align: center;
  }
  
  /* ---------------------------------------------------------
     CARAS
     --------------------------------------------------------- */
  
     .espejo__caras {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 28px;
      }
      
  /* ---------------------------------------------------------
     CARD BASE
     --------------------------------------------------------- */
  
  .cara {
    position: relative;
    min-height: 420px;
    padding: clamp(30px, 4vw, 52px);
  
    border-radius: 28px;
    overflow: hidden;
  
    transition:
      transform .35s ease,
      box-shadow .35s ease,
      border-color .35s ease;
  }
  
  /* ---------------------------------------------------------
     ANTES
     --------------------------------------------------------- */
  
  .cara--antes {
    background: #111111;
    color: var(--gris);
  
    border: 1px solid rgba(255, 255, 255, .08);
  }
  
  /* ---------------------------------------------------------
     DESPUÉS
     --------------------------------------------------------- */
  
  .cara--despues {
    background: var(--hueso);
    color: var(--negro);
  
    border: 1px solid rgba(10, 10, 10, .08);
  }
  
  /* ---------------------------------------------------------
     DETALLE SUPERIOR
     --------------------------------------------------------- */
  
  .cara::before {
    content: "";
    position: absolute;
    top: -100px;
    right: -100px;
  
    width: 220px;
    height: 220px;
  
    border-radius: 50%;
    background: rgba(255, 255, 255, .035);
  
    filter: blur(24px);
  
    pointer-events: none;
  }
  
  .cara--despues::before {
    background: rgba(10, 10, 10, .035);
  }
  
  /* ---------------------------------------------------------
     RÓTULO
     --------------------------------------------------------- */
  
  .cara__rotulo {
    position: relative;
    z-index: 1;
  
    display: flex;
    align-items: center;
    gap: 10px;
  
    margin-bottom: clamp(38px, 5vw, 58px);
  
    font-size: .68rem;
    font-weight: 500;
    letter-spacing: .12em;
    text-transform: uppercase;
  }
  
  /* pequeño indicador */
  
  .cara__rotulo::before {
    content: "";
  
    width: 6px;
    height: 6px;
  
    flex-shrink: 0;
  
    border-radius: 50%;
    background: currentColor;
  }
  
  .cara--antes .cara__rotulo {
    color: #8d8d8d;
  }
  
  .cara--despues .cara__rotulo {
    color: var(--rojo);
  }
  
  /* ---------------------------------------------------------
     LISTA
     --------------------------------------------------------- */
  
  .cara ul {
    position: relative;
    z-index: 1;
  
    margin: 0;
    padding: 0;
  
    list-style: none;
  }
  
  .cara li {
    position: relative;
  
    padding: 18px 0;
  
    font-size: .86rem;
    line-height: 1.7;
  
    border-bottom: 1px solid rgba(255, 255, 255, .10);
  }
  
  .cara--despues li {
    color: #33302b;
    border-color: rgba(10, 10, 10, .12);
  }
  
  .cara li:first-child {
    padding-top: 0;
  }
  
  .cara li:last-child {
    padding-bottom: 0;
    border-bottom: 0;
  }
  
  /* ---------------------------------------------------------
     HOVER
     --------------------------------------------------------- */
  
  .cara--antes:hover {
    transform: translateY(-5px);
  
    border-color: rgba(255, 255, 255, .16);
  
    box-shadow:
      0 24px 70px rgba(0, 0, 0, .22);
  }
  
  .cara--despues:hover {
    transform: translateY(-5px);
  
    border-color: rgba(10, 10, 10, .14);
  
    box-shadow:
      0 24px 70px rgba(10, 10, 10, .10);
  }
  
  /* =========================================================
     TABLET
     ========================================================= */
  
  @media (max-width: 850px) {
  
    .espejo__caras {
      grid-template-columns: 1fr;
      gap: 14px;
    }
  
    .cara {
      min-height: auto;
    }
  
  }
  
  /* =========================================================
     MOBILE
     ========================================================= */
  
  @media (max-width: 600px) {
  
    .espejo {
      padding:
        clamp(80px, 15vw, 110px)
        20px;
    }
  
    .espejo h2 {
      margin-bottom: 44px;
      font-size: clamp(2.1rem, 11vw, 3.2rem);
    }
  
    @media (max-width: 850px) {
      
        .espejo__caras {
          grid-template-columns: 1fr;
          gap: 20px;
        }
      
      }
      
      @media (max-width: 600px) {
      
        .espejo__caras {
          gap: 18px;
        }
      
      }
  
  
    .cara {
      min-height: 0;
      padding: 30px 26px;
      border-radius: 24px;
    }
  
    .cara__rotulo {
      margin-bottom: 38px;
    }
  
    .cara li {
      padding: 16px 0;
      font-size: .8rem;
      line-height: 1.75;
    }
  
  }
  
  /* =========================================================
     REDUCIR MOVIMIENTO
     ========================================================= */
  
  @media (prefers-reduced-motion: reduce) {
  
    .cara {
      transition: none;
    }
  
  }
  
  /* ---------------------------------------------------------
     GRID
     --------------------------------------------------------- */
  
  .puertas__fila {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
  }
  
  /* ---------------------------------------------------------
     CARDS
     --------------------------------------------------------- */
  
  .puerta {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 310px;
    padding: clamp(28px, 4vw, 46px);
    color: inherit;
    text-decoration: none;
  
    background: #111111;
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: 28px;
  
    overflow: hidden;
  
    transition:
      transform .35s ease,
      background .35s ease,
      border-color .35s ease,
      box-shadow .35s ease;
  }
  
  /* brillo muy sutil */
  .puerta::before {
    content: "";
    position: absolute;
    top: -100px;
    right: -100px;
    width: 220px;
    height: 220px;
  
    border-radius: 50%;
    background: rgba(255, 255, 255, .025);
  
    filter: blur(20px);
    pointer-events: none;
  
    transition: transform .5s ease, opacity .5s ease;
  }
  
  /* indicador */
  .puerta::after {
    content: "";
    position: absolute;
    top: 32px;
    right: 32px;
  
    width: 7px;
    height: 7px;
  
    border-radius: 50%;
    background: var(--rojo);
  
    box-shadow: 0 0 0 5px rgba(230, 0, 35, .08);
  
    transition: transform .35s ease, box-shadow .35s ease;
  }
  
  /* ---------------------------------------------------------
     CONTENIDO
     --------------------------------------------------------- */
  
  .puerta h3 {
    position: relative;
    z-index: 1;
  
    margin: 0 0 16px;
    padding: 0;
  
    font-size: clamp(1.2rem, 2vw, 1.55rem);
    line-height: 1.1;
    letter-spacing: -.02em;
  }
  
  .puerta p {
    position: relative;
    z-index: 1;
  
    max-width: 38ch;
    margin: 0;
  
    font-size: .82rem;
    line-height: 1.8;
    color: var(--gris);
  }
  
  /* ---------------------------------------------------------
     CTA
     --------------------------------------------------------- */
  
  .puerta__abrir {
    position: relative;
    z-index: 1;
  
    display: inline-flex;
    align-items: center;
  
    margin-top: auto;
    padding-top: 34px;
  
    font-size: .72rem;
    letter-spacing: .04em;
  
    color: var(--blanco);
    opacity: .5;
  
    transition:
      color .3s ease,
      opacity .3s ease,
      transform .3s ease;
  }
  
  /* ---------------------------------------------------------
     HOVER
     --------------------------------------------------------- */
  
  .puerta:hover,
  .puerta:focus-visible {
    background: #151515;
    border-color: rgba(255, 255, 255, .18);
    transform: translateY(-5px);
  
    box-shadow:
      0 20px 60px rgba(0, 0, 0, .22);
  }
  
  .puerta:hover::before,
  .puerta:focus-visible::before {
    transform: scale(1.25);
  }
  
  .puerta:hover::after,
  .puerta:focus-visible::after {
    transform: scale(1.25);
    box-shadow: 0 0 0 7px rgba(230, 0, 35, .08);
  }
  
  .puerta:hover .puerta__abrir,
  .puerta:focus-visible .puerta__abrir {
    color: var(--rojo);
    opacity: 1;
    transform: translateX(4px);
  }
  
  .puerta:focus-visible {
    outline: 2px solid var(--rojo);
    outline-offset: 4px;
  }
  
  /* =========================================================
     DESKTOP GRANDE
     ========================================================= */
  
  @media (min-width: 1100px) {
  
    .puertas__fila {
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 16px;
    }
  
    .puerta {
      min-height: 360px;
    }
  
  }
  
  /* =========================================================
     TABLET
     ========================================================= */
  
  @media (max-width: 900px) {
  
    .puertas__fila {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  
    .puerta {
      min-height: 300px;
    }
  
  }
  
  /* =========================================================
     MOBILE
     ========================================================= */
  
  @media (max-width: 600px) {
  
    .puertas {
      padding:
        clamp(80px, 15vw, 110px)
        20px;
    }
  
    .puertas h2 {
      max-width: none;
      margin-bottom: 18px;
      font-size: clamp(2.1rem, 11vw, 3.2rem);
    }
  
    .puertas__bajada {
      max-width: 38ch;
      margin-bottom: 42px;
      font-size: .84rem;
      line-height: 1.75;
    }
  
    .puertas__fila {
      grid-template-columns: 1fr;
      gap: 12px;
    }
  
    .puerta {
      min-height: 270px;
      padding: 28px;
      border-radius: 24px;
    }
  
    .puerta::after {
      top: 27px;
      right: 27px;
    }
  
    .puerta h3 {
      max-width: 80%;
      margin-bottom: 14px;
      font-size: 1.25rem;
    }
  
    .puerta p {
      max-width: 34ch;
      font-size: .78rem;
      line-height: 1.75;
    }
  
    .puerta__abrir {
      padding-top: 30px;
      font-size: .7rem;
    }
  
  }
  
  /* =========================================================
     REDUCIR MOVIMIENTO
     ========================================================= */
  
  @media (prefers-reduced-motion: reduce) {
  
    .puerta,
    .puerta::before,
    .puerta::after,
    .puerta__abrir {
      transition: none;
    }
  
  }
 