/* =========================================================
   SILENCE DROP
   REGISTRO
   frontend/css/registro.css
========================================================= */


/* =========================================================
   RESET
========================================================= */

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}


/* =========================================================
   PALETA SILENCE
========================================================= */

:root {

  --black: #090908;
  --black-soft: #11110f;

  --cream: #f5efe3;
  --cream-soft: #ebe1cf;

  --gold: #c99a19;
  --gold-light: #e0b646;

  --text-muted: #8f8778;

  --danger: #b04434;
  --success: #5b7d55;

}


/* =========================================================
   BASE
========================================================= */

html {
  font-family:
    Arial,
    Helvetica,
    sans-serif;

  background: var(--cream);
}


body {

  min-height: 100vh;

  color: var(--black);

  background:
    radial-gradient(
      circle at 15% 15%,
      rgba(201, 154, 25, 0.12),
      transparent 24%
    ),
    radial-gradient(
      circle at 85% 85%,
      rgba(201, 154, 25, 0.10),
      transparent 22%
    ),
    linear-gradient(
      135deg,
      #f7f1e6,
      #e9deca
    );

}


/* Líneas muy sutiles estilo piedra/mármol */

body::before {

  content: "";

  position: fixed;

  inset: 0;

  pointer-events: none;

  opacity: 0.38;

  background-image:

    linear-gradient(
      115deg,
      transparent 0 28%,
      rgba(166, 126, 41, 0.10) 29%,
      transparent 31%
    ),

    linear-gradient(
      25deg,
      transparent 0 62%,
      rgba(166, 126, 41, 0.08) 63%,
      transparent 66%
    );

}


/* =========================================================
   CONTENEDOR PRINCIPAL
========================================================= */

.auth-shell {

  width: min(
    1440px,
    calc(100% - 42px)
  );

  min-height: calc(
    100vh - 42px
  );

  margin: 21px auto;

  display: grid;

  grid-template-columns:
    minmax(430px, 0.9fr)
    minmax(520px, 1.1fr);

  position: relative;

  z-index: 1;

  overflow: hidden;

  border:
    1px solid
    rgba(112, 87, 31, 0.35);

  border-radius: 26px;

  box-shadow:
    0 28px 80px
    rgba(46, 36, 15, 0.17);

}


/* =========================================================
   PANEL IZQUIERDO
========================================================= */

.brand-panel {

  min-height:
    calc(100vh - 42px);

  padding:
    44px 54px;

  position: relative;

  overflow: hidden;

  color:
    var(--cream);

  background:

    radial-gradient(
      circle at 20% 80%,
      rgba(201, 154, 25, 0.12),
      transparent 28%
    ),

    linear-gradient(
      145deg,
      #050505,
      #10100e 62%,
      #060606
    );

}


/* Textura cuadriculada muy ligera */

.brand-panel::after {

  content: "";

  position: absolute;

  inset: 0;

  opacity: 0.12;

  pointer-events: none;

  background-image:

    linear-gradient(
      rgba(255, 255, 255, 0.06) 1px,
      transparent 1px
    ),

    linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.04) 1px,
      transparent 1px
    );

  background-size:
    44px 44px;

}


/* Mantener contenido encima de textura */

.back-link,
.logo-slot,
.brand-copy,
.brand-points {

  position: relative;

  z-index: 2;

}


/* =========================================================
   VOLVER A LA TIENDA
========================================================= */

.back-link {

  display: inline-block;

  margin-bottom: 44px;

  color: #b9aa8c;

  text-decoration: none;

  font-size: 10px;

  font-weight: 800;

  letter-spacing: 1.7px;

  transition:
    color 0.2s ease,
    transform 0.2s ease;

}


.back-link:hover {

  color:
    var(--gold-light);

  transform:
    translateX(-3px);

}


/* =========================================================
   ESPACIO PARA LOGO
========================================================= */

/* =========================================================
   LOGO SILENCE DROP
========================================================= */

.logo-slot {

  width: 100%;

  display: flex;

  align-items: center;

  justify-content: flex-start;

  margin-bottom: 46px;

}


.register-logo {

  display: block;

  width: 220px;

  max-width: 75%;

  height: auto;

  object-fit: contain;

  object-position: left center;

}

/* =========================================================
   EYEBROW
========================================================= */

.eyebrow {

  color:
    var(--gold-light);

  font-size: 9px;

  font-weight: 900;

  letter-spacing: 3.2px;

}


/* =========================================================
   TEXTO PRINCIPAL IZQUIERDO
========================================================= */

.brand-copy h1 {

  margin-top: 14px;

  font-size:
    clamp(
      48px,
      5.6vw,
      86px
    );

  line-height: 0.87;

  letter-spacing: -4px;

  font-weight: 900;

}


.brand-copy p {

  max-width: 520px;

  margin-top: 24px;

  color: #b9b0a2;

  font-size: 13px;

  line-height: 1.7;

}


/* =========================================================
   BENEFICIOS
========================================================= */

.brand-points {

  display: grid;

  gap: 16px;

  margin-top: 42px;

}


.brand-points article {

  display: grid;

  grid-template-columns:
    44px 1fr;

  gap: 15px;

  padding:
    15px 0;

  border-top:
    1px solid
    rgba(255, 255, 255, 0.08);

}


.brand-points article > span {

  color:
    var(--gold-light);

  font-size: 11px;

  font-weight: 900;

  letter-spacing: 2px;

}


.brand-points strong {

  color:
    var(--cream);

  font-size: 10px;

  font-weight: 900;

  letter-spacing: 1.7px;

}


.brand-points p {

  margin-top: 5px;

  color: #898277;

  font-size: 11px;

  line-height: 1.6;

}


/* =========================================================
   PANEL DERECHO
========================================================= */

.form-panel {

  min-height:
    calc(100vh - 42px);

  display: flex;

  align-items: center;

  justify-content: center;

  padding: 48px;

  background:

    radial-gradient(
      circle at 85% 8%,
      rgba(201, 154, 25, 0.14),
      transparent 26%
    ),

    linear-gradient(
      145deg,
      #fbf7ef,
      #efe5d4
    );

}


/* =========================================================
   TARJETA FORMULARIO
========================================================= */

.form-card {

  width:
    min(680px, 100%);

  padding: 42px;

  border:
    1px solid
    rgba(125, 95, 28, 0.25);

  background:
    rgba(255, 252, 245, 0.78);

  backdrop-filter:
    blur(10px);

  box-shadow:
    0 24px 60px
    rgba(70, 51, 18, 0.12);

}


/* =========================================================
   ENCABEZADO
========================================================= */

.form-heading {

  padding-bottom: 24px;

  margin-bottom: 28px;

  border-bottom:
    1px solid
    rgba(9, 9, 8, 0.13);

}


.form-heading h2 {

  margin-top: 9px;

  color:
    var(--black);

  font-size:
    clamp(
      36px,
      4vw,
      54px
    );

  font-weight: 900;

  letter-spacing: -2px;

  line-height: 0.95;

}


.form-heading p {

  margin-top: 13px;

  color: #6f685e;

  font-size: 12px;

  line-height: 1.7;

}


/* =========================================================
   FORMULARIO
========================================================= */

.auth-form {

  display: grid;

  gap: 17px;

}


/* Dos campos por fila */

.form-row {

  display: grid;

  grid-template-columns:
    1fr 1fr;

  gap: 14px;

}


/* =========================================================
   CAMPOS
========================================================= */

.field {

  display: grid;

  gap: 8px;

}


.field label {

  color:
    var(--black);

  font-size: 9px;

  font-weight: 900;

  letter-spacing: 1.5px;

}


.field input {

  width: 100%;

  height: 52px;

  padding:
    0 15px;

  border:
    1px solid
    rgba(9, 9, 8, 0.22);

  border-radius: 0;

  outline: none;

  background:
    rgba(255, 255, 255, 0.56);

  color:
    var(--black);

  font-family: inherit;

  font-size: 13px;

  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    background 0.2s ease;

}


.field input::placeholder {

  color: #9d9589;

}


.field input:hover {

  border-color:
    rgba(9, 9, 8, 0.38);

}


.field input:focus {

  border-color:
    var(--gold);

  background:
    rgba(255, 255, 255, 0.82);

  box-shadow:
    0 0 0 3px
    rgba(201, 154, 25, 0.11);

}


/* Fecha */

.field input[type="date"] {

  color-scheme: light;

}


/* =========================================================
   CONTRASEÑAS
========================================================= */

.password-wrap {

  position: relative;

}


.password-wrap input {

  padding-right: 75px;

}


.password-toggle {

  position: absolute;

  top: 50%;

  right: 14px;

  transform:
    translateY(-50%);

  padding: 6px;

  border: 0;

  background:
    transparent;

  color: #756c5c;

  font-family: inherit;

  font-size: 9px;

  font-weight: 900;

  letter-spacing: 1.2px;

  cursor: pointer;

  transition:
    color 0.2s ease;

}


.password-toggle:hover {

  color:
    var(--gold);

}


/* =========================================================
   TÉRMINOS
========================================================= */

.terms {

  display: flex;

  align-items: flex-start;

  gap: 10px;

  color: #6e6559;

  font-size: 10px;

  line-height: 1.55;

  cursor: pointer;

}


.terms input {

  flex: 0 0 auto;

  margin-top: 1px;

  accent-color:
    var(--gold);

}


.terms a {

  color: #8c6610;

  text-decoration: none;

  font-weight: 800;

}


.terms a:hover {

  text-decoration:
    underline;

}


/* =========================================================
   MENSAJES
========================================================= */

.form-message {

  display: none;

  padding:
    12px 14px;

  font-size: 9px;

  font-weight: 900;

  letter-spacing: 1px;

  line-height: 1.5;

}


/* Error */

.form-message.error {

  display: block;

  color: #7a2f24;

  border:
    1px solid
    rgba(176, 68, 52, 0.35);

  background:
    rgba(176, 68, 52, 0.08);

}


/* Correcto */

.form-message.success {

  display: block;

  color: #385134;

  border:
    1px solid
    rgba(91, 125, 85, 0.35);

  background:
    rgba(91, 125, 85, 0.08);

}


/* =========================================================
   BOTÓN CONTINUAR
========================================================= */

.primary-button {

  width: 100%;

  height: 58px;

  padding:
    0 20px;

  display: flex;

  align-items: center;

  justify-content: space-between;

  border:
    1px solid
    var(--black);

  background:
    var(--black);

  color:
    var(--cream);

  font-family: inherit;

  font-size: 10px;

  font-weight: 900;

  letter-spacing: 2px;

  cursor: pointer;

  transition:
    background 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease,
    transform 0.2s ease;

}


.primary-button:hover {

  background:
    var(--gold);

  border-color:
    var(--gold);

  color:
    var(--black);

}


.primary-button:active {

  transform:
    scale(0.99);

}


.primary-button:disabled {

  opacity: 0.55;

  cursor: not-allowed;

}


/* =========================================================
   INICIAR SESIÓN
========================================================= */

.alternate {

  margin-top: 27px;

  padding-top: 22px;

  display: flex;

  align-items: center;

  justify-content: center;

  gap: 10px;

  border-top:
    1px solid
    rgba(9, 9, 8, 0.12);

  font-size: 9px;

  font-weight: 800;

  letter-spacing: 1px;

}


.alternate span {

  color: #80776a;

}


.alternate a {

  color:
    var(--black);

  text-decoration: none;

  font-weight: 900;

  transition:
    color 0.2s ease;

}


.alternate a:hover {

  color: #9a7011;

}


/* =========================================================
   TABLET
========================================================= */

@media (
  max-width: 1050px
) {

  .auth-shell {

    width:
      min(
        760px,
        calc(100% - 28px)
      );

    margin:
      14px auto;

    grid-template-columns:
      1fr;

  }


  .brand-panel {

    min-height: auto;

    padding:
      38px 34px;

  }


  .brand-copy h1 {

    font-size: 58px;

  }


  .form-panel {

    min-height: auto;

    padding: 34px;

  }

}


/* =========================================================
   CELULAR
========================================================= */

@media (
  max-width: 620px
) {

  body {

    background:
      var(--cream);

  }


  .auth-shell {

    width: 100%;

    min-height: 100vh;

    margin: 0;

    border: 0;

    border-radius: 0;

    box-shadow: none;

  }


  /* =============================
     BRANDING MÓVIL
  ============================== */

  .brand-panel {

    min-height: auto;

    padding:
      28px 20px
      34px;

  }


  .back-link {

    margin-bottom: 30px;

    font-size: 9px;

  }


.logo-slot {

  margin-bottom: 30px;

}


.register-logo {

  width: 190px;

  max-width: 70%;

}


  .brand-copy h1 {

    font-size: 46px;

    letter-spacing: -2px;

  }


  .brand-copy p {

    max-width: 430px;

    margin-top: 18px;

    font-size: 12px;

  }


  .brand-points {

    margin-top: 30px;

    gap: 8px;

  }


  .brand-points article {

    padding:
      12px 0;

  }


  /* =============================
     FORMULARIO MÓVIL
  ============================== */

  .form-panel {

    padding:
      24px 16px
      32px;

  }


  .form-card {

    padding:
      26px 18px;

    box-shadow:
      0 14px 40px
      rgba(70, 51, 18, 0.10);

  }


  .form-heading {

    margin-bottom: 24px;

  }


  .form-heading h2 {

    font-size: 38px;

  }


  /* Una columna */

  .form-row {

    grid-template-columns:
      1fr;

    gap: 17px;

  }


  .field input {

    height: 54px;

    font-size: 16px;

  }


  .primary-button {

    height: 58px;

  }


  .alternate {

    flex-direction: column;

    gap: 7px;

    text-align: center;

  }

}


/* =========================================================
   CELULARES PEQUEÑOS
========================================================= */

@media (
  max-width: 390px
) {

  .brand-copy h1 {

    font-size: 40px;

  }


  .form-card {

    padding:
      24px 15px;

  }


  .form-heading h2 {

    font-size: 34px;

  }

}