/* Jealash V11.49 — deployment-candidate visual and responsive polish */
:root{--brand:var(--green);--sage:var(--green-soft)}

/* ---------- Header / primary navigation ---------- */
.hdr,.hdr .wrap{overflow:visible!important}
.hdr .wrap{gap:12px!important}
.nav{column-gap:8px!important;row-gap:0!important;white-space:nowrap;min-width:0}
.nav>.nav-group,.nav>a{flex:0 0 auto;margin:0!important}
.nav>.nav-group{padding:0!important}
.nav-parent-row{gap:0!important}
.nav>.nav-group .nav-parent-row>.nav-parent-link{padding:9px 4px 9px 8px!important}
.nav>.nav-group .nav-subtoggle{width:25px!important;height:38px!important;margin:0!important;flex:0 0 25px}
.nav>a{padding:9px 8px!important}
.hdr-rating{
  box-sizing:border-box!important;flex:0 0 auto!important;min-height:40px;min-width:172px!important;width:max-content!important;max-width:none!important;
  display:inline-flex!important;align-items:center!important;justify-content:center;gap:6px!important;
  padding:0 13px!important;border:1px solid #e7d9c7!important;border-radius:999px!important;
  background:#fff!important;line-height:1!important;overflow:visible!important;white-space:nowrap!important;flex-shrink:0!important;
  position:relative;isolation:isolate;box-shadow:0 3px 12px rgba(18,38,31,.035);text-decoration:none!important;color:var(--body)!important
}
.hdr-rating:hover{border-color:#d9c6ae!important;box-shadow:0 6px 16px rgba(18,38,31,.07);transform:translateY(-1px)}
.hdr-rating:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.hdr-rating .stars{display:inline-block;flex:0 0 auto;line-height:1!important;font-size:.76rem;letter-spacing:-1.5px!important}
.hdr-rating [data-google-review-count]{display:inline-block;line-height:1.1;font-size:.76rem}
.hdr-cta{flex:0 0 auto!important;white-space:nowrap}

@media (min-width:1241px) and (max-width:1380px){
  .hdr .wrap{gap:9px!important}
  .logo{font-size:1.32rem!important}
  .nav{column-gap:4px!important}
  .nav>a,.nav>.nav-group .nav-parent-row>.nav-parent-link{font-size:.82rem!important;padding-left:6px!important;padding-right:6px!important}
  .nav>.nav-group .nav-subtoggle{width:21px!important;flex-basis:21px}
  .hdr-rating{padding:0 10px!important;gap:5px!important}
  .hdr-rating [data-google-review-count]{font-size:.72rem}
  .hdr-rating:hover{border-color:#d9c6ae!important;box-shadow:0 6px 16px rgba(18,38,31,.07);transform:translateY(-1px)}
.hdr-rating:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.hdr-rating .stars{font-size:.72rem}
  .hdr-cta{padding-left:15px!important;padding-right:15px!important}
}
@media (min-width:961px) and (max-width:1240px){.hdr-rating{display:none!important}}
@media (max-width:960px){
  .nav-dropdown{background:var(--green-soft)!important}
  .hdr .wrap{gap:10px!important}
  .nav{white-space:normal!important;column-gap:0!important}
  .nav>.nav-group,.nav>a{width:100%}
  .nav>.nav-group .nav-parent-row>.nav-parent-link{padding:15px 8px!important}
  .nav>.nav-group .nav-subtoggle{width:44px!important;height:44px!important;flex-basis:44px}
}

/* ---------- Rhythm / cards / media ---------- */
section[id]{scroll-margin-top:92px}
.carousel-shell .carousel-track{gap:5px!important;column-gap:5px!important;row-gap:5px!important}
.carousel-shell figure,.carousel-shell .carousel-card{margin:0!important}
.carousel-card{overflow:hidden}
.carousel-card figcaption{padding:11px 13px 13px!important;line-height:1.45}
.carousel-card figcaption strong{display:block;margin-bottom:3px;color:var(--ink)}
.ph.is-img img,.phero-media img,.course .ph img,.rel img,.service-card img,.svc-card img{object-position:center center}
.phero-media .ph.is-img{overflow:hidden}
.phero-media .ph.is-img img{display:block;width:100%;height:100%;object-fit:cover}
.course .ph.is-img img,.rel img{width:100%;height:100%;object-fit:cover}
.course .ph.is-img{aspect-ratio:16/10;overflow:hidden}
.rel>img,.rel .ph{aspect-ratio:16/10;object-fit:cover}
.media-proof-card img{object-position:center 30%}
.graduate-wall img{object-position:center 30%!important}

/* Keep vertical certificate/social-proof portraits from being cropped into a landscape slot. */
.media-proof-card.portrait img{object-position:center 22%}

/* Forms should not feel cramped on smaller screens. */
.formwrap{overflow:hidden}
.formbody input,.formbody select,.formbody textarea{max-width:100%;box-sizing:border-box}

/* ---------- Desktop readability ---------- */
@media (min-width:961px){
  .phero-grid,.hero-grid{align-items:center}
  .phero-media .ph.is-img{min-height:360px}
  .gallery-band .proof-head,.real-media .proof-head{margin-bottom:22px}
}

/* ---------- Tablet / mobile ---------- */
@media (max-width:960px){
  .phero-grid,.hero-grid{gap:26px!important}
  .phero-media,.hero-media{width:100%;max-width:620px;margin-left:auto;margin-right:auto}
  .phero-media .ph.is-img{aspect-ratio:4/3;min-height:0}
  .course-grid,.rel-grid,.media-proof-grid{gap:14px!important}
}
@media (max-width:767px){
  .wrap{padding-left:16px!important;padding-right:16px!important}
  .phero,.hero{padding-top:34px!important;padding-bottom:44px!important}
  .phero h1,.hero h1{font-size:clamp(2.05rem,10vw,3rem)!important;line-height:1.02!important}
  .phero .lede,.hero .lede{font-size:1.03rem!important;line-height:1.62!important}
  .phero-media .ph.is-img,.hero-media .ph.is-img{border-radius:20px!important}
  .course .ph.is-img{aspect-ratio:4/3}
  .carousel-card figcaption{font-size:.9rem;padding:10px 11px 12px!important}
  .formwrap{border-radius:20px!important}
  .formside,.formbody{padding-left:20px!important;padding-right:20px!important}
  .btn-row{gap:10px!important}
  .btn-row .btn{max-width:100%}
  .proof-stats .t{font-size:.76rem!important}
}
@media (max-width:420px){
  .wrap{padding-left:14px!important;padding-right:14px!important}
  .phero h1,.hero h1{font-size:clamp(1.95rem,10vw,2.65rem)!important}
  .chip{font-size:.74rem!important}
  .course-body,.rel-body{padding-left:18px!important;padding-right:18px!important}
}

/* Default 3-up carousel math must match the actual 5px gaps. */
@media (min-width:980px){
  .carousel-shell .carousel-track{grid-auto-columns:calc((100% - 10px)/3)!important}
}
/* Page-specific 4-up Reel carousels keep their own more-specific sizing rules. */
.media-proof-card video{display:block;width:100%;height:auto;object-fit:cover;background:#111}
.media-proof-card.portrait video{aspect-ratio:9/16;max-height:620px;margin-inline:auto}
.media-proof-grid.two{align-items:start}
.compact-crosssell{padding:clamp(50px,6vw,72px) 0!important}
.compact-crosssell .lede{max-width:720px;margin-left:auto;margin-right:auto;color:rgba(255,255,255,.76)}
.loc-map iframe,.map iframe,.contact-map iframe{display:block;width:100%!important;max-width:100%!important;border:0}
@media (max-width:620px){
  .media-proof-grid.two{grid-template-columns:1fr!important}
  .media-proof-card.portrait video{max-height:none}
}

/* Content-aware desktop carousel widths after final media pruning. */
@media (min-width:980px){
  .carousel-shell .carousel-track.single-card{grid-auto-columns:100%!important}
  .carousel-shell .carousel-track.two-card{grid-auto-columns:calc((100% - 5px)/2)!important}
  .carousel-shell .carousel-track.three-card{grid-auto-columns:calc((100% - 10px)/3)!important}
}
