:root{
  --bg:#fff;
  --txt:#222;
  --muted:#666;
  --primary:#eb585a;
  --primary-hover:#d94749;
  --secondary:#f9eff0;
  --beis:#fdebd3;
  --white:#fff;
  --black:#000;
  --chip:#f5f5f5;
  --line:#eaeaea;
  --gt-green1:#0d898b;
  --gt-green2:#61bead;
  --gt-green3:#6fbc7e;
  --gt-green4:#c9daa4;
  --gt-blue1:#68abd9;
  --gt-blue2:#9ec4d8;
  --gt-yellow:#f2c747;
  --gt-salmon1:#eb9a7f;
  --gt-salmon2:#ebb57f;
}

/* ===== Reset base y tipografía ===== */

*,
*::before,
*::after{
  box-sizing:border-box;
}

html,
body{
  height:100%;
  margin:0;
  padding:0;
}

body{
  font-family:'Poppins',sans-serif;
  font-weight:400;
  color:var(--txt);
  background:var(--bg);
  -webkit-text-size-adjust:100%;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  scroll-behavior:smooth;
}

h1,h2,h3,h4,h5,h6{
  margin:0;
  font-weight:inherit;
  font-size:inherit;
}

/* Botones/enlaces */

button,
[role="button"],
a.button,
input[type="button"],
input[type="submit"]{
  -webkit-appearance:none;
  touch-action:manipulation;
}

button:focus,
a:focus{
  outline:none;
}

button:focus-visible,
a:focus-visible{
  outline:2px solid currentColor;
  outline-offset:2px;
}

/* Autofill */

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--txt);
  caret-color: var(--txt);
  border-color: var(--primary);
  -webkit-box-shadow:
    0 0 0 1px color-mix(in oklab, var(--primary) 55%, transparent),
    0 0 0 1000px var(--bg) inset !important;
  box-shadow:
    0 0 0 1px color-mix(in oklab, var(--primary) 55%, transparent),
    0 0 0 1000px var(--bg) inset !important;
  background-color: var(--bg) !important;
}

textarea:-webkit-autofill,
textarea:-webkit-autofill:hover,
textarea:-webkit-autofill:focus,
select:-webkit-autofill,
select:-webkit-autofill:hover,
select:-webkit-autofill:focus{
  -webkit-box-shadow:0 0 0 1000px var(--bg) inset !important;
}

/* ===== Layout registro ===== */

.reg-wrap{
  display:flex;
  min-height:100vh;
  position:relative;
}

.reg-left{
  width:60%;
  padding:48px;
  padding-top:120px;
}

.reg-right{
  width:40%;
  padding:48px;
  padding-top:120px;
  position:relative;
  background-color:var(--gt-green1);
  overflow:hidden;
}

.reg-right::before{
  content:"";
  position:absolute;
  inset:0;
  background:url("https://app.gimnasiatotal.com/assets/img/background-register.jpg") center/cover no-repeat;
  opacity:.1;
  pointer-events:none;
  z-index:0;
}

.reg-right::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(
    to bottom,
    rgba(0,0,0,0.12) 0%,
    rgba(0,0,0,0.38) 100%
  );
  pointer-events:none;
  z-index:0;
}

.reg-right > *{
  position:relative;
  z-index:1;
}

.brand{
  position:absolute;
  top:32px;
  left:48px;
  z-index:10;
  margin:0;
}

.brand img{
  width:140px;
  height:auto;
  display:block;
}

/* Lateral derecho */

.right-inner{
  max-width:420px;
  margin:0 auto;
}

.right-inner h2{
  margin:0 0 28px;
  font-size:22px;
  font-weight:600;
  color:var(--white);
  line-height:1.7;
}

.features{
  list-style:none;
  margin:36px 0 0;
  padding:0;
  display:grid;
  gap:18px;
}

.feature{
  display:flex;
  align-items:center;
  gap:16px;
}

.feature img{
  width:32px;
  height:32px;
  flex-shrink:0;
  object-fit:contain;
  opacity:0.9;
}

.feature span{
  color:var(--white);
  font-size:16px;
  line-height:1.5;
}

.contact-box{
  margin-top:40px;
  padding:14px 16px;
  border-radius:10px;
  background:rgba(0,0,0,0.16);
  display:flex;
  align-items:flex-start;
  gap:10px;
  backdrop-filter:blur(4px);
}

.contact-ico img{
  width:22px;
  height:22px;
  opacity:0.85;
}

.contact-text{
  color:#fefefe;
  font-size:14px;
  line-height:1.55;
}

.contact-text a{
  color:#ffffff;
  font-weight:600;
  text-decoration:underline;
  text-underline-offset:2px;
}

.contact-text a:hover{
  opacity:0.85;
}

/* ===== Stepper ===== */

.stepper{
  max-width:520px;
  margin:24px auto 26px;
}

.stepper-bar{
  height:3px;
  border-radius:999px;
  background:#e5e7eb;
}

.stepper-fill{
  height:100%;
  width:0;
  border-radius:inherit;
  background:var(--gt-green1);
  transition:width .25s ease;
}

.stepper-labels{
  display:flex;
  justify-content:space-between;
  font-size:12px;
  color:#aaa;
  margin-top:6px;
  font-weight:300;
}

.stepper-labels .active{
  color:var(--gt-green1);
  font-weight:500;
}

/* ===== Card / contenido izquierdo ===== */

#regContent{
  max-width:520px;
  margin:0 auto;
}

.card{ /* sin fondo propio, se usa el fondo blanco de la página */ }

.card h1{
  margin:0 0 8px;
  font-size:22px;
  font-weight:500;
  color:var(--primary);
}

.card .muted{
  margin:0 0 8px;
  max-width: 100%;
  font-size: 14px;
  line-height:1.6;
  color:var(--muted);
}

.info-line {
    display: block;
    font-weight:300;
}

.info-line b{
    font-weight:500;
}

/* Back link (en paso 2) */

.card-title-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.card-title-row h1{
    margin:0 0 8px;
    font-size:22px;
    font-weight:500;
    color:var(--primary);
}

.back-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:14px;
  color:var(--primary);
  text-decoration:none;
  margin-top:-5px;
}

.back-link img{
  width:18px;
  height:18px;
  display:block;
  filter:invert(34%) sepia(66%) saturate(3300%) hue-rotate(338deg) brightness(96%) contrast(98%);
}

/* ===== Labels y campos ===== */

.lbl{
  display:block;
  margin-top:18px;
  margin-bottom:6px;
  font-size:12px;
  font-weight:500;
  color:#374151;
}

/* neutralizamos mt20/30/40 dentro de la card */
.card .lbl.mt20,
.card .lbl.mt30,
.card .lbl.mt40{
  margin-top:18px;
}

/* primer label un poco más cerca del título */
.card .lbl:first-of-type{
  margin-top:12px;
}

/* Inputs */

input[type="text"],
input[type="email"],
input[type="password"]{
  width:100%;
  padding:14px 14px;
  font-size:14px;
  font-weight:300;
  border-radius:10px;
  border:1px solid var(--line);
  background:#fff;
  outline:none;
  transition:border-color .15s ease, box-shadow .15s ease;
  font-family:'Poppins',sans-serif;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 1px color-mix(in oklab, var(--primary) 55%, transparent);
}

/* placeholder del input de texto */

.card input::placeholder{
  color:#9ca3af;
  opacity:1; /* Safari */
}

/* ===== Fake select (abre modal) ===== */

.fake-select{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:4px;
  border-radius:10px;
  border:1px solid var(--line);
  padding:12px 14px;
  cursor:pointer;
  background:#fff;
  user-select:none;
  font-size:14px;
  font-weight:300;
}

.fake-select:focus-visible{
  outline:2px solid var(--primary);
  outline-offset:2px;
}

.fake-select .chev{
  opacity:.6;
}

.fake-select span{
  color:#111827;
}

/* Estado placeholder en fake selects */

.fake-select span.is-placeholder{
  color:#9ca3af;
}

/* Inputs/fake-select dentro de la card: margen inferior homogéneo */

.card input[type="text"],
.card input[type="email"],
.card input[type="password"],
.card .fake-select{
  margin-top:0;
  margin-bottom:8px;
}

/* ===== Iconos dentro de campos ===== */

.field{
  position:relative;
}

.field-ico{
  position:absolute;
  left:12px;
  top:50%;
  transform:translateY(-50%);
  width:20px;
  height:20px;
  display:flex;
  align-items:center;
  justify-content:center;
  pointer-events:none;
  opacity:0.8;
}

.field-ico img{
  display:block;
  width:22px;
  height:22px;
}

/* padding extra cuando hay icono */

.card input.with-ico{
  padding-left:40px;
}

.fake-select.fake-select--with-ico{
  padding-left:40px;
}

/* ajuste fino solo para el icono del primer campo (nombre club) */

.field--club .field-ico{
  top:41%;
}

/* ===== Chips (por si los reutilizas) ===== */

.chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-radius:999px;
  background:var(--bg);
  border:1px solid var(--line);
  font-size:12px;
  cursor:pointer;
  transition:border-color .15s, background-color .15s, color .15s, box-shadow .15s;
}

.chip input{
  display:none;
}

.chip:hover{
  border-color:var(--primary);
}

.chip:has(input:focus-visible){
  box-shadow:0 0 0 3px color-mix(in oklab, var(--primary) 25%, transparent);
}

.chip:has(input:checked){
  border-color:var(--primary);
  background:var(--secondary);
  color:var(--primary);
}

/* ===== Botón principal ===== */

.actions{
  margin-top:32px;
}

.btn-ghost {
  background:transparent;
  color:var(--black);
  border:0px solid var(--black);
  border-radius:10px;
  padding:15px 10px;
  font-size: 16px;
  cursor: pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  text-decoration:none;
  transition:background-color .15s ease;    
    /*
  border: none;
  background: transparent;
  padding: 15px 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 300;
  color: var(--black);
  cursor: pointer;
  */
}

.btn-primary{
  background:var(--primary);
  color:#fff;
  border:none;
  border-radius:10px;
  padding:15px 50px;
  font-size:16px;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  line-height:1;
  text-decoration:none;
  transition:background-color .15s ease;
}

.btn-primary.full{
  width:100%;
}

.btn-primary:hover{
  background:var(--primary-hover);
}

.btn-primary img{
  height:20px;
  filter:invert(95%) sepia(12%) saturate(420%) hue-rotate(330deg) brightness(101%) contrast(95%);
}

.login-hint{
  margin-top:30px;
  font-size:14px;
  text-align:center;
  color:#4b5563;
}

.login-hint a{
  color:var(--primary);
  font-weight:500;
  text-decoration:none;
}

.login-hint a:hover{
  text-decoration:underline;
  text-underline-offset:2px;
}

/* ===== Popup mensajes ===== */

.popup-msg{
  position:fixed;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%) scale(.95);
  min-width:260px;
  max-width:90%;
  background:rgba(235,88,90,.95);
  color:#fff;
  font-size:15px;
  text-align:center;
  padding:14px 20px;
  border-radius:10px;
  box-shadow:0 4px 12px rgba(0,0,0,.15);
  opacity:0;
  z-index:2000;
  pointer-events:none;
  transition:opacity .3s ease, transform .3s ease;
}

.popup-msg.show{
  opacity:1;
  transform:translate(-50%,-50%) scale(1);
}

/* ===== Modales ===== */

.modal{
  position:fixed;
  inset:0;
  z-index:2000;
  display:none;
}

.modal.open{
  display:block;
}

.modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.35);
}

.modal-dialog{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:min(520px,92vw);
  background:#fff;
  border-radius:12px;
  box-shadow:0 10px 30px rgba(0,0,0,.18);
  padding:18px 24px 24px;
}

.modal-close{
  position:absolute;
  top:16px;
  right:15px;
  border:0;
  background:transparent;
  padding:6px;
  line-height:0;
  cursor:pointer;
  z-index:3;
}

.modal-close img{
  display:block;
  width:20px;
  height:20px;
}

.modal-close:hover{
  opacity:.8;
}

.modal-title{
    text-align: center;
    font-weight: 500;
    font-size: 18px;
    color: var(--primary);
    margin: 0 0 20px 0;
}

.modal-list{
  max-height:360px;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:8px;
  margin:18px 0 24px;
  padding:10px;
}

.modal-row{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 8px;
  border-radius:8px;
  cursor:pointer;
}

.modal-row:hover{
  background:var(--secondary);
}

.modal-row input{
  width:18px;
  height:18px;
}

.modal-row input[type="checkbox"],
.modal-row input[type="radio"]{
  accent-color:var(--primary);
}

.modal-actions{
    /*
  display:flex;
  align-items:center;
  justify-content:center;
  */
  margin-top: 20px;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 12px;  
}

.modal-count{
  color:var(--muted);
  font-size:13px;
}

.modal-buttons{
  display:flex;
  gap: 12px;
  /*
  align-items:center;
  */
}

/* ===== Utilidades de margen ===== */

.mt20{ margin-top:20px; }
.mt30{ margin-top:30px; }
.mt40{ margin-top:40px; }
.mt50{ margin-top:50px; }
.mb20{ margin-bottom:20px; }
.mb30{ margin-bottom:30px; }
.mb40{ margin-bottom:40px; }
.mb50{ margin-bottom:50px; }

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

@media (max-width:1366px){
    .reg-left{
        padding-top:100px;
    }
}

@media (max-width:980px){
  .reg-wrap{
    flex-direction:column;
  }

  .reg-left{
    width:100%;
    padding:60px 20px;
    padding-top:100px;
  }

  .reg-right{
    width:100%;
    padding:60px 24px;
  }

  .brand{
    top:24px;
    left:calc(50% - 60px);
  }

  .actions{
    text-align:center;
  }

  .stepper{
    margin-top:12px;
    margin-bottom:22px;
  }

  .card{
    padding:24px 20px 32px;
    border-radius:14px;
  }
}
