@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("./poppins-400.woff2") format("woff2");
}

@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("./poppins-500.woff2") format("woff2");
}

@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("./poppins-600.woff2") format("woff2");
}

@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("./poppins-700.woff2") format("woff2");
}

:root {
  --fads-plum: #3d1152;
  --fads-plum-deep: #250b32;
  --fads-plum-ink: #26172c;
  --fads-gold: #c7a978;
  --fads-gold-deep: #a67d35;
  --fads-gold-text: #80652f;
  --fads-gold-light: #f2d994;
  --fads-gold-pale: #f7e8b7;
  --fads-crimson: #ab192d;
  --fads-ink: #333333;
  --fads-muted: #68636b;
  --fads-white: #ffffff;
  --fads-mist: #f7f4f8;
  --fads-line: #d9d2dc;
  --fads-max: 1140px;
  --fads-gutter: 32px;
  --fads-focus: #ab192d;
  --fads-radius-sm: 10px;
  --fads-radius: 14px;
  --fads-radius-lg: 16px;
  --fads-shadow-sm: 0 2px 4px rgba(37, 11, 50, 0.08), 0 6px 10px rgba(37, 11, 50, 0.12);
  --fads-shadow-md: 0 4px 8px rgba(37, 11, 50, 0.1), 0 12px 14px rgba(37, 11, 50, 0.16);
  --fads-premium-keyline: 2px solid rgba(199, 169, 120, 0.72);
  --fads-ease: cubic-bezier(0.22, 1, 0.36, 1);

  /* Bridge legacy section variables into the approved FADS system. */
  --espresso: var(--fads-plum-deep);
  --espresso-2: var(--fads-plum);
  --char: var(--fads-plum-deep);
  --cream: var(--fads-white);
  --paper: var(--fads-white);
  --paper-2: var(--fads-mist);
  --ink: var(--fads-ink);
  --muted: var(--fads-muted);
  --gold: var(--fads-gold);
  --gold-lt: var(--fads-gold-light);
  --gold-deep: var(--fads-gold-text);
  --line: var(--fads-line);
  --line-gold: rgba(199, 169, 120, 0.58);
  --shadow: var(--fads-shadow-md);
  --shadow-card: var(--fads-shadow-sm);
  --max: var(--fads-max);
}

html {
  font-size: 100%;
  scroll-behavior: smooth;
}

body {
  min-width: 320px;
  margin: 0;
  color: var(--fads-ink) !important;
  background: var(--fads-white) !important;
  font-family: "Poppins", Arial, sans-serif !important;
  font-size: 18px !important;
  font-weight: 400;
  line-height: 1.62 !important;
  text-rendering: optimizeLegibility;
  font-feature-settings: "kern" 1, "liga" 1;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}

body::before {
  display: none !important;
}

body,
button,
input,
select,
textarea,
h1,
h2,
h3,
h4,
h5,
h6,
.btn,
.eyebrow,
.review,
.fads-team-v3,
.fads-stories-v2,
[style*="font-family:Cinzel"],
[style*="font-family: Cinzel"],
[style*="font-family:Cormorant"],
[style*="font-family: Cormorant"],
[style*="font-family:Fraunces"],
[style*="font-family: Fraunces"],
[style*="font-family:Hanken"],
[style*="font-family: Hanken"] {
  font-family: "Poppins", Arial, sans-serif !important;
}

/* Legacy fragments put their serif families directly on generic wrappers such as div/span/a.
   Keep icon elements untouched, but make every customer-facing text carrier use the current
   FADS Orlando type system even when an old inline declaration has higher selector specificity. */
body :where(div, span, a, strong, small, b, blockquote, cite, dt, dd, th, td) {
  font-family: "Poppins", Arial, sans-serif !important;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  max-width: 26ch;
  margin-block: 0;
  color: inherit;
  font-style: normal !important;
  font-weight: 700 !important;
  letter-spacing: -0.03em !important;
  text-wrap: balance;
}

h1 {
  font-size: clamp(2.25rem, 5vw, 3.4375rem) !important;
  line-height: 1.08 !important;
}

h2 {
  font-size: clamp(1.875rem, 3.8vw, 2.75rem) !important;
  line-height: 1.14 !important;
}

h3 {
  font-size: clamp(1.25rem, 2.2vw, 1.625rem) !important;
  line-height: 1.22 !important;
}

em {
  color: inherit !important;
  font-style: normal !important;
}

p,
li,
label,
figcaption {
  font-family: "Poppins", Arial, sans-serif !important;
}

p {
  max-width: 68ch;
  text-wrap: pretty;
}

a,
button,
input,
select,
textarea,
[tabindex]:not([tabindex="-1"]) {
  outline: 0;
}

:where(a, button, input, select, textarea, [tabindex]:not([tabindex="-1"])):focus-visible {
  outline: 3px solid var(--fads-focus) !important;
  outline-offset: 3px !important;
}

:where(.hero, .final, .dark, .topbar, .footer, .fads-team-v3, .fads-stories-v2, #fads-reviews, #fads-contact, #nds-finalcta-root)
  :where(a, button, input, select, textarea, [tabindex]:not([tabindex="-1"])):focus-visible {
  outline-color: var(--fads-gold-pale) !important;
}

button,
input,
select,
textarea,
.btn,
[role="button"] {
  min-height: 48px;
  font-size: 1rem !important;
}

a,
button,
[role="button"] {
  touch-action: manipulation;
}

.btn,
button[type="submit"],
input[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  padding: 14px 24px !important;
  border: 1px solid rgba(61, 17, 82, 0.55) !important;
  border-radius: var(--fads-radius-sm) !important;
  color: var(--fads-plum-ink) !important;
  background-color: var(--fads-gold) !important;
  background-image: linear-gradient(
    118deg,
    var(--fads-gold-deep) 0%,
    var(--fads-gold-light) 34%,
    var(--fads-gold) 66%,
    var(--fads-gold-pale) 100%
  ) !important;
  box-shadow: 0 3px 5px rgba(37, 11, 50, 0.14), 0 8px 10px rgba(37, 11, 50, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.54) !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: 0.015em !important;
  text-transform: none !important;
  transition: transform 220ms var(--fads-ease), box-shadow 220ms var(--fads-ease), filter 220ms ease !important;
}

.btn:hover,
button[type="submit"]:hover,
input[type="submit"]:hover {
  color: var(--fads-plum-ink) !important;
  border-color: rgba(61, 17, 82, 0.72) !important;
  filter: saturate(1.05) brightness(1.03) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 4px 6px rgba(37, 11, 50, 0.16), 0 10px 12px rgba(37, 11, 50, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.6) !important;
}

.btn:active,
button[type="submit"]:active,
input[type="submit"]:active {
  transform: translateY(0) !important;
}

input:not([type="checkbox"]):not([type="radio"]),
select,
textarea,
.field,
.select {
  min-height: 48px;
  border: 1px solid #817684 !important;
  border-radius: var(--fads-radius-sm) !important;
  color: var(--fads-ink) !important;
  background: var(--fads-white) !important;
  box-shadow: inset 0 1px 2px rgba(37, 11, 50, 0.05) !important;
}

input[type="checkbox"],
input[type="radio"] {
  width: 22px;
  height: 22px;
  min-height: 22px;
  accent-color: var(--fads-plum);
}

.check,
label:has(> input[type="checkbox"]),
label:has(> input[type="radio"]) {
  min-height: 44px;
}

.wrap,
.container,
.inner,
.fads-inner,
.ft-inner,
.fs-inner {
  width: min(var(--fads-max), calc(100% - (var(--fads-gutter) * 2))) !important;
  max-width: var(--fads-max) !important;
  margin-inline: auto !important;
}

.eyebrow,
[class*="kicker"],
[class*="eyebrow"] {
  color: #80652f !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
  line-height: 1.4 !important;
  text-transform: uppercase !important;
}

:where(.hero, .final, .topbar, .footer, .fads-team-v3, .fads-stories-v2, #fads-reviews, #fads-contact)
  :where(.eyebrow, [class*="kicker"], [class*="eyebrow"]) {
  color: var(--fads-gold-light) !important;
}

.hero .eyebrow,
.final .eyebrow,
.intro .eyebrow,
.fads-team-v3 [class*="eyebrow"],
.fads-stories-v2 [class*="eyebrow"],
#fads-reviews [class*="eyebrow"],
#fads-contact [class*="eyebrow"] {
  color: var(--fads-gold-light) !important;
}

.benefit .num,
[class*="benefit"] [class*="num"] {
  color: #80652f !important;
}

/* Premium surfaces. These selectors intentionally avoid full-bleed section wrappers. */
.form-card,
.card,
.review,
.coach,
.team-card,
.fads-review-card,
.choice,
.kv .row {
  border-radius: var(--fads-radius) !important;
  box-shadow: var(--fads-shadow-sm) !important;
}

.form-card,
.card,
.review,
.fads-review-card {
  border-color: rgba(199, 169, 120, 0.34) !important;
}

/* Signature premium keyline: one restrained metallic edge on the surfaces where a visitor
   makes a decision. Two CSS pixels survive standard-density rasterization while staying thin. */
.final,
.loss-frame,
.fads-studio-card,
.fads-review-card,
.frame {
  border: var(--fads-premium-keyline) !important;
  box-shadow: inset 0 1px 0 rgba(255, 247, 222, 0.24), var(--fads-shadow-sm) !important;
}

/* The primary conversion surface carries a stronger four-pixel metallic edge. Secondary media
   and proof cards keep the restrained two-pixel keyline above. */
.form-card,
.nds-awaken-form-card,
html:has(link[rel="canonical"][href="https://danceorlando.com/book/"]) .frame {
  border: 4px solid var(--fads-gold) !important;
  box-shadow: inset 0 1px 0 rgba(255, 247, 222, 0.34), var(--fads-shadow-md) !important;
}

.video-embed,
.video-frame,
.vimeo-wrap,
.ft-frame,
.fs-frame,
.map {
  border: 1px solid rgba(199, 169, 120, 0.52) !important;
}

.video-embed,
.video-frame,
.vimeo-wrap,
.ft-frame,
.fs-frame,
.map,
.frame,
figure:has(> img),
figure:has(> video) {
  border-radius: var(--fads-radius-lg) !important;
  overflow: hidden;
  box-shadow: var(--fads-shadow-md) !important;
}

.ft-card,
.fs-card,
.review,
.fads-review-card,
.card,
.form-card {
  transition: transform 260ms var(--fads-ease), box-shadow 260ms var(--fads-ease), border-color 260ms ease !important;
}

@media (hover: hover) and (pointer: fine) {
  .ft-card:hover,
  .fs-card:hover,
  .review:hover,
  .fads-review-card:hover,
  .card:hover,
  .form-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--fads-shadow-md) !important;
    border-color: rgba(199, 169, 120, 0.58) !important;
  }
}

.hero,
.final,
.topbar,
.footer,
.fads-team-v3,
.fads-stories-v2,
#fads-reviews,
#fads-contact {
  color: var(--fads-white) !important;
  background-color: var(--fads-plum-deep) !important;
}

.hero-veil,
.final-veil {
  background: linear-gradient(90deg, rgba(37, 11, 50, 0.9), rgba(37, 11, 50, 0.72)) !important;
}

.cream,
.paper,
[class*="light"] {
  color: var(--fads-ink) !important;
  background: var(--fads-white) !important;
}

.tan,
.gray,
[class*="mist"] {
  color: var(--fads-ink) !important;
  background: var(--fads-mist) !important;
}

.stars,
[class*="stars"] {
  color: #80652f !important;
}

.marquee,
[class*="marquee"] {
  border-color: rgba(199, 169, 120, 0.5) !important;
}

.reviews-marquee,
.fads-rev-wrap,
.reviews-viewport,
.review-track,
[data-review-track] {
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
  scrollbar-color: var(--fads-gold) transparent;
}

/* Moving review rails should resolve softly into the page instead of shearing a card at the
   viewport boundary. The narrow edge fade leaves all centered card copy fully opaque. */
html body .fads-rev-wrap,
html body #nds-reviews-root .nb-reviews-wrapper,
html body #nds-reviews-root .nb-mobile-wrapper {
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%) !important;
  mask-image: linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%) !important;
}

.reviews-marquee > *,
.fads-rev-wrap > *,
.reviews-viewport > *,
.review-track > *,
[data-review-track] > * {
  scroll-snap-align: start;
}

[data-premium-reveal] {
  will-change: transform, opacity;
}

/* The studio is chosen once in the lead form and inherited by /book/. Keep the native select in
   the form contract while presenting a premium, accessible two-button control. */
.fads-location-source,
.fads-location-source-label {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Reserve the exact space that each legacy form gains when its studio select becomes
   the two-button control. The canonical link is present before first paint, so this
   prevents the deferred enhancement from moving the hero or content below it. */
html:has(link[rel="canonical"][href="https://danceorlando.com/intro/"])
  select[name="preferred_location"]:not(.fads-location-source) {
  margin-bottom: 75px !important;
}

html:has(link[rel="canonical"][href="https://danceorlando.com/drphillips/"])
  select[name="preferred_location"]:not(.fads-location-source),
html:has(link[rel="canonical"][href="https://danceorlando.com/winterpark/"])
  select[name="preferred_location"]:not(.fads-location-source),
html:has(link[rel="canonical"][href="https://danceorlando.com/fredastaire/"])
  select[name="preferred_location"]:not(.fads-location-source) {
  margin-bottom: 86px !important;
}

html:has(link[rel="canonical"][href="https://danceorlando.com/awaken-the-dancer/"])
  select[name="preferred_location"]:not(.fads-location-source) {
  margin-bottom: 29px !important;
}

html:has(link[rel="canonical"][href="https://danceorlando.com/authority/"])
  select[name="preferred_location"]:not(.fads-location-source) {
  margin-bottom: 8px !important;
}

html:has(link[rel="canonical"][href="https://danceorlando.com/returning/"])
  select[name="preferred_location"]:not(.fads-location-source) {
  margin-bottom: 28px !important;
}

/* Returning keeps its mid-page conversion prompt, but it belongs in the document flow. The
   legacy fixed bar covered the following section heading as visitors scrolled. */
html:has(link[rel="canonical"][href="https://danceorlando.com/returning/"]) #nds-sticky-root {
  position: relative !important;
  z-index: 2 !important;
  pointer-events: auto !important;
}

html:has(link[rel="canonical"][href="https://danceorlando.com/returning/"]) #nds-sticky-root .nds-sticky-bar {
  position: relative !important;
  inset: auto !important;
  opacity: 1 !important;
  transform: none !important;
  border-top: 2px solid rgba(199, 169, 120, 0.62) !important;
  border-bottom: 2px solid rgba(199, 169, 120, 0.42) !important;
  box-shadow: var(--fads-shadow-md) !important;
}

.fads-location-choice {
  width: 100%;
  margin: 4px 0 12px;
  color: var(--fads-ink);
}

.fads-location-choice__label {
  margin: 0 0 8px;
  color: inherit;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.fads-location-choice__buttons {
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: 10px;
  width: 100%;
}

.fads-location-choice__button {
  flex: 1 1 0;
  min-width: 0;
  max-width: 100%;
  min-height: 66px;
  margin: 0;
  padding: 10px 12px;
  border: 1px solid rgba(92, 39, 111, 0.28) !important;
  border-radius: 12px !important;
  color: var(--fads-plum) !important;
  background: rgba(255, 255, 255, 0.94) !important;
  box-shadow: 0 6px 16px rgba(37, 11, 50, 0.1) !important;
  cursor: pointer;
  overflow: hidden;
  text-align: center;
  transition:
    flex-basis 360ms var(--fads-ease),
    max-width 360ms var(--fads-ease),
    padding 360ms var(--fads-ease),
    opacity 220ms ease,
    transform 360ms var(--fads-ease),
    box-shadow 220ms ease !important;
}

/* Authority's compiled shell applies a high-specificity metallic style to every button.
   Keep the two unselected studio choices visibly distinct there as well. */
#root .fads-location-choice__button:not(.is-selected) {
  color: var(--fads-plum) !important;
  border: 1px solid rgba(92, 39, 111, 0.28) !important;
  background: rgba(255, 255, 255, 0.94) !important;
  box-shadow: 0 6px 16px rgba(37, 11, 50, 0.1) !important;
}

#root .fads-location-choice.is-locked .fads-location-choice__button.is-selected {
  color: #26172c !important;
  border: 1px solid rgba(166, 125, 53, 0.78) !important;
  background: linear-gradient(118deg, var(--fads-gold-deep) 0%, var(--fads-gold-light) 34%, var(--fads-gold) 66%, var(--fads-gold-pale) 100%) !important;
  box-shadow: var(--fads-shadow-sm) !important;
}

.fads-location-choice__button:hover,
.fads-location-choice__button:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(166, 125, 53, 0.72) !important;
  box-shadow: 0 10px 24px rgba(37, 11, 50, 0.16) !important;
}

.fads-location-choice__title,
.fads-location-choice__detail {
  display: block;
  white-space: nowrap;
}

.fads-location-choice__title {
  font-size: 0.9rem;
  font-weight: 700;
}

.fads-location-choice__detail {
  margin-top: 2px;
  font-size: 0.7rem;
  font-weight: 500;
  opacity: 0.7;
}

.fads-location-choice.is-locked .fads-location-choice__button.is-selected {
  flex: 0 1 320px;
  max-width: 320px;
  color: #26172c !important;
  border-color: rgba(166, 125, 53, 0.78) !important;
  background-color: var(--fads-gold) !important;
  background-image: linear-gradient(118deg, var(--fads-gold-deep) 0%, var(--fads-gold-light) 34%, var(--fads-gold) 66%, var(--fads-gold-pale) 100%) !important;
  box-shadow: var(--fads-shadow-sm) !important;
  transform: translateY(-1px);
}

.fads-location-choice.is-locked .fads-location-choice__button:not(.is-selected) {
  flex: 0 0 0;
  max-width: 0;
  min-width: 0;
  padding-inline: 0;
  border-width: 0 !important;
  opacity: 0;
  pointer-events: none;
}

.fads-location-choice__helper {
  min-height: 18px;
  margin: 6px 2px 0;
  color: var(--fads-muted);
  font-size: 0.69rem;
  line-height: 1.35;
  text-align: center;
}

.fads-location-choice.is-invalid .fads-location-choice__buttons {
  outline: 2px solid var(--fads-crimson);
  outline-offset: 3px;
  border-radius: 12px;
}

@media (max-width: 359px) {
  .fads-location-choice__buttons { gap: 7px; }
  .fads-location-choice__button { min-height: 70px; padding-inline: 8px; }
  .fads-location-choice__title,
  .fads-location-choice__detail { white-space: normal; }
  .fads-location-choice__title { font-size: 0.82rem; line-height: 1.15; }
  .fads-location-choice__detail { font-size: 0.63rem; line-height: 1.2; }
}

@media (max-width: 719px) {
  :root {
    --fads-gutter: 24px;
  }

  body {
    font-size: 18px !important;
  }

  .btn,
  button[type="submit"],
  input[type="submit"] {
    width: 100%;
  }

  .top-phone {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto !important;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  [class*="marquee"],
  [class*="track"] {
    transform: none !important;
  }

  .rise,
  .reveal,
  [class*="reveal"],
  [data-premium-reveal] {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* Owner 2026-09-04: plaque inside each studio button (before and after selection). */
.fads-location-choice__button.has-plaque {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  text-align: left;
  padding: 7px 10px;
  min-height: 0 !important;
  height: auto !important;
  line-height: 1.15;
}
.fads-location-choice.is-locked .fads-location-choice__button.has-plaque.is-selected {
  padding: 8px 14px !important;
  transform: none;
}
/* The collapsed sibling (max-width 0) still wraps its text into a tall column and the row
   stretches to it; remove it from the height calculation entirely. */
.fads-location-choice.is-locked .fads-location-choice__button.has-plaque:not(.is-selected) {
  height: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;
  overflow: hidden;
  align-self: flex-start;
}
.fads-location-choice__plaque {
  flex: 0 0 auto;
  width: 34px;
  height: 42px;
  object-fit: contain;
  border-radius: 4px;
  background: #1a0a22;
  box-shadow: 0 2px 6px rgba(20, 4, 28, 0.35);
}
.fads-location-choice__text {
  display: block;
  min-width: 0;
}
.fads-location-choice__button.has-plaque .fads-location-choice__title,
.fads-location-choice__button.has-plaque .fads-location-choice__detail {
  white-space: normal;
}
.fads-location-choice__award {
  display: block;
  margin-top: 3px;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #8a6420;
}
.fads-location-choice__button.is-selected .fads-location-choice__award { color: #4a3210; }
.fads-location-choice.is-locked .fads-location-choice__button:not(.is-selected) .fads-location-choice__plaque { display: none; }
.fads-location-choice__award-link {
  display: inline-block;
  margin-top: 6px;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--fads-gold-deep, #a67d35);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.fads-location-choice__award-link[hidden] { display: none; }
@media (max-width: 480px) {
  /* Two buttons side by side on a phone: keep each one two lines tall. The street line
     returns once a studio is chosen (single wide button) and is always in the location cards. */
  .fads-location-choice__button.has-plaque { gap: 7px; padding: 7px 8px; }
  .fads-location-choice__plaque { width: 30px; height: 37px; }
  .fads-location-choice__button.has-plaque .fads-location-choice__title { font-size: 0.8rem; line-height: 1.15; }
  .fads-location-choice__button.has-plaque .fads-location-choice__detail { display: none; }
  .fads-location-choice.is-locked .fads-location-choice__button.has-plaque.is-selected .fads-location-choice__detail { display: block; }
  .fads-location-choice__award { font-size: 0.56rem; margin-top: 2px; }
}
