@import url('https://fonts.googleapis.com/css2?family=Exo:wght@700;800;900&family=Fraunces:opsz,wght@9..144,600;9..144,700&family=Karla:wght@400;500;600;700&display=swap');

/* Single site accent: replace the theme's former purple with Dance Factory pink. */
body.theme-blue {
  --theme-color: #f70a7c;
  --theme-color-2: #f70a7c;
}

/* Dance Factory client-approved typography system */
body, p, a, li, span, button, input, textarea, label, time {
  font-family: "Karla", sans-serif !important;
}

h1, h2, h3, h4, h5, h6,
.hero-title, .sec-title, .feature-card_title, .widget_title,
.page-hero h1, .heading h2, .split h2, .cta h2, .day h3 {
  font-family: "Fraunces", serif !important;
  font-optical-sizing: auto;
}

.dance-factory-wordmark {
  font-family: "Exo", sans-serif !important;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
}

/* Shop is intentionally hidden until the future ecommerce phase. */
.sideMenuToggler2,
.sidemenu-wrapper.shopping-cart,
.woocommerce.widget_shopping_cart,
.header-button .badge {
  display: none !important;
}

/* Refined site actions: cleaner than the original heavy neon glow. */
.df-page .th-btn {
  min-height: 52px;
  padding: 14px 25px !important;
  border: 1px solid rgba(255, 255, 255, .16) !important;
  border-radius: 12px !important;
  background: #f70a7c !important;
  box-shadow: 0 8px 22px rgba(247, 10, 124, .22) !important;
  color: #fff !important;
  font-family: "Karla", sans-serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: .035em !important;
  text-transform: uppercase;
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease !important;
}

.df-page .th-btn:hover {
  transform: translateY(-2px);
  filter: brightness(1.06);
  box-shadow: 0 12px 28px rgba(247, 10, 124, .3) !important;
}

.df-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
  margin-top: 22px;
}

.df-actions .th-btn {
  margin-top: 0 !important;
}

.df-actions .th-btn + .th-btn {
  margin-left: 18px !important;
}

.df-actions .th-btn-secondary {
  border-color: #d9b9cf !important;
  background: #fff !important;
  box-shadow: none !important;
  color: #f70a7c !important;
}

/* Purpose-built editor blocks used by database-created Dance Factory pages. */
.df-link-list{display:grid;gap:14px;max-width:900px;margin:0 auto}.df-link-card{padding:24px 28px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px 28px;border:1px solid #f0d8e7;border-radius:16px;background:#fff;box-shadow:0 10px 28px rgba(45,19,50,.07)}.df-link-card h3,.df-link-card p{margin:0}.df-link-card p{grid-column:1;color:#746b75}.df-link-card>a{grid-column:2;grid-row:1/3;color:#f70a7c;font-weight:800;text-decoration:none}
.df-class-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.df-class-card{overflow:hidden;border:1px solid #f0d8e7;border-radius:20px;background:#fff;box-shadow:0 14px 36px rgba(45,19,50,.09)}.df-class-card>img{width:100%;height:240px;display:block;object-fit:cover}.df-class-card>div{padding:25px}.df-class-card h3{margin:0 0 9px}.df-class-card a{display:inline-block;margin-top:15px;color:#f70a7c;font-weight:800}
.df-schedule{max-width:920px}.df-schedule .df-day{display:grid;grid-template-columns:220px 1fr;gap:30px;padding:27px 0}.df-schedule .df-day h3{margin:0}.df-schedule .df-day p{margin:3px 0;white-space:pre-line}
.df-pricing-section{background:linear-gradient(180deg,#fff 0%,#fff7fb 100%)}.df-pricing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.df-price-card{position:relative;padding:34px;border:1px solid #ead8e3;border-radius:20px;background:#fff;box-shadow:0 18px 45px rgba(59,31,51,.1)}.df-price-card:before{content:"";position:absolute;inset:0 0 auto;height:6px;border-radius:20px 20px 0 0;background:#f70a7c}.df-price-label{color:#f70a7c;font-size:13px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.df-price-card h3{margin:10px 0}.df-price-card p{white-space:pre-line}
.df-contact-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.df-contact-panel{padding:38px;border:1px solid #efd8e6;border-radius:22px;background:#fff;box-shadow:0 16px 42px rgba(55,26,58,.09)}.df-contact-panel h3{font-size:34px}.df-contact-panel p{font-size:18px;line-height:1.7;white-space:pre-line}
@media(max-width:991px){.df-class-grid,.df-pricing-grid,.df-contact-layout{grid-template-columns:1fr}.df-schedule .df-day{grid-template-columns:1fr;gap:4px}.df-link-card{grid-template-columns:1fr}.df-link-card>a{grid-column:1;grid-row:auto;margin-top:8px}}

.main-menu > ul > li > a {
  font-size: 15px !important;
  letter-spacing: .025em;
}

.th-mobile-menu ul li a {
  font-size: 18px !important;
}

/* Branded portal login menu shared by every public-site header. */
.df-login-menu {
  position: relative;
  display: inline-flex;
  margin-right: 12px;
  vertical-align: middle;
}

.df-login-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 52px;
  padding: 13px 20px;
  border: 1px solid rgba(255, 255, 255, .5);
  border-radius: 12px;
  background: rgba(255, 255, 255, .1);
  color: #fff;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: .025em;
  cursor: pointer;
  backdrop-filter: blur(8px);
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}

.df-login-trigger:hover,
.df-login-menu:focus-within .df-login-trigger {
  border-color: #fff;
  background: rgba(255, 255, 255, .2);
  transform: translateY(-1px);
}

.df-login-trigger .fa-chevron-down {
  font-size: 11px;
  transition: transform .2s ease;
}

.df-login-menu:focus-within .fa-chevron-down,
.df-login-menu:hover .fa-chevron-down {
  transform: rotate(180deg);
}

.df-login-dropdown {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 1000;
  width: 230px;
  padding: 8px;
  border: 1px solid #f0dce8;
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 18px 45px rgba(38, 16, 45, .18);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-7px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}

.df-login-menu:hover .df-login-dropdown,
.df-login-menu:focus-within .df-login-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.df-login-dropdown a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 13px;
  border-radius: 10px;
  color: #302735 !important;
  font-size: 15px !important;
  font-weight: 700;
  text-decoration: none;
}

.df-login-dropdown a:hover,
.df-login-dropdown a:focus {
  background: #fff0f7;
  color: #f70a7c !important;
}

.df-login-dropdown i {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 9px;
  background: #ffe5f1;
  color: #f70a7c;
}

@media (max-width: 1199px) and (min-width: 992px) {
  .df-login-menu { margin-right: 7px; }
  .df-login-trigger { padding-inline: 14px; }
}

@media (max-width: 991px) {
  .df-login-menu { display: none; }
}

/* Lighter, more energetic inner-page masthead on desktop. */
@media (min-width: 992px) {
  body:has(> .th-header + main > .df-page-hero) > main > .df-page-hero,
  body > .th-header + .th-hero-wrapper#hero,
  body > .th-header + .th-hero-wrapper#hero .th-hero-bg {
    background:
      radial-gradient(270px 225px at 78% 34%, rgba(247, 10, 124, .56) 0%, rgba(247, 10, 124, .24) 34%, transparent 72%),
      radial-gradient(190px 160px at 25% 82%, rgba(247, 10, 124, .14) 0%, transparent 72%),
      #303036 !important;
  }
}

/* Inner pages: on phones the approved header sits above the page title.
   Do not let the absolute desktop header cover the mobile heading. */
@media (max-width: 991px) {
  body:has(> .th-header + main > .df-page-hero) {
    background:
      radial-gradient(165px 145px at calc(100% - 24px) 145px, rgba(247, 10, 124, .58) 0%, rgba(247, 10, 124, .23) 34%, transparent 72%),
      radial-gradient(190px 175px at 82% 420px, rgba(247, 10, 124, .48) 0%, rgba(247, 10, 124, .18) 36%, transparent 72%),
      radial-gradient(115px 100px at 8% 500px, rgba(247, 10, 124, .14) 0%, transparent 70%),
      #303036 !important;
  }

  body:has(> .th-header + main > .df-page-hero) > .th-header.header-absolute {
    position: relative;
    background: transparent !important;
  }

  body:has(> .th-header + main > .df-page-hero) > .th-header .sticky-wrapper,
  body:has(> .th-header + main > .df-page-hero) > .th-header .sticky-wrapper:not(.sticky) {
    position: relative;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  body:has(> .th-header + main > .df-page-hero) > main > .df-page-hero {
    padding-top: 48px;
    padding-bottom: 92px;
    background: transparent !important;
  }

  body:has(> .th-header + .th-hero-wrapper#hero) {
    background:
      radial-gradient(165px 145px at calc(100% - 24px) 145px, rgba(247, 10, 124, .58) 0%, rgba(247, 10, 124, .23) 34%, transparent 72%),
      radial-gradient(190px 175px at 82% 420px, rgba(247, 10, 124, .48) 0%, rgba(247, 10, 124, .18) 36%, transparent 72%),
      radial-gradient(115px 100px at 8% 500px, rgba(247, 10, 124, .14) 0%, transparent 70%),
      #303036 !important;
  }

  body:has(> .th-header + .th-hero-wrapper#hero) > .th-header,
  body:has(> .th-header + .th-hero-wrapper#hero) > .th-header .sticky-wrapper,
  body:has(> .th-header + .th-hero-wrapper#hero) > .th-hero-wrapper#hero,
  body:has(> .th-header + .th-hero-wrapper#hero) > .th-hero-wrapper#hero .th-hero-bg {
    background: transparent !important;
  }

  body:has(> .th-header + main > .df-page-hero) > .th-header .sticky-wrapper.sticky,
  body:has(> .th-header + .th-hero-wrapper#hero) > .th-header .sticky-wrapper.sticky {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 999 !important;
    background: #303036 !important;
    border: 0 !important;
    box-shadow: 0 10px 28px rgba(0, 0, 0, .2) !important;
    top: 0 !important;
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
  }

  body:has(> .th-header + main > .df-page-hero) > .th-header .sticky-wrapper.sticky .menu-area,
  body:has(> .th-header + .th-hero-wrapper#hero) > .th-header .sticky-wrapper.sticky .menu-area {
    padding: 7px 0 !important;
  }

  body:has(> .th-header + main > .df-page-hero) > .th-header .sticky-wrapper.sticky .header-logo img,
  body:has(> .th-header + .th-hero-wrapper#hero) > .th-header .sticky-wrapper.sticky .header-logo img {
    width: 64px !important;
  }

  body:has(> .th-header + main > .df-page-hero) > .th-header .sticky-wrapper.sticky .th-menu-toggle,
  body:has(> .th-header + .th-hero-wrapper#hero) > .th-header .sticky-wrapper.sticky .th-menu-toggle {
    width: 52px;
    height: 52px;
    font-size: 20px;
  }
}

/* Matching compact sticky header on desktop for home and inner pages. */
@media (min-width: 992px) {
  body:has(> .th-header + main > .df-page-hero) > .th-header .sticky-wrapper.sticky,
  body:has(> .th-header + .th-hero-wrapper#hero) > .th-header .sticky-wrapper.sticky {
    background: #303036 !important;
    border: 0 !important;
    box-shadow: 0 10px 28px rgba(0, 0, 0, .2) !important;
    top: 0 !important;
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
  }

  body:has(> .th-header + main > .df-page-hero) > .th-header .sticky-wrapper.sticky .header-logo img,
  body:has(> .th-header + .th-hero-wrapper#hero) > .th-header .sticky-wrapper.sticky .header-logo img {
    width: 64px !important;
  }

  body:has(> .th-header + main > .df-page-hero) > .th-header .sticky-wrapper.sticky .main-menu > ul > li > a,
  body:has(> .th-header + .th-hero-wrapper#hero) > .th-header .sticky-wrapper.sticky .main-menu > ul > li > a {
    padding-top: 25px !important;
    padding-bottom: 25px !important;
  }
}

.footer-wrapper.footer-layout3,
.footer-wrapper.footer-layout3 .footer-area,
.footer-wrapper.footer-layout3 .copyright-wrap {
  background: #fff7fb !important;
}

/* Inner-page header and masthead are one surface. Paint the gradient once on
   the shared body rather than restarting it on both child components. */
body:has(> .th-header + main > .df-page-hero){
  background:
    radial-gradient(circle at 84% 23%,rgba(255,112,188,.5),transparent 28%) top/100% 680px no-repeat,
    radial-gradient(circle at 17% 76%,rgba(228,92,190,.28),transparent 37%) top/100% 680px no-repeat,
    linear-gradient(118deg,#5b2f80 0%,#9d257d 52%,#e30a79 100%) top/100% 680px no-repeat,
    #fff!important;
}
body:has(> .th-header + main > .df-page-hero) > .th-header,
body:has(> .th-header + main > .df-page-hero) > .th-header .sticky-wrapper:not(.sticky),
body:has(> .th-header + main > .df-page-hero) > main > .df-page-hero{
  background:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
}
@media(max-width:991px){
  body:has(> .th-header + main > .df-page-hero){
    background:
      radial-gradient(circle at 91% 27%,rgba(255,135,198,.42),transparent 25%) top/100% 860px no-repeat,
      radial-gradient(circle at 80% 70%,rgba(246,98,178,.25),transparent 32%) top/100% 860px no-repeat,
      linear-gradient(118deg,#5b2f80 0%,#9d257d 52%,#e30a79 100%) top/100% 860px no-repeat,
      #fff!important;
  }
}

/* Consistent spacing for repeatable CMS cards. Grid-based card groups already
   use gap; this also covers older and newly-added stacked cards. */
.df-split>div>.df-card~.df-card,
.df-stack-cards>.df-card~.df-card,
.df-schedule>.df-card~.df-card{
  margin-top:20px!important;
}

/* Final continuity override: inner-page navigation and masthead share one
   uninterrupted parent-portal gradient at every viewport size. */
body:has(> .th-header + main > .df-page-hero){background:radial-gradient(circle at 84% 23%,rgba(255,112,188,.5),transparent 28%) top/100% 680px no-repeat,radial-gradient(circle at 17% 76%,rgba(228,92,190,.28),transparent 37%) top/100% 680px no-repeat,linear-gradient(118deg,#5b2f80 0%,#9d257d 52%,#e30a79 100%) top/100% 680px no-repeat,#fff!important}
body:has(> .th-header + main > .df-page-hero) > .th-header,body:has(> .th-header + main > .df-page-hero) > .th-header .sticky-wrapper:not(.sticky),body:has(> .th-header + main > .df-page-hero) > main > .df-page-hero{background:transparent!important;border-color:transparent!important;box-shadow:none!important}
@media(max-width:991px){body:has(> .th-header + main > .df-page-hero){background:radial-gradient(circle at 91% 27%,rgba(255,135,198,.42),transparent 25%) top/100% 860px no-repeat,radial-gradient(circle at 80% 70%,rgba(246,98,178,.25),transparent 32%) top/100% 860px no-repeat,linear-gradient(118deg,#5b2f80 0%,#9d257d 52%,#e30a79 100%) top/100% 860px no-repeat,#fff!important}body:has(> .th-header + main > .df-page-hero) > main,body:has(> .th-header + main > .df-page-hero) > .th-header,body:has(> .th-header + main > .df-page-hero) > .th-header .sticky-wrapper:not(.sticky),body:has(> .th-header + main > .df-page-hero) > .th-header .sticky-wrapper:not(.sticky) .menu-area,body:has(> .th-header + main > .df-page-hero) > main > .df-page-hero{background-color:transparent!important;background-image:none!important;border:0!important;box-shadow:none!important}}

/* Mobile continuity: the hero sits inside main, so that parent and every
   non-sticky header wrapper must also be transparent. Otherwise the two
   transparent children reveal different painted layers and create a seam. */
@media(max-width:991px){
  body:has(> .th-header + main > .df-page-hero) > main,
  body:has(> .th-header + main > .df-page-hero) > .th-header,
  body:has(> .th-header + main > .df-page-hero) > .th-header .sticky-wrapper:not(.sticky),
  body:has(> .th-header + main > .df-page-hero) > .th-header .sticky-wrapper:not(.sticky) .menu-area,
  body:has(> .th-header + main > .df-page-hero) > main > .df-page-hero{
    background-color:transparent!important;
    background-image:none!important;
    border:0!important;
    box-shadow:none!important;
  }
}

.footer-wrapper.footer-layout3 {
  padding-top: 0 !important;
  border-top: 1px solid #ecdce6;
}

.footer-wrapper.footer-layout3 .footer-menu a,
.footer-wrapper.footer-layout3 .copyright-text,
.footer-wrapper.footer-layout3 .copyright-text a,
.footer-wrapper.footer-layout3 .footer-copyright-right a {
  color: #3f3943 !important;
}

.footer-wrapper.footer-layout3 .footer-menu a {
  font-size: 24px !important;
  font-weight: 600 !important;
}

@media (max-width: 575px) {
  .df-actions .th-btn + .th-btn {
    margin-top: 12px !important;
    margin-left: 0 !important;
  }
}
.footer-address {
  max-width: 760px;
  margin: -16px auto 34px;
  padding: 0 20px;
  font-family: "Karla", sans-serif;
  font-size: 17px;
  font-style: normal;
  line-height: 1.6;
}

.footer-address a {
  color: #3f3943;
}

.footer-address a:hover {
  color: #f70a7c;
}

/* Full-screen Jotform booking dialog. */
body.df-form-modal-open {
  overflow: hidden;
}

.df-form-modal {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(31, 28, 34, .82);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  opacity: 0;
  visibility: hidden;
  transition: opacity .2s ease, visibility .2s ease;
}

.df-form-modal.is-open {
  opacity: 1;
  visibility: visible;
}

.df-form-modal__panel {
  width: min(1180px, 100%);
  height: min(920px, calc(100dvh - 36px));
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 28px 80px rgba(0, 0, 0, .42);
  transform: translateY(12px) scale(.985);
  transition: transform .2s ease;
}

.df-form-modal.is-open .df-form-modal__panel {
  transform: none;
}

.df-form-modal__bar {
  height: 62px;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 0 14px 0 22px;
  background: #303036;
  color: #fff;
}

.df-form-modal__title {
  margin: 0 auto 0 0;
  color: #fff;
  font: 700 18px/1.2 "Karla", sans-serif !important;
}

.df-form-modal__external {
  color: #fff;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.df-form-modal__close {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #f70a7c;
  color: #fff;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}

.df-form-modal__frame {
  display: block;
  width: 100%;
  height: calc(100% - 62px);
  border: 0;
  background: #fff7fb;
}

@media (max-width: 575px) {
  .df-form-modal {
    padding: 0;
  }

  .df-form-modal__panel {
    width: 100%;
    height: 100dvh;
    border: 0;
    border-radius: 0;
  }

  .df-form-modal__bar {
    height: 58px;
    padding-left: 16px;
  }

  .df-form-modal__title {
    font-size: 16px !important;
  }

  .df-form-modal__external {
    display: none;
  }

  .df-form-modal__frame {
    height: calc(100% - 58px);
  }
}

/* Fees page */
.fees-page {
  padding: 118px 0 110px !important;
  background: linear-gradient(180deg, #fff 0%, #fff8fc 100%);
}

.fees-intro {
  display: grid;
  grid-template-columns: minmax(260px, .9fr) minmax(360px, 1.1fr);
  align-items: end;
  gap: 70px;
  margin-bottom: 38px;
}

.fees-intro h2 {
  margin: 0;
  color: #211522;
  font-size: clamp(48px, 6vw, 78px);
  line-height: .95;
}

.fees-intro h2 span {
  display: block;
  color: #f70a7c;
}

.fees-intro p {
  max-width: 620px;
  margin: 0 0 8px;
  color: #746772;
  font-size: 21px;
  line-height: 1.45;
}

.fees-trial {
  margin: 0 0 42px;
  padding: 23px 28px;
  border: 1px solid #f2d8e6;
  border-left: 6px solid #f70a7c;
  border-radius: 0 14px 14px 0;
  background: #fff;
  color: #2b202b;
  font-size: 20px;
  box-shadow: 0 10px 30px rgba(67, 35, 58, .07);
}

.fees-trial strong {
  color: #f70a7c;
}

.fees-table-wrap {
  overflow-x: auto;
  border: 1px solid #ead8e3;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 20px 55px rgba(59, 31, 51, .11);
}

.fees-table {
  width: 100%;
  border-collapse: collapse;
  color: #241a25;
  font-size: 19px;
  font-variant-numeric: tabular-nums;
}

.fees-table th,
.fees-table td {
  padding: 21px 30px;
  border: 0 !important;
  border-bottom: 1px solid #f0dfe8 !important;
  text-align: right;
}

.fees-table th {
  background: #302c33;
  color: #fff;
  font-family: "Fraunces", serif !important;
  font-size: 21px;
  letter-spacing: .01em;
}

.fees-table thead th:first-child {
  border-radius: 17px 0 0 0;
}

.fees-table thead th:last-child {
  border-radius: 0 17px 0 0;
}

.fees-table th:first-child,
.fees-table td:first-child {
  text-align: left;
}

.fees-table tbody tr:nth-child(even) {
  background: #fff7fb;
}

.fees-table tbody tr {
  transition: background-color .18s ease;
}

.fees-table tbody tr:not(:last-child):hover {
  background: #fff0f7;
}

.fees-table tbody td:nth-child(2),
.fees-table tbody td:nth-child(3) {
  color: #4d3b49;
  font-weight: 700;
}

.fees-table tr:last-child {
  background: linear-gradient(90deg, #f70a7c 0%, #c80863 100%);
  color: #fff;
  font-weight: 700;
}

.fees-table tbody tr:last-child td {
  border-bottom: 0 !important;
  color: #fff;
}

.fees-unlimited {
  display: inline-block;
  margin-left: 10px;
  padding: 3px 10px;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 5px;
  background: rgba(255,255,255,.14);
  color: #fff;
  font-size: 14px;
  letter-spacing: .04em;
  vertical-align: middle;
}

.fees-how {
  margin-top: 58px;
  padding-top: 42px;
  border-top: 1px solid #e8d7e1;
}

.fees-how h2 {
  margin-bottom: 22px;
  font-size: clamp(34px, 4vw, 46px);
}

.fees-how p {
  max-width: 1120px;
  color: #746772;
  font-size: 19px;
  line-height: 1.65;
}

.fees-question {
  margin-top: 38px;
  padding-top: 30px;
  border-top: 1px solid #e8d7e1;
}

.fees-question p {
  margin: 0;
}

@media (max-width: 767px) {
  .fees-site > main > .df-page-hero {
    min-height: 0 !important;
    height: auto !important;
    padding: 36px 20px 52px !important;
  }

  .fees-site > main > .df-page-hero h1 {
    margin-bottom: 8px !important;
    font-size: clamp(48px, 16vw, 64px) !important;
    line-height: 1 !important;
  }

  .fees-site > main > .df-page-hero p {
    max-width: 300px;
    margin: 0 auto !important;
    font-size: 17px !important;
    line-height: 1.45;
  }

  .fees-page {
    position: relative;
    z-index: 1;
    padding: 64px 0 72px !important;
    background: #fffafd !important;
  }

  .fees-intro {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .fees-table th,
  .fees-table td {
    padding: 17px 12px;
    font-size: 16px;
  }

  .fees-table th {
    font-size: 17px;
  }

  .fees-unlimited {
    display: block;
    width: max-content;
    margin: 7px 0 0;
  }

  .fees-table-wrap {
    border-radius: 14px;
    box-shadow: 0 14px 36px rgba(59, 31, 51, .1);
  }
}

.copyright-wrap .row {
  justify-content: center;
}

.copyright-wrap .col-lg-6 {
  flex: 0 0 100%;
  max-width: 100%;
}

.copyright-wrap .copyright-text {
  width: 100%;
  margin: 0;
  text-align: center;
}

.duo-footer-byline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin-top: 10px;
}

.duo-footer-credit {
  display: inline-flex;
  align-items: center;
  line-height: 1;
}

.duo-footer-logo {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  color: #101114;
  font: 700 24px/1 "DM Sans", Arial, sans-serif;
  letter-spacing: -2px;
  text-transform: lowercase;
  vertical-align: middle;
}

.duo-footer-logo i {
  width: 5px;
  height: 5px;
  display: block;
  flex: 0 0 auto;
  background: #d7ff37;
  border-radius: 50%;
}
@media (min-width: 992px) {
  .header-layout3 .menu-area .row { flex-wrap: nowrap; }
  .header-layout3 .menu-area .col-auto { flex: 0 0 auto; }
  .header-layout3 .header-button,
  .header-layout3 .main-menu > ul { flex-wrap: nowrap; white-space: nowrap; }
}
.feature-card_title{text-align:center}
.mySwiper{padding:0 4px 46px;overflow:hidden}
.mySwiper .feature-card{position:relative;z-index:0;border:2px solid transparent!important;border-radius:20px;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(126.95deg,#f70a7c 0%,#ff007f 55%,#eb0029 100%) border-box!important;box-shadow:0 14px 38px rgba(38,16,45,.09)}
.mySwiper .feature-card_title,.mySwiper .feature-card_title a{color:#17151c!important}
.mySwiper .feature-card::before{display:none}
.mySwiper .feature-card_img img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover}
.mySwiper .swiper-button-next,.mySwiper .swiper-button-prev{width:44px;height:44px;margin-top:-22px;border:1px solid rgba(247,10,124,.3);border-radius:50%;background:rgba(255,255,255,.96);color:#f70a7c;box-shadow:0 8px 24px rgba(38,16,45,.14)}
.mySwiper .swiper-button-prev{left:18px}.mySwiper .swiper-button-next{right:18px}
.mySwiper .swiper-button-next::after,.mySwiper .swiper-button-prev::after{font-size:15px;font-weight:800}
.mySwiper .swiper-pagination{bottom:12px}
.mySwiper .swiper-pagination-bullet{width:7px;height:7px;margin:0 5px!important;border-radius:999px;background:#d8d1dc;opacity:1;box-shadow:none}
.mySwiper .swiper-pagination-bullet-active{width:22px;background:linear-gradient(90deg,#f70a7c,#ff007f)}

/* Homepage layout. Content remains database-owned; these are presentation rules only. */
.th-header .sticky-wrapper.sticky{background-color:#000!important}
.exo-title{font-family:"Exo",sans-serif;font-weight:900;font-style:normal}
.neon-button{padding:10px 20px;color:#fff;background-color:#222!important;border:2px solid #f0f;border-radius:5px;box-shadow:0 0 5px #f0f,0 0 10px #f0f,0 0 15px #f0f;font-weight:700;text-align:center}
#hero,#hero .th-hero-bg{background:radial-gradient(circle at 75% 40%,rgba(255,0,127,.28),transparent 34%),radial-gradient(circle at 24% 72%,rgba(247,10,124,.24),transparent 38%),#0d0b12!important}
#hero .th-hero-bg::before{background:transparent!important}
#hero .hero-style3{max-width:760px}
#hero .hero-title{max-width:760px;color:#fff!important;font-size:clamp(58px,6vw,96px)!important;line-height:1.02!important;text-shadow:0 6px 30px rgba(0,0,0,.28)!important}
#hero .hero-offer-note{margin:-18px 0 26px;color:#f4edf6;font-size:22px;font-weight:600}
.home-light-section,.home-soft-section{background:#fff!important}
.home-light-section .bg-title,.home-soft-section .bg-title{background:transparent!important}
.home-light-section h1,.home-light-section h2,.home-light-section h3,.home-light-section .text-white,.home-soft-section h1,.home-soft-section h2,.home-soft-section h3,.home-soft-section .text-white{color:#17151c!important}
.home-light-section p,.home-soft-section p{color:#5f5964!important}
#about-sec .about-sec-three{padding:88px 0}
#about-sec .home-about-copy{max-width:920px;margin:0 auto;text-align:center}
#about-sec .home-about-copy h2{font-size:clamp(38px,4vw,52px);line-height:1.12}
#about-sec .home-about-copy p{font-size:18px!important;line-height:1.75}
.home-info-section,.home-award-news,.home-family{padding:82px 0}
.home-info-section{background:#fff7fb}
.home-award-news,.home-family{background:#fff}
.home-family{text-align:center}
.home-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.home-info-card{padding:38px;border:1px solid #efd8e6;border-radius:22px;background:rgba(255,255,255,.58)}
.home-info-card h3,.home-news h2,.home-award h3{margin-bottom:16px}
.home-info-card p,.home-news p,.home-award p{color:#6a616b!important;font-size:18px!important;line-height:1.65}
.home-ticks{margin:26px 0 28px;padding:0;list-style:none}
.home-ticks li{position:relative;margin:12px 0;padding-left:26px;color:#6a616b;font-size:17px}
.home-ticks li::before{position:absolute;top:.62em;left:0;width:8px;height:8px;border-radius:2px;background:#f70a7c;content:""}
.home-text-link{color:#f70a7c!important;font-weight:700}
.home-family h2{margin-bottom:14px}
.home-family>.container>p{max-width:720px;margin:0 auto 34px;color:#6a616b!important;font-size:18px!important}
.home-family-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.home-family-gallery img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:22px;background:#fff7fb}
.home-award-news-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:48px;align-items:stretch}
.home-award{padding:42px;border-radius:22px;background:#fff0f7}
.home-award-label{display:block;margin-bottom:16px;color:#f70a7c;font-weight:700}
.home-news-item{padding:18px 0;border-bottom:1px solid #efd8e6}
.home-news-item:last-child{border-bottom:0}
.home-news-tag{display:inline-block;margin-bottom:10px;padding:3px 9px;border:1px solid #f7a5c9;border-radius:5px;color:#f70a7c;font-size:13px;font-weight:700}
.home-soft-section .cta-area-three{max-width:980px;margin:0 auto;padding:58px 48px;overflow:hidden;border:0;border-radius:24px;background:radial-gradient(320px 220px at 86% 20%,rgba(247,10,124,.2),transparent 100%),#1c1b21!important;box-shadow:0 18px 42px rgba(28,16,30,.14);text-align:center}
.home-soft-section .cta-area-three::before{display:none!important;content:none!important}
.home-soft-section .cta-area-three .cta-content{max-width:760px;margin:0 auto}
.home-soft-section .cta-area-three .cta-btn2{text-align:center}
.home-soft-section .cta-area-three h2,.home-soft-section .cta-area-three .text-white{color:#fff!important}
.home-soft-section .cta-area-three p{color:#f0eaf0!important}
.home-soft-section .cta-area-three .th-btn{border:0!important;border-radius:12px!important;background:linear-gradient(135deg,#ff007f,#f70a7c)!important;box-shadow:0 8px 24px rgba(247,10,124,.28)!important}
.home-soft-section .cta-area-three .th-btn::before,.home-soft-section .cta-area-three .th-btn::after{display:none!important}
.home-soft-section{position:relative;z-index:3;padding-top:0!important;padding-bottom:0!important;margin-top:0!important}
.home-soft-section>.container{padding-top:0!important}
main>*:has(+.home-soft-section:last-child){padding-bottom:28px!important;margin-bottom:0!important}
.home-soft-section .cta-area-three{transform:translateY(72px)}
main:has(>.home-soft-section:last-child)+footer{position:relative;z-index:1;padding-top:72px!important}
@media(max-width:1199px){#hero>.container{display:flex!important;flex-direction:column!important;align-items:center!important;margin-top:0!important;padding-top:190px}#hero>.container>.hero-style3{order:1!important;width:100%;max-width:760px;padding:58px 20px 28px;text-align:center}#hero>.container>.hero-style3 .hero-title{margin-bottom:12px;font-size:clamp(46px,8vw,76px);line-height:1.05}#hero>.container>.hero-img{order:2!important;position:relative!important;top:0!important;right:auto!important;width:min(540px,78vw);margin:0 auto}#hero>.container>.hero-img img{margin-top:0!important}}
@media(max-width:767px){.home-info-grid,.home-award-news-grid,.home-family-gallery{grid-template-columns:1fr}.home-info-section,.home-award-news,.home-family{padding:58px 0}.home-info-card,.home-award{padding:28px 24px}main>*:has(+.home-soft-section:last-child){padding-bottom:20px!important}.home-soft-section .cta-area-three{padding:42px 24px;border-radius:20px;transform:translateY(48px)}main:has(>.home-soft-section:last-child)+footer{padding-top:48px!important}}
@media(max-width:767px){.home-soft-section .cta-area-three{transform:none}.home-soft-section{padding-bottom:32px!important}main:has(>.home-soft-section:last-child)+footer{padding-top:0!important}}
@media(max-width:575px){#hero .container{padding-top:190px}#hero .hero-style3{padding-top:48px}#hero .hero-style3 .hero-title{font-size:42px}#hero .hero-offer-note{font-size:18px}#hero .hero-img{width:min(430px,88vw)}}

/* Testimonials: one editorial card per DB record, without legacy nested shells. */
.df-testimonials-page .df-page-hero{padding-bottom:78px}
.df-testimonials-page main>.df-page.alt{padding:82px 0 105px;background:linear-gradient(180deg,#fff7fb 0%,#fff 100%)!important}
.df-testimonials-page .df-heading{max-width:720px;margin-bottom:52px}
.df-testimonials-page .df-heading h2{margin-bottom:12px;font-size:clamp(38px,4vw,56px);line-height:1.08}
.df-testimonials-page .df-heading p{font-size:19px!important;line-height:1.6}
.df-testimonials-page .df-testimonials{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:stretch}
.df-testimonials-page .df-testimonial,.df-testimonials-page .df-testimonial:last-child{position:relative;grid-column:auto;height:100%;min-height:320px;padding:48px 34px 32px;overflow:hidden;border:1px solid #f0d9e7;border-top:5px solid #f70a7c;border-radius:20px;background:#fff!important;box-shadow:0 16px 42px rgba(54,25,55,.09)}
.df-testimonials-page .df-testimonial:before{position:absolute;top:17px;left:29px;color:#f70a7c;font:700 54px/1 Fraunces,serif;content:'“';opacity:.9}
.df-testimonials-page .df-testimonial>h1,.df-testimonials-page .df-testimonial>h2,.df-testimonials-page .df-testimonial>h3,.df-testimonials-page .df-testimonial>h4{display:none!important}
.df-testimonials-page .df-testimonial blockquote,.df-testimonials-page .df-testimonial blockquote p{margin:0!important;padding:0!important;color:#39323b!important;background:transparent!important;border:0!important;box-shadow:none!important;font-family:Karla,sans-serif!important;font-size:17px!important;font-style:normal!important;font-weight:500!important;line-height:1.72!important;text-align:left!important}
.df-testimonials-page .df-testimonial blockquote:before,.df-testimonials-page .df-testimonial blockquote:after,.df-testimonials-page .df-testimonial blockquote p:before,.df-testimonials-page .df-testimonial blockquote p:after{display:none!important;content:none!important}
.df-testimonials-page .df-testimonial footer{margin-top:28px;padding-top:21px;border-top:1px solid #f0dbe8;color:#6d6470!important;background:transparent!important;font-size:14px!important;line-height:1.45!important}
.df-testimonials-page .df-testimonial footer strong,.df-testimonials-page .df-testimonial cite{display:block;margin-bottom:3px;color:#211823!important;font-family:Karla,sans-serif!important;font-size:17px!important;font-style:normal!important;font-weight:800!important}
.df-testimonials-page .df-testimonial .df-testimonial{min-height:0;padding:0;border:0;border-radius:0;box-shadow:none}
.df-testimonials-page .df-testimonial .df-testimonial:before{display:none}
@media(max-width:1100px){.df-testimonials-page .df-testimonials{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.df-testimonials-page main>.df-page.alt{padding:58px 0 78px}.df-testimonials-page .df-heading{margin-bottom:34px}.df-testimonials-page .df-testimonials{grid-template-columns:1fr;gap:18px}.df-testimonials-page .df-testimonial,.df-testimonials-page .df-testimonial:last-child{min-height:0;padding:44px 25px 28px}.df-testimonials-page .df-testimonial blockquote,.df-testimonials-page .df-testimonial blockquote p{font-size:16px!important}}

/* Buttons created in the CMS. Their wording and destinations remain DB content. */
a.df-content-button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;margin:8px 12px 8px 0;padding:13px 25px;border:1px solid #f70a7c;border-radius:10px;color:#fff!important;background:#f70a7c;box-shadow:0 8px 22px rgba(247,10,124,.22);font-weight:800;line-height:1.2;text-decoration:none!important;text-transform:uppercase;transition:transform .2s ease,background .2s ease,box-shadow .2s ease}
a.df-content-button:hover{color:#fff!important;background:#d9086e;box-shadow:0 10px 26px rgba(247,10,124,.3);transform:translateY(-2px)}
a.df-content-button--outline{color:#f70a7c!important;background:#fff;box-shadow:none}
a.df-content-button--outline:hover{color:#fff!important;background:#f70a7c}
a.df-content-button--text{min-height:0;padding:3px 1px;border:0;border-radius:0;color:#f70a7c!important;background:transparent;box-shadow:none;text-decoration:underline!important;text-underline-offset:3px;text-transform:none}
a.df-content-button--text:hover{color:#d9086e!important;background:transparent;box-shadow:none;transform:none}
.df-button-section{padding:24px 20px 58px;background:#fff;text-align:center}
.df-button-section>.container{display:flex;justify-content:center}
.df-button-section a.df-content-button{margin:0}
.df-stack-cards{display:grid;gap:18px;margin:22px 0}
.df-stack-cards>.df-card{margin:0}
/* Existing studio-hire content predates the stack wrapper. Keep the two
   legacy cards separated as well, without changing its database content. */
.df-split>div>.df-card+br{display:none}
.df-split>div>.df-card+br+.df-card{margin-top:18px}

/* Inner-page mastheads use the same rich gradient language as the parent portal. */
body:has(> .th-header + main > .df-page-hero) > main > .df-page-hero{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:
    radial-gradient(circle at 82% 28%,rgba(255,115,190,.64),transparent 31%),
    radial-gradient(circle at 18% 105%,rgba(255,154,198,.34),transparent 35%),
    linear-gradient(112deg,#623486 0%,#a8247d 52%,#e40a79 100%)!important;
  box-shadow:inset 0 -3px 0 rgba(245,0,115,.72);
}
body:has(> .th-header + main > .df-page-hero) > main > .df-page-hero:before,
body:has(> .th-header + main > .df-page-hero) > main > .df-page-hero:after{
  position:absolute;
  z-index:-1;
  border:38px solid rgba(255,255,255,.045);
  border-radius:50%;
  content:"";
  pointer-events:none;
}
body:has(> .th-header + main > .df-page-hero) > main > .df-page-hero:before{top:-125px;right:8%;width:240px;height:240px}
body:has(> .th-header + main > .df-page-hero) > main > .df-page-hero:after{right:-55px;bottom:-115px;width:205px;height:205px;border-color:rgba(245,0,115,.13)}
body:has(> .th-header + main > .df-page-hero) > main > .df-page-hero>.container{position:relative;z-index:1}
body:has(> .th-header + main > .df-page-hero) > main > .df-page-hero p{color:rgba(255,255,255,.78)!important}
@media(max-width:991px){
  body:has(> .th-header + main > .df-page-hero){background:linear-gradient(112deg,#623486 0%,#a8247d 54%,#e40a79 100%)!important}
  body:has(> .th-header + main > .df-page-hero) > main > .df-page-hero{background:radial-gradient(circle at 88% 20%,rgba(255,125,191,.54),transparent 39%)!important;box-shadow:inset 0 -3px 0 rgba(255,0,127,.9)}
  body:has(> .th-header + main > .df-page-hero) > main > .df-page-hero:before{top:-95px;right:-55px;width:190px;height:190px}
  body:has(> .th-header + main > .df-page-hero) > main > .df-page-hero:after{display:none}
}

/* The homepage uses its own hero component, so give it the same brighter
   pink-purple atmosphere without changing its image or content layout. */
body:has(> .th-header + .th-hero-wrapper#hero) > .th-header,
body:has(> .th-header + .th-hero-wrapper#hero) > .th-header .sticky-wrapper:not(.sticky),
#hero,
#hero .th-hero-bg{
  background:
    radial-gradient(circle at 78% 22%,rgba(255,91,174,.52),transparent 32%),
    radial-gradient(circle at 16% 76%,rgba(232,91,190,.36),transparent 40%),
    linear-gradient(118deg,#4e286f 0%,#8d1f72 54%,#d50b70 100%)!important;
}

/* Match the parent portal's bright navigation gradient instead of allowing
   the legacy black header background to show through. */
body:has(> .th-header + main > .df-page-hero) > .th-header,
body:has(> .th-header + main > .df-page-hero) > .th-header .sticky-wrapper:not(.sticky),
body:has(> .th-header + .th-hero-wrapper#hero) > .th-header,
body:has(> .th-header + .th-hero-wrapper#hero) > .th-header .sticky-wrapper:not(.sticky){
  background:linear-gradient(108deg,#60318a 0%,#ac167c 52%,#ff007f 100%)!important;
}

/* On mobile the navigation and inner-page masthead are one visual area.
   Paint the gradient once on their shared body instead of restarting it on
   each element, which produced a visible horizontal colour break. */
@media(max-width:991px){
  body:has(> .th-header + main > .df-page-hero){
    background:
      radial-gradient(circle at 91% 29%,rgba(255,137,198,.42),transparent 25%),
      linear-gradient(112deg,#623486 0%,#a8247d 54%,#e40a79 100%) top/100% 900px no-repeat!important;
  }
  body:has(> .th-header + main > .df-page-hero) > .th-header,
  body:has(> .th-header + main > .df-page-hero) > .th-header .sticky-wrapper:not(.sticky),
  body:has(> .th-header + main > .df-page-hero) > main > .df-page-hero{
    background:transparent!important;
  }
}

/* Keep this last: later legacy compatibility rules must not repaint the two
   halves independently. */
body:has(> .th-header + main > .df-page-hero){background:radial-gradient(circle at 84% 23%,rgba(255,112,188,.5),transparent 28%) top/100% 680px no-repeat,radial-gradient(circle at 17% 76%,rgba(228,92,190,.28),transparent 37%) top/100% 680px no-repeat,linear-gradient(118deg,#5b2f80 0%,#9d257d 52%,#e30a79 100%) top/100% 680px no-repeat,#fff!important}
body:has(> .th-header + main > .df-page-hero) > .th-header,body:has(> .th-header + main > .df-page-hero) > .th-header .sticky-wrapper:not(.sticky),body:has(> .th-header + main > .df-page-hero) > main > .df-page-hero{background:transparent!important;border-color:transparent!important;box-shadow:none!important}
@media(max-width:991px){body:has(> .th-header + main > .df-page-hero){background:radial-gradient(circle at 91% 27%,rgba(255,135,198,.42),transparent 25%) top/100% 860px no-repeat,radial-gradient(circle at 80% 70%,rgba(246,98,178,.25),transparent 32%) top/100% 860px no-repeat,linear-gradient(118deg,#5b2f80 0%,#9d257d 52%,#e30a79 100%) top/100% 860px no-repeat,#fff!important}}
@media(max-width:991px){body:has(> .th-header + main > .df-page-hero) > main,body:has(> .th-header + main > .df-page-hero) > .th-header,body:has(> .th-header + main > .df-page-hero) > .th-header .sticky-wrapper:not(.sticky),body:has(> .th-header + main > .df-page-hero) > .th-header .sticky-wrapper:not(.sticky) .menu-area,body:has(> .th-header + main > .df-page-hero) > main > .df-page-hero{background-color:transparent!important;background-image:none!important;border:0!important;box-shadow:none!important}}

/* Mobile drawer: use a dark logo panel and one disclosure chevron per
   expandable row instead of the theme's overlapping +/- icons. */
@media(max-width:991px){
  .th-menu-wrapper .th-menu-area{display:flex;flex-direction:column;background:#fff!important}
  .th-menu-wrapper .th-menu-area:after{display:none!important;content:none!important}
  .th-menu-wrapper .mobile-logo{background:#17151c!important}
  .th-menu-wrapper .th-mobile-menu{flex:0 1 auto;margin-bottom:0}
  .th-menu-wrapper .th-mobile-menu ul li.th-item-has-children>a{padding-left:0;padding-right:42px}
  .th-menu-wrapper .th-mobile-menu ul li.th-item-has-children>a:before,
  .th-menu-wrapper .th-mobile-menu li.menu-item-has-children>a:after,
  .th-menu-wrapper .th-mobile-menu li.th-item-has-children>a:after{display:none!important;content:none!important}
  .th-menu-wrapper .th-mobile-menu ul .th-item-has-children>a .th-mean-expand{right:2px;width:32px;height:32px;margin-top:-16px;display:grid;place-items:center;background:transparent;color:#171927;box-shadow:none}
  .th-menu-wrapper .th-mobile-menu ul .th-item-has-children>a .th-mean-expand:before{width:9px;height:9px;display:block;border:0;border-right:2px solid currentColor;border-bottom:2px solid currentColor;content:""!important;transform:translateY(-2px) rotate(45deg);transition:transform .2s ease}
  .th-menu-wrapper .th-mobile-menu ul .th-item-has-children.th-active>a .th-mean-expand:before{transform:translateY(2px) rotate(225deg)}
}

/* The inner-page ring intentionally crosses the header/hero join on mobile.
   Do not clip it at the hero boundary, and keep the menu button fully inside
   the viewport at narrow and browser-scaled widths. */
@media(max-width:991px){
  html,body{overflow-x:clip}
  body:has(> .th-header + main > .df-page-hero) > main{overflow:visible!important}
  body:has(> .th-header + main > .df-page-hero) > main > .df-page-hero{overflow:visible!important}
  body:has(> .th-header + main > .df-page-hero) > main > .df-page-hero:before{top:-138px!important;right:-42px!important}
  body:has(> .th-header + main > .df-page-hero) > .th-header .menu-area{overflow:visible!important}
  body:has(> .th-header + main > .df-page-hero) > .th-header .th-menu-toggle{position:relative!important;right:auto!important;flex:0 0 52px;margin-right:18px!important}
}

/* Homepage CTA: centre the complete content column, not only its outer card. */
.home-soft-section .cta-area-three .col-lg-9,
.home-soft-section .cta-area-three .cta-content{
  margin-right:auto!important;
  margin-left:auto!important;
  text-align:center!important;
}
.home-soft-section .cta-area-three .cta-btn2{
  display:flex!important;
  justify-content:center!important;
  text-align:center!important;
}

/* Homepage header + hero are one surface. The live renderer places #hero
   inside main, so paint the gradient once on body and make both children
   transparent. This deliberately comes last to beat legacy hero backgrounds. */
body:has(> .th-header + main > #hero){
  background:
    radial-gradient(circle at 84% 24%,rgba(255,112,188,.48),transparent 28%) top/100% 940px no-repeat,
    linear-gradient(118deg,#5b2f80 0%,#9d257d 52%,#e30a79 100%) top/100% 940px no-repeat,
    #fff!important;
}
body:has(> .th-header + main > #hero) > .th-header,
body:has(> .th-header + main > #hero) > .th-header .sticky-wrapper:not(.sticky),
body:has(> .th-header + main > #hero) > .th-header .sticky-wrapper:not(.sticky) .menu-area,
body:has(> .th-header + main > #hero) > main,
body:has(> .th-header + main > #hero) > main > #hero,
body:has(> .th-header + main > #hero) > main > #hero .th-hero-bg{
  background-color:transparent!important;
  background-image:none!important;
  border-color:transparent!important;
  box-shadow:none!important;
}

/* Scrolling must retain the approved gradient, never revert to the theme's
   black sticky-header fallback. */
.th-header.header-layout3 .sticky-wrapper.sticky,
.th-header.header-layout3 .sticky-wrapper.sticky .menu-area{
  background:linear-gradient(118deg,#5b2f80 0%,#9d257d 52%,#e30a79 100%)!important;
  border:0!important;
  box-shadow:0 10px 28px rgba(67,20,74,.2)!important;
}

@media(max-width:991px){
  body:has(> .th-header + main > #hero){
    background:
      radial-gradient(circle at 91% 23%,rgba(255,135,198,.42),transparent 25%) top/100% 1080px no-repeat,
      linear-gradient(118deg,#5b2f80 0%,#9d257d 52%,#e30a79 100%) top/100% 1080px no-repeat,
      #fff!important;
  }
}
