:root{
  --maroon:#740e21;--maroon2:#a61135;--navy:#2d2b67;--navy2:#132a63;
  --ink:#12214b;--light:#f4f6fa;--border:#dce2eb;--white:#fff;--muted:#5b6479;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:#18223f;line-height:1.55;background:#fff}img{max-width:100%;display:block}a{color:inherit}.shell{width:min(1280px,94%);margin:auto}
.utility{background:#132a63;color:#fff;font-size:13px;padding:6px 0}.utility .shell{display:flex;justify-content:space-between;gap:20px}
.site-header{background:#fff;border-bottom:1px solid #e2e6ed;position:sticky;top:0;z-index:50}.nav-wrap{height:92px;display:flex;align-items:center;gap:24px}.brand{margin-right:auto;display:flex;align-items:center;text-decoration:none}.brand img{height:78px;width:auto;max-width:115px;object-fit:contain}.brand-name{font-size:20px;line-height:1.05;font-weight:800;color:var(--navy);margin-left:9px}.brand-name small{display:block;color:var(--maroon);font-size:11px;letter-spacing:1px;margin-top:5px}.nav{display:flex;gap:23px;align-items:center}.nav a{text-decoration:none;font-weight:700;font-size:14px;color:#142147;padding:31px 0 27px;border-bottom:3px solid transparent}.nav a:hover,.nav a.active{color:var(--maroon);border-color:var(--maroon)}.menu-button{display:none;background:none;border:1px solid var(--border);font-size:25px;padding:8px 12px}.btn{display:inline-block;text-decoration:none;font-weight:800;padding:13px 24px;border:1px solid transparent;border-radius:0;cursor:pointer}.btn-maroon{background:var(--maroon);color:#fff}.btn-maroon:hover{background:#5e0a1b}.btn-outline{border-color:var(--navy);color:var(--navy);background:#fff}.btn-white{background:#fff;color:var(--maroon)}
.hero{background:linear-gradient(90deg,#f4f6fa,#fff)}.hero-grid,.page-hero-grid{display:grid;grid-template-columns:1.08fr .92fr;align-items:stretch;min-height:390px}.hero-copy{padding:68px 38px 58px 0;display:flex;flex-direction:column;justify-content:center}.eyebrow{color:var(--maroon);font-weight:900;font-size:13px;letter-spacing:1.5px;margin:0 0 10px}.hero h1,.page-hero h1{font-size:clamp(42px,5vw,68px);line-height:1.02;margin:0 0 20px;color:#142761}.hero h1 span{color:var(--maroon)}.lead{font-size:20px;color:#273452}.actions{display:flex;gap:14px;margin-top:12px;flex-wrap:wrap}.hero-photo{overflow:hidden}.hero-photo img,.page-hero img{width:100%;height:100%;object-fit:cover;object-position:center}
.features{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:#fff}.feature-grid{display:grid;grid-template-columns:repeat(4,1fr)}.feature-grid article{text-align:center;padding:34px 24px;border-right:1px solid var(--border)}.feature-grid article:last-child{border-right:0}.feature-icon{width:60px;height:60px;margin:0 auto 9px;display:flex;align-items:center;justify-content:center;background:var(--maroon);color:white;border-radius:50%;font-size:28px}.feature-grid article:nth-child(even) .feature-icon{background:var(--navy)}.feature-grid h3{margin:8px 0 2px;color:#13245b}.feature-grid p{margin:0;color:var(--muted)}
.section{padding:72px 0}.section.light{background:linear-gradient(#f7f8fb,#f2f4f8)}.center{text-align:center}.intro{max-width:780px;margin:0 auto 34px;color:var(--muted)}h2{font-size:38px;line-height:1.15;margin:0 0 18px;color:#17285e}h3{color:#162659}.program-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}.program-card{display:block;background:#fff;border:1px solid var(--border);text-decoration:none;min-width:0}.program-card img{width:100%;height:auto;aspect-ratio:2.08/1;object-fit:cover}.program-card div{padding:14px}.program-card h3{margin:0 0 6px;font-size:17px}.program-card p{margin:0 0 13px;color:var(--muted);font-size:13px;line-height:1.38}.program-card span{color:var(--maroon);font-weight:800;font-size:13px}.program-card:hover{border-color:var(--maroon);transform:translateY(-2px)}
.stats{background:#132a63;color:#fff;padding:36px 0}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr)}.stats-grid div{text-align:center;border-right:1px solid rgba(255,255,255,.28)}.stats-grid div:last-child{border-right:0}.stats strong{display:block;font-size:34px}.stats span{display:block}.testimonials{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:34px}.testimonials blockquote{margin:0;border:1px solid var(--border);padding:27px;background:#fff;color:#e49b00;font-size:20px}.testimonials blockquote p{color:#3c465d;font-size:16px}.testimonials cite{font-style:normal;color:var(--maroon);font-weight:800;font-size:15px}
.cta{background:linear-gradient(90deg,var(--navy),#253e80);color:#fff;padding:44px 0}.cta-grid{display:flex;justify-content:space-between;align-items:center;gap:30px}.cta h2{color:#fff;margin-bottom:6px}.cta p{margin:0}.footer{background:#0f244e;color:#fff;padding:46px 0 22px}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:35px}.footer h4{margin:0 0 12px}.footer a,.footer p{display:block;color:#e6eaf1;text-decoration:none;margin:5px 0}.footer-logo-box{background:white;padding:7px;width:150px}.footer-logo{width:136px;height:105px;object-fit:contain}.copyright{border-top:1px solid rgba(255,255,255,.18);margin-top:36px;padding-top:18px;font-size:12px;display:flex;justify-content:space-between;gap:20px}
.page-hero{background:#f3f5f9;border-bottom:1px solid var(--border)}.page-hero-grid>div{padding:54px 48px 54px 0;align-self:center}.page-hero h1{font-size:54px}.page-hero .btn{margin-top:14px}.two-col{display:grid;grid-template-columns:1.5fr 1fr;gap:55px;align-items:start}.info-panel,.form-card{background:#f6f7fa;border-left:5px solid var(--maroon);padding:30px}.checklist{list-style:none;padding:0}.checklist li{margin:12px 0;padding-left:28px;position:relative}.checklist li:before{content:'✓';position:absolute;left:0;color:var(--maroon);font-weight:900}.level-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.level-grid article{background:#fff;border:1px solid var(--border);padding:24px}.level-grid article h3{margin-top:0;border-bottom:4px solid var(--maroon);padding-bottom:12px}.split-banner{display:grid;grid-template-columns:1fr 1fr;background:#132a63;color:#fff}.split-banner img{width:100%;height:360px;object-fit:cover}.split-banner>div{padding:70px;align-self:center}.split-banner h2{color:#fff}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px}.form-card form p{margin:0 0 14px}.form-card label{display:block;font-weight:800;margin-bottom:5px}.form-card input,.form-card select,.form-card textarea{width:100%;padding:12px;border:1px solid #bbc3d1;border-radius:0;background:#fff;font:inherit}.form-card textarea{height:130px}.form-status{display:none;padding:14px;background:#eaf7ed;border:1px solid #9ad5a7;margin-bottom:18px}.form-status.show{display:block}.small-note{font-size:12px;color:#6d7587;margin-top:30px!important}.desktop-enroll{white-space:nowrap}.photo-band{display:grid;grid-template-columns:1fr 1fr;min-height:340px;background:#fff}.photo-band img{width:100%;height:100%;object-fit:cover}.photo-band .copy{padding:55px;align-self:center}.photo-band ul{padding-left:20px}
@media(max-width:1100px){.program-grid{grid-template-columns:repeat(3,1fr)}.program-card img{height:auto;aspect-ratio:2.08/1}.program-card p{font-size:14px}}
@media(max-width:980px){.utility{display:none}.nav{display:none;position:absolute;top:92px;left:0;right:0;background:#fff;border-top:1px solid var(--border);padding:18px 4%;flex-direction:column;align-items:flex-start}.nav.open{display:flex}.nav a{padding:8px 0}.menu-button{display:block}.desktop-enroll{display:none}.brand-name{display:none}.hero-grid,.page-hero-grid{grid-template-columns:1fr}.hero-photo{order:-1;height:330px}.page-hero img{height:350px;order:-1}.hero-copy,.page-hero-grid>div{padding:45px 0}.feature-grid{grid-template-columns:1fr 1fr}.program-grid{grid-template-columns:1fr 1fr}.stats-grid{grid-template-columns:1fr 1fr;gap:20px}.stats-grid div{border-right:0}.testimonials{grid-template-columns:1fr}.level-grid{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr 1fr}.two-col,.contact-grid,.split-banner,.photo-band{grid-template-columns:1fr}.split-banner>div,.photo-band .copy{padding:45px 5%}.cta-grid{display:block}.cta .btn{margin-top:20px}}
@media(max-width:600px){.nav-wrap{height:82px}.brand img{height:66px;max-width:98px}.nav{top:82px}.hero h1,.page-hero h1{font-size:40px}.feature-grid,.program-grid,.level-grid,.footer-grid{grid-template-columns:1fr}.feature-grid article{border-right:0;border-bottom:1px solid var(--border)}.section{padding:52px 0}.copyright{display:block}.copyright span{display:block;margin-top:8px}.page-hero img{height:260px}.hero-photo{height:260px}h2{font-size:31px}.footer-logo-box{width:130px}.footer-logo{width:116px;height:90px}}

/* Image clarity pass: keep enhanced assets near native display size and prevent unnecessary browser stretching. */
.page-hero img{max-height:440px;display:block;}
.hero-photo img,.page-hero img,.program-card img,.split-banner img,.photo-band img{image-rendering:auto;backface-visibility:hidden;transform:translateZ(0);}
@media(min-width:981px){.page-hero-grid{min-height:390px}.page-hero img{height:390px;max-height:390px}}


/* Homepage requested refinements - scoped so interior pages remain unchanged. */
.utility a.utility-portal{color:#fff;text-decoration:none;font-weight:800;}
.utility a.utility-portal:hover{text-decoration:underline;}
.home-brand .brand-name{display:flex;flex-direction:column;align-items:center;text-align:center;min-width:250px;margin-left:9px;}
.home-brand .brand-top-line,.home-brand .academy-line{display:block;width:100%;text-align:center;}
.home-brand .brand-name small{width:100%;text-align:center;}
.home-hero .eyebrow{font-size:26px;letter-spacing:2px;line-height:1.2;margin-bottom:18px;}
.home-cta{background:var(--maroon);}
.home-cta .btn-white{color:var(--maroon);}
.home-footer .footer-grid{grid-template-columns:repeat(3,1fr);text-align:center;max-width:900px;}
.home-copyright{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:4px;}
.home-copyright span{display:block;}
@media(max-width:980px){
  .home-brand .brand-name{display:none;}
  .home-footer .footer-grid{grid-template-columns:repeat(3,1fr);}
}
@media(max-width:600px){
  .home-hero .eyebrow{font-size:20px;}
  .home-footer .footer-grid{grid-template-columns:1fr;}
  .home-copyright{display:flex;}
}
/* =========================================================
   CAMP PHOTO ALBUM / AUTO-SCROLLING GALLERY
   ========================================================= */

.camp-gallery-section{
  background:#fff;
  padding:60px 0 70px;
}

.camp-gallery-section .eyebrow{
  text-align:center;
  font-size:18px;
  margin-bottom:8px;
}

.camp-gallery-section h2{
  text-align:center;
  margin-bottom:12px;
}

.camp-gallery-section .intro{
  text-align:center;
  margin-bottom:30px;
}

/* Main gallery frame */
.camp-gallery{
  width:100%;
  overflow:hidden;
  position:relative;
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  background:#fff;
  padding:12px 0;
}

/* Continuous scrolling row */
.camp-gallery-track{
  display:flex;
  align-items:center;
  gap:16px;
  width:max-content;
  animation:campGalleryScroll 45s linear infinite;
}

/* Individual photographs */
.camp-gallery-track img{
  width:320px;
  height:220px;
  object-fit:cover;
  object-position:center;
  display:block;
  flex-shrink:0;
}

/* Pause scrolling when mouse is over album */
.camp-gallery:hover .camp-gallery-track{
  animation-play-state:paused;
}

/* Continuous right-to-left movement */
@keyframes campGalleryScroll{
  from{
    transform:translateX(0);
  }

  to{
    transform:translateX(calc(-50% - 8px));
  }
}

/* Tablet */
@media(max-width:980px){

  .camp-gallery-section{
    padding:52px 0 60px;
  }

  .camp-gallery-track{
    gap:14px;
    animation-duration:40s;
  }

  .camp-gallery-track img{
    width:290px;
    height:200px;
  }
}

/* Mobile */
@media(max-width:600px){

  .camp-gallery-section{
    padding:42px 0 50px;
  }

  .camp-gallery-track{
    gap:12px;
    animation-duration:35s;
  }

  .camp-gallery-track img{
    width:250px;
    height:175px;
  }
}

/* Accessibility: stop animation for users who prefer less motion */
@media(prefers-reduced-motion:reduce){

  .camp-gallery-track{
    animation:none;
  }

  .camp-gallery{
    overflow-x:auto;
  }
}

/* =========================================================
   CAMPS HERO - START IMAGE AT ~46% AND EXTEND TO RIGHT EDGE
   Automatically targets the hero containing camps-hero.jpg.
   No extra class is required in camps.html.
   ========================================================= */

@media(min-width:981px){

  .page-hero:has(img[src*="camps-hero"]) {
    overflow:hidden !important;
  }

  .page-hero:has(img[src*="camps-hero"]) .page-hero-grid {
    width:100vw !important;
    max-width:none !important;
    margin:0 !important;

    /* Align left-side text with normal site content */
    padding-left:calc((100vw - min(1280px, 94vw)) / 2) !important;

    /* Absolutely no right-side gap */
    padding-right:0 !important;

    display:grid !important;

    /* Image starts near the red line */
    grid-template-columns:46% 54% !important;

    min-height:390px !important;
    align-items:stretch !important;
  }

  .page-hero:has(img[src*="camps-hero"]) .page-hero-grid > div {
    padding:54px 36px 54px 0 !important;
    align-self:center !important;
  }

  .page-hero:has(img[src*="camps-hero"]) .page-hero-grid > img {
    width:100% !important;
    max-width:none !important;
    height:390px !important;
    max-height:390px !important;
    margin:0 !important;

    object-fit:cover !important;
    object-position:center !important;

    display:block !important;
    justify-self:stretch !important;
  }
}


/* Tablet / mobile */
@media(max-width:980px){

  .page-hero:has(img[src*="camps-hero"]) .page-hero-grid {
    width:min(1280px,94%) !important;
    max-width:1280px !important;
    margin:auto !important;
    padding-left:0 !important;
    padding-right:0 !important;
    grid-template-columns:1fr !important;
  }

  .page-hero:has(img[src*="camps-hero"]) .page-hero-grid > img {
    width:100% !important;
    max-width:100% !important;
  }
}

/* =========================================================
   TESTIMONIALS PAGE HERO
   Start image farther left and extend to far-right edge.
   Requires: <section class="page-hero testimonials-page-hero">
   ========================================================= */

@media(min-width:981px){

  .testimonials-page-hero{
    overflow:hidden !important;
  }

  .testimonials-page-hero .page-hero-grid{
    width:100vw !important;
    max-width:none !important;
    margin:0 !important;

    /* Keep the left text aligned with the normal site shell */
    padding-left:calc((100vw - min(1280px, 94vw)) / 2) !important;

    /* Remove all right-side spacing */
    padding-right:0 !important;

    display:grid !important;

    /* Move image start to the left, near the requested red line */
    grid-template-columns:46% 54% !important;

    min-height:390px !important;
    align-items:stretch !important;
  }

  .testimonials-page-hero .page-hero-grid > div{
    padding:54px 35px 54px 0 !important;
    align-self:center !important;
  }

  .testimonials-page-hero .page-hero-grid > img{
    width:100% !important;
    max-width:none !important;

    height:390px !important;
    max-height:390px !important;

    object-fit:cover !important;
    object-position:center !important;

    display:block !important;
    margin:0 !important;
    justify-self:stretch !important;
  }
}


/* Tablet / mobile */
@media(max-width:980px){

  .testimonials-page-hero .page-hero-grid{
    width:min(1280px,94%) !important;
    max-width:1280px !important;

    margin:auto !important;
    padding-left:0 !important;
    padding-right:0 !important;

    grid-template-columns:1fr !important;
  }

  .testimonials-page-hero .page-hero-grid > img{
    width:100% !important;
    max-width:100% !important;
  }
}



/* =========================================================
   SITE-WIDE RESPONSIVE / MOBILE SAFETY PASS
   Applies to all pages using css/style.css
   ========================================================= */

html,
body{
  max-width:100%;
}

/* Avoid horizontal page overflow without creating a scroll container
   that can interfere with the sticky shared header. */
html{
  overflow-x:clip;
}

body{
  overflow-x:clip;
}

main{
  width:100%;
  min-width:0;
}

img,
video,
iframe,
svg{
  max-width:100%;
}

input,
select,
textarea,
button{
  max-width:100%;
}

/* Prevent grid/flex children from forcing horizontal scrolling */
.hero-grid > *,
.page-hero-grid > *,
.two-col > *,
.contact-grid > *,
.split-banner > *,
.photo-band > *,
.program-grid > *,
.level-grid > *,
.feature-grid > *,
.footer-grid > *,
.stats-grid > *,
.testimonials > *{
  min-width:0;
}

@media(max-width:980px){

  .shell{
    width:calc(100% - 32px);
    max-width:none;
  }

  .section{
    padding:56px 0;
  }

  .hero-grid,
  .page-hero-grid{
    min-height:0 !important;
    grid-template-columns:1fr !important;
  }

  .hero-copy,
  .page-hero-grid > div{
    padding:38px 0 42px !important;
  }

  .page-hero img,
  .hero-photo,
  .hero-photo img{
    width:100% !important;
    max-width:100% !important;
  }

  .page-hero img{
    height:320px !important;
    max-height:none !important;
    object-fit:cover !important;
  }

  .hero-photo{
    height:320px !important;
  }

  .hero-photo img{
    height:100% !important;
    object-fit:cover !important;
  }

  .two-col,
  .contact-grid,
  .split-banner,
  .photo-band{
    grid-template-columns:1fr !important;
    gap:28px;
  }

  .info-panel,
  .form-card{
    width:100% !important;
  }

  .split-banner img,
  .photo-band img{
    width:100% !important;
    height:300px !important;
    object-fit:cover !important;
  }

  .split-banner > div,
  .photo-band .copy{
    padding:38px 24px !important;
  }

  .program-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:16px;
  }

  .level-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  .feature-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  .stats-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  .footer-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  .cta-grid{
    flex-direction:column;
    align-items:flex-start;
  }

  .cta-grid .btn{
    margin-top:8px;
  }

  /* Tables remain usable if a page has a wide table */
  main table{
    max-width:100%;
  }
}

@media(max-width:600px){

  .shell{
    width:calc(100% - 24px);
  }

  body{
    font-size:16px;
  }

  .section{
    padding:44px 0;
  }

  h1,
  .hero h1,
  .page-hero h1{
    font-size:clamp(34px,11vw,42px) !important;
    line-height:1.06 !important;
  }

  h2{
    font-size:clamp(28px,8vw,34px) !important;
  }

  h3{
    line-height:1.2;
  }

  .lead{
    font-size:18px !important;
    line-height:1.5;
  }

  .hero-copy,
  .page-hero-grid > div{
    padding:30px 0 34px !important;
  }

  .page-hero img,
  .hero-photo{
    height:235px !important;
  }

  .actions{
    gap:10px;
  }

  .actions .btn,
  .page-hero .btn,
  .cta .btn,
  .calendar-actions .btn{
    width:100%;
    text-align:center;
  }

  .btn{
    min-height:46px;
    padding:12px 18px;
  }

  .program-grid,
  .level-grid,
  .feature-grid,
  .stats-grid,
  .footer-grid{
    grid-template-columns:1fr !important;
  }

  .program-card img{
    width:100%;
    height:auto !important;
    aspect-ratio:16/9;
    object-fit:cover;
  }

  .feature-grid article{
    padding:26px 18px;
  }

  .stats-grid{
    gap:0 !important;
  }

  .stats-grid div{
    padding:16px 0;
    border-bottom:1px solid rgba(255,255,255,.2);
  }

  .stats-grid div:last-child{
    border-bottom:0;
  }

  .info-panel,
  .form-card{
    padding:24px 20px !important;
  }

  .split-banner img,
  .photo-band img{
    height:230px !important;
  }

  .split-banner > div,
  .photo-band .copy{
    padding:30px 20px !important;
  }

  .testimonials blockquote{
    padding:22px 18px;
  }

  .footer{
    padding:38px 0 20px;
  }

  .footer-grid{
    gap:26px !important;
    text-align:center;
  }

  .copyright{
    text-align:center;
    gap:6px;
  }

  .form-card input,
  .form-card select,
  .form-card textarea{
    font-size:16px; /* prevents iOS zoom on focus */
  }

  /* Generic wide-table fallback */
  main table:not(.math-track-table){
    display:block;
    width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
}

/* Very small phones */
@media(max-width:380px){

  .shell{
    width:calc(100% - 20px);
  }

  .page-hero img,
  .hero-photo{
    height:210px !important;
  }

  .btn{
    padding-left:14px;
    padding-right:14px;
  }
}


@supports not (overflow:clip){
  html,
  body{
    overflow-x:visible;
  }
}
