:root {
   /* --registro-dark: #171718; */
   --registro-dark: #6e0b6c;
   --registro-text: #344767;
   --registro-muted: #67748e;
   --registro-border: #e9ecef;
}

* {
   box-sizing: border-box;
}

body.registro-page {
   min-height: 100vh;
   margin: 0;
   color: var(--registro-text);
   background:
      radial-gradient(circle at 8% 10%,
         rgba(121, 40, 202, 0.1),
         transparent 28%),
      radial-gradient(circle at 92% 75%,
         rgba(203, 12, 159, 0.08),
         transparent 30%),
      #ffffff;
}

.registro-header {
   position: relative;
   z-index: 20;
   padding: 13px 0;
   background: rgba(255, 255, 255, 0.9);
   border-bottom: 1px solid rgba(233, 236, 239, 0.9);
   backdrop-filter: blur(15px);
}

.registro-logo {
   display: block;
   width: auto;
   max-width: 160px;
   max-height: 55px;
   object-fit: contain;
}

.registro-section {
   display: flex;
   align-items: center;
   min-height: calc(100vh - 165px);
   padding: 75px 0;
}

.registro-intro {
   max-width: 540px;
}

.registro-label {
   display: inline-flex;
   margin-bottom: 20px;
   padding: 8px 16px;
   color: #ffffff;
   background: linear-gradient(310deg, #7928ca, #ff0080);
   border-radius: 999px;
   font-size: 11px;
   font-weight: 700;
   letter-spacing: 1px;
   text-transform: uppercase;
}

.registro-title {
   margin-bottom: 22px;
   color: var(--registro-dark);
   font-size: clamp(2.6rem, 5vw, 4.8rem);
   font-weight: 700;
   line-height: 1.04;
   letter-spacing: -2px;
}

.registro-description {
   max-width: 500px;
   margin-bottom: 38px;
   color: var(--registro-muted);
   font-size: 17px;
   line-height: 1.8;
}

.registro-details {
   display: flex;
   flex-direction: column;
   gap: 22px;
}

.registro-detail {
   display: flex;
   align-items: flex-start;
   gap: 16px;
}

.registro-detail-icon {
   display: flex;
   flex: 0 0 46px;
   align-items: center;
   justify-content: center;
   width: 46px;
   height: 46px;
   color: #ffffff;
   background: var(--registro-dark);
   border-radius: 14px;
   box-shadow: 0 10px 20px rgba(29, 29, 36, 0.16);
}

.registro-detail h6 {
   margin-bottom: 4px;
   color: var(--registro-dark);
   font-size: 15px;
   font-weight: 700;
}

.registro-detail p {
   margin-bottom: 0;
   color: var(--registro-muted);
   font-size: 13px;
   line-height: 1.6;
}

.registro-card {
   overflow: hidden;
   border: 1px solid rgba(233, 236, 239, 0.9);
   border-radius: 24px;
   box-shadow: 0 25px 70px rgba(50, 50, 93, 0.13);
}

.form-label {
   margin-bottom: 8px;
   color: var(--registro-text);
   font-size: 13px;
   font-weight: 600;
}

.form-control,
.form-select {
   min-height: 49px;
   border-radius: 12px;
}

.form-control:focus,
.form-select:focus {
   border-color: rgba(121, 40, 202, 0.45);
   box-shadow: 0 0 0 3px rgba(121, 40, 202, 0.1);
}

.form-check-input:checked {
   background-color: var(--registro-dark);
   border-color: var(--registro-dark);
}

.registro-submit {
   min-height: 50px;
   margin-bottom: 0;
   border-radius: 12px;
   font-weight: 700;
   text-transform: none;
}

.registro-footer {
   padding: 27px 0;
   color: var(--registro-muted);
   background: #ffffff;
   border-top: 1px solid var(--registro-border);
}

.registro-footer-link {
   margin-left: 22px;
   color: var(--registro-muted);
   font-size: 13px;
}

.registro-footer-link:hover {
   color: var(--registro-dark);
}

@media (max-width: 991.98px) {
   .registro-section {
      padding: 55px 0;
   }

   .registro-title {
      letter-spacing: -1px;
   }
}

@media (max-width: 767.98px) {
   .registro-header .btn {
      padding-right: 12px;
      padding-left: 12px;
      font-size: 10px;
   }

   .registro-logo {
      max-width: 125px;
   }

   .registro-section {
      padding: 42px 0;
   }

   .registro-title {
      font-size: 2.5rem;
   }

   .registro-description {
      font-size: 15px;
   }

   .registro-footer-link {
      display: inline-block;
      margin: 8px 10px 0;
   }
}

/* input telefónico */
.iti {
   width: 100%;
}

.iti .form-control {
   width: 100%;
   min-height: 49px;
   padding-left: 105px;
   border-radius: 12px;
}

.iti__selected-country-primary {
   border-radius: 12px 0 0 12px;
}

.iti__country-container {
   border-radius: 12px 0 0 12px;
}

.iti__dropdown-content {
   z-index: 9999;
   border: 1px solid #e9ecef;
   border-radius: 14px;
   box-shadow: 0 16px 40px rgba(50, 50, 93, 0.15);
}

.iti__search-input {
   min-height: 42px;
   padding: 9px 12px;
   border: 1px solid #d2d6da;
   border-radius: 9px;
   outline: none;
}

.iti__search-input:focus {
   border-color: rgba(121, 40, 202, 0.45);
   box-shadow: 0 0 0 3px rgba(121, 40, 202, 0.1);
}

.iti__country {
   padding-top: 9px;
   padding-bottom: 9px;
}

.iti__country:hover,
.iti__country.iti__highlight {
   background-color: #f5f5f7;
}

.telefono-error {
   display: block;
   min-height: 18px;
   margin-top: 6px;
   color: #ea0606;
   font-size: 12px;
}

.iti .form-control.is-invalid {
   border-color: #ea0606;
   background-image: none;
}

@media (max-width: 575.98px) {
   .iti__dropdown-content {
      max-width: calc(100vw - 40px);
   }
}
 

.registro-success-popup {
   border-radius: 24px;
   padding: 1.5rem;
}

.registro-success-popup .swal2-title {
   color: var(--registro-dark);
   font-size: 2rem;
   font-weight: 700;
}

.registro-success-popup .swal2-html-container {
   color: var(--registro-muted);
   font-size: 15px;
   line-height: 1.7;
}

.registro-success-button {
   min-width: 210px;
   min-height: 48px;
   border-radius: 12px !important;
   font-weight: 700;
} 

.registro-verificacion-info {
   position: relative;
   display: flex;
   align-items: flex-start;
   gap: 16px;
   margin-bottom: 24px;
   padding: 20px;
   overflow: hidden;
   background: #f8f9fa;
   border: 1px solid #e9ecef;
   border-radius: 16px;
}

.registro-verificacion-info::before {
   position: absolute;
   top: 0;
   left: 0;
   width: 4px;
   height: 100%;
   content: "";
   background: linear-gradient(
      180deg,
      #7928ca 0%,
      #ff0080 100%
   );
}

.registro-verificacion-icon {
   display: flex;
   flex: 0 0 46px;
   align-items: center;
   justify-content: center;
   width: 46px;
   height: 46px;
   color: #ffffff;
   background: #1d1d24;
   border-radius: 13px;
   box-shadow: 0 8px 18px rgba(29, 29, 36, 0.14);
}

.registro-verificacion-icon i {
   font-size: 18px;
}

.registro-verificacion-content {
   flex: 1;
}

.registro-verificacion-label {
   display: inline-block;
   margin-bottom: 5px;
   color: #cb0c9f;
   font-size: 10px;
   font-weight: 700;
   letter-spacing: .8px;
   text-transform: uppercase;
}

.registro-verificacion-content h5 {
   margin-bottom: 6px;
   color: #344767;
   font-size: 16px;
   font-weight: 700;
}

.registro-verificacion-content p {
   margin-bottom: 0;
   color: #67748e;
   font-size: 13px;
   line-height: 1.6;
}

@media (max-width: 575.98px) {
   .registro-verificacion-info {
      padding: 18px;
   }

   .registro-verificacion-icon {
      flex-basis: 42px;
      width: 42px;
      height: 42px;
   }

   .registro-verificacion-content h5 {
      font-size: 15px;
   }

   .registro-verificacion-content p {
      font-size: 12px;
   }
}