.sessions-page {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) minmax(320px, 420px);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
  padding: clamp(2.5rem, 6vw, 4rem) clamp(1.5rem, 5vw, 4rem);
}

@media (max-width: 880px) {
  .sessions-page {
    grid-template-columns: 1fr;
    padding: clamp(2rem, 8vw, 3rem) clamp(1.25rem, 6vw, 2rem);
  }
}

.sessions-intro {
  perspective: 1000px;
  transform-style: preserve-3d;
  display: flex;
  flex-direction: column;
  gap: clamp(1.2rem, 4vw, 1.8rem);
}

.sessions-intro__text {
  margin: 0;
  letter-spacing: 0.01em;
  position: relative;
  transform-style: preserve-3d;
}

.sessions-intro__lead {
  font-size: clamp(2rem, 4vw, 2.8rem);
  line-height: 1.15;
  font-weight: 700;
  color: #17233a;
}

.sessions-intro__highlight {
  display: inline-block;
  color: #174b7a;
  text-shadow: 0 0 0 rgba(44, 136, 255, 0.25);
  transition: transform 0.6s ease, color 0.6s ease, text-shadow 0.6s ease;
  will-change: transform;
}

.sessions-intro__text:hover .sessions-intro__highlight {
  transform: translateZ(48px) scale(1.05);
  color: #2a8fff;
  text-shadow: 0 0 18px rgba(42, 143, 255, 0.55);
  animation: sessions-highlight-shimmer 1.8s ease-in-out infinite alternate;
}

@keyframes sessions-highlight-shimmer {
  0% {
    text-shadow: 0 0 12px rgba(42, 143, 255, 0.4);
  }
  50% {
    text-shadow: 0 0 20px rgba(80, 170, 255, 0.75);
  }
  100% {
    text-shadow: 0 0 12px rgba(42, 143, 255, 0.4);
  }
}

.sessions-intro__middle {
  font-size: clamp(1.05rem, 2.2vw, 1.35rem);
  line-height: 1.6;
  color: #243046;
  margin: 0;
}

.sessions-intro__closing {
  font-size: clamp(1rem, 2vw, 1.2rem);
  line-height: 1.6;
  color: #36435a;
  margin: 0;
  font-weight: 600;
}

.sessions-auth {
  position: relative;
  background: linear-gradient(155deg, rgba(236, 239, 244, 0.95), rgba(222, 227, 235, 0.98));
  border-radius: 28px;
  padding: clamp(1.75rem, 4vw, 2.4rem);
  box-shadow: 0 24px 50px rgba(15, 33, 50, 0.12);
  overflow: hidden;
}

.sessions-auth--single {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.sessions-auth__toggle {
  display: none;
}

.sessions-auth__tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}

.sessions-auth__tab {
  display: block;
  text-align: center;
  padding: 0.65rem 1rem;
  border-radius: 16px;
  font-weight: 600;
  font-size: 0.95rem;
  color: #1e2a3d;
  background: rgba(255, 255, 255, 0.5);
  box-shadow: inset 0 0 0 1px rgba(30, 42, 61, 0.08);
  cursor: pointer;
  transition: background 0.3s ease, color 0.3s ease, box-shadow 0.3s ease;
}

#sessions-auth-tab-login:checked ~ .sessions-auth__tabs .sessions-auth__tab--login,
#sessions-auth-tab-signup:checked ~ .sessions-auth__tabs .sessions-auth__tab--signup,
#sessions-auth-tab-forgot:checked ~ .sessions-auth__tabs .sessions-auth__tab--forgot {
  background: #2a3448;
  color: #f7fbff;
  box-shadow: 0 12px 28px rgba(30, 42, 61, 0.22);
}

.sessions-auth__panes {
  position: relative;
}

.sessions-auth__pane {
  display: none;
}

#sessions-auth-tab-login:checked ~ .sessions-auth__panes .sessions-auth__pane--login {
  display: block;
}

#sessions-auth-tab-signup:checked ~ .sessions-auth__panes .sessions-auth__pane--signup {
  display: block;
}

#sessions-auth-tab-forgot:checked ~ .sessions-auth__panes .sessions-auth__pane--forgot {
  display: block;
}

.sessions-auth__title {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 700;
  color: #17233a;
  text-align: center;
}

.sessions-forgot__wrapper {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.sessions-form {
  display: grid;
  gap: 1.15rem;
}

.sessions-form__field {
  display: grid;
  gap: 0.45rem;
}

.sessions-form__field--birthdate {
  gap: 0.55rem;
}

.sessions-form__label {
  font-size: 0.92rem;
  font-weight: 600;
  color: #2e3a4c;
}

.sessions-form__birthdate-inputs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.6rem;
}

.sessions-form__birthdate-select {
  padding: 0.6rem 0.8rem;
  border-radius: 12px;
  border: 1px solid rgba(30, 42, 61, 0.18);
  background: rgba(255, 255, 255, 0.9);
  font-size: 0.95rem;
  color: #2e3a4c;
  appearance: none;
}

.sessions-form__birthdate-select:focus {
  outline: none;
  border-color: #2a8fff;
  box-shadow: 0 0 0 3px rgba(42, 143, 255, 0.18);
}

.sessions-form__input {
  padding: 0.6rem 0.8rem;
  border-radius: 12px;
  border: 1px solid rgba(30, 42, 61, 0.18);
  background: rgba(255, 255, 255, 0.9);
  font-size: 1rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.sessions-form__input:focus {
  outline: none;
  border-color: #2a8fff;
  box-shadow: 0 0 0 3px rgba(42, 143, 255, 0.18);
}

.sessions-form__hint {
  color: #526079;
  font-size: 0.78rem;
}

.sessions-form__field--compact {
  margin-top: -0.5rem;
}

.sessions-form__checkbox {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.9rem;
  color: #36435a;
}

.sessions-form__checkbox-input {
  width: 1rem;
  height: 1rem;
}

.sessions-form__submit {
  background: #2a3448;
  color: #f7fbff;
  border: none;
  border-radius: 16px;
  padding: 0.75rem 1rem;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.sessions-form__submit:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 24px rgba(30, 42, 61, 0.18);
}

.sessions-destinations {
  border: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.8rem;
}

.sessions-destinations__legend {
  font-size: 0.95rem;
  font-weight: 700;
  color: #1d273a;
}

.sessions-destinations__choices {
  display: grid;
  gap: 0.6rem;
}

.sessions-destinations__choice {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: 0.65rem;
  padding: 0.55rem 0.75rem;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: inset 0 0 0 1px rgba(30, 42, 61, 0.08);
  cursor: pointer;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.sessions-destinations__choice:hover {
  transform: translateY(-1px);
  box-shadow: inset 0 0 0 1px rgba(42, 143, 255, 0.45);
}

.sessions-destinations__radio {
  margin-top: 0.35rem;
  width: 1rem;
  height: 1rem;
}

.sessions-destinations__label {
  font-weight: 600;
  color: #1f2b3c;
  font-size: 0.95rem;
  grid-column: 2;
  justify-self: start;
}

.sessions-destinations__caption {
  font-size: 0.82rem;
  color: #4a5668;
  grid-column: 2;
  justify-self: start;
}

.sessions-signup {
  display: grid;
  gap: 1.2rem;
}

.sessions-signup__intro {
  margin: 0;
  font-size: 0.95rem;
  color: #243046;
}

.sessions-signup__footer {
  margin: 0;
  font-size: 0.9rem;
  color: #4a5668;
}

.sessions-signup__switch {
  color: #2a8fff;
  cursor: pointer;
  font-weight: 600;
}

@media (max-width: 600px) {
  .sessions-auth {
    padding: clamp(1.5rem, 6vw, 2rem);
  }

  .sessions-destinations__choice {
    grid-template-columns: 1fr;
    gap: 0.4rem;
  }

  .sessions-destinations__radio {
    margin: 0;
  }

  .sessions-destinations__label,
  .sessions-destinations__caption {
    grid-column: 1;
  }

  .sessions-form__birthdate-inputs {
    gap: 0.45rem;
  }
}

/* Google signin methods horizontal layout */
.sessions-signup-methods {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 1.5rem 0;
}

.sessions-signup-methods__divider {
  color: #666;
  font-size: 0.9rem;
  white-space: nowrap;
}

.sessions-google-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.5rem;
  background: #fff;
  color: #1f2b3c;
  border: 2px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.2s;
  font-size: 1rem;
}

.sessions-google-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.sessions-google-btn.enabled {
  border-color: #4285f4;
}

.sessions-google-btn:not(:disabled):hover {
  background: #f8f9fa;
  border-color: #4285f4;
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

.sessions-login-methods {
  margin-top: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  align-items: center;
  text-align: center;
}

.sessions-login-methods__intro {
  color: #666;
  font-size: 0.9rem;
}

.sessions-google-btn-form {
  width: 100%;
  margin: 0;
}
.sessions-google-btn-form .sessions-google-btn--login {
  width: 100%;
}

.sessions-google-btn--login {
  width: 100%;
  justify-content: center;
}

.sessions-google-btn__icon {
  font-size: 1.2rem;
}

.sessions-google-btn__text {
  font-weight: 500;
}

.sessions-errors {
  background: rgba(219, 68, 55, 0.1);
  border: 1px solid rgba(219, 68, 55, 0.4);
  color: #8b1c13;
  border-radius: 12px;
  padding: 0.75rem 1rem;
  font-size: 0.92rem;
}

.sessions-form__field--forgot {
  text-align: right;
  margin-top: -0.25rem;
}

.sessions-form__link {
  color: #4285f4;
  text-decoration: none;
  font-size: 0.9rem;
  cursor: pointer;
}

.sessions-form__link--toggle {
  display: inline-block;
}

.sessions-form__link:hover {
  text-decoration: underline;
}

.sessions-forgot__intro {
  margin: 0 0 1rem;
  color: #36435a;
  font-size: 0.95rem;
  text-align: center;
}

.sessions-form--forgot {
  gap: 1rem;
}

.sessions-forgot__footer {
  text-align: center;
  margin-top: 0.5rem;
}
