/* Agency form presentation only. Native auth/booking states remain authoritative. */
.sc-agency-family {
  --sc-family-serif: var(--agency-serif, var(--sc-agency-serif, "Cormorant Garamond", Georgia, "Times New Roman", serif));
  --sc-family-sans: var(--agency-sans, var(--sc-agency-sans, "DM Sans", Arial, sans-serif));
  --sc-family-ink: #000;
  --sc-family-muted: #626262;
  --sc-family-line: #bdbdbd;
  box-sizing: border-box;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2rem;
  width: 100%;
  min-width: 0;
  margin: 0 auto;
  color: var(--sc-family-ink);
  background: #fff;
  font-family: var(--sc-family-sans);
  font-size: 1rem;
  line-height: 1.6;
  color-scheme: light;
}

.sc-agency-family *,
.sc-agency-family *::before,
.sc-agency-family *::after { box-sizing: border-box; }
.sc-agency-family-content { min-width: 0; }
/* Public pages mount the retained native form/auth directly in their shell. */
.agency-design > .sc-agency-family:is([data-agency-surface="apply"], [data-agency-surface="login"]) { padding-inline: var(--agency-page-gutter); }
.sc-agency-family .sc-agency-family-portrait { display: none; min-width: 0; margin: 0; }
.sc-agency-family .sc-agency-family-portrait img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  object-position: center;
  transition: none;
  transform: none;
  animation: none;
}
.sc-agency-family .sc-agency-family-loading { margin: 0; color: var(--sc-family-muted); }
.sc-agency-family .sc-agency-family-title,
.sc-agency-family .ba-heading {
  margin: 0 0 1.25rem;
  color: var(--sc-family-ink);
  font: 500 clamp(2.75rem, 8.8vw, 5.5rem)/1.05 var(--sc-family-serif);
  letter-spacing: -0.045em;
  white-space: normal;
  overflow-wrap: anywhere;
}
.sc-agency-family .sc-agency-family-introduction {
  max-width: 32rem;
  margin: 1rem 0 1.75rem;
  font: 500 clamp(1.6rem, 3vw, 2.125rem)/1.25 var(--sc-family-serif);
  letter-spacing: -0.02em;
}

/* Full native application, including loading/closed/error/uncertain outcomes. */
.sc-agency-family .ba {
  --ba-ink: var(--sc-family-ink);
  --ba-ink-soft: var(--sc-family-muted);
  --ba-paper: #fff;
  --ba-card: #fff;
  --ba-line: var(--sc-family-line);
  --ba-accent: #000;
  --ba-accent-dark: #252525;
  --ba-radius: 0;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  background: #fff;
  font-family: var(--sc-family-sans);
  line-height: 1.6;
}
.sc-agency-family .ba-introduction {
  max-width: 42rem;
  margin: 0 0 2rem;
  color: var(--sc-family-ink);
  font-size: 1rem;
  line-height: 1.7;
}
.sc-agency-family .ba-progress { margin: 0 0 2rem; }
.sc-agency-family .ba-progress-label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.sc-agency-family .ba-progress-steps { display: flex; gap: 0.375rem; }
.sc-agency-family .ba-progress-step {
  display: flex;
  flex: 1;
  align-items: baseline;
  gap: 0.25rem;
  min-width: 0;
  padding: 0;
  border: 0;
  color: var(--sc-family-muted);
  font-size: 0.625rem;
  font-weight: 400;
  line-height: 1.5;
}
.sc-agency-family .ba-progress-step:not(:last-child)::after {
  content: "";
  flex: 1;
  align-self: center;
  min-width: 0.25rem;
  height: 1px;
  margin-left: 0.125rem;
  background: var(--sc-family-line);
}
.sc-agency-family .ba-progress-number { font-size: inherit; }
.sc-agency-family .ba-progress-number::after { content: "."; }
.sc-agency-family .ba-progress-title { overflow-wrap: anywhere; }
.sc-agency-family .ba-progress-step.is-current { color: #000; font-weight: 600; }
.sc-agency-family .ba-progress-step.is-complete { color: #333; }
.sc-agency-family .ba-step-title {
  margin: 0 0 0.75rem;
  font: 500 2rem/1.15 var(--sc-family-serif);
  letter-spacing: -0.02em;
}
.sc-agency-family .ba-step-intro { margin: 0 0 1.5rem; font-size: 0.875rem; }
.sc-agency-family .ba-field { gap: 0.5rem; margin-bottom: 1.5rem; }
.sc-agency-family .ba-label { font-size: 0.8125rem; font-weight: 400; letter-spacing: 0; }
.sc-agency-family .ba-input,
.sc-agency-family .ba-select {
  display: block;
  min-width: 0;
  min-height: 48px;
  padding: 0.5rem 0 0.625rem;
  border: 0;
  border-bottom: 1px solid #333;
  border-radius: 0;
  box-shadow: none;
  color: #000;
  background: #fff;
  font: 400 1rem/1.5 var(--sc-family-sans);
}
.sc-agency-family .ba-select { padding-right: 1rem; }
.sc-agency-family textarea.ba-input { min-height: 88px; resize: vertical; }
.sc-agency-family .ba-input[aria-invalid="true"],
.sc-agency-family .ba-select[aria-invalid="true"] { border-bottom: 2px solid var(--ba-error, #96251b); }
.sc-agency-family .ba-input:disabled,
.sc-agency-family .ba-select:disabled { color: #626262; opacity: 0.7; }
.sc-agency-family .ba-phone-group { grid-template-columns: minmax(5.5rem, 0.65fr) minmax(0, 1.35fr); gap: 1.5rem; }
.sc-agency-family .ba-field-check {
  grid-template-columns: 1.5rem minmax(0, 1fr);
  align-items: start;
  gap: 0.75rem;
  margin-top: 0.5rem;
  padding: 0;
  border: 0;
  background: transparent;
}
.sc-agency-family .ba-field-check .ba-label-check { min-height: 44px; align-items: flex-start; padding-top: 0.125rem; font-size: 0.8125rem; line-height: 1.7; }
.sc-agency-family .ba-checkbox { min-width: 0; min-height: 0; width: 1.25rem; height: 1.25rem; margin-top: 0.25rem; accent-color: #000; }
.sc-agency-family .ba-error { font-size: 0.8125rem; line-height: 1.6; }
.sc-agency-family .ba-actions { justify-content: flex-start; gap: 1rem; margin-top: 1.5rem; padding-top: 0; border-top: 0; }
.sc-agency-family .ba-actions .ba-btn-primary { margin-left: 0; }
.sc-agency-family .ba-btn {
  min-height: 48px;
  border-radius: 0;
  padding: 0.75rem 1.75rem;
  font: 400 0.875rem/1.5 var(--sc-family-sans);
}
.sc-agency-family .ba-btn-primary { border: 1px solid #000; color: #fff; background: #000; }
.sc-agency-family .ba-btn-primary:hover:not(:disabled) { background: #252525; }
.sc-agency-family .ba-btn-secondary,
.sc-agency-family .ba-btn-quiet {
  color: #000;
  background: transparent;
  border-color: transparent;
  padding-inline: 0;
  text-decoration: underline;
  text-underline-offset: 5px;
}
.sc-agency-family .ba-child-selected { color: #000; background: transparent; border: 0; border-bottom: 1px solid #000; padding-inline: 0; }
.sc-agency-family .ba-children-bar { gap: 0.5rem 1.5rem; }
.sc-agency-family .ba-child-actions { gap: 0.5rem 1.5rem; }
.sc-agency-family .ba-child-title { font: 500 1.625rem/1.2 var(--sc-family-serif); }
.sc-agency-family .ba-child-limit { font-size: 0.75rem; }
.sc-agency-family .ba-disclosure-title { min-height: 44px; font-size: 0.8125rem; font-weight: 400; }
.sc-agency-family .ba-slot { align-content: start; background: #fff; padding: 1rem; }
.sc-agency-family .ba-slot-title { font: 400 0.875rem/1.5 var(--sc-family-sans); }
.sc-agency-family .ba-slot-guidance,
.sc-agency-family .ba-slot-status { font-size: 0.8125rem; overflow-wrap: anywhere; }
.sc-agency-family .ba-preview { width: 100%; max-width: 100%; max-height: 20rem; object-fit: contain; background: #fff; border: 0; }
.sc-agency-family .ba-file { min-width: 0; width: 100%; font-size: 0.8125rem; }
.sc-agency-family .ba-file::file-selector-button { font-size: 0.8125rem; }
.sc-agency-family .ba-summary { grid-template-columns: minmax(0, 1fr); font-size: 0.875rem; }
.sc-agency-family .ba-summary-value { margin-bottom: 0.75rem; white-space: pre-wrap; }
.sc-agency-family .ba-privacy { border: 0; border-top: 1px solid var(--sc-family-line); padding: 0.75rem 0; font-size: 0.8125rem; }
.sc-agency-family .ba-notice,
.sc-agency-family .ba-pending,
.sc-agency-family .ba-receipt { overflow-wrap: anywhere; }

/* The complete native family auth gate is placed inside this scope unchanged. */
.sc-agency-family[data-agency-surface="login"] .parent-public-shell,
.sc-agency-family[data-agency-surface="login"] .parent-public-main,
.sc-agency-family[data-agency-surface="login"] .parent-hero-card {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: none;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  color: #000;
  background: #fff;
}
/* Only duplicate native headings are hidden; invitation instructions, statuses,
   errors, actual controls and optional password compatibility remain visible. */
.sc-agency-family-native-auth .parent-auth-card > .eyebrow,
.sc-agency-family-native-auth .parent-auth-card > h1 { display: none; }
.sc-agency-family-native-auth .parent-auth-card > p {
  max-width: 32rem;
  margin: 0 0 1.75rem;
  color: var(--sc-family-muted);
  font: 400 0.8125rem/1.7 var(--sc-family-sans);
}
.sc-agency-family .parent-auth-form { display: grid; width: 100%; max-width: none; gap: 1.25rem; margin: 0; }
.sc-agency-family .parent-auth-form > label { display: grid; gap: 0.5rem; min-width: 0; color: #000; font-size: 0.875rem; }
.sc-agency-family .parent-auth-form input {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 48px;
  padding: 0.5rem 0 0.6875rem;
  border: 0;
  border-bottom: 1px solid #333;
  border-radius: 0;
  box-shadow: none;
  color: #000;
  background: #fff;
  font: 400 1rem/1.5 var(--sc-family-sans);
}
.sc-agency-family .parent-auth-form input::placeholder { color: #777; opacity: 1; }
.sc-agency-family .parent-auth-form input[aria-invalid="true"] { border-bottom: 2px solid #96251b; }
.sc-agency-family .parent-auth-form input:disabled { opacity: 0.65; }
.sc-agency-family .parent-auth-form [data-parent-auth-otp] { letter-spacing: 0.15em; font-variant-numeric: tabular-nums; }
.sc-agency-family .parent-auth-form p,
.sc-agency-family .parent-auth-form [data-code-paste-notice] { margin: 0; font: 400 0.8125rem/1.7 var(--sc-family-sans); }
.sc-agency-family .parent-auth-form [data-code-paste-notice]:empty { display: none; }
.sc-agency-family .parent-auth-form .auth-code-paste { display: flex; align-items: center; flex-wrap: wrap; }
.sc-agency-family .parent-auth-form .auth-actions { display: flex; flex-direction: column; align-items: stretch; gap: 0.75rem; margin: 0; }
.sc-agency-family .parent-auth-form .btn.primary {
  display: block;
  width: 100%;
  min-height: 54px;
  padding: 1rem 1.125rem;
  border: 1px solid #000;
  border-radius: 0;
  color: #fff;
  background: #000;
  box-shadow: none;
  font: 400 0.75rem/1.5 var(--sc-family-sans);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.sc-agency-family .parent-auth-form .btn.primary:hover:not(:disabled) { background: #252525; }
.sc-agency-family .parent-auth-form .btn:not(.primary),
.sc-agency-family .parent-auth-form .auth-text-action {
  width: fit-content;
  min-height: 44px;
  padding: 0.5rem 0;
  border: 0;
  border-radius: 0;
  color: #000;
  background: transparent;
  box-shadow: none;
  font: 400 0.8125rem/1.5 var(--sc-family-sans);
  letter-spacing: 0;
  text-decoration: underline;
  text-underline-offset: 5px;
}
.sc-agency-family .parent-auth-form button:disabled { opacity: 0.55; cursor: default; }
.sc-agency-family .auth-password-fallback { margin-top: 1.75rem; padding-top: 0; border-top: 1px solid var(--sc-family-line); text-align: left; }
.sc-agency-family .auth-password-fallback > summary {
  display: list-item;
  width: fit-content;
  min-height: 44px;
  padding: 1rem 0 0.75rem;
  color: #000;
  font: 400 0.8125rem/1.5 var(--sc-family-sans);
  text-decoration: underline;
  text-underline-offset: 5px;
  cursor: pointer;
}
.sc-agency-family .auth-password-fallback > summary::marker { content: ""; }
.sc-agency-family .auth-password-fallback > summary::-webkit-details-marker { display: none; }
.sc-agency-family .auth-password-fallback > summary::after { content: "+"; display: inline-block; margin-left: 1rem; }
.sc-agency-family .auth-password-fallback[open] > summary::after { content: "-"; }
.sc-agency-family .auth-password-fallback .parent-auth-form { margin-top: 1rem; }
.sc-agency-family .auth-message { margin: 0 0 1.25rem; border-radius: 0; font-size: 0.8125rem; overflow-wrap: anywhere; }
.sc-agency-family :is(input, select, textarea, button, summary, a):focus-visible { outline: 2px solid #000; outline-offset: 5px; }

@media (min-width: 30rem) {
  .sc-agency-family .ba-progress-step { gap: 0.375rem; font-size: 0.75rem; }
  .sc-agency-family .ba-summary { grid-template-columns: minmax(7rem, 40%) minmax(0, 1fr); gap: 0.75rem 1.5rem; }
  .sc-agency-family .ba-summary-value { margin-bottom: 0; }
}
@media (min-width: 42rem) {
  .sc-agency-family .ba-contact-fields,
  .sc-agency-family .ba-child-fields,
  .sc-agency-family .ba-optional-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2rem; }
  .sc-agency-family .ba-photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sc-agency-family .ba-slot-extra { grid-column: 1 / -1; }
}
@media (min-width: 47.5625rem) {
  .agency-design > .sc-agency-family:is([data-agency-surface="apply"], [data-agency-surface="login"]) { padding-top: 60px; }
  .sc-agency-family[data-agency-surface="apply"] { grid-template-columns: minmax(0, 1.75fr) minmax(15rem, 1fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
  .sc-agency-family[data-agency-surface="login"] { grid-template-columns: minmax(0, 1fr) minmax(0, 1.03fr); gap: clamp(2rem, 5.1vw, 5.375rem); align-items: center; }
  .sc-agency-family .sc-agency-family-portrait { display: block; }
  .sc-agency-family[data-agency-surface="apply"] .sc-agency-family-portrait { position: sticky; top: 2rem; margin-top: 2.5rem; }
  .sc-agency-family[data-agency-surface="apply"] .sc-agency-family-portrait img { max-height: 45rem; aspect-ratio: 3 / 4; }
  .sc-agency-family[data-agency-surface="login"] .sc-agency-family-portrait img { aspect-ratio: 0.73; }
  .sc-agency-family .ba-introduction { font-size: 1.125rem; }
  .sc-agency-family .ba-progress-step { font-size: 0.8125rem; }
  .sc-agency-family[data-agency-surface="login"] .sc-agency-family-title { font-size: clamp(3rem, 4.75vw, 4.25rem); }
}
@media (max-width: 29.99rem) {
  .sc-agency-family .ba-actions .ba-btn { flex: 0 1 auto; }
}
