.elementor-46 .elementor-element.elementor-element-bb97d8d{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-46 .elementor-element.elementor-element-ecc70b2{padding:0px 0px 0px 0px;}:root{--page-title-display:none;}/* Start custom CSS *//* =============================================
       WORDPRESS / ELEMENTOR FULL-WIDTH OVERRIDES
       Scoped with :has() so only the specific
       Elementor/WordPress wrapper chain that
       actually contains our #pw-home widget gets
       flattened to full width. Every other
       Elementor widget, section, and the theme's
       own header/footer are left completely alone.
       ============================================= */

    /* Step 1: Force only the Elementor wrappers around OUR widget to be full-width */
    .elementor-widget-html:has(#pw-home),
    .elementor-widget-html:has(#pw-home) .elementor-widget-container,
    .elementor-section.elementor-section-boxed:has(#pw-home) > .elementor-container,
    .elementor-section:has(#pw-home),
    .elementor-container:has(#pw-home),
    .elementor-column:has(#pw-home),
    .elementor-column-wrap:has(#pw-home),
    .elementor-widget-wrap:has(#pw-home),
    .elementor-inner:has(#pw-home),
    .e-con:has(#pw-home),
    .e-con-inner:has(#pw-home) {
      width: 100% !important;
      max-width: 100% !important;
      padding-left: 0 !important;
      padding-right: 0 !important;
      margin-left: 0 !important;
      margin-right: 0 !important;
    }

    /* Step 2: Break out of WordPress theme content constraints, only for the
       specific wrapper that contains our widget */
    .entry-content:has(#pw-home),
    .post-content:has(#pw-home),
    .page-content:has(#pw-home),
    .wp-block-group:has(#pw-home),
    .site-content:has(#pw-home),
    #content:has(#pw-home),
    #primary:has(#pw-home),
    .content-area:has(#pw-home),
    .site-main:has(#pw-home),
    main:has(#pw-home),
    article:has(#pw-home) {
      max-width: 100% !important;
      width: 100% !important;
      padding: 0 !important;
      margin: 0 !important;
    }

    /* Step 3: Our own sections just need to fill the now-unconstrained
       parent at 100% width. No more 100vw / negative-margin breakout
       hack: that's what caused the horizontal scrollbar, since 100vw
       includes the scrollbar's own width and overflows the real
       viewport by that amount. */
    :where(#pw-home) #hero,
    :where(#pw-home) #about,
    :where(#pw-home) #philosophy,
    :where(#pw-home) #team,
    :where(#pw-home) #services,
    :where(#pw-home) #testimonials,
    :where(#pw-home) #videos,
    :where(#pw-home) #new-patients,
    :where(#pw-home) #contact,
    :where(#pw-home) footer,
    :where(#pw-home) .announcement-bar {
      width: 100%;
      max-width: 100%;
      box-sizing: border-box;
    }

    /* =============================================
       UTILITY: force text onto one line on desktop,
       reverting to normal wrapping on narrow screens
       so it can't cause horizontal overflow on mobile.
       ============================================= */
    .pw-nowrap-desktop{ white-space: nowrap; }
    @media (max-width: 900px){
      .pw-nowrap-desktop{ white-space: normal; }
    }

    /* =============================================
       ROOT VARIABLES - COLOR PALETTE
       (left global - custom properties don't render
       anything on their own, so this is safe as-is)
       ============================================= */
    :root {
      --cream:        #F5F0E8;
      --cream-dark:   #EDE5D8;
      --taupe:        #D9CFBF;
      --rust:         #C05A3A;
      --rust-light:   #D4845C;
      --rust-dark:    #9E3E22;
      --sage:         #7A9E7E;
      --sage-light:   #A8C4A2;
      --sage-dark:    #4E7A52;
      --gold:         #C8974A;
      --charcoal:     #2C2C2C;
      --charcoal-mid: #4A4A4A;
      --gray-warm:    #7A7068;
      --white:        #FDFAF6;
      --section-alt:  #EBE4D8;
    }

    /* =============================================
       RESET & BASE
       Scoped to #pw-home only. The old unscoped
       "*{margin:0;padding:0}" reset was wiping out
       spacing on every element on the page, including
       the theme header - that's almost certainly the
       "narrow off-white bar" you're seeing (the
       header's own layout getting collapsed).
       ============================================= */
    #pw-home, :where(#pw-home) *, :where(#pw-home) *::before, :where(#pw-home) *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }
    html { scroll-behavior: smooth; }
    #pw-home {
      font-family: 'Lato', sans-serif;
      background-color: var(--cream);
      color: var(--charcoal);
      line-height: 1.7;
      font-size: 17px;
    }
    :where(#pw-home) img { max-width: 100%; display: block; }
    :where(#pw-home) a { text-decoration: none; color: inherit; }

    /* =============================================
       HERO SECTION
       ============================================= */
    :where(#pw-home) #hero {
      position: relative;
      height: 100vh;
      min-height: 600px;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      overflow: hidden;
    }
    :where(#pw-home) .hero-bg {
      position: absolute;
      inset: 0;
      background-image: url('https://ylsgx3xtsl.wpdns.site/wp-content/uploads/2026/06/imgi_36_hero_background.jpg');
      background-size: cover;
      background-position: center;
      filter: brightness(0.78);
    }
    :where(#pw-home) .hero-overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(
        to bottom,
        rgba(44, 28, 18, 0.35) 0%,
        rgba(44, 28, 18, 0.15) 50%,
        rgba(44, 28, 18, 0.5) 100%
      );
    }
    :where(#pw-home) .hero-content {
      position: relative;
      z-index: 2;
      max-width: 780px;
      padding: 2rem;
    }
    :where(#pw-home) .hero-logo-img {
      width: 340px;
      max-width: 90vw;
      margin: 0 auto 1.5rem;
      filter: drop-shadow(0 2px 12px rgba(0,0,0,0.4));
    }
    :where(#pw-home) .hero-welcome {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(3rem, 8vw, 5.5rem);
      font-weight: 400;
      color: #FDFAF6;
      letter-spacing: 0.06em;
      line-height: 1;
      text-shadow: 0 2px 20px rgba(0,0,0,0.4);
      margin-bottom: 1rem;
    }
    :where(#pw-home) .hero-sub {
      font-size: clamp(17px, 2vw, 1.15rem);
      color: rgba(253, 250, 246, 0.92);
      letter-spacing: 0.08em;
      font-weight: 300;
      margin-bottom: 2.5rem;
      text-shadow: 0 1px 8px rgba(0,0,0,0.4);
    }
    :where(#pw-home) .btn-primary {
      display: inline-block;
      background: var(--rust);
      color: var(--white);
      padding: 1rem 2.8rem;
      font-size: 17px;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      font-weight: 700;
      border-radius: 2px;
      transition: background 0.25s, transform 0.2s;
      border: 2px solid var(--rust);
    }
    :where(#pw-home) .btn-primary:hover { background: var(--rust-dark); border-color: var(--rust-dark); transform: translateY(-1px); }
    :where(#pw-home) .btn-outline {
      display: inline-block;
      background: transparent;
      color: var(--white);
      padding: 0.9rem 2.4rem;
      font-size: 17px;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      font-weight: 700;
      border-radius: 2px;
      border: 2px solid rgba(253,250,246,0.7);
      transition: all 0.25s;
      margin-left: 1rem;
    }
    :where(#pw-home) .btn-outline:hover { background: rgba(253,250,246,0.15); border-color: var(--white); }
    :where(#pw-home) .scroll-hint {
      position: absolute;
      bottom: 2rem;
      left: 50%;
      transform: translateX(-50%);
      z-index: 2;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 0.4rem;
      color: rgba(253,250,246,0.7);
      font-size: 17px;
      letter-spacing: 0.12em;
      text-transform: uppercase;
    }
    :where(#pw-home) .scroll-hint::after {
      content: '';
      width: 1px;
      height: 40px;
      background: rgba(253,250,246,0.5);
      animation: scrollLine 1.8s ease-in-out infinite;
    }
    @keyframes scrollLine {
      0%, 100% { opacity: 0; transform: scaleY(0); transform-origin: top; }
      50% { opacity: 1; transform: scaleY(1); transform-origin: top; }
    }

    /* =============================================
       ANNOUNCEMENT BANNER
       ============================================= */
    :where(#pw-home) .announcement-bar {
      background: var(--sage-dark);
      color: var(--white);
      text-align: center;
      padding: 0.9rem 2rem;
      font-size: 17px;
      letter-spacing: 0.06em;
    }
    :where(#pw-home) .announcement-bar strong { color: #d4f0d4; }

    /* =============================================
       SECTION SHARED STYLES
       This "section{padding:...}" being unscoped was
       the original OneTap padding leak.
       ============================================= */
    :where(#pw-home) > section { padding: 6rem 2rem; width: 100%; max-width: 100%; box-sizing: border-box; }
    :where(#pw-home) .container { max-width: 1100px; margin: 0 auto; }
    :where(#pw-home) .container-narrow { max-width: 780px; margin: 0 auto; }
    :where(#pw-home) .section-label {
      font-size: 17px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--rust);
      font-weight: 700;
      margin-bottom: 0.8rem;
      display: block;
    }
    :where(#pw-home) .section-title {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(2rem, 4vw, 3rem);
      font-weight: 500;
      line-height: 1.2;
      color: var(--charcoal);
      margin-bottom: 1.5rem;
    }
    :where(#pw-home) .section-title em { color: var(--rust); font-style: italic; }
    :where(#pw-home) .section-divider {
      width: 56px;
      height: 2px;
      background: var(--rust);
      margin-bottom: 2rem;
    }
    :where(#pw-home) .section-divider.centered { margin-left: auto; margin-right: auto; }
    :where(#pw-home) .section-body {
      font-size: 17px;
      color: var(--charcoal-mid);
      line-height: 1.85;
    }
    :where(#pw-home) .text-center { text-align: center; }

    /* =============================================
       ABOUT SECTION
       ============================================= */
    :where(#pw-home) #about { background: var(--cream); }
    :where(#pw-home) .about-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 5rem;
      align-items: start;
    }
    :where(#pw-home) .about-visual {
      display: flex;
      flex-direction: column;
      align-items: stretch;
      padding: 0;
      gap: 0;
      position: relative;
    }
    :where(#pw-home) .about-visual img {
      width: 100%;
      height: auto;
      margin-bottom: 2rem;
      display: block;
      border-radius: 4px;
    }
    :where(#pw-home) .about-card {
      background: var(--white);
      border-radius: 4px;
      padding: 2.5rem;
      box-shadow: 0 8px 40px rgba(0,0,0,0.08);
    }
    :where(#pw-home) .about-text .section-body { margin-bottom: 1.5rem; }
    :where(#pw-home) .about-highlight {
      border-left: 3px solid var(--rust);
      padding: 1.2rem 1.5rem;
      background: var(--cream-dark);
      margin: 2rem 0;
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.25rem;
      font-style: italic;
      color: var(--charcoal);
      line-height: 1.6;
    }
    :where(#pw-home) .stats-row {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1.5rem;
      margin-top: 2rem;
    }
    :where(#pw-home) .stat-item { text-align: center; }
    :where(#pw-home) .stat-number {
      font-family: 'Cormorant Garamond', serif;
      font-size: 2.8rem;
      font-weight: 600;
      color: var(--rust);
      line-height: 1;
      display: block;
    }
    :where(#pw-home) .stat-label {
      font-size: 17px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--gray-warm);
      margin-top: 0.4rem;
    }
    :where(#pw-home) .stat-divider { width: 1px; background: var(--taupe); }

    /* =============================================
       PHILOSOPHY SECTION
       ============================================= */
    :where(#pw-home) #philosophy { background: var(--charcoal); color: var(--white); }
    :where(#pw-home) #philosophy .section-title { color: var(--white); }
    :where(#pw-home) #philosophy .section-label { color: var(--rust-light); }
    :where(#pw-home) #philosophy .section-body { color: rgba(253,250,246,0.82); }
    :where(#pw-home) .philosophy-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 4rem;
      margin-top: 3rem;
    }
    :where(#pw-home) .philosophy-block {
      padding: 2.5rem;
      border: 1px solid rgba(255,255,255,0.1);
      border-radius: 4px;
      background: rgba(255,255,255,0.04);
      transition: background 0.3s;
    }
    :where(#pw-home) .philosophy-block:hover { background: rgba(255,255,255,0.07); }
    :where(#pw-home) .philosophy-block h3 {
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.5rem;
      color: var(--white);
      margin-bottom: 1rem;
      font-weight: 500;
    }
    :where(#pw-home) .philosophy-block p { color: rgba(253,250,246,0.78); font-size: 17px; line-height: 1.8; }
    :where(#pw-home) .philosophy-number {
      font-family: 'Cormorant Garamond', serif;
      font-size: 3.5rem;
      color: var(--rust-light);
      opacity: 0.4;
      line-height: 1;
      margin-bottom: 0.5rem;
      font-weight: 600;
    }

    /* =============================================
       SERVICES SECTION
       ============================================= */
    :where(#pw-home) #services { background: var(--section-alt); }
    :where(#pw-home) .services-intro {
      max-width: 640px;
      margin: 0 auto 3.5rem;
      text-align: center;
    }
    :where(#pw-home) .services-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 2rem;
      margin-bottom: 4rem;
    }
    :where(#pw-home) .service-card {
      background: var(--white);
      border-radius: 4px;
      text-align: center;
      box-shadow: 0 4px 24px rgba(0,0,0,0.06);
      transition: transform 0.25s, box-shadow 0.25s;
      border-top: 3px solid transparent;
      overflow: hidden;
      padding: 0 !important;
    }
    :where(#pw-home) .service-card:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(0,0,0,0.1); border-top-color: var(--rust); }
    :where(#pw-home) .service-img {
      width: 100%;
      height: 300px;
      object-fit: cover;
      object-position: top;
      border-radius: 4px 4px 0 0;
      margin-bottom: 0;
      display: block;
    }
    :where(#pw-home) .service-card-body {
      padding: 1.8rem 2rem 2rem;
    }
    :where(#pw-home) .service-icon {
      width: 64px;
      height: 64px;
      border-radius: 50%;
      background: var(--cream-dark);
      display: flex;
      align-items: center;
      justify-content: center;
      margin: 0 auto 1.5rem;
      font-size: 1.8rem;
    }
    :where(#pw-home) .service-card h3 {
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.4rem;
      font-weight: 600;
      color: var(--charcoal);
      margin-bottom: 0.8rem;
    }
    :where(#pw-home) .service-card p { font-size: 17px; color: var(--charcoal-mid); line-height: 1.75; }

    /* Conditions Grid */
    :where(#pw-home) .conditions-section {
      background: var(--cream-dark);
      padding: 3rem;
      border-radius: 4px;
      margin-top: 1rem;
    }
    :where(#pw-home) .conditions-section h3 {
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.6rem;
      font-weight: 500;
      color: var(--charcoal);
      margin-bottom: 0.5rem;
      text-align: center;
    }
    :where(#pw-home) .conditions-section p.sub {
      text-align: center;
      color: var(--gray-warm);
      font-size: 17px;
      margin-bottom: 2rem;
    }
    :where(#pw-home) .conditions-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
      gap: 0.75rem;
    }
    :where(#pw-home) .condition-item {
      background: var(--white);
      padding: 0.7rem 1.2rem;
      border-radius: 2px;
      font-size: 17px;
      color: var(--charcoal-mid);
      display: flex;
      align-items: center;
      gap: 0.6rem;
      border-left: 3px solid var(--sage);
    }
    :where(#pw-home) .condition-item::before { content: '✓'; color: var(--sage-dark); font-weight: 700; font-size: 17px; }

    /* =============================================
       TESTIMONIALS SECTION
       ============================================= */
    :where(#pw-home) #testimonials { background: #f5f0e9; }
    :where(#pw-home) .testimonials-intro { max-width: 600px; margin: 0 auto 3.5rem; text-align: center; }
    :where(#pw-home) .testimonial-featured {
      background: var(--white);
      border-radius: 4px;
      padding: 3.5rem;
      box-shadow: 0 8px 40px rgba(0,0,0,0.07);
      position: relative;
      max-width: 860px;
      margin: 0 auto 2.5rem;
    }
    :where(#pw-home) .testimonial-featured::before {
      content: '\201C';
      font-family: 'Cormorant Garamond', serif;
      font-size: 8rem;
      color: var(--rust);
      opacity: 0.12;
      position: absolute;
      top: -1rem;
      left: 2rem;
      line-height: 1;
    }
    :where(#pw-home) .testimonial-featured p {
      font-size: 17px;
      color: var(--charcoal-mid);
      line-height: 1.9;
      font-style: italic;
      position: relative;
      z-index: 1;
    }
    :where(#pw-home) .testimonial-author {
      margin-top: 1.5rem;
      font-size: 17px;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--rust);
      font-weight: 700;
      font-style: normal;
    }
    :where(#pw-home) .testimonial-stars {
      color: var(--gold);
      font-size: 1.1rem;
      margin-bottom: 1rem;
      letter-spacing: 0.1em;
    }
    :where(#pw-home) .testimonials-cta { text-align: center; margin-top: 2rem; }
    :where(#pw-home) .btn-secondary {
      display: inline-block;
      background: transparent;
      color: var(--rust);
      padding: 0.85rem 2.4rem;
      font-size: 17px;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      font-weight: 700;
      border-radius: 2px;
      border: 2px solid var(--rust);
      transition: all 0.25s;
    }
    :where(#pw-home) .btn-secondary:hover { background: var(--rust); color: var(--white); }

    /* =============================================
       VIDEOS SECTION
       ============================================= */
    :where(#pw-home) #videos { background: var(--section-alt); }
    :where(#pw-home) .videos-intro { max-width: 600px; margin: 0 auto 3.5rem; text-align: center; }
    :where(#pw-home) .videos-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 2rem;
    }
    :where(#pw-home) .video-card {
      background: var(--white);
      border-radius: 4px;
      overflow: hidden;
      box-shadow: 0 4px 20px rgba(0,0,0,0.07);
    }
    :where(#pw-home) .video-placeholder {
      background: var(--charcoal);
      aspect-ratio: 16/9;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      color: rgba(253,250,246,0.6);
      font-size: 17px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      gap: 0.8rem;
    }
    :where(#pw-home) .video-play-btn {
      width: 56px;
      height: 56px;
      border-radius: 50%;
      border: 2px solid rgba(253,250,246,0.5);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.2rem;
      padding-left: 4px;
    }
    :where(#pw-home) .video-card-body { padding: 1.5rem; }
    :where(#pw-home) .video-card-body h4 {
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.15rem;
      font-weight: 600;
      color: var(--charcoal);
      margin-bottom: 0.5rem;
    }
    :where(#pw-home) .video-card-body p { font-size: 17px; color: var(--gray-warm); line-height: 1.6; }
    :where(#pw-home) .video-embed { aspect-ratio: 16/9; width: 100%; }
    :where(#pw-home) .video-embed iframe { width: 100%; height: 100%; border: none; }

    /* =============================================
       NEW PATIENTS SECTION
       ============================================= */
    :where(#pw-home) #new-patients {
      background: var(--rust);
      color: var(--white);
      text-align: center;
    }
    :where(#pw-home) #new-patients .section-title { color: var(--white); }
    :where(#pw-home) #new-patients .section-label { color: rgba(253,250,246,0.7); }
    :where(#pw-home) #new-patients .section-body { color: rgba(253,250,246,0.88); max-width: 600px; margin: 0 auto 2.5rem; }
    :where(#pw-home) .btn-white {
      display: inline-block;
      background: var(--white);
      color: var(--rust);
      padding: 1rem 2.8rem;
      font-size: 17px;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      font-weight: 700;
      border-radius: 2px;
      transition: all 0.25s;
      border: 2px solid var(--white);
    }
    :where(#pw-home) .btn-white:hover { background: transparent; color: var(--white); }

    /* =============================================
       JOURNEY SECTION
       ============================================= */
    :where(#pw-home) #journey { background: var(--cream); }
    :where(#pw-home) .journey-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 5rem;
      align-items: center;
    }
    :where(#pw-home) .journey-visual {
      background: var(--section-alt);
      border-radius: 4px;
      padding: 3rem;
      text-align: center;
    }
    :where(#pw-home) .journey-visual .big-quote {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(1.3rem, 2.5vw, 1.8rem);
      font-style: italic;
      color: var(--charcoal);
      line-height: 1.5;
      margin-bottom: 1.5rem;
    }
    :where(#pw-home) .journey-visual .mission {
      font-size: 17px;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--rust);
      font-weight: 700;
    }
    :where(#pw-home) .about-visual > div:first-child {
      margin: 0;
      padding: 0;
    }
    :where(#pw-home) .about-visual .about-card {
      padding: 2.5rem;
    }
    :where(#pw-home) .journey-text .section-body { margin-bottom: 1.5rem; }

    /* =============================================
       CONTACT SECTION
       ============================================= */
    :where(#pw-home) #contact { background: var(--section-alt); }
    :where(#pw-home) .contact-grid {
      display: grid;
      grid-template-columns: 1fr 1.4fr;
      gap: 4rem;
    }
    :where(#pw-home) .contact-info h3 {
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.6rem;
      font-weight: 500;
      color: var(--charcoal);
      margin-bottom: 2rem;
    }
    :where(#pw-home) .contact-item {
      display: flex;
      gap: 1rem;
      margin-bottom: 1.5rem;
      align-items: flex-start;
    }
    :where(#pw-home) .contact-icon {
      width: 40px;
      height: 40px;
      border-radius: 50%;
      background: var(--cream-dark);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 17px;
      flex-shrink: 0;
    }
    :where(#pw-home) .contact-item-text strong {
      display: block;
      font-size: 17px;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--rust);
      margin-bottom: 0.2rem;
    }
    :where(#pw-home) .contact-item-text span, :where(#pw-home) .contact-item-text a {
      font-size: 17px;
      color: var(--charcoal-mid);
      line-height: 1.6;
    }
    :where(#pw-home) .contact-item-text a:hover { color: var(--rust); }
    :where(#pw-home) .contact-form h3 {
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.5rem;
      font-weight: 500;
      color: var(--charcoal);
      margin-bottom: 1.8rem;
    }
    :where(#pw-home) .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
    :where(#pw-home) .form-group { margin-bottom: 1.2rem; }
    :where(#pw-home) .form-group label {
      display: block;
      font-size: 17px;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--gray-warm);
      margin-bottom: 0.4rem;
      font-weight: 700;
    }
    :where(#pw-home) .form-group input,
    :where(#pw-home) .form-group textarea,
    :where(#pw-home) .form-group select {
      width: 100%;
      padding: 0.85rem 1rem;
      border: 1px solid var(--taupe);
      border-radius: 2px;
      background: var(--cream);
      font-family: 'Lato', sans-serif;
      font-size: 17px;
      color: var(--charcoal);
      transition: border-color 0.2s;
      outline: none;
    }
    :where(#pw-home) .form-group input:focus,
    :where(#pw-home) .form-group textarea:focus,
    :where(#pw-home) .form-group select:focus { border-color: var(--rust); background: var(--white); }
    :where(#pw-home) .form-group textarea { resize: vertical; min-height: 110px; }
    :where(#pw-home) .form-submit { width: 100%; margin-top: 0.5rem; cursor: pointer; font-family: 'Lato', sans-serif; }

    /* =============================================
       FOOTER
       If your footer markup sits outside the
       #pw-home wrapper, move it inside (or give it
       its own id and add that id everywhere below
       alongside #pw-home) - otherwise these rules
       won't reach it.
       ============================================= */
    :where(#pw-home) footer {
      background: var(--charcoal);
      color: rgba(253,250,246,0.75);
      padding: 4rem 2rem 2rem;
    }
    :where(#pw-home) .footer-grid {
      max-width: 1100px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: 1.5fr 1fr 1fr;
      gap: 3rem;
      padding-bottom: 3rem;
      border-bottom: 1px solid rgba(255,255,255,0.1);
    }
    :where(#pw-home) .footer-brand .logo-name {
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.6rem;
      font-weight: 600;
      color: var(--white);
      margin-bottom: 0.3rem;
    }
    :where(#pw-home) .footer-brand .logo-name span { color: var(--rust-light); }
    :where(#pw-home) .footer-brand .logo-tagline {
      font-size: 17px;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: rgba(253,250,246,0.5);
      margin-bottom: 1.2rem;
    }
    :where(#pw-home) .footer-brand p { font-size: 17px; line-height: 1.75; color: rgba(253,250,246,0.65); }
    :where(#pw-home) .footer-col h4 {
      font-size: 17px;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--rust-light);
      font-weight: 700;
      margin-bottom: 1.2rem;
    }
    :where(#pw-home) .footer-col ul { list-style: none; }
    :where(#pw-home) .footer-col ul li { margin-bottom: 0.6rem; }
    :where(#pw-home) .footer-col ul li a {
      font-size: 17px;
      color: rgba(253,250,246,0.65);
      transition: color 0.2s;
    }
    :where(#pw-home) .footer-col ul li a:hover { color: var(--white); }
    :where(#pw-home) .footer-social {
      display: flex;
      gap: 0.8rem;
      margin-top: 1.5rem;
    }
    :where(#pw-home) .social-btn {
      width: 38px;
      height: 38px;
      border-radius: 50%;
      border: 1px solid rgba(255,255,255,0.2);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 17px;
      color: rgba(253,250,246,0.65);
      transition: all 0.2s;
    }
    :where(#pw-home) .social-btn:hover { border-color: var(--rust-light); color: var(--rust-light); }
    :where(#pw-home) .footer-bottom {
      max-width: 1100px;
      margin: 2rem auto 0;
      display: flex;
      justify-content: space-between;
      align-items: center;
      font-size: 17px;
      color: rgba(253,250,246,0.4);
    }

    /* =============================================
       OPTIONAL: only add this if the narrow off-white
       bar turns out to be your theme's real header still
       rendering above this content (rather than something
       this stylesheet was causing). The better fix is to
       set this page's Elementor template to "Elementor
       Canvas" (Page settings > Template), which removes
       the theme header/footer at the page level instead
       of fighting it with CSS. Uncomment and adjust the
       body.elementor-page-46 to match your theme's actual header markup
       (inspect it in the browser to find the right one)
       only if you can't switch templates.
       ============================================= */
    /*
    body:has(#pw-home) header.site-header,
    body:has(#pw-home) #masthead {
      display: none !important;
    }
    */

    /* =============================================
       RESPONSIVE
       ============================================= */

    /* Safety net: no word/URL should ever be able to
       force horizontal overflow inside our content,
       regardless of how narrow a container gets. */
    :where(#pw-home) p,
    :where(#pw-home) h1,
    :where(#pw-home) h2,
    :where(#pw-home) h3,
    :where(#pw-home) h4,
    :where(#pw-home) span,
    :where(#pw-home) a,
    :where(#pw-home) li {
      overflow-wrap: break-word;
    }

    @media (max-width: 900px) {
      :where(#pw-home) .about-grid,
      :where(#pw-home) .philosophy-grid,
      :where(#pw-home) .journey-grid,
      :where(#pw-home) .contact-grid { grid-template-columns: 1fr; gap: 2.5rem; }
      :where(#pw-home) .services-grid,
      :where(#pw-home) .videos-grid { grid-template-columns: 1fr 1fr; }
      :where(#pw-home) .footer-grid { grid-template-columns: 1fr 1fr; }
      :where(#pw-home) .stats-row { grid-template-columns: repeat(3, 1fr); }
    }

    @media (max-width: 640px) {
      :where(#pw-home) > section { padding: 3.5rem 1.25rem !important; }

      /* Hero: a fixed 100vh box is a classic mobile bug - with
         mobile browser chrome eating vertical space, and this
         much content (logo, heading, subtext, two buttons,
         scroll hint) stacked inside, it can overflow its own
         box. Let it size to its content with a comfortable
         floor instead. */
      :where(#pw-home) #hero { height: auto; min-height: 100svh; padding: 5rem 1.25rem; }
      :where(#pw-home) .hero-content { padding: 0; }
      :where(#pw-home) .hero-logo-img { width: 220px; margin-bottom: 1.25rem; }
      :where(#pw-home) .scroll-hint { display: none; }

      /* About section: .about-card padding was never reduced,
         so on a phone its 2.5rem sides left almost no room for
         content - this was the main "compact container" bug. */
      :where(#pw-home) .about-card { padding: 1.5rem; }
      :where(#pw-home) .about-highlight { padding: 1rem 1.1rem; font-size: 1.1rem; margin: 1.5rem 0; }
      :where(#pw-home) .stats-row { grid-template-columns: 1fr; gap: 1.1rem; }
      :where(#pw-home) .stat-item { display: flex; align-items: center; justify-content: center; gap: 0.6rem; }
      :where(#pw-home) .stat-label { margin-top: 0; text-align: left; }

      /* Philosophy: same fixed-padding problem as about-card */
      :where(#pw-home) .philosophy-block { padding: 1.5rem; }

      /* Team: these three grids are set with inline styles in the
         HTML (repeat(2,1fr) / repeat(3,1fr) / 1fr 1fr), so they need
         an !important here to stack on mobile instead of squeezing
         side-by-side cards into a phone-width column. Reduced the
         gap too - full-width stacked cards don't need as much
         breathing room between them as a 3-column grid did. */
      :where(#pw-home) .owners-grid,
      :where(#pw-home) .lmt-grid,
      :where(#pw-home) .course-cards-grid { grid-template-columns: 1fr !important; gap: 1.25rem !important; }

      /* Two of the LMT cards (Cassy, Shawn) had an explicit
         grid-column:1 / grid-column:2 inline style to position them
         in row 2 of the original 3-column desktop grid. In a
         single-column mobile grid, grid-column:2 has nothing to sit
         in, so that card was getting pushed into its own squeezed
         implicit column - this is what made it look like only two
         cards were showing. Resetting every card to column 1 fixes
         it, and also tightens the padding inside each card. */
      :where(#pw-home) .lmt-card { grid-column: 1 !important; }
      :where(#pw-home) .lmt-card-body { padding: 1.1rem !important; }

      /* Owners & course cards: same "too much space" issue - their
         inner text padding was never reduced for mobile. */
      :where(#pw-home) .owners-grid > div > div:first-child { margin: 0.75rem !important; }
      :where(#pw-home) .owners-grid > div > div:last-child { padding: 1.25rem !important; }
      :where(#pw-home) .course-cards-grid > div { padding: 1.25rem !important; }

      /* Clinic Coordinators: taller crop so the full head is visible
         instead of getting cut off by the fixed 280px height. */
      :where(#pw-home) .coord-photo { height: 340px !important; }
      :where(#pw-home) .coord-photo img { object-position: top !important; }

      /* Services */
      :where(#pw-home) .services-grid,
      :where(#pw-home) .videos-grid { grid-template-columns: 1fr; }
      :where(#pw-home) .service-card-body { padding: 1.4rem 1.25rem 1.6rem; }
      :where(#pw-home) .service-img { height: 220px; }
      :where(#pw-home) .conditions-section { padding: 1.5rem; }

      /* Testimonials: the giant decorative quote mark was a
         fixed 8rem regardless of screen size, easily
         overlapping the now-tighter padding on a phone. */
      :where(#pw-home) .testimonial-featured { padding: 2rem 1.5rem; }
      :where(#pw-home) .testimonial-featured::before { font-size: 4.5rem; top: -0.5rem; left: 1rem; }

      /* Journey */
      :where(#pw-home) .journey-visual { padding: 1.75rem; }

      /* Contact */
      :where(#pw-home) .form-row { grid-template-columns: 1fr; }

      /* Footer */
      :where(#pw-home) footer { padding: 3rem 1.25rem 1.5rem; }
      :where(#pw-home) .footer-grid { grid-template-columns: 1fr; gap: 2rem; }
      :where(#pw-home) .footer-bottom { flex-direction: column; gap: 0.5rem; text-align: center; }

      :where(#pw-home) .btn-outline { margin-left: 0; margin-top: 1rem; display: block; }
      :where(#pw-home) .btn-primary,
      :where(#pw-home) .btn-white,
      :where(#pw-home) .btn-secondary { display: block; width: 100%; text-align: center; }
    }/* End custom CSS */