
/* Prodogz global footer, homepage video banner, and mobile menu fixes */
html, body { max-width: 100%; overflow-x: hidden; }
.header { position: sticky; top: 0; z-index: 9999; }
.header .navwrap { position: relative; }
.header .brand img { max-width: 220px; height: auto; }
.mobile-menu-toggle { display: none; align-items: center; justify-content: center; gap: 8px; border: 0; background: #a52714; color: #fff; font-weight: 800; border-radius: 999px; padding: 10px 16px; line-height: 1; cursor: pointer; }
.mobile-menu-toggle .mobile-menu-bars, .mobile-menu-toggle .mobile-menu-bars::before, .mobile-menu-toggle .mobile-menu-bars::after { display: block; width: 20px; height: 2px; background: #fff; border-radius: 2px; content: ""; transition: transform .2s ease, opacity .2s ease; }
.mobile-menu-toggle .mobile-menu-bars { position: relative; }
.mobile-menu-toggle .mobile-menu-bars::before { position: absolute; top: -6px; left: 0; }
.mobile-menu-toggle .mobile-menu-bars::after { position: absolute; top: 6px; left: 0; }
.header.mobile-open .mobile-menu-bars { background: transparent; }
.header.mobile-open .mobile-menu-bars::before { transform: translateY(6px) rotate(45deg); }
.header.mobile-open .mobile-menu-bars::after { transform: translateY(-6px) rotate(-45deg); }


.hero.video-hero, .hero.pdz-home-video-banner { position: relative; overflow: hidden; min-height: 430px; color:#fff; display:flex; align-items:center; background:#111 url('../images/video-image.webp') center/cover no-repeat; }
.hero.video-hero .hero-video, .hero.pdz-home-video-banner .hero-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.hero.video-hero::before, .hero.pdz-home-video-banner::before { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(110deg, rgba(0,0,0,.78), rgba(0,0,0,.42)); }
.hero.video-hero .hero-inner, .hero.pdz-home-video-banner .hero-inner { position:relative; z-index:2; max-width:1180px; width:100%; margin:auto; padding:70px 20px; }
.hero.video-hero .eyebrow, .hero.pdz-home-video-banner .eyebrow { color:#ffd36a; text-transform:uppercase; letter-spacing:.08em; font-weight:800; }
.hero.video-hero h1, .hero.pdz-home-video-banner h1 { color:#fff; font-size:clamp(2rem,5vw,4.2rem); line-height:1.05; margin:10px 0 18px; max-width:900px; }
.hero.video-hero p, .hero.pdz-home-video-banner p { color:#fff; font-size:1.2rem; max-width:760px; }

@media (max-width: 850px){
  .header .navwrap{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;padding:10px 15px!important;}
  .header .brand{justify-content:flex-start!important;min-width:0;}
  .header .brand img{max-height:54px!important;width:auto!important;}
  .mobile-menu-toggle{display:inline-flex!important;}
  .header .nav{display:none!important;position:absolute;left:12px;right:12px;top:100%;background:#fff;border:1px solid rgba(0,0,0,.1);box-shadow:0 14px 28px rgba(0,0,0,.18);border-radius:16px;padding:12px!important;margin:0!important;z-index:10000;max-height:calc(100vh - 95px);overflow-y:auto;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;gap:0!important;text-align:left!important;}
  .header.mobile-open .nav{display:flex!important;}
  .header .nav a{display:block!important;width:100%!important;padding:13px 14px!important;margin:0!important;border-bottom:1px solid #eee;color:#111!important;line-height:1.2!important;text-align:left!important;}
  .header .nav a:last-child{border-bottom:0;}
  .header .nav .cta, .header .nav a.cta{margin-top:8px!important;text-align:center!important;color:#fff!important;background:#a52714!important;border-radius:999px!important;border-bottom:0!important;}
  .hero.video-hero, .hero.pdz-home-video-banner{min-height:360px;}
  .hero.video-hero .hero-inner, .hero.pdz-home-video-banner .hero-inner{padding:54px 20px;}

  .trust{grid-template-columns:1fr 1fr;}
  .content{grid-template-columns:1fr!important;}
  .cards{grid-template-columns:1fr!important;}
}

/* Prodogz responsive overflow and photo/card fixes - added 2026-06-17
   Keeps every page inside the viewport and prevents galleries/cards from forcing horizontal scrolling. */
html, body {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
}
*, *::before, *::after { box-sizing: border-box !important; }
img, picture, video, iframe, embed, object, svg, table {
  max-width: 100% !important;
}
img, picture, video { height: auto; }
body { overflow-wrap: break-word; }

.wrap,
.navwrap,
.hero-inner,
.footer .wrap,
.trust,
.content,
.main,
.sidebar,
.sidebar-stack,
.section .wrap {
  max-width: 100% !important;
}
.wrap,
.hero-inner,
.footer .wrap {
  width: 100% !important;
}
@media (min-width: 900px) {
  .wrap,
  .hero-inner,
  .footer .wrap { max-width: 1120px !important; }
  .navwrap { max-width: 1180px !important; }
  .trust { max-width: 1100px !important; }
}

.content,
main.content {
  width: 100% !important;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 310px) !important;
  align-items: start;
}
.main,
article.main,
aside.sidebar,
.sidebar,
.sidebar-stack,
.panel,
.card {
  min-width: 0 !important;
}
@media (max-width: 900px) {
  .content,
  main.content {
    display: block !important;
    grid-template-columns: 1fr !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  .sidebar,
  .sidebar-stack { position: static !important; width: 100% !important; }
}

/* About the Trainer photo gallery */
.trainer-photo-section {
  width: 100% !important;
  max-width: 100% !important;
  overflow: hidden !important;
}
.trainer-photo-grid {
  width: 100% !important;
  max-width: 100% !important;
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)) !important;
  gap: 18px !important;
}
.trainer-photo-card {
  min-width: 0 !important;
  max-width: 100% !important;
}
.trainer-photo-card img {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  aspect-ratio: 4 / 3;
  object-fit: cover !important;
}

/* Classes and service-card grids */
.pdz-classes-section,
.pdz-classes-intro,
.pdz-classes-grid,
.classes-options-modern,
.classes-options-intro,
.classes-options-grid,
.class-service-grid,
.cards,
.modern-feature-grid,
.modern-info-grid,
.breed-showcase {
  width: 100% !important;
  max-width: 100% !important;
}
.pdz-classes-grid,
.classes-options-grid,
.class-service-grid,
.cards,
.modern-feature-grid,
.modern-info-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)) !important;
}
.pdz-class-card,
.classes-options-grid .card,
.classes-options-grid .service-card,
.class-card-inner,
.card,
.modern-feature-card,
.modern-info-card {
  min-width: 0 !important;
  max-width: 100% !important;
}
.pdz-class-nav,
.filter-controls,
.buttons,
.service-cta-row {
  max-width: 100% !important;
  flex-wrap: wrap !important;
}
@media (max-width: 650px) {
  .pdz-class-nav-btn,
  .filter-controls button,
  .buttons .btn,
  .service-cta-row .btn {
    width: 100% !important;
    text-align: center !important;
  }
}

/* Prevent long links, old footer pills, reviews, and tables from widening pages. */
a, p, li, h1, h2, h3, h4, h5, h6, .btn, .pdz-card-btn, .pdz-class-nav-btn {
  overflow-wrap: anywhere;
}

.reviews-track { max-width: 100% !important; }
table { display: block; overflow-x: auto; }

/* Class page anchor/scroll fixes - added 2026-06-17 */
.pdz-class-card,
#pdz-classes-grid,
#training-options {
  scroll-margin-top: 115px !important;
}
.pdz-class-nav a.pdz-class-nav-btn {
  text-decoration: none !important;
  cursor: pointer !important;
}

/* Footer-safe overflow protection only: preserve original footer layout/styles. */
.footer, footer { max-width: 100% !important; overflow-x: clip; }
.footer img, footer img { max-width: 100% !important; height: auto; }
.footer a, footer a { overflow-wrap: anywhere; }
.reviews-carousel, .reviews-track-wrap { max-width: 100% !important; overflow: hidden !important; }

/* Prodogz repair: keep Popular Training Options inside the page container */
.pdz-training-options-section{
    width:100% !important;
    max-width:100% !important;
    overflow:hidden !important;
    margin:30px 0 0 !important;
    padding:50px 0 !important;
    box-sizing:border-box !important;
    left:auto !important;
    right:auto !important;
    transform:none !important;
}

.pdz-training-options-section .wrap,
.pdz-training-options-section .wrap.training-options{
    width:100% !important;
    max-width:1120px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding-left:20px !important;
    padding-right:20px !important;
    box-sizing:border-box !important;
    position:relative !important;
    left:auto !important;
    right:auto !important;
    transform:none !important;
}

.pdz-training-options-section h2{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    box-sizing:border-box !important;
}

.pdz-training-options-section .cards{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:20px !important;
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
    box-sizing:border-box !important;
    position:relative !important;
    left:auto !important;
    right:auto !important;
    transform:none !important;
    overflow:visible !important;
}

.pdz-training-options-section .card{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
    margin:0 !important;
    position:relative !important;
    left:auto !important;
    right:auto !important;
    transform:none !important;
    overflow-wrap:break-word !important;
}

@media(max-width:950px){
    .pdz-training-options-section .cards{
        grid-template-columns:1fr !important;
    }
}

@media(max-width:600px){
    .pdz-training-options-section{
        padding:34px 0 !important;
    }
    .pdz-training-options-section .wrap,
    .pdz-training-options-section .wrap.training-options{
        padding-left:16px !important;
        padding-right:16px !important;
    }
}
