/* ==========================================================================
   REGISTER / LOGIN — Centered minimal + branded watermark art + field icons
   File: register.css
   ========================================================================== */

/* Icon sprites (brand primary stroke) — Tutor field names from registration template */
body.narimane-tutor-auth-page {
  --reg-icon-user: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20fill%3D'none'%20viewBox%3D'0%200%2024%2024'%20stroke%3D%22%238f3f06%22%20stroke-width%3D'1.5'%3E%3Cpath%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%20d%3D'M15.75%206a3.75%203.75%200%2011-7.5%200%203.75%203.75%200%20017.5%200zM4.501%2020.118a7.5%207.5%200%200114.998%200A17.933%2017.933%200%200112%2021.75c-2.676%200-5.216-.584-7.499-1.632z'%2F%3E%3C%2Fsvg%3E");
  --reg-icon-id: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20fill%3D'none'%20viewBox%3D'0%200%2024%2024'%20stroke%3D%22%238f3f06%22%20stroke-width%3D'1.5'%3E%3Cpath%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%20d%3D'M15.75%205.25a3%203%200%20013%203m3%200a6%206%200%2001-7.029%205.912c-.563-.097-1.159.026-1.563.43L10.5%2017.25H8.25v2.25H6v2.25H3v-2.677c0-1.281.56-2.51%201.542-3.343l5.143-4.286a.75.75%200%2000.154-.838L9.818%206.5a3%203%200%20012.475-3.346%203%203%200%20013.346%202.475z'%2F%3E%3C%2Fsvg%3E");
  --reg-icon-mail: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20fill%3D'none'%20viewBox%3D'0%200%2024%2024'%20stroke%3D%22%238f3f06%22%20stroke-width%3D'1.5'%3E%3Cpath%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%20d%3D'M21.75%206.75v10.5a2.25%202.25%200%2001-2.25%202.25h-15a2.25%202.25%200%2001-2.25-2.25V6.75m19.5%200A2.25%202.25%200%200019.5%204.5h-15a2.25%202.25%200%2000-2.25%202.25m19.5%200v.243a2.25%202.25%200%2001-1.07%201.916l-7.5%204.615a2.25%202.25%200%2001-2.36%200L3.32%208.91a2.25%202.25%200%2001-1.07-1.916V6.75'%2F%3E%3C%2Fsvg%3E");
  --reg-icon-lock: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20fill%3D'none'%20viewBox%3D'0%200%2024%2024'%20stroke%3D%22%238f3f06%22%20stroke-width%3D'1.5'%3E%3Cpath%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%20d%3D'M16.5%2010.5V6.75a4.5%204.5%200%2010-9%200v3.75m-.75%2011.25h10.5a2.25%202.25%200%20002.25-2.25v-6.75a2.25%202.25%200%2000-2.25-2.25H6.75a2.25%202.25%200%2000-2.25%202.25v6.75a2.25%202.25%200%20002.25%202.25z'%2F%3E%3C%2Fsvg%3E");
  --reg-icon-calendar: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20fill%3D'none'%20viewBox%3D'0%200%2024%2024'%20stroke%3D%22%238f3f06%22%20stroke-width%3D'1.5'%3E%3Cpath%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%20d%3D'M6.75%203v2.25M17.25%203v2.25M3%2018.75V7.5a2.25%202.25%200%20012.25-2.25h13.5A2.25%202.25%200%200121%207.5v11.25m-18%200A2.25%202.25%200%20005.25%2021h13.5a2.25%202.25%200%20002.25-2.25m-18%200v-7.5A2.25%202.25%200%20015.25%209h13.5a2.25%202.25%200%20012.25%202.25v7.5'%2F%3E%3C%2Fsvg%3E");
  --reg-icon-briefcase: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20fill%3D'none'%20viewBox%3D'0%200%2024%2024'%20stroke%3D%22%238f3f06%22%20stroke-width%3D'1.5'%3E%3Cpath%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%20d%3D'M20.25%2014.15v4.125c0%20.621-.504%201.125-1.125%201.125H4.875c-.621%200-1.125-.504-1.125-1.125v-4.125M8.25%2021h7.5v-2.25H8.25V21zM12%2012.75h.008v.008H12v-.008zM3.375%209.75h17.25c.621%200%201.125-.504%201.125-1.125V5.25c0-.621-.504-1.125-1.125-1.125H3.375c-.621%200-1.125.504-1.125%201.125v3.375c0%20.621.504%201.125%201.125%201.125z'%2F%3E%3C%2Fsvg%3E");
  --reg-icon-users: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20fill%3D'none'%20viewBox%3D'0%200%2024%2024'%20stroke%3D%22%238f3f06%22%20stroke-width%3D'1.5'%3E%3Cpath%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%20d%3D'M15%2019.128a9.38%209.38%200%20002.625.372%209.337%209.337%200%20004.121-.952%204.125%204.125%200%2000-7.533-2.493M15%2019.128v-.003c0-1.113-.285-2.16-.786-3.07M15%2019.128v.106A12.318%2012.318%200%20018.624%2021c-2.331%200-4.512-.645-6.374-1.766l-.001-.109a6.375%206.375%200%200111.964-3.07M12%206.375a3.375%203.375%200%2011-6.75%200%203.375%203.375%200%20016.75%200zm8.25%202.25a2.625%202.625%200%2011-5.25%200%202.625%202.625%200%20015.25%200z'%2F%3E%3C%2Fsvg%3E");
  --reg-chevron: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20fill%3D'none'%20viewBox%3D'0%200%2024%2024'%20stroke%3D'%238b8b8b'%20stroke-width%3D'2'%3E%3Cpath%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%20d%3D'M19.5%208.25l-7.5%207.5-7.5-7.5'%2F%3E%3C%2Fsvg%3E");
}

/* --------------------------------------------------------------------------
   BASE — natural-scroll shell (no viewport locks)
   -------------------------------------------------------------------------- */

html:has(body.narimane-tutor-auth-page) {
  /* No height/overflow constraints — let the document scroll */
}

body.narimane-tutor-auth-page {
  overflow-x: hidden;
  margin: 0;
}

body.narimane-tutor-auth-page #page.narimane-tutor-auth-shell {
  display: flex;
  flex-direction: column;
  min-height: 100dvh;
}

body.narimane-tutor-auth-page #content.narimane-tutor-auth-shell__content {
  flex: 1;
  display: flex;
  flex-direction: column;
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

body.narimane-tutor-auth-page .site-content,
body.narimane-tutor-auth-page #primary {
  padding: 0 !important;
  margin: 0 !important;
}

body.narimane-tutor-auth-page #primary.site-main.reg-main,
body.narimane-tutor-auth-page #primary.reg-main {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.reg-main {
  width: 100%;
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 0 !important;
  margin: 0 !important;
}

/* --------------------------------------------------------------------------
   SCREEN — themed backdrop + watermark layer
   -------------------------------------------------------------------------- */

.reg-screen {
  flex: 1;
  width: 100%;
  min-height: 100dvh;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(2.5rem, 6vh, 5rem) clamp(1.25rem, 4vw, 2.5rem) clamp(2.5rem, 6vh, 5rem);
  position: relative;
  isolation: isolate;
  background-color: var(--bg-main);
  background-image:
    radial-gradient(ellipse 90% 55% at 50% -15%, rgba(167, 77, 9, 0.09), transparent 55%),
    radial-gradient(ellipse 70% 45% at 100% 100%, rgba(205, 140, 95, 0.11), transparent 50%),
    radial-gradient(ellipse 50% 35% at 0% 85%, rgba(247, 233, 225, 0.9), transparent 55%);
}

/* Decorative SVG layer — fixed so it always covers the viewport */
.reg-screen__decor {
  position: fixed;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
  color: var(--color-primary-500);
}

.reg-decor {
  position: absolute;
  display: block;
  opacity: 0.52;
  transition: opacity var(--duration-normal) var(--ease-out);
}

.reg-decor--blob {
  animation: regFloat 22s ease-in-out infinite;
}

.reg-decor--blob1 {
  width: min(48vmin, 440px);
  height: auto;
  top: -6%;
  left: -8%;
  animation-delay: 0s;
}

.reg-decor--blob2 {
  width: min(36vmin, 320px);
  bottom: -4%;
  right: -6%;
  animation: regFloat 28s ease-in-out infinite reverse;
  animation-delay: -4s;
}

.reg-decor--doodle {
  animation: regDrift 16s ease-in-out infinite;
}

.reg-decor--cross1 {
  width: 42px;
  height: 42px;
  top: 18%;
  right: 14%;
  opacity: 0.42;
  animation-delay: -2s;
}

.reg-decor--cross2 {
  width: 28px;
  height: 28px;
  bottom: 28%;
  left: 12%;
  opacity: 0.38;
  animation-delay: -7s;
}

.reg-decor--tri {
  width: 52px;
  height: auto;
  top: 42%;
  left: 8%;
  opacity: 0.36;
  animation-delay: -3s;
}

.reg-decor--squiggle {
  width: min(28vw, 200px);
  height: auto;
  top: 52%;
  right: 10%;
  opacity: 0.34;
  animation: regWiggle 14s ease-in-out infinite;
}

.reg-decor--star {
  width: 30px;
  height: 30px;
  top: 24%;
  left: 22%;
  animation: regTwinkle 5s ease-in-out infinite;
}

.reg-decor--arrow {
  width: min(22vw, 160px);
  height: auto;
  bottom: 18%;
  right: 6%;
  opacity: 0.4;
  color: var(--color-primary-600);
  animation: regFloat 18s ease-in-out infinite;
  animation-delay: -6s;
}

@keyframes regFloat {
  0%, 100% { transform: translate(0, 0) rotate(0deg); }
  33% { transform: translate(10px, -14px) rotate(2deg); }
  66% { transform: translate(-8px, 8px) rotate(-1.5deg); }
}

@keyframes regDrift {
  0%, 100% { transform: translate(0, 0); opacity: 0.28; }
  50% { transform: translate(-12px, 10px); opacity: 0.42; }
}

@keyframes regWiggle {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(14px); }
}

@keyframes regTwinkle {
  0%, 100% { transform: scale(1) rotate(0deg); opacity: 0.18; }
  50% { transform: scale(1.08) rotate(12deg); opacity: 0.32; }
}

@keyframes regEnter {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes regShellIn {
  from {
    opacity: 0;
    transform: translateY(12px) scale(0.985);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* --------------------------------------------------------------------------
   CARD — wide enough to stay legible when browser zoom is reduced
   -------------------------------------------------------------------------- */

.reg-card {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: min(720px, 96vw);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin: auto; /* vertically centers inside the flex screen when content is shorter than viewport */
  animation: regEnter 0.65s var(--ease-out) both;
}

/* --------------------------------------------------------------------------
   LOGO
   -------------------------------------------------------------------------- */

.reg-logo {
  display: inline-block;
  margin-bottom: clamp(1.25rem, 3vh, 2rem);
  text-decoration: none;
  transition: transform var(--duration-fast) var(--ease-out), opacity var(--duration-fast) var(--ease-out);
}

.reg-logo:hover {
  transform: translateY(-2px);
  opacity: 0.92;
}

.reg-logo:focus-visible {
  outline: 2px solid var(--color-primary-400);
  outline-offset: 6px;
  border-radius: var(--radius-sm);
}

.reg-logo__img {
  height: clamp(52px, 6.5vw, 76px);
  width: auto;
  object-fit: contain;
}

/* --------------------------------------------------------------------------
   HEADING & TAGLINE
   -------------------------------------------------------------------------- */

.reg-headline {
  font-family: var(--font-heading);
  font-size: clamp(2.125rem, 3vw + 1rem, 3.25rem);
  font-weight: var(--weight-regular);
  line-height: 1.08;
  letter-spacing: -0.03em;
  color: var(--color-gray-900);
  margin: 0 0 var(--space-4);
  text-align: center;
}

.reg-headline em {
  font-style: italic;
  color: var(--color-primary-600);
}

.reg-tagline {
  font-family: var(--font-body);
  font-size: clamp(var(--text-md), 1.1vw + 0.75rem, 1.125rem);
  color: var(--color-gray-700);
  text-align: center;
  line-height: var(--leading-relaxed);
  margin: 0 0 clamp(1.35rem, 3vh, 2rem);
  max-width: 38rem;
}

/* --------------------------------------------------------------------------
   FORM SHELL — elevated card (reference: Superlist white panel)
   -------------------------------------------------------------------------- */

.reg-form-shell {
  width: 100%;
  background: var(--color-white);
  border-radius: var(--radius-xl);
  border: 1px solid var(--border-light);
  box-shadow: var(--shadow-md);
  padding: clamp(1.5rem, 3.5vw, 2.35rem);
  transition:
    box-shadow var(--duration-normal) var(--ease-out),
    transform var(--duration-normal) var(--ease-out);
  animation: regShellIn 0.7s var(--ease-out) 0.06s both;
}

.reg-form-shell:hover {
  box-shadow: var(--shadow-lg);
}

.reg-form-body {
  width: 100%;
  text-align: left;
}

/* --------------------------------------------------------------------------
   TUTOR LMS — layout wrappers
   -------------------------------------------------------------------------- */

body.narimane-tutor-auth-page .reg-form-body .tutor-wrap,
body.narimane-tutor-auth-page .reg-form-body .tutor-student-reg-wrap,
body.narimane-tutor-auth-page .reg-form-body .tutor-login-wrap {
  padding: 0 !important;
  min-height: auto !important;
  background: transparent !important;
  display: block !important;
}

body.narimane-tutor-auth-page .reg-form-body .tutor-student-reg-form-wrap,
body.narimane-tutor-auth-page .reg-form-body .tutor-login-form,
body.narimane-tutor-auth-page .reg-form-body .tutor-login-form-inner,
body.narimane-tutor-auth-page .reg-form-body .tutor-registration-form {
  box-shadow: none !important;
  border: none !important;
  padding: 0 !important;
  background: transparent !important;
  max-width: 100% !important;
  width: 100% !important;
  border-radius: 0 !important;
}

body.narimane-tutor-auth-page .entry-title,
body.narimane-tutor-auth-page .page-title {
  display: none !important;
}

body.narimane-tutor-auth-page .reg-form-body .tutor-alert {
  margin-bottom: var(--space-5) !important;
  border-radius: var(--radius-md) !important;
}

body.narimane-tutor-auth-page .reg-form-body .tutor-mb-24 {
  margin-top: var(--space-5) !important;
  margin-bottom: 0 !important;
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
  color: var(--color-gray-700);
}

/* Labels */
body.narimane-tutor-auth-page .reg-form-body label {
  display: block;
  font-size: var(--text-xs);
  font-weight: var(--weight-semibold);
  color: var(--color-gray-900);
  margin-bottom: 6px;
  font-family: var(--font-body);
  letter-spacing: 0.02em;
}

/* Shared input chrome */
body.narimane-tutor-auth-page .reg-form-body input[type="text"],
body.narimane-tutor-auth-page .reg-form-body input[type="email"],
body.narimane-tutor-auth-page .reg-form-body input[type="password"],
body.narimane-tutor-auth-page .reg-form-body input[type="date"],
body.narimane-tutor-auth-page .reg-form-body select {
  width: 100% !important;
  min-height: 50px !important;
  height: 50px !important;
  padding: 0 var(--space-4) !important;
  padding-inline-start: 2.75rem !important;
  border: 1px solid rgba(31, 31, 31, 0.12) !important;
  border-radius: var(--radius-md) !important;
  font-family: var(--font-body) !important;
  font-size: var(--text-md) !important;
  color: var(--color-black) !important;
  background-color: var(--color-white) !important;
  background-repeat: no-repeat !important;
  background-size: 1.125rem 1.125rem !important;
  background-position: 1rem 50% !important;
  outline: none !important;
  transition:
    border-color var(--duration-fast) var(--ease-out),
    box-shadow var(--duration-fast) var(--ease-out),
    transform 0.15s var(--ease-out) !important;
  box-sizing: border-box !important;
}

body.narimane-tutor-auth-page .reg-form-body input[type="text"]:hover,
body.narimane-tutor-auth-page .reg-form-body input[type="email"]:hover,
body.narimane-tutor-auth-page .reg-form-body input[type="password"]:hover,
body.narimane-tutor-auth-page .reg-form-body input[type="date"]:hover,
body.narimane-tutor-auth-page .reg-form-body select:hover {
  border-color: var(--color-primary-400) !important;
}

body.narimane-tutor-auth-page .reg-form-body input[type="text"]:focus,
body.narimane-tutor-auth-page .reg-form-body input[type="email"]:focus,
body.narimane-tutor-auth-page .reg-form-body input[type="password"]:focus,
body.narimane-tutor-auth-page .reg-form-body input[type="date"]:focus,
body.narimane-tutor-auth-page .reg-form-body select:focus {
  border-color: var(--color-primary-500) !important;
  background-color: var(--color-white) !important;
  box-shadow: 0 0 0 3px var(--color-primary-100) !important;
}

body.narimane-tutor-auth-page .reg-form-body input::placeholder {
  color: var(--color-gray-500) !important;
}

/* Field icons (match Tutor `name` attributes + theme extra fields) */
body.narimane-tutor-auth-page .reg-form-body input[name="first_name"],
body.narimane-tutor-auth-page .reg-form-body input[name="last_name"] {
  background-image: var(--reg-icon-user) !important;
}

body.narimane-tutor-auth-page .reg-form-body input[name="user_login"] {
  background-image: var(--reg-icon-id) !important;
}

body.narimane-tutor-auth-page .reg-form-body input[name="email"] {
  background-image: var(--reg-icon-mail) !important;
}

body.narimane-tutor-auth-page .reg-form-body input[name="password"],
body.narimane-tutor-auth-page .reg-form-body input[name="password_confirmation"] {
  background-image: var(--reg-icon-lock) !important;
}

body.narimane-tutor-auth-page .reg-form-body input[name="narimane_student_birthday"] {
  background-image: var(--reg-icon-calendar) !important;
}

body.narimane-tutor-auth-page .reg-form-body input[name="narimane_student_profession_degree"] {
  background-image: var(--reg-icon-briefcase) !important;
}

/* Tutor login shortcode (`log` / `pwd`, often without labels) */
body.narimane-tutor-auth-page .reg-form-body input[name="log"] {
  background-image: var(--reg-icon-id) !important;
}

body.narimane-tutor-auth-page .reg-form-body input[name="pwd"] {
  background-image: var(--reg-icon-lock) !important;
}

body.narimane-tutor-auth-page .reg-form-body select[name="narimane_student_sexe"] {
  appearance: none !important;
  background-image: var(--reg-icon-users), var(--reg-chevron) !important;
  background-size: 1.125rem 1.125rem, 0.75rem 0.75rem !important;
  background-position: 1rem 50%, right 1rem center !important;
  padding-inline-end: 2.75rem !important;
}

/* Tutor password widget — room for show/hide control */
body.narimane-tutor-auth-page .reg-form-body .tutor-password-field input[type="password"] {
  padding-inline-end: 3rem !important;
}

body.narimane-tutor-auth-page .reg-form-body .tutor-form-wrap input[type="password"] {
  padding-inline-end: 2.75rem !important;
}

/* Form rhythm */
body.narimane-tutor-auth-page .reg-form-body .tutor-form-group {
  margin-bottom: 0 !important;
}

body.narimane-tutor-auth-page .reg-form-body .tutor-student-reg-form-wrap {
  display: block !important;
}

body.narimane-tutor-auth-page .reg-form-body .tutor-form-row,
body.narimane-tutor-auth-page .reg-form-body .tutor-form-col-12 .tutor-form-row {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: var(--space-4);
  row-gap: var(--space-3);
  align-items: start;
  margin-bottom: var(--space-3);
}

body.narimane-tutor-auth-page .reg-form-body .tutor-form-row:last-of-type {
  margin-bottom: 0;
}

body.narimane-tutor-auth-page .reg-form-body .tutor-form-row .tutor-form-col-6,
body.narimane-tutor-auth-page .reg-form-body .tutor-form-col-12 .tutor-form-row .tutor-form-col-6 {
  width: 100% !important;
  max-width: none !important;
  flex: none !important;
}

body.narimane-tutor-auth-page .reg-form-body .tutor-form-row .tutor-form-col-12 {
  grid-column: 1 / -1;
}

body.narimane-tutor-auth-page .reg-form-body .tutor-form-row .tutor-form-group {
  width: 100%;
}

body.narimane-tutor-auth-page .reg-form-body .tutor-password-strength-checker {
  width: 100%;
}

body.narimane-tutor-auth-page .reg-form-body .tutor-password-strength-hint {
  margin-top: var(--space-2);
}

/* Submit — pill, theme contrast */
body.narimane-tutor-auth-page .reg-form-body button[type="submit"],
body.narimane-tutor-auth-page .reg-form-body input[type="submit"] {
  width: 100% !important;
  height: 54px !important;
  padding: 0 var(--space-6) !important;
  background: linear-gradient(135deg, var(--color-primary-600) 0%, var(--color-primary-500) 100%) !important;
  color: var(--color-white) !important;
  font-family: var(--font-body) !important;
  font-size: var(--text-sm) !important;
  font-weight: var(--weight-semibold) !important;
  border: none !important;
  border-radius: var(--radius-pill) !important;
  cursor: pointer !important;
  letter-spacing: 0.02em !important;
  margin-top: var(--space-5) !important;
  box-shadow: var(--shadow-primary-sm) !important;
  transition:
    transform var(--duration-fast) var(--ease-out),
    box-shadow var(--duration-fast) var(--ease-out),
    filter var(--duration-fast) var(--ease-out) !important;
}

body.narimane-tutor-auth-page .reg-form-body button[type="submit"]::before {
  display: none !important;
}

body.narimane-tutor-auth-page .reg-form-body button[type="submit"]:hover,
body.narimane-tutor-auth-page .reg-form-body input[type="submit"]:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-primary-md) !important;
  filter: brightness(1.03);
}

body.narimane-tutor-auth-page .reg-form-body button[type="submit"]:active,
body.narimane-tutor-auth-page .reg-form-body input[type="submit"]:active {
  transform: translateY(0);
}

/* Register: hide Tutor’s footer link (we use .reg-switch). Login: hide .reg-switch (Tutor footer has the link). */
body.narimane-tutor-auth-page .reg-card:has(#tutor-registration-form) .tutor-form-footer,
body.narimane-tutor-auth-page .reg-card:has(#tutor-registration-form) .tutor-login-form .tutor-form-footer {
  display: none !important;
}

body.narimane-tutor-auth-page .reg-card:has(#tutor-login-form) .reg-switch {
  display: none !important;
}

body.narimane-tutor-auth-page .reg-form-body .tutor-form-footer,
body.narimane-tutor-auth-page .reg-form-body .tutor-login-form .tutor-form-footer {
  text-align: center !important;
  margin-top: var(--space-5) !important;
  font-size: var(--text-sm) !important;
  color: var(--color-gray-600) !important;
}

body.narimane-tutor-auth-page .reg-form-body .tutor-form-footer a,
body.narimane-tutor-auth-page .reg-form-body .tutor-login-form .tutor-form-footer a {
  color: var(--color-primary-600) !important;
  font-weight: var(--weight-semibold) !important;
}

/* --------------------------------------------------------------------------
   Meta links below card
   -------------------------------------------------------------------------- */

.reg-switch {
  margin: clamp(1.5rem, 3.5vh, 2.25rem) 0 0;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  color: var(--color-gray-600);
  text-align: center;
}

.reg-switch a {
  color: var(--color-primary-600);
  font-weight: var(--weight-semibold);
  text-decoration: none;
  margin-inline-start: 0.35em;
  border-bottom: 1px solid transparent;
  transition:
    border-color var(--duration-fast) var(--ease-out),
    color var(--duration-fast) var(--ease-out);
}

.reg-switch a:hover {
  border-bottom-color: var(--color-primary-400);
}

.reg-trust {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  margin-top: var(--space-5);
  font-family: var(--font-body);
  font-size: var(--text-xs);
  color: var(--color-gray-500);
  letter-spacing: 0.02em;
}

.reg-trust svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  color: var(--color-primary-500);
  opacity: 0.85;
}

.reg-back {
  display: inline-block;
  margin-top: var(--space-6);
  font-family: var(--font-body);
  font-size: var(--text-xs);
  color: var(--color-gray-500);
  text-decoration: none;
  letter-spacing: 0.03em;
  transition: color var(--duration-fast) var(--ease-out);
}

.reg-back:hover {
  color: var(--color-primary-600);
}

/* --------------------------------------------------------------------------
   REGISTRATION ONLY — dense layout (fit laptop viewport without scrolling)
   Scoped with :has(#tutor-registration-form); login page unchanged.
   -------------------------------------------------------------------------- */

.reg-screen:has(#tutor-registration-form) {
  min-height: 100dvh;
  align-items: center;
  justify-content: center;
  padding: 0.5rem clamp(0.75rem, 2vw, 1.25rem) 0.65rem;
}

.reg-card:has(#tutor-registration-form) {
  max-width: min(640px, 96vw);
}

.reg-card:has(#tutor-registration-form) .reg-logo {
  margin-bottom: 0.35rem;
}

.reg-card:has(#tutor-registration-form) .reg-logo__img {
  height: clamp(34px, 4.5vw, 44px);
}

.reg-card:has(#tutor-registration-form) .reg-headline {
  font-size: clamp(1.35rem, 2vw + 0.65rem, 1.85rem);
  line-height: 1.12;
  margin: 0 0 0.3rem;
}

.reg-card:has(#tutor-registration-form) .reg-tagline {
  font-size: var(--text-xs);
  line-height: 1.4;
  margin: 0 0 0.55rem;
  max-width: 34rem;
}

.reg-card:has(#tutor-registration-form) .reg-form-shell {
  padding: 0.65rem 0.85rem;
  border-radius: var(--radius-lg);
}

body.narimane-tutor-auth-page .reg-card:has(#tutor-registration-form) .reg-form-body label {
  margin-bottom: 3px;
  font-size: 11px;
}

body.narimane-tutor-auth-page .reg-card:has(#tutor-registration-form) .reg-form-body input[type="text"],
body.narimane-tutor-auth-page .reg-card:has(#tutor-registration-form) .reg-form-body input[type="email"],
body.narimane-tutor-auth-page .reg-card:has(#tutor-registration-form) .reg-form-body input[type="password"],
body.narimane-tutor-auth-page .reg-card:has(#tutor-registration-form) .reg-form-body input[type="date"],
body.narimane-tutor-auth-page .reg-card:has(#tutor-registration-form) .reg-form-body select {
  min-height: 40px !important;
  height: 40px !important;
  padding-inline-start: 2.35rem !important;
  font-size: var(--text-sm) !important;
  background-size: 1rem 1rem !important;
  background-position: 0.65rem 50% !important;
}

body.narimane-tutor-auth-page .reg-card:has(#tutor-registration-form) .reg-form-body select[name="narimane_student_sexe"] {
  background-size: 1rem 1rem, 0.65rem 0.65rem !important;
  background-position: 0.65rem 50%, right 0.65rem center !important;
  padding-inline-end: 2.25rem !important;
}

body.narimane-tutor-auth-page .reg-card:has(#tutor-registration-form) .reg-form-body .tutor-password-field input[type="password"] {
  padding-inline-end: 2.65rem !important;
}

body.narimane-tutor-auth-page .reg-card:has(#tutor-registration-form) .reg-form-body .tutor-form-wrap input[type="password"] {
  padding-inline-end: 2.35rem !important;
}

body.narimane-tutor-auth-page .reg-card:has(#tutor-registration-form) .reg-form-body .tutor-form-row,
body.narimane-tutor-auth-page .reg-card:has(#tutor-registration-form) .reg-form-body .tutor-form-col-12 .tutor-form-row {
  column-gap: var(--space-3);
  row-gap: 0.3rem;
  margin-bottom: 0.3rem;
}

body.narimane-tutor-auth-page .reg-card:has(#tutor-registration-form) .reg-form-body .tutor-password-strength-hint {
  margin-top: 4px !important;
}

body.narimane-tutor-auth-page .reg-card:has(#tutor-registration-form) .reg-form-body .tutor-password-strength-hint .indicator {
  gap: 3px !important;
}

body.narimane-tutor-auth-page .reg-card:has(#tutor-registration-form) .reg-form-body .tutor-password-strength-hint .indicator span {
  height: 3px !important;
}

body.narimane-tutor-auth-page .reg-card:has(#tutor-registration-form) .reg-form-body button[type="submit"],
body.narimane-tutor-auth-page .reg-card:has(#tutor-registration-form) .reg-form-body input[type="submit"] {
  height: 42px !important;
  min-height: 42px !important;
  margin-top: 0.5rem !important;
  font-size: var(--text-xs) !important;
}

body.narimane-tutor-auth-page .reg-card:has(#tutor-registration-form) .reg-form-body .tutor-alert {
  margin-bottom: 0.45rem !important;
  padding: 0.5rem 0.65rem !important;
}

body.narimane-tutor-auth-page .reg-card:has(#tutor-registration-form) .reg-form-body .tutor-mb-24 {
  margin-top: 0.45rem !important;
  font-size: var(--text-xs) !important;
  line-height: 1.45 !important;
}

.reg-card:has(#tutor-registration-form) .reg-switch {
  margin: 0.55rem 0 0;
  font-size: var(--text-xs);
}

.reg-card:has(#tutor-registration-form) .reg-trust {
  margin-top: 0.4rem;
  gap: 4px;
  font-size: 10px;
}

.reg-card:has(#tutor-registration-form) .reg-trust svg {
  width: 12px;
  height: 12px;
}

.reg-card:has(#tutor-registration-form) .reg-back {
  margin-top: 0.45rem;
  font-size: 10px;
}

/* Short viewports: extra squeeze */
@media (max-height: 820px) {
  .reg-screen:has(#tutor-registration-form) {
    padding: 0.35rem 0.75rem 0.45rem;
  }

  .reg-card:has(#tutor-registration-form) .reg-tagline {
    display: none;
  }

  .reg-card:has(#tutor-registration-form) .reg-form-shell {
    padding: 0.55rem 0.75rem;
  }

  body.narimane-tutor-auth-page .reg-card:has(#tutor-registration-form) .reg-form-body input[type="text"],
  body.narimane-tutor-auth-page .reg-card:has(#tutor-registration-form) .reg-form-body input[type="email"],
  body.narimane-tutor-auth-page .reg-card:has(#tutor-registration-form) .reg-form-body input[type="password"],
  body.narimane-tutor-auth-page .reg-card:has(#tutor-registration-form) .reg-form-body input[type="date"],
  body.narimane-tutor-auth-page .reg-card:has(#tutor-registration-form) .reg-form-body select {
    min-height: 36px !important;
    height: 36px !important;
  }

  body.narimane-tutor-auth-page .reg-card:has(#tutor-registration-form) .reg-form-body button[type="submit"],
  body.narimane-tutor-auth-page .reg-card:has(#tutor-registration-form) .reg-form-body input[type="submit"] {
    height: 38px !important;
    min-height: 38px !important;
  }
}

/* --------------------------------------------------------------------------
   Reduced motion
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
  .reg-card,
  .reg-form-shell,
  .reg-decor,
  .reg-logo {
    animation: none !important;
  }

  .reg-decor--blob,
  .reg-decor--doodle,
  .reg-decor--arrow {
    animation: none !important;
  }

  .reg-screen .reg-decor {
    opacity: 0.22 !important;
  }

  .reg-form-shell:hover {
    box-shadow: var(--shadow-md);
  }

  body.narimane-tutor-auth-page .reg-form-body button[type="submit"]:hover,
  body.narimane-tutor-auth-page .reg-form-body input[type="submit"]:hover {
    transform: none;
  }
}

/* --------------------------------------------------------------------------
   RESPONSIVE
   -------------------------------------------------------------------------- */

@media (max-width: 640px) {
  .reg-screen {
    padding-top: var(--space-7);
  }

  .reg-decor--arrow,
  .reg-decor--squiggle {
    opacity: 0.12;
  }

  body.narimane-tutor-auth-page .reg-form-body .tutor-form-row,
  body.narimane-tutor-auth-page .reg-form-body .tutor-form-col-12 .tutor-form-row {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 400px) {
  body.narimane-tutor-auth-page .reg-form-body input[type="text"],
  body.narimane-tutor-auth-page .reg-form-body input[type="email"],
  body.narimane-tutor-auth-page .reg-form-body input[type="password"],
  body.narimane-tutor-auth-page .reg-form-body input[type="date"],
  body.narimane-tutor-auth-page .reg-form-body select {
    height: 48px !important;
    min-height: 48px !important;
  }

  .reg-form-shell {
    padding: 1.35rem 1.15rem;
  }
}
