.sd-section{padding:80px 40px;max-width:1140px;margin:0 auto}
.sd-section-dark{background:#0a0a0a;color:#fff;padding:80px 40px}
.sd-section-dark .sd-inner{max-width:1140px;margin:0 auto}
.sd-hero-sub{font-size:1.25rem;color:#555;margin:20px 0 36px;line-height:1.7;max-width:780px}
.sd-cta-btn{display:inline-block;background:#000;color:#fff;padding:18px 44px;font-size:1rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;text-decoration:none;border:2px solid #000;transition:all .3s}
.sd-cta-btn:hover{background:#fff;color:#000}
.sd-cta-btn-outline{display:inline-block;background:transparent;color:#000;padding:18px 44px;font-size:1rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;text-decoration:none;border:2px solid #000;margin-left:16px;transition:all .3s}
.sd-cta-btn-outline:hover{background:#000;color:#fff}
.sd-h2{font-size:2.4rem;font-weight:900;letter-spacing:-1px;text-transform:uppercase;margin-bottom:16px}
.sd-h3{font-size:1.3rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;margin-bottom:10px}
.sd-lead{font-size:1.1rem;color:#555;line-height:1.8;margin-bottom:40px;max-width:820px}
.sd-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:48px}
.sd-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:32px;margin-top:48px}
.sd-card{background:#f5f5f5;padding:36px 28px;border-bottom:4px solid #000}
.sd-card-dark{background:#161616;padding:36px 28px;border-bottom:4px solid #fff}
.sd-card p{font-size:.97rem;color:#555;line-height:1.7;margin-top:8px}
.sd-card-dark p{color:#aaa}
.sd-card-dark .sd-h3{color:#fff}
.sd-tag{display:inline-block;background:#000;color:#fff;padding:6px 16px;font-size:.78rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;margin-bottom:24px}
.sd-divider{width:60px;height:4px;background:#000;margin:20px 0 32px}
.sd-stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:48px;text-align:center}
.sd-stat-num{font-size:3rem;font-weight:900;line-height:1}
.sd-stat-label{font-size:.85rem;text-transform:uppercase;letter-spacing:2px;color:#aaa;margin-top:6px}
.sd-testimonial{background:#f9f9f9;padding:40px;border-left:4px solid #000;margin-bottom:24px}
.sd-testimonial blockquote{font-size:1.1rem;font-style:italic;line-height:1.8;color:#333;margin:0 0 16px}
.sd-testimonial cite{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:#000}
.sd-faq{border-bottom:1px solid #e0e0e0;padding:24px 0}
.sd-faq-q{font-size:1.05rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;margin-bottom:10px}
.sd-faq-a{font-size:.97rem;color:#555;line-height:1.7}
.sd-cta-section{background:#000;color:#fff;padding:100px 40px;text-align:center}
.sd-cta-section .sd-h2{color:#fff;font-size:2.8rem}
.sd-cta-section p{color:#aaa;font-size:1.1rem;max-width:640px;margin:16px auto 40px}
.sd-cta-btn-white{display:inline-block;background:#fff;color:#000;padding:18px 48px;font-size:1rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;text-decoration:none;transition:all .3s}
.sd-cta-btn-white:hover{background:#e0e0e0}
@media(max-width:768px){.sd-grid-3,.sd-grid-2,.sd-stat-row{grid-template-columns:1fr}.sd-section,.sd-section-dark{padding:60px 24px}.sd-cta-btn-outline{margin-left:0;margin-top:12px}}

/* =============================================
   FOOTER CIRCLE — CSS border-radius replaces broken SVG
   Root cause: SVG r=390 fills entire 780 viewBox exactly,
   stroke gets viewport-clipped at all 4 tangent points.
   Fix: hide SVG, use pure CSS border-radius circle instead.
   ============================================= */

/* Hide the SVG circle — stroke clips at viewBox edge */  
#edgtf-footer-circle {
  display: none !important;
}

/* CSS circle replaces it — renders uniformly, no clipping */
.edgtf-page-footer {
  position: relative;
  overflow: visible !important;
}
.edgtf-page-footer::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 80px;
  transform: translateX(-50%);
  width: 520px;
  height: 520px;
  border-radius: 50%;
  border: 1.5px solid #000000;
  pointer-events: none;
  z-index: 0;
  box-sizing: border-box;
}

/* Footer contact info */
.contact-info {
  font-size: 0.9rem;
  line-height: 1.8;
  color: #000;
}
.contact-info p {
  margin: 4px 0;
}

/* Footer legal links — Accessibility & Privacy */
.footer-legal-links {
  margin-top: 10px;
  font-size: 0.75rem;
  letter-spacing: 1px;
}
.footer-legal-links a {
  color: #000;
  text-decoration: none;
  font-weight: 600;
}
.footer-legal-links a:hover {
  text-decoration: underline;
}


/* ============================================================
   MOBILE RESPONSIVE — Stadium Dance Homepage
   Breakpoint: ≤480px (Elementor Mobile Portrait)
   Goals: AI/SEO readability, fast load, clean visual hierarchy
   NOTE: Elementor already handles service grid stacking,
   stats stacking, button stacking, and service card widths.
   These rules add complementary enhancements only.
   ============================================================ */

@media (max-width: 480px) {

  /* --- HERO: H1 font-size reinforcement (also in Elementor CSS) --- */
  .elementor-element-a9aa271 h1.elementor-heading-title {
    font-size: 36px !important;
    line-height: 1.05 !important;
    letter-spacing: -0.3px !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
  }

  /* --- HERO: Subheadline tagline — fix letter-spacing at narrow width --- */
  .elementor-element-89d53cc p,
  .elementor-element-89d53cc {
    font-size: 11px !important;
    letter-spacing: 1.2px !important;
    line-height: 1.5 !important;
    word-break: normal !important;
    white-space: normal !important;
  }

  /* --- HERO: Body text paragraphs --- */
  .elementor-element-6cc4165 p {
    font-size: 15px !important;
    line-height: 1.65 !important;
    overflow-wrap: break-word !important;
  }

  /* --- SECTION HEADINGS: H2 scale down for readability --- */
  .elementor-element-4629017 h2.elementor-heading-title,
  .elementor-element-1ebace3 h2.elementor-heading-title,
  .elementor-element-6af03b8 h2.elementor-heading-title {
    font-size: 28px !important;
    line-height: 1.1 !important;
    word-break: break-word !important;
  }

  /* --- CTA SECTION heading: reduce from 56px --- */
  .elementor-element-b1ca0b8 h2.elementor-heading-title {
    font-size: 30px !important;
    line-height: 1.1 !important;
    word-break: break-word !important;
  }

  /* --- SECTION PADDING: tighten for mobile --- */
  .elementor-element-61307e2 > .e-con-inner {
    padding-left: 20px !important;
    padding-right: 20px !important;
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }

  /* --- GLOBAL: prevent horizontal overflow --- */
  body, .site {
    overflow-x: hidden !important;
    max-width: 100vw !important;
  }

  /* --- GLOBAL: headings word-break safety net --- */
  h1, h2, h3, h4 {
    overflow-wrap: break-word !important;
    word-break: break-word !important;
  }

}

/* ============================================================
   TABLET BREAKPOINT: 481px – 768px
   ============================================================ */

@media (min-width: 481px) and (max-width: 768px) {

  .elementor-element-a9aa271 h1.elementor-heading-title {
    font-size: 44px !important;
    line-height: 1.05 !important;
    word-break: break-word !important;
  }

  .elementor-element-4629017 h2.elementor-heading-title,
  .elementor-element-1ebace3 h2.elementor-heading-title,
  .elementor-element-6af03b8 h2.elementor-heading-title {
    font-size: 34px !important;
    word-break: break-word !important;
  }

  .elementor-element-b1ca0b8 h2.elementor-heading-title {
    font-size: 38px !important;
    word-break: break-word !important;
  }

}

/* --- Anchor link scroll offset (accounts for sticky header 60px + breathing room) --- */
#corporate,
#tradeshow,
#brandactivation,
#sportsentertainment,
#choreography,
#ai,
#agency {
	  scroll-margin-top: 80px;
}

/* CF7 Two-Column Form Layout */
.cf7-row > p {
    display: flex !important;
    gap: 20px;
    flex-wrap: nowrap;
    align-items: flex-start;
    margin: 0 0 8px 0 !important;
}
.cf7-row > p > br {
    display: none !important;
}
.cf7-row > p > label {
    flex: 1 1 0 !important;
    min-width: 0;
    width: auto !important;
    display: inline-block !important;
}
.cf7-row > p > label input,
.cf7-row > p > label select,
.cf7-row > p > label textarea {
    width: 100% !important;
    box-sizing: border-box;
}
@media (max-width: 640px) {
    .cf7-row > p {
        flex-direction: column !important;
        gap: 0;
    }
}

/* Fix: Remove 72ch max-width constraint on Elementor text editor paragraphs */
.elementor-text-editor p,
.elementor-widget-text-editor p {
  max-width: none !important;
}

/* ============================================
 *    SYSTEM FONT STACK + H1 SIZE OVERRIDE
 *    Overrides Manon theme hardcoded Oswald/Open Sans
 *    with system fonts for performance & compatibility
 *    ============================================ */

/* Body & global - replace Open Sans with system stack */
body,
body *:not(.elementor-icon):not([class*="eicon"]):not([class*="fa-"]):not([class*="dashicons"]) {
	  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

/* Headings - replace Oswald with system stack */
h1, h2, h3, h4, h5, h6,
.elementor-heading-title,
.elementor-widget-heading .elementor-heading-title {
	  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif !important;
}

/* Navigation / Menu - system font */
.edgtf-main-menu > ul > li > a,
.edgtf-main-menu ul li a,
nav, nav a, .menu, .menu a,
.edgtf-mobile-nav, .edgtf-mobile-nav a {
	  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif !important;
}

/* H1 size: 28px desktop, 24px mobile */
h1,
.elementor-heading-title.elementor-size-xxl,
.elementor-heading-title.elementor-size-xl {
	  font-size: 28px !important;
}

@media (max-width: 767px) {
	  h1,
	  .elementor-heading-title.elementor-size-xxl,
	.elementor-heading-title.elementor-size-xl {
		    font-size: 24px !important;
  }
}

/* =========================================
Header alignment to match Elementor 1140px content width
Manon / Edge theme — Desktop + responsive safeguards
Root cause: .edgtf-grid-1200 .edgtf-grid { width: 1200px }
fires at min-width: 1367px in modules.min.css
Fix: target header grid with width !important to override
========================================= */

/* Desktop: constrain header grid to match 1140px Elementor content */
@media only screen and (min-width: 1025px) {
  .edgtf-page-header .edgtf-grid,
  .edgtf-top-bar .edgtf-grid,
  .edgtf-fixed-wrapper.fixed .edgtf-grid,
  .edgtf-sticky-header .edgtf-grid {
    width: 1140px !important;
    max-width: 1140px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    box-sizing: border-box !important;
  }
}

/* Tablet */
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .edgtf-page-header .edgtf-grid,
  .edgtf-top-bar .edgtf-grid,
  .edgtf-fixed-wrapper.fixed .edgtf-grid,
  .edgtf-sticky-header .edgtf-grid {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box !important;
  }
}

/* Mobile */
@media only screen and (max-width: 768px) {
  .edgtf-page-header .edgtf-grid,
  .edgtf-top-bar .edgtf-grid,
  .edgtf-fixed-wrapper.fixed .edgtf-grid,
  .edgtf-sticky-header .edgtf-grid {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box !important;
  }

  /* Prevent horizontal overflow */
  .edgtf-page-header,
  .edgtf-top-bar {
    max-width: 100%;
    overflow-x: hidden;
  }
}

/* --- FIX: Footer social media icons --- */
@font-face {
	  font-family: 'ElegantIcons';
	  src: url('https://stadiumdance.com/wp-content/themes/manon/framework/lib/icons-pack/elegant-icons/fonts/ElegantIcons.woff') format('woff'),
			       url('https://stadiumdance.com/wp-content/themes/manon/framework/lib/icons-pack/elegant-icons/fonts/ElegantIcons.ttf') format('truetype');
	  font-weight: normal;
	  font-style: normal;
}
.social_instagram::before { font-family: 'ElegantIcons' !important; content: "\e09a" !important; }
.social_facebook::before { font-family: 'ElegantIcons' !important; content: "\e093" !important; }
.social_twitter::before { font-family: 'ElegantIcons' !important; content: "\e094" !important; }
.social_youtube::before { font-family: 'ElegantIcons' !important; content: "\e0a3" !important; }
.social_linkedin::before { font-family: 'ElegantIcons' !important; content: "\e09d" !important; }
.social_pinterest::before { font-family: 'ElegantIcons' !important; content: "\e096" !important; }
}