/* Coach profiles, Google reviews, Instagram and the map. */
.coach{position:relative}
.coach-open{position:absolute;inset:0;z-index:2;width:100%;cursor:pointer}
.coach-open:focus-visible{outline:3px solid var(--lime);outline-offset:4px}
.coach-more{display:inline-flex;gap:10px;margin-top:16px;color:var(--lime);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.coach-more i{font-style:normal;transition:transform .25s}
.coach:hover .coach-more i,.coach-open:focus-visible~div .coach-more i{transform:translateX(6px)}
.coach:hover>img{filter:none}

.coach-dialog{width:min(1240px,96vw);max-width:none;height:min(860px,94svh);max-height:94svh;padding:0;border:1px solid #ffffff30;background:#10100f;color:var(--cream);overflow:hidden}
.coach-dialog::backdrop{background:#000000e0;backdrop-filter:blur(8px)}
.coach-dialog[open]{display:grid;grid-template-rows:minmax(0,1fr) auto}
.coach-dialog-body{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);min-height:0}
.coach-photo{position:relative;margin:0;overflow:hidden;background:#000}
.coach-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;animation:coach-photo 1.2s cubic-bezier(.2,.7,.2,1) both}
.coach-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 62%,#10100f),linear-gradient(0deg,#10100fd9,transparent 42%)}
.coach-ghost{position:absolute;left:-1%;bottom:-.1em;z-index:1;font:800 clamp(84px,12vw,180px)/.8 var(--display);letter-spacing:-.02em;white-space:nowrap;color:transparent;-webkit-text-stroke:1.5px #f68d64b3;animation:coach-ghost 1.4s .2s cubic-bezier(.2,.7,.2,1) both}
@keyframes coach-photo{from{transform:scale(1.08);filter:grayscale(1) brightness(.6)}}
@keyframes coach-ghost{from{opacity:0;transform:translateX(-50px)}}
.coach-body{overflow-y:auto;padding:72px 60px 40px 44px;animation:intro-rise .8s .15s both}
.coach-body .eyebrow{color:var(--lime);margin-bottom:20px}
.coach-title{font-size:clamp(56px,6vw,96px)}
.coach-lead{max-width:520px;margin-top:22px!important;font-size:18px;line-height:1.45}
.coach-body>p:not(.eyebrow):not(.coach-lead){max-width:560px;margin-top:18px;color:var(--muted);font-size:14px;line-height:1.85}
.coach-body h3{margin-top:34px;font-size:24px;letter-spacing:.01em}
.coach-titles{margin:16px 0 0;padding:0;list-style:none;border-top:1px solid #ffffff20}
.coach-titles li{display:grid;grid-template-columns:160px 1fr;gap:18px;align-items:baseline;padding:13px 0;border-bottom:1px solid #ffffff20;font-size:14px}
.coach-titles b{color:var(--lime);font:800 19px/1.1 var(--display);letter-spacing:.02em}
.coach-titles small{display:block;margin-top:3px;color:#a9a296;font-size:11px}
.coach-body .focus-list{margin-top:26px}
.coach-actions{display:flex;flex-wrap:wrap;align-items:center;gap:26px;margin-top:30px}
.coach-sources{margin-top:32px;border-top:1px solid #ffffff26;padding-top:14px;color:var(--muted);font-size:12px}
.coach-sources summary{cursor:pointer;padding-block:10px;color:var(--cream);min-height:44px}
.coach-sources ul{margin:8px 0 0;padding-left:18px}
.coach-sources a{display:inline-block;padding-block:8px;text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}
.coach-sources a:hover{color:var(--lime)}
.coach-close{position:absolute;top:14px;right:16px;z-index:3;width:48px;height:48px;border:1px solid #ffffff40;background:#10100fb3;font-size:30px;line-height:1}
.coach-close:hover{background:var(--lime);color:var(--ink)}
.coach-steps{display:flex;justify-content:space-between;align-items:center;padding:8px 24px;border-top:1px solid #ffffff20;color:#a9a296;font-size:10px;font-weight:700;letter-spacing:.14em}
.coach-steps button{min-height:44px;color:var(--cream);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.coach-steps button:hover{color:var(--lime)}

.reviews{background:#1c1a17}
.reviews-summary,.instagram-intro{justify-self:end;max-width:380px}
.reviews-summary p,.instagram-intro p{color:var(--muted);font-size:13px;line-height:1.8}
.instagram-intro p{margin-bottom:22px}
.rating-badge{display:flex;align-items:center;gap:20px}
.rating-badge strong{font:800 92px/.8 var(--display)}
.rating-badge small{display:block;margin-top:8px;color:var(--muted);font-size:11px}
.stars{color:var(--lime);font-size:17px;letter-spacing:.12em}
.review-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
.review{display:flex;flex-direction:column;gap:14px;padding:26px;border:1px solid #ffffff1f;background:#ffffff06}
.review header{display:flex;align-items:center;gap:12px}
.review header img{width:40px;height:40px;border-radius:50%}
.review header a,.review header b{font-size:13px;font-weight:700}
.review header small{display:block;color:#a9a296;font-size:11px}
.review p{display:-webkit-box;overflow:hidden;color:#d8d2c8;font-size:13px;line-height:1.75;-webkit-line-clamp:7;-webkit-box-orient:vertical}
.review footer{margin-top:auto;color:#a9a296;font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.review footer a:hover,.review header a:hover{color:var(--lime)}
.reviews-actions{display:flex;flex-wrap:wrap;align-items:center;gap:28px;margin-top:36px}

.instagram{background:var(--ink)}
.insta-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.insta-post{position:relative;display:block;aspect-ratio:1;overflow:hidden;background:#25231f}
.insta-post img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.insta-post:hover img{transform:scale(1.05)}
.insta-reel{position:absolute;top:10px;right:12px;color:#fff;font-size:12px;text-shadow:0 1px 4px #000}

.visit-map{grid-column:1/-1;height:clamp(300px,36vw,460px);overflow:hidden;border:1px solid #ffffff25;background:#25231f}
.visit-map iframe{display:block;width:100%;height:100%;border:0;filter:grayscale(1) invert(.92) contrast(.9) hue-rotate(180deg)}

@media(max-width:800px){
 .coach-dialog{width:100vw;height:100svh;max-height:100svh;border:0}
 .coach-dialog-body{grid-template-columns:1fr;overflow-y:auto}
 .coach-photo{height:54svh}.coach-photo:after{background:linear-gradient(0deg,#10100f,transparent 55%)}
 .coach-body{overflow:visible;padding:26px 22px 34px}
 .coach-titles li{grid-template-columns:108px 1fr;gap:12px}.coach-titles b{font-size:16px}
}
@media(max-width:600px){
 .reviews-summary,.instagram-intro{justify-self:start}
 .rating-badge strong{font-size:72px}
 .insta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}

}

/* Instagram strip: four square photos and a Follow tile; live posts replace it. */
.insta-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.insta-photo,.insta-cta{aspect-ratio:1;overflow:hidden}
.insta-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.75);transition:transform .6s,filter .6s}
.insta-strip:hover .insta-photo img{filter:saturate(1)}
.insta-photo:hover img{transform:scale(1.05)}
.insta-cta{display:flex;flex-direction:column;justify-content:space-between;padding:clamp(16px,2vw,26px);background:var(--lime);color:var(--ink);transition:background .25s}
.insta-strip:hover .insta-cta{background:#ffc2a8}
.insta-cta small{margin-top:auto;font-size:9px;font-weight:700;letter-spacing:.16em}
.insta-cta b{margin-top:8px;font:800 clamp(20px,2vw,30px)/.95 var(--display);overflow-wrap:anywhere}
.insta-cta i{align-self:flex-end;font-size:24px;font-style:normal;line-height:1}
.insta-follow{margin-top:26px}

/* Community events: preview on the home page and the albums page. */
.events-teaser{margin-top:55px;padding-top:35px;border-top:1px solid #ffffff25}
.events-teaser-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}
.events-teaser-head h3{font-size:44px}
.events-teaser-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.event-card{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:#000}
.event-card img{width:100%;height:100%;object-fit:cover;filter:saturate(.75) brightness(.8);transition:transform .6s}
.event-card:hover img{transform:scale(1.04)}
.event-card span{position:absolute;inset:auto 0 0;padding:50px 20px 20px;background:linear-gradient(transparent,#000c)}
.event-card small{display:block;color:var(--lime);font-size:9px;font-weight:700;letter-spacing:.16em}
.event-card b{display:block;margin-top:6px;font:800 30px/.95 var(--display);text-transform:uppercase}
.community-page main{padding-top:94px}
.events-hero{padding-bottom:30px}
.events-hero .eyebrow{color:var(--lime);margin-bottom:26px}
.events-hero h1{font-size:clamp(68px,9vw,150px);line-height:.84}
.events-hero>p:not(.eyebrow){max-width:520px;margin-top:28px;color:var(--muted);font-size:15px;line-height:1.8}
.events{padding-top:20px}
.event-album{padding:40px 0;border-top:1px solid #ffffff25;scroll-margin-top:110px}
.event-album .eyebrow{color:var(--lime);margin-bottom:16px}
.event-album h2{font-size:clamp(48px,5vw,80px)}
.event-summary{max-width:560px;margin-top:16px;color:var(--muted);font-size:14px;line-height:1.8}
.event-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-top:28px}
.event-photo{padding:0;aspect-ratio:1;overflow:hidden;background:#25231f}
.event-photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.event-photo:hover img{transform:scale(1.05)}
.events-empty{max-width:640px;padding:40px 0 30px;border-top:1px solid #ffffff25}
.events-empty .eyebrow{color:var(--lime);margin-bottom:22px}
.events-empty h2{font-size:clamp(48px,5.4vw,84px)}
.events-empty>p:not(.eyebrow){margin-top:22px;color:var(--muted);font-size:14px}
.events-empty-actions{display:flex;flex-wrap:wrap;align-items:center;gap:26px;margin-top:28px}
.community-page .site-footer{padding-top:30px}.community-page .footer-bottom{margin-top:0}
.photo-viewer{width:100vw;max-width:none;height:100svh;max-height:none;margin:0;padding:0;border:0;background:#050505f2;color:var(--cream)}
.photo-viewer[open]{display:grid;place-items:center}
.photo-viewer::backdrop{background:#000}
.photo-viewer figure{display:grid;gap:14px;justify-items:center;margin:0;padding:70px 80px 40px}
.photo-viewer img{max-width:min(1400px,90vw);max-height:78svh;object-fit:contain}
.photo-viewer figcaption{color:#c4baac;font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.viewer-close{position:fixed;top:16px;right:18px;width:48px;height:48px;border:1px solid #ffffff40;font-size:30px;line-height:1}
.viewer-step{position:fixed;top:50%;width:52px;height:52px;border:1px solid #ffffff40;background:#10100fb3;font-size:22px;transform:translateY(-50%)}
.viewer-step[data-step="-1"]{left:18px}.viewer-step[data-step="1"]{right:18px}
.viewer-close:hover,.viewer-step:hover{background:var(--lime);color:var(--ink)}
.footer-about{max-width:760px;margin-top:40px;color:#10100fcc;font-size:12px;line-height:1.75}

@media(max-width:900px){
 .insta-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.insta-strip .insta-photo:nth-child(n+3){display:none}
 .events-teaser-grid{grid-template-columns:1fr 1fr}.events-teaser-grid .event-card:nth-child(3){display:none}
}
@media(max-width:600px){
 .insta-strip{grid-template-columns:1fr 1fr}.insta-cta{grid-column:span 2;aspect-ratio:auto;min-height:150px}
 .events-teaser-head{align-items:start;flex-direction:column;gap:10px}.events-teaser-head h3{font-size:36px}
 .events-teaser-grid{grid-template-columns:1fr}.events-teaser-grid .event-card:nth-child(n+2){display:none}
 .community-page main{padding-top:80px}.event-photos{grid-template-columns:1fr 1fr}
 .photo-viewer figure{padding:70px 12px 90px}.viewer-step{top:auto;bottom:18px;transform:none}
}
