/* ==========================================================
   SHARED UI – Wrapper + Card (Activation + Thankyou)
   ========================================================== */

/* Wrapper base */
:is(.rf-activate-wrap, .rf-thankyou-wrap){
  display: flex !important;
  justify-content: center !important;
  padding: var(--rf-wrap-pad-top) 0 var(--rf-wrap-pad-bot) 0 !important;
}

/* Card base */
:is(.rf-activate-card, .rf-thankyou-card){
  width: var(--rf-card-w) !important;
  margin: 0 auto !important;

  padding: 50px 34px 60px !important;
  border-radius: var(--rf-card-radius) !important;

  background: var(--rf-card-bg) !important;
  border: var(--rf-card-border) !important;
  box-shadow: var(--rf-card-shadow) !important;

  backdrop-filter: blur(var(--rf-blur)) !important;
  -webkit-backdrop-filter: blur(var(--rf-blur)) !important;
}

/* Shared mobile */
@media (max-width: 600px){
  :is(.rf-activate-wrap, .rf-thankyou-wrap){
    padding: var(--rf-mobile-wrap-pad-top) 0 var(--rf-mobile-wrap-pad-bot) 0 !important;
  }

  :is(.rf-activate-card, .rf-thankyou-card){
    padding: 36px 16px 50px !important;
  }
}

/* ==========================================================
   SHARED UI – Inputs / Focus / Primary Buttons
   (Activation fields + Tutor Login inputs + Activation button)
   ========================================================== */

/* Labels */
:is(.rf-auth-card, .rf-activate-card) label{
  display: block !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  opacity: 0.92 !important;
  color: var(--rf-label) !important;
}

/* Inputs (Auth + Activation) */
:is(.rf-auth-card, .rf-activate-card) input[type="text"],
:is(.rf-auth-card, .rf-activate-card) input[type="email"],
:is(.rf-auth-card, .rf-activate-card) input[type="password"],
.rf-activate-field input{
  width: 100% !important;
  box-sizing: border-box !important;
  padding: 14px 14px !important;
  border-radius: 14px !important;
  font-size: 16px !important;

  border: var(--rf-input-border) !important;
  background: var(--rf-input-bg) !important;
  outline: none !important;

  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease !important;
}

:is(.rf-auth-card, .rf-activate-card) input:focus,
.rf-activate-field input:focus{
  border-color: rgba(155, 245, 232, 0.95) !important;
  background: var(--rf-input-bg-focus) !important;
  box-shadow: var(--rf-input-ring) !important;
}

/* Primary buttons (Auth submit + Activate) */
.rf-auth-card button[type="submit"],
.rf-auth-card input[type="submit"],
.rf-activate-btn{
  font-size: 16px !important;
  font-weight: 500 !important;
  padding: 14px 34px !important;
  border-radius: 14px !important;

  background: var(--rf-btn-bg) !important;
  color: var(--rf-btn-text) !important;
  border: var(--rf-btn-border) !important;

  cursor: pointer !important;
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease !important;
}

.rf-auth-card button[type="submit"]:hover,
.rf-auth-card input[type="submit"]:hover,
.rf-activate-btn:hover{
  filter: brightness(1.03) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 10px 22px rgba(0,0,0,0.14) !important;
}

.rf-auth-card button[type="submit"]:active,
.rf-auth-card input[type="submit"]:active,
.rf-activate-btn:active{
  transform: translateY(0) !important;
  box-shadow: 0 6px 14px rgba(0,0,0,0.10) !important;
}

/* Disabled activation button */
.rf-activate-btn[disabled]{
  opacity: 0.70 !important;
  cursor: not-allowed !important;
  transform: none !important;
  box-shadow: none !important;
}

/* ==========================================================
   ACCESS ACTIVATION – Username block + fields + actions
   ========================================================== */

.rf-activate-user{
  margin: 10px 0 26px 0 !important;
  text-align: center !important;
}

.rf-activate-user-label{
  margin: 0 0 12px 0 !important;
}

.rf-activate-user-value{
  display: inline-block !important;
  padding: 10px 16px !important;
  border-radius: 14px !important;

  background: rgba(255,255,255,0.10) !important;
  border: var(--rf-input-border) !important;

  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.3 !important;

  color: var(--rf-text) !important;

  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.rf-activate-form{
  max-width: 640px !important;
  margin: 0 auto !important;
}

.rf-activate-field{
  margin-bottom: 22px !important;
}

.rf-activate-field:last-of-type{
  margin-bottom: 0 !important;
}

.rf-activate-field label{
  margin-bottom: 10px !important;
}

/* Activation actions layout */
.rf-activate-actions{
  display: flex !important;
  justify-content: center !important;
  margin-top: 46px !important;
  padding-bottom: 10px !important;
}

/* Activation notices/help */
.rf-activate-resend-intro{
  margin: 24px 0 18px 0 !important;
  font-size: 15px !important;
  text-align: center !important;
  opacity: 0.95 !important;
  color: var(--rf-text) !important;
}

.rf-activate-help{
  margin-top: 8px !important;
  font-size: 14px !important;
  line-height: 1.45 !important;
  opacity: 0.90 !important;
  color: var(--rf-text) !important;
}

.rf-activate-help strong{
  font-weight: 600 !important;
}

.rf-activate-error{
  margin-top: 10px !important;
  padding: 10px 12px !important;
  border-radius: 12px !important;
  background: rgba(255, 84, 84, 0.12) !important;
  border: 1px solid rgba(255, 84, 84, 0.35) !important;
  color: rgba(255, 240, 240, 0.95) !important;
  font-size: 14px !important;
}

.rf-activate-notice{
  margin: 18px auto 0 auto !important;
  max-width: 640px !important;
  padding: 14px !important;
  border-radius: 14px !important;
  background: rgba(255,255,255,0.10) !important;
  border: var(--rf-link-border) !important;
  text-align: center !important;
  font-size: 15px !important;
  line-height: 1.5 !important;
  opacity: 0.96 !important;
  color: var(--rf-text) !important;
}

/* Resend message spacing */
.rf-resend-msg{
  margin-bottom: 16px !important;
}

.rf-activate-error.rf-resend-msg{
  margin-top: 14px !important;
  margin-bottom: 18px !important;
}

/* Activation mobile tweaks */
@media (max-width: 600px){
  .rf-activate-btn{
    width: 100% !important;
    max-width: 360px !important;
  }
}

/* ==========================================================
   ACCESS ACTIVATION – Newsletter Opt-in (clean + stable)
   ========================================================== */

.rf-newsletter-optin{
  margin-top: 18px !important;
  padding: 18px !important;
  border-radius: 14px !important;
  background: rgba(255,255,255,0.10) !important;
  border: var(--rf-link-border) !important;
}

.rf-newsletter-optin label{
  display: flex !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: 12px !important;

  margin: 0 !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
  opacity: 0.96 !important;
  text-align: left !important;
  color: var(--rf-label) !important;
}

.rf-newsletter-optin input[type="checkbox"]{
  flex: 0 0 auto !important;
  width: 18px !important;
  height: 18px !important;
  margin-top: 4px !important;
  accent-color: var(--rf-btn-bg) !important;
}

.rf-newsletter-optin .rf-newsletter-legal{
  display: block !important;
  margin-top: 8px !important;
  font-size: 13.5px !important;
  line-height: 1.55 !important;
  opacity: 0.90 !important;
  color: rgba(220,255,250,0.88) !important;
}

.rf-newsletter-optin .rf-newsletter-legal a{
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  border-radius: 0 !important;

  color: var(--rf-text) !important;
  text-decoration: underline !important;

  box-shadow: none !important;
  transform: none !important;
}

.rf-newsletter-optin .rf-newsletter-legal a:hover{
  filter: brightness(1.06) !important;
}

/* ==========================================================
   THANKYOU – Text/Typo Fix (Desktop + Mobile)
   Scope: .rf-thankyou-card
   ========================================================== */

/* Mehr Luft in der Karte (desktop) */
.rf-thankyou-card{
  padding: 44px 40px 54px !important;
}

/* Text mittig */
.rf-thankyou-card,
.rf-thankyou-card .elementor-widget-text-editor{
  text-align: center !important;
}

/* Fix: iOS/Android Autosize -> verhindert "plötzlich größer" */
.rf-thankyou-card,
.rf-thankyou-card *{
  -webkit-text-size-adjust: 100% !important;
  text-size-adjust: 100% !important;
}

/* Typo: leichter Grundschnitt, Hervorhebung bleibt über strong/b */
.rf-thankyou-card .elementor-widget-text-editor,
.rf-thankyou-card .elementor-widget-text-editor *{
  font-weight: 300 !important;
  line-height: 1.65 !important;
}

/* Absätze */
.rf-thankyou-card .elementor-widget-text-editor p{
  margin: 0 0 14px 0 !important;
}

.rf-thankyou-card .elementor-widget-text-editor p:last-child{
  margin-bottom: 0 !important;
}

/* Hervorhebungen */
.rf-thankyou-card .elementor-widget-text-editor b,
.rf-thankyou-card .elementor-widget-text-editor strong{
  font-weight: 700 !important;
}

/* Kein Hyphenation / kein Weird Wrapping */
.rf-thankyou-card .elementor-widget-text-editor,
.rf-thankyou-card .elementor-widget-text-editor *{
  hyphens: none !important;
  -webkit-hyphens: none !important;
  -ms-hyphens: none !important;

  word-break: normal !important;
  overflow-wrap: normal !important;
}

/* Zusätzlicher ID-Scope für gezielte Thankyou-Fixes */
#rf-thankyou-card *{
  -webkit-text-size-adjust: 100% !important;
  text-size-adjust: 100% !important;
}

/* Mobile Feinschliff */
@media (max-width: 600px){
  .rf-thankyou-card{
    padding: 34px 22px 42px !important;
  }

  .rf-thankyou-card .elementor-widget-text-editor{
    font-size: 15.5px !important;
    line-height: 1.7 !important;
  }

  .rf-thankyou-card .elementor-widget-text-editor p{
    margin-bottom: 12px !important;
  }
}

#rf-thankyou-card{
  /* Platzhalter für spätere gezielte ID-Regeln */
}

/* ==========================================================
   TUTOR LOGIN – RF COMPONENT SHELL + LOCAL TUTOR INTERNALS
   Scope: Elementor container class "rf-auth-card"

   Hinweis:
   Dieser Block bleibt bewusst in rf-components.css, obwohl hier
   auch Tutor-Selektoren vorkommen. Grund:
   Die Regeln gehören funktional zu einem neu definierten,
   projektspezifischen Inhaltsbereich (Login-Card) und sollen
   deshalb zusammen mit der Card-Komponente gepflegt werden.

   In rf-tutor-overrides.css landen ausschließlich solche Regeln,
   die direkt aus den verglichenen Tutor-CSS-Dateien extrahiert wurden.
   ========================================================== */

.rf-auth-card{
  width: var(--rf-card-w-auth) !important;
  margin: 0 auto !important;

  padding: 34px 24px 40px !important;
  border-radius: var(--rf-card-radius) !important;

  background: var(--rf-card-bg) !important;
  border: var(--rf-card-border) !important;
  box-shadow: var(--rf-card-shadow) !important;

  backdrop-filter: blur(var(--rf-blur)) !important;
  -webkit-backdrop-filter: blur(var(--rf-blur)) !important;
}

/* Tutor headings / welcome elements entfernen */
.rf-auth-card .tutor-login-wrap :where(h1,h2,h3,.tutor-login-title,.tutor-login-heading,.tutor-fs-5.tutor-color-black.tutor-mb-32){
  display: none !important;
}

/* Keep first element from pushing down */
.rf-auth-card .tutor-login-wrap > *{
  margin-top: 0 !important;
}

/* Form container reset */
.rf-auth-card :where(.tutor-login-wrap,.tutor-login-form-wrap,form){
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* Checkbox row */
.rf-auth-card .tutor-form-check{
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
}

/* Secondary links (Passwort vergessen etc.) */
.rf-auth-card a{
  padding: 12px 18px !important;
  border-radius: 14px !important;

  background: var(--rf-link-bg) !important;
  border: var(--rf-link-border) !important;

  color: var(--rf-text) !important;
  text-decoration: none !important;

  transition: transform .15s ease, box-shadow .15s ease !important;
}

.rf-auth-card a:hover{
  transform: translateY(-1px) !important;
  box-shadow: 0 10px 22px rgba(0,0,0,0.10) !important;
}

/* Remove registration prompt + register link */
.rf-auth-card .tutor-text-center.tutor-mt-20,
.rf-auth-card a[href*="register"]{
  display: none !important;
}

/* Login mobile */
@media (max-width: 600px){
  .rf-auth-card{
    padding: 28px 16px 34px !important;
  }

  /* Checkbox + "Passwort vergessen?" stacking */
  .rf-auth-card .tutor-login-wrap :where(.tutor-form-check,.tutor-d-flex,.tutor-align-center){
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 12px !important;
  }

  .rf-auth-card .tutor-form-check label{
    width: 100% !important;
    justify-content: flex-start !important;
  }

  /* Full width buttons / links */
  .rf-auth-card :where(a,button,button[type="submit"],input[type="submit"],.tutor-btn,.tutor-button){
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    margin: 0 !important;
  }

  .rf-auth-card :where(a){
    display: flex !important;
    justify-content: center !important;
  }

  .rf-auth-card :where(button,button[type="submit"],input[type="submit"],.tutor-btn,.tutor-button){
    display: block !important;
  }

  /* Equal heights */
  .rf-auth-card :where(button[type="submit"],a){
    min-height: 48px !important;
  }
}