/* Face-visible photo areas: the same safe framing at every screen width. */
img[src$="maryland-feature-huddle.jpg"]{--card-photo-fit:cover;--card-photo-position:50% 15%}
img[src$="maryland-college-showcase-mvp.jpg"],img[src$="maryland-feature-joy.jpg"],img[src$="south-carolina-boys.jpg"],img[src$="travel-10u-lightroom.jpg"],img[src$="travel-12u-lightroom.jpg"]{--card-photo-fit:cover;--card-photo-position:50% 0%}
img[src$="maryland-feature-football.jpg"]{--card-photo-fit:cover;--card-photo-position:50% 16%}
/* Photos fill each card frame; the image itself never zooms on hover. */
body :is(.hub-path-photo,.state-services .image-wrap,.season-choice-image,.coach-card-photo,.coach-task-photo){height:auto!important;min-height:0!important;aspect-ratio:4/3;overflow:hidden;background:#150e20}
body :is(.hub-path-photo,.state-services .image-wrap,.season-choice-image,.coach-card-photo,.coach-task-photo)>img{display:block;position:static!important;width:100%!important;height:100%!important;object-fit:var(--card-photo-fit,cover)!important;object-position:var(--card-photo-position,50% 50%)!important;transform:none!important;filter:none!important;opacity:1!important}
body :is(.program-menu-card,.travel-card,.menu-location-card,.sp-path,.sp-campaign,.sp-feature,.hub-story,.hub-player-card)>img{display:block;position:static!important;inset:auto!important;width:100%!important;height:auto!important;max-height:none!important;aspect-ratio:4/3;object-fit:var(--card-photo-fit,cover)!important;object-position:var(--card-photo-position,50% 50%)!important;transform:none!important;filter:none!important;opacity:1!important;background:#150e20}
/* Move labels out of photos so card copy can never cover a face. */
body .program-menu-card{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;min-height:0;height:auto}
body .program-menu-card>img{z-index:auto}
body .program-menu-card:before{display:none}
body .program-menu-copy{display:flex;flex:1;flex-direction:column;position:static;background:#21142e}
body .program-menu-open{margin-top:auto}
body .travel-card{display:flex;flex-direction:column;aspect-ratio:auto;min-height:0;height:auto}
body .travel-card-shade{display:none}
body .travel-card-copy{position:static;inset:auto;display:flex;flex:1;padding:24px;background:#21142e}
body .travel-card h3{font-size:clamp(60px,7vw,98px)}
body .travel-card h3.travel-college{font-size:clamp(42px,5vw,66px)}
body .travel-card-action{margin-top:auto}
/* The regional Get Offered photo uses the same clear photo area as its neighbors. */
.location-programs-page .get-offered-card>.get-offered-cover{display:block;padding:0;gap:0;min-height:0!important;height:auto!important;aspect-ratio:4/3;background:#150e20!important}
/* Paid-package photos stay above the copy, with no dark wash over faces. */
.paid-grid .paid-card{--paid-photo:url('https://ttg32sports.fitclub32.chatgpt.site/assets/maryland-leagues-group.jpg');--paid-fit:cover;--paid-position:center;display:flex;justify-content:flex-start;background:#21142e;min-height:0;padding:28px;overflow:hidden}
.paid-grid .paid-card:nth-child(2){--paid-photo:url('https://ttg32sports.fitclub32.chatgpt.site/assets/maryland-feature-huddle.jpg');--paid-fit:cover;--paid-position:50% 15%}
.paid-grid .paid-card:nth-child(3){--paid-photo:url('https://ttg32sports.fitclub32.chatgpt.site/assets/player-girls-background.jpg')}
.paid-grid .paid-card:nth-child(4){--paid-photo:url('https://ttg32sports.fitclub32.chatgpt.site/assets/maryland-college-showcase-mvp.jpg');--paid-fit:cover;--paid-position:50% 0%}
.paid-grid .paid-card:before{content:'';display:block;flex:none;width:calc(100% + 56px);aspect-ratio:4/3;margin:-28px -28px 26px;background-color:#150e20;background-image:var(--paid-photo);background-size:var(--paid-fit);background-position:var(--paid-position);background-repeat:no-repeat}
.paid-grid .paid-card .paid-number{margin-top:0}
.paid-grid .paid-card p:not(.product-kicker){flex:1;text-shadow:none}
.paid-grid .paid-card .paid-lock{margin-top:auto}
/* The paid introduction gets a separate photo so the headline stays clear of the athlete. */
.paid-package .product-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:32px;min-height:0;background:#170e24;padding:clamp(22px,3vw,40px)}
.product-hero .product-hero-photo{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:60% 0%;border-radius:14px}
.product-hero .product-hero-copy{min-width:0}
.paid-package .product-hero .product-hero-copy h1{font-size:clamp(36px,4vw,60px);max-width:none}
.product-hero-copy>p:not(.product-kicker){color:#fff;font-size:18px;line-height:1.65}
/* Home location cards retain four columns and flag colors; names now sit below photos. */
#state-chooser .location-entry .state-card{display:flex;flex-direction:column;justify-content:flex-start;gap:0;padding:0;height:auto;min-height:0;overflow:hidden}
#state-chooser .location-entry .state-card>img{position:static;inset:auto;z-index:0;display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:var(--card-photo-fit,cover);object-position:var(--card-photo-position,50% 50%);transform:none!important;filter:none;opacity:1;background:#150e20}
#state-chooser .location-entry .state-card:before{display:none}
#state-chooser .location-entry .state-card .role-top{position:relative;padding:14px 18px 0;font-size:11px}
#state-chooser .location-entry .state-card .role-copy{position:relative;display:flex;flex:1;flex-direction:column;width:100%;max-width:none;padding:12px 18px 20px;margin:0}
#state-chooser .location-entry .state-card .role-copy strong{font-size:clamp(26px,2.55vw,39px)}
#state-chooser .location-entry .state-card .role-action{margin-top:auto;padding-top:16px;font-size:14px}
#state-chooser .location-entry .state-card .state-flag{inset:auto 0 0;height:170px}
/* Image-only collage frames remain uncut; the rear-view tile is replaced in markup. */
.md-photo img{height:auto!important;object-fit:contain;transform:none!important}
.md-gallery-image .md-gallery-photo{object-fit:contain;object-position:center;transform:none!important}
@media(max-width:760px){
 .location-programs-page .hub-paths,.travel-grid,.program-menu{grid-template-columns:minmax(0,1fr)}
 .paid-package .product-hero{grid-template-columns:1fr;gap:24px}
 .product-hero .product-hero-photo{grid-row:1;aspect-ratio:4/3;object-position:50% 0%}
 .paid-grid .paid-card{padding:22px}
 .paid-grid .paid-card:before{width:calc(100% + 44px);margin:-22px -22px 22px}
 #state-chooser .location-entry .state-card{height:auto;min-height:0}
 #state-chooser .location-entry .state-card .role-top{padding:12px 12px 0}
 #state-chooser .location-entry .state-card .role-copy{padding:10px 12px 16px}
 #state-chooser .location-entry .state-card .role-copy strong{font-size:28px}
}