/* Dance Floor Content Hub 2.0 - full-width breakout for Twenty Twenty-Four */
body:has(.dfch-wrap){overflow-x:hidden}

.dfch-wrap{
  box-sizing:border-box;
  position:relative;
  left:50%;
  transform:translateX(-50%);
  width:min(1680px,calc(100vw - 40px));
  max-width:none!important;
  margin:0!important;
  padding:34px 0 76px;
}
.dfch-wrap *, .dfch-wrap *:before, .dfch-wrap *:after{box-sizing:border-box}

.dfch-hero{background:linear-gradient(135deg,#111 0%,#2b2b2b 100%);color:#fff;border-radius:28px;padding:clamp(52px,6vw,104px);margin-bottom:30px;overflow:hidden;position:relative}
.dfch-hero:after{content:"";position:absolute;right:-70px;top:-115px;width:360px;height:360px;border:1px solid rgba(255,255,255,.18);border-radius:50%}
.dfch-hero__inner{max-width:1050px;position:relative;z-index:1}
.dfch-eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;font-weight:700;margin:0 0 14px}
.dfch-hero h1{font-size:clamp(3rem,6vw,6rem);line-height:.94;margin:0 0 22px}
.dfch-intro{font-size:clamp(1.08rem,1.65vw,1.42rem);line-height:1.62;max-width:900px;margin:0;color:rgba(255,255,255,.84)}

.dfch-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center;margin:24px 0 36px}
.dfch-categories{display:flex;gap:10px;flex-wrap:wrap}
.dfch-chip{display:inline-flex;padding:10px 16px;border:1px solid #d8d8d8;border-radius:999px;color:#222;text-decoration:none;background:#fff;font-weight:600;font-size:.92rem}
.dfch-chip:hover,.dfch-chip.is-active{background:#111;color:#fff;border-color:#111}
.dfch-search{display:flex;gap:8px}
.dfch-search input{min-width:270px;padding:12px 14px;border:1px solid #ccc;border-radius:10px}
.dfch-search button,.dfch-button{appearance:none;border:0;border-radius:10px;background:#111;color:#fff;text-decoration:none;font-weight:700;padding:13px 20px;display:inline-flex;align-items:center;justify-content:center}

.dfch-featured{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(390px,.75fr);background:#f4f1ec;border-radius:24px;overflow:hidden;margin-bottom:36px;box-shadow:0 10px 30px rgba(0,0,0,.06)}
.dfch-featured__media,.dfch-card__media{display:block;overflow:hidden;background:#ddd}
.dfch-featured__media{min-height:560px}
.dfch-featured__media img,.dfch-card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.dfch-featured:hover img,.dfch-card:hover img{transform:scale(1.025)}
.dfch-featured__content{padding:clamp(38px,4.5vw,78px);display:flex;flex-direction:column;justify-content:center}
.dfch-featured h2{font-size:clamp(2.2rem,3.4vw,4rem);line-height:1.04;margin:10px 0 20px}
.dfch-featured h2 a,.dfch-card h2 a{color:inherit;text-decoration:none}
.dfch-featured p{font-size:1.12rem;line-height:1.68;margin:0 0 26px}
.dfch-meta{font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:#6b6b6b;font-weight:700}

.dfch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}
.dfch-card{background:#fff;border:1px solid #e7e7e7;border-radius:18px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 8px 24px rgba(0,0,0,.04)}
.dfch-card__media{aspect-ratio:16/9}
.dfch-card__body{padding:27px;display:flex;flex-direction:column;flex:1}
.dfch-card h2{font-size:clamp(1.35rem,1.55vw,1.7rem);line-height:1.18;margin:10px 0 13px}
.dfch-card p{line-height:1.6;color:#555;margin:0 0 22px}
.dfch-text-link{margin-top:auto;font-weight:700;color:#111;text-decoration:none}
.dfch-placeholder{display:block;width:100%;height:100%;min-height:240px;background:linear-gradient(135deg,#ddd,#f4f4f4)}

.dfch-pagination{display:flex;justify-content:center;gap:8px;margin:48px 0}
.dfch-pagination .page-numbers{padding:10px 14px;border:1px solid #ddd;border-radius:8px;text-decoration:none;color:#111}
.dfch-pagination .current{background:#111;color:#fff;border-color:#111}
.dfch-cta{margin-top:50px;border-radius:24px;padding:clamp(38px,5vw,72px);background:#111;color:#fff;display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center}
.dfch-cta h2{font-size:clamp(2.2rem,4vw,4rem);line-height:1.04;margin:8px 0 14px}
.dfch-cta p{max-width:930px;color:rgba(255,255,255,.78);font-size:1.08rem}
.dfch-button--light{background:#fff;color:#111;white-space:nowrap}
.dfch-empty{text-align:center;padding:80px 20px;background:#f5f5f5;border-radius:20px}

@media(max-width:1250px){
  .dfch-featured{grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr)}
  .dfch-featured__media{min-height:480px}
}
@media(max-width:1050px){
  .dfch-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dfch-featured{grid-template-columns:1fr}
  .dfch-featured__media{min-height:400px}
  .dfch-toolbar{grid-template-columns:1fr}
  .dfch-search{max-width:500px}
  .dfch-search input{width:100%;min-width:0}
}
@media(max-width:700px){
  .dfch-wrap{width:calc(100vw - 20px);padding-top:14px;padding-bottom:46px}
  .dfch-hero{border-radius:18px;padding:42px 24px}
  .dfch-grid{grid-template-columns:1fr;gap:20px}
  .dfch-featured{border-radius:18px}
  .dfch-featured__media{min-height:270px}
  .dfch-featured__content{padding:30px 23px}
  .dfch-toolbar{margin-top:18px}
  .dfch-search{width:100%}
  .dfch-cta{grid-template-columns:1fr;border-radius:18px;padding:34px 24px}
  .dfch-button--light{width:100%}
}

/* Ensure dark panels always retain readable headings under block-theme global styles. */
.dfch-hero,
.dfch-hero h1,
.dfch-hero h2,
.dfch-hero h3,
.dfch-hero p,
.dfch-hero .dfch-eyebrow,
.dfch-cta,
.dfch-cta h1,
.dfch-cta h2,
.dfch-cta h3,
.dfch-cta p,
.dfch-cta .dfch-eyebrow {
  color:#fff!important;
}

.dfch-hero .dfch-intro,
.dfch-cta p {
  color:rgba(255,255,255,.82)!important;
}


/* Individual blog post layout */
body.dfch-single-enabled{overflow-x:hidden}
body.dfch-single-enabled .wp-block-post-title,
body.dfch-single-enabled .wp-block-post-date,
body.dfch-single-enabled .wp-block-post-author,
body.dfch-single-enabled .wp-block-post-featured-image{display:none!important}

.dfch-single-wrap{box-sizing:border-box;position:relative;left:50%;transform:translateX(-50%);width:min(1680px,calc(100vw - 40px));max-width:none!important;margin:0!important;padding:34px 0 76px}
.dfch-single-wrap *,.dfch-single-wrap *:before,.dfch-single-wrap *:after{box-sizing:border-box}
.dfch-single-hero{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);min-height:610px;background:#111;color:#fff;border-radius:28px;overflow:hidden;margin-bottom:44px}
.dfch-single-hero__copy{padding:clamp(46px,5.5vw,94px);display:flex;flex-direction:column;justify-content:center}
.dfch-single-hero h1{font-size:clamp(2.8rem,5.2vw,5.8rem);line-height:.98;margin:8px 0 24px;color:#fff!important}
.dfch-single-deck{font-size:clamp(1.06rem,1.45vw,1.32rem);line-height:1.62;color:rgba(255,255,255,.82)!important;margin:0 0 28px}
.dfch-single-meta{display:flex;gap:18px;flex-wrap:wrap;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:rgba(255,255,255,.7)}
.dfch-single-hero__image{min-height:610px;background:#292929}
.dfch-single-hero__image img{display:block;width:100%;height:100%;object-fit:cover}
.dfch-single-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:54px;align-items:start;max-width:1420px;margin:0 auto}
.dfch-single-article{background:#fff;border:1px solid #e8e8e8;border-radius:22px;padding:clamp(34px,5vw,78px);box-shadow:0 8px 28px rgba(0,0,0,.04)}
.dfch-single-content{font-size:clamp(1.03rem,1.08vw,1.16rem);line-height:1.78;color:#2c2c2c}
.dfch-single-content > *{max-width:920px;margin-left:auto;margin-right:auto}
.dfch-single-content > .alignwide{max-width:1160px}
.dfch-single-content > .alignfull{max-width:none;width:100%}
.dfch-single-content h2{font-size:clamp(2rem,2.7vw,3rem);line-height:1.12;margin-top:1.7em;margin-bottom:.6em}
.dfch-single-content h3{font-size:clamp(1.5rem,2vw,2rem);line-height:1.2;margin-top:1.55em}
.dfch-single-content p{margin-top:0;margin-bottom:1.35em}
.dfch-single-content img{border-radius:16px}
.dfch-single-content blockquote{border-left:5px solid #111;background:#f4f1ec;padding:24px 28px;border-radius:0 14px 14px 0;font-size:1.18em}
.dfch-single-sidebar{display:grid;gap:22px;position:sticky;top:32px}
.dfch-side-card{background:#111;color:#fff;border-radius:20px;padding:30px}
.dfch-side-card h2{font-size:1.65rem;line-height:1.16;margin:8px 0 14px;color:#fff!important}
.dfch-side-card p{line-height:1.6;color:rgba(255,255,255,.8)!important}
.dfch-side-card .dfch-button{background:#fff;color:#111;width:100%;margin-top:8px}
.dfch-side-card--light{background:#f4f1ec;color:#111}
.dfch-side-card--light h2{color:#111!important}
.dfch-related{max-width:1420px;margin:64px auto 0}
.dfch-related__heading{margin-bottom:24px}
.dfch-related__heading h2{font-size:clamp(2.2rem,4vw,4rem);line-height:1;margin:6px 0 0}
.dfch-single-wrap>.dfch-cta{max-width:1420px;margin-left:auto;margin-right:auto}

@media(max-width:1100px){
 .dfch-single-hero{grid-template-columns:1fr;min-height:0}
 .dfch-single-hero__image{min-height:440px;order:-1}
 .dfch-single-layout{grid-template-columns:1fr}
 .dfch-single-sidebar{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
 .dfch-single-wrap{width:calc(100vw - 20px);padding-top:14px;padding-bottom:46px}
 .dfch-single-hero{border-radius:18px;margin-bottom:24px}
 .dfch-single-hero__image{min-height:270px}
 .dfch-single-hero__copy{padding:36px 24px}
 .dfch-single-article{border-radius:18px;padding:30px 22px}
 .dfch-single-layout{gap:24px}
 .dfch-single-sidebar{grid-template-columns:1fr}
 .dfch-related{margin-top:44px}
}


/* Remove the legacy Categories / Quick Links column from the active post template. */
body.dfch-single-enabled .dfch-remove-theme-sidebar {
  display: none !important;
}

body.dfch-single-enabled .dfch-theme-sidebar-parent {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
}

body.dfch-single-enabled .dfch-theme-content-column,
body.dfch-single-enabled .dfch-post-content-host,
body.dfch-single-enabled .dfch-main-host .wp-block-post-content {
  flex: 0 0 100% !important;
  flex-basis: 100% !important;
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

body.dfch-single-enabled .dfch-main-host,
body.dfch-single-enabled .dfch-main-host > .wp-block-group,
body.dfch-single-enabled .dfch-main-host > .wp-block-group > .wp-block-group {
  width: 100% !important;
  max-width: none !important;
}

/* Remove the old single-post byline/category header and collapse its spacing. */
body.dfch-single-enabled .dfch-remove-legacy-meta,
body.dfch-single-enabled .wp-block-post-author-name,
body.dfch-single-enabled .wp-block-post-terms,
body.dfch-single-enabled .taxonomy-category,
body.dfch-single-enabled .taxonomy-post_tag {
  display: none !important;
}

body.dfch-single-enabled .dfch-single-content-path,
body.dfch-single-enabled .dfch-post-content-host {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body.dfch-single-enabled .dfch-post-content-host > .dfch-single-wrap:first-child {
  margin-top: 0 !important;
}

/* v2.1.4: remove split legacy metadata above the custom single-post hero */
.dfch-single-enabled .dfch-remove-legacy-meta,
.dfch-single-enabled .dfch-remove-legacy-meta-container { display: none !important; margin: 0 !important; padding: 0 !important; min-height: 0 !important; height: 0 !important; }
.dfch-single-enabled .dfch-main-host > *:has(.dfch-single-wrap) { margin-top: 0 !important; padding-top: 0 !important; }


/* v2.1.6: collapse spacing inherited from the old single-post template. */
body.dfch-single-enabled .dfch-remove-empty-template-block {
  display:none!important;
  margin:0!important;
  padding:0!important;
  min-height:0!important;
  height:0!important;
}
body.dfch-single-enabled .dfch-collapse-host {
  margin-top:0!important;
  padding-top:0!important;
  row-gap:0!important;
  gap:0!important;
  min-height:0!important;
}
body.dfch-single-enabled .dfch-collapse-main {
  padding-top:0!important;
  margin-top:0!important;
}
body.dfch-single-enabled .dfch-collapse-main > *:has(.dfch-single-wrap),
body.dfch-single-enabled .dfch-collapse-main article:has(.dfch-single-wrap),
body.dfch-single-enabled .wp-block-post-content:has(.dfch-single-wrap) {
  margin-top:0!important;
  padding-top:0!important;
}
body.dfch-single-enabled .dfch-single-wrap {
  padding-top:18px!important;
}
@media(max-width:700px){
  body.dfch-single-enabled .dfch-single-wrap{padding-top:10px!important}
}


/* Contact page */
body.dfch-contact-enabled{overflow-x:hidden}
body.dfch-contact-enabled .wp-block-post-title{display:none!important}
.dfch-contact-wrap{box-sizing:border-box;position:relative;left:auto;right:auto;transform:none;width:min(1680px,calc(100vw - 40px));max-width:1680px!important;margin:0 auto!important;padding:34px 0 76px}
.dfch-contact-wrap *,.dfch-contact-wrap *:before,.dfch-contact-wrap *:after{box-sizing:border-box}
.dfch-contact-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(390px,.75fr);gap:48px;align-items:center;background:linear-gradient(135deg,#111 0%,#292929 100%);color:#fff;border-radius:28px;padding:clamp(48px,6vw,96px);margin-bottom:36px;overflow:hidden;position:relative}
.dfch-contact-hero:after{content:"";position:absolute;right:-90px;bottom:-160px;width:430px;height:430px;border:1px solid rgba(255,255,255,.15);border-radius:50%}
.dfch-contact-hero__copy,.dfch-contact-hero__facts{position:relative;z-index:1}
.dfch-contact-hero h1{font-size:clamp(3rem,5.4vw,5.8rem);line-height:.96;margin:8px 0 24px;color:#fff!important}
.dfch-contact-hero p{font-size:clamp(1.06rem,1.45vw,1.3rem);line-height:1.65;color:rgba(255,255,255,.82)!important;max-width:900px}
.dfch-contact-hero__facts{display:grid;gap:14px}
.dfch-contact-hero__facts div{display:grid;grid-template-columns:52px 1fr;gap:16px;align-items:center;padding:18px 20px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);border-radius:16px}
.dfch-contact-hero__facts strong{display:grid;place-items:center;width:42px;height:42px;background:#fff;color:#111;border-radius:50%;font-size:1.05rem}
.dfch-contact-hero__facts span{font-weight:700;line-height:1.35}
.dfch-contact-layout{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:36px;align-items:start}
.dfch-contact-form-card{background:#fff;border:1px solid #e7e7e7;border-radius:24px;padding:clamp(30px,4.5vw,68px);box-shadow:0 10px 32px rgba(0,0,0,.05)}
.dfch-contact-form-card>h2{font-size:clamp(2.3rem,3.5vw,4rem);line-height:1.05;margin:8px 0 14px}
.dfch-contact-form-intro{font-size:1.08rem;line-height:1.65;color:#595959;max-width:820px;margin:0 0 32px}
.dfch-contact-original-form>h1,.dfch-contact-original-form>h2:first-child{display:none!important}
.dfch-contact-original-form form{margin:0!important}
.dfch-contact-original-form label{font-weight:700}
.dfch-contact-original-form input:not([type=submit]):not([type=checkbox]):not([type=radio]),.dfch-contact-original-form select,.dfch-contact-original-form textarea{width:100%!important;border:1px solid #cfcfcf!important;border-radius:10px!important;padding:13px 14px!important;background:#fff!important;color:#111!important}
.dfch-contact-original-form textarea{min-height:150px}
.dfch-contact-original-form button,.dfch-contact-original-form input[type=submit]{border:0!important;border-radius:10px!important;background:#111!important;color:#fff!important;font-weight:700!important;padding:14px 24px!important;cursor:pointer}
.dfch-contact-aside{display:grid;gap:22px;position:sticky;top:28px}
.dfch-contact-card{background:#f4f1ec;border-radius:20px;padding:30px}
.dfch-contact-card--dark{background:#111;color:#fff}
.dfch-contact-card h2{font-size:1.75rem;line-height:1.14;margin:8px 0 14px}
.dfch-contact-card--dark h2,.dfch-contact-card--dark p,.dfch-contact-card--dark .dfch-eyebrow{color:#fff!important}
.dfch-contact-card p,.dfch-contact-card li{line-height:1.6}
.dfch-contact-card ul{margin:16px 0 0;padding-left:20px}
.dfch-contact-card li+li{margin-top:9px}
@media(max-width:1050px){.dfch-contact-hero{grid-template-columns:1fr}.dfch-contact-layout{grid-template-columns:1fr}.dfch-contact-aside{position:static;grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.dfch-contact-wrap{width:calc(100vw - 20px);padding-top:14px;padding-bottom:46px}.dfch-contact-hero{border-radius:18px;padding:40px 24px;gap:30px}.dfch-contact-hero__facts div{grid-template-columns:44px 1fr;padding:15px}.dfch-contact-form-card{border-radius:18px;padding:30px 22px}.dfch-contact-aside{grid-template-columns:1fr}.dfch-contact-card{padding:26px}}


/* v2.2.1: make the complete Contact Us template wide, not only the injected content. */
body.dfch-contact-enabled main,
body.dfch-contact-enabled main.wp-block-group,
body.dfch-contact-enabled article,
body.dfch-contact-enabled .wp-block-post-content,
body.dfch-contact-enabled .entry-content {
  width:100%!important;
  max-width:none!important;
}

body.dfch-contact-enabled .wp-block-post-content:has(.dfch-contact-wrap),
body.dfch-contact-enabled .entry-content:has(.dfch-contact-wrap) {
  margin:0!important;
  padding:0!important;
  max-width:none!important;
}

body.dfch-contact-enabled main :is(.wp-block-group,.wp-block-columns,.wp-block-column):has(.dfch-contact-wrap) {
  width:100%!important;
  max-width:none!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:0!important;
  padding-right:0!important;
  flex-basis:100%!important;
}

body.dfch-contact-enabled .wp-block-columns:has(.dfch-contact-wrap) {
  display:block!important;
}

body.dfch-contact-enabled .wp-block-columns:has(.dfch-contact-wrap) > .wp-block-column:not(:has(.dfch-contact-wrap)),
body.dfch-contact-enabled main :is(aside,.wp-block-column):has(.wp-block-categories):not(:has(.dfch-contact-wrap)) {
  display:none!important;
}

body.dfch-contact-enabled .dfch-contact-wrap {
  width:min(1680px,calc(100vw - 40px))!important;
  max-width:none!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

body.dfch-contact-enabled .dfch-contact-layout {
  grid-template-columns:minmax(0,1fr) minmax(340px,420px);
  gap:clamp(28px,3vw,48px);
}

body.dfch-contact-enabled .dfch-contact-form-card {
  min-width:0;
}

@media(max-width:1050px){
  body.dfch-contact-enabled .dfch-contact-layout{grid-template-columns:1fr}
}

@media(max-width:760px){
  body.dfch-contact-enabled .dfch-contact-wrap{width:calc(100vw - 20px)!important}
}


/* v2.2.3: centre the Contact Us design inside the viewport. */
body.dfch-contact-enabled .wp-block-post-content:has(.dfch-contact-wrap),
body.dfch-contact-enabled .entry-content:has(.dfch-contact-wrap),
body.dfch-contact-enabled main :is(.wp-block-group,.wp-block-columns,.wp-block-column):has(.dfch-contact-wrap) {
  box-sizing:border-box!important;
  width:100%!important;
  max-width:none!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
body.dfch-contact-enabled .dfch-contact-wrap {
  position:relative!important;
  left:auto!important;
  right:auto!important;
  transform:none!important;
  width:min(1680px,calc(100vw - 40px))!important;
  max-width:1680px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
@media(max-width:760px){
  body.dfch-contact-enabled .dfch-contact-wrap{width:calc(100vw - 20px)!important}
}


/* v2.2.4: remove the theme gap between the navigation and Contact Us hero. */
body.dfch-contact-enabled .wp-site-blocks > main,
body.dfch-contact-enabled main.wp-block-group,
body.dfch-contact-enabled main > .wp-block-group:first-child,
body.dfch-contact-enabled main > article:first-child,
body.dfch-contact-enabled article > .wp-block-group:first-child {
  margin-block-start:0!important;
  margin-top:0!important;
  padding-block-start:0!important;
  padding-top:0!important;
}
body.dfch-contact-enabled .wp-site-blocks {
  row-gap:0!important;
  gap:0!important;
}
body.dfch-contact-enabled .dfch-contact-wrap {
  padding-top:0!important;
}


/* v2.2.5: remove the actual Twenty Twenty-Four template gap above Contact Us. */
body.dfch-contact-enabled .wp-site-blocks > header + *,
body.dfch-contact-enabled .wp-site-blocks > .wp-block-template-part + *,
body.dfch-contact-enabled .dfch-contact-after-header,
body.dfch-contact-enabled .dfch-contact-gap-host,
body.dfch-contact-enabled .dfch-contact-gap-path {
  margin-block-start:0!important;
  margin-top:0!important;
  padding-block-start:0!important;
  padding-top:0!important;
  row-gap:0!important;
}
body.dfch-contact-enabled .dfch-contact-gap-path > .wp-block-post-title,
body.dfch-contact-enabled .dfch-contact-remove-before {
  display:none!important;
  margin:0!important;
  padding:0!important;
  min-height:0!important;
}
body.dfch-contact-enabled main:has(.dfch-contact-wrap),
body.dfch-contact-enabled article:has(.dfch-contact-wrap) {
  margin-block-start:0!important;
  padding-block-start:0!important;
}
