/* ============================================================
   SRG Academy · Flawless Gymnastics — site styles
   Palette pulled from the brand artwork (cream / warm gold / blush)
   ============================================================ */
:root{
  --cream:#F6EEDF;
  --sand:#E8D9BC;
  --paper:#FCF9F3;
  --gold:#B5883C;
  --gold-deep:#8A6420;
  --gold-soft:#D9C39A;
  --ink:#2A2420;
  --ink-soft:#5C534B;
  --blush:#F5CFDB;
  --rose:#C4496E;
  --rose-deep:#A2365A;
  --night:#14110F;

  --font-display:"Cormorant Garamond", Georgia, serif;
  --font-body:"Jost", "Helvetica Neue", Arial, sans-serif;

  --maxw:1180px;
  --radius:18px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--cream);color:var(--ink);
  font-family:var(--font-body);font-weight:300;line-height:1.6;font-size:17px;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--font-display);font-weight:500;line-height:1.1;margin:0 0 .5em;letter-spacing:.005em}
h1{font-size:clamp(2.4rem,6vw,4.6rem)}
h2{font-size:clamp(2rem,4.2vw,3.2rem)}
h3{font-size:clamp(1.35rem,2.4vw,1.75rem)}
p{margin:0 0 1em}
em{font-style:italic}
.gold{color:var(--gold-deep)}
.rose{color:var(--rose)}
.eyebrow{
  display:inline-block;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--gold-deep);font-weight:500;margin-bottom:.9rem;
}
.eyebrow.rose{color:var(--rose)}
.wrap{width:min(var(--maxw),92vw);margin:0 auto}
.section{padding:clamp(3rem,6vw,4.75rem) 0}
.section.tight{padding:clamp(2.2rem,5vw,3.5rem) 0}
.section.sand{background:var(--sand)}
.section.paper{background:var(--paper)}
.section.blush{background:linear-gradient(180deg,#FBE4EB,#FDF4F7)}
.section.champagne{background:linear-gradient(180deg,#F1E3C8,#F6EEDF)}
.section.night{background:var(--night);color:#F3EBDD}
.section.night .eyebrow{color:var(--gold-soft)}
.center{text-align:center}
.lead{font-size:1.15rem;color:var(--ink-soft);max-width:60ch}
.lead.center{margin-inline:auto}
.rule{
  width:80px;height:1px;background:var(--gold);margin:1.2rem auto;position:relative;
}
.rule::after{content:"";position:absolute;left:50%;top:-4px;width:9px;height:9px;transform:translateX(-50%) rotate(45deg);background:var(--gold)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.6rem;padding:.95rem 1.7rem;border-radius:999px;
  font-family:var(--font-body);font-weight:500;font-size:.9rem;letter-spacing:.12em;text-transform:uppercase;
  border:1px solid transparent;cursor:pointer;transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .3s;
}
.btn:hover{transform:translateY(-2px)}
.btn-gold{background:var(--gold-deep);color:#fff;box-shadow:0 10px 30px -12px rgba(126,97,48,.6)}
.btn-gold:hover{background:#6A5027}
.btn-rose{background:var(--rose);color:#fff;box-shadow:0 10px 30px -12px rgba(201,96,127,.6)}
.btn-rose:hover{background:var(--rose-deep)}
.btn-line{background:transparent;border-color:var(--gold);color:var(--gold-deep)}
.btn-line:hover{background:rgba(176,138,71,.08)}
.btn-light{background:rgba(255,255,255,.92);color:var(--ink);backdrop-filter:blur(6px)}
.btn .arrow{transition:transform .3s}
.btn:hover .arrow{transform:translateX(4px)}

/* ---------- header ---------- */
.header{
  position:fixed;inset:0 0 auto 0;z-index:50;padding:1rem 0;
  transition:background .4s,box-shadow .4s,padding .4s;
}
.header.scrolled{background:rgba(247,241,230,.9);backdrop-filter:blur(10px);box-shadow:0 1px 0 rgba(42,36,32,.06);padding:.55rem 0}
.header .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.brand{font-family:var(--font-display);font-size:1.7rem;letter-spacing:.06em;display:flex;align-items:baseline;gap:.5rem}
.brand small{font-family:var(--font-body);font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-deep)}
.nav{display:flex;gap:1.8rem;align-items:center}
.nav a{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;font-weight:400;position:relative}
.nav a::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:1px;background:var(--gold);transition:width .3s var(--ease)}
.nav a:hover::after,.nav a[aria-current="page"]::after{width:100%}
.nav .btn{padding:.6rem 1.2rem;font-size:.72rem}
.burger{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer;padding:0}
.burger span{display:block;height:1.5px;background:var(--ink);margin:6px auto;width:24px;transition:.3s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

/* ---------- HERO (home) ---------- */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;overflow:hidden;background:var(--cream)}
.hero-art{
  position:absolute;inset:0;background:url("assets/hero.jpg") center top/cover no-repeat;
  animation:heroIn 1.6s var(--ease) both;
}
.hero-art::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(247,241,230,0) 55%,var(--cream) 100%)}
@keyframes heroIn{from{opacity:0;transform:scale(1.04)}to{opacity:1;transform:none}}
.hero-inner{position:relative;z-index:2;width:min(var(--maxw),92vw);margin:auto;padding:23vh 0 3rem;text-align:center}
.hero-kicker{font-size:.78rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-deep);margin:0 0 .6rem;animation:rise 1s .3s var(--ease) both}
.hero-title{display:none}
.hero-sub{color:var(--ink-soft);max-width:48ch;margin:1rem auto 0;font-size:1.1rem;animation:rise 1s .6s var(--ease) both}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

/* three medallions in a triangle — the signature element */
.medallions{
  position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem 5rem;
  width:min(640px,100%);margin:0 auto;justify-items:center;
}
.medal{
  position:relative;display:flex;flex-direction:column;align-items:center;gap:.75rem;
  width:clamp(140px,17vw,205px);opacity:0;animation:rise 1s var(--ease) both;
}
.medal:nth-child(1){animation-delay:.8s}
.medal:nth-child(2){animation-delay:.95s}
.medal:nth-child(3){grid-column:1/-1;animation-delay:1.1s}
.medal-ring{
  width:100%;aspect-ratio:1;border-radius:50%;overflow:hidden;
  box-shadow:0 30px 60px -25px rgba(42,36,32,.55),0 0 0 1px rgba(176,138,71,.35);
  transition:transform .6s var(--ease),box-shadow .6s var(--ease);
  animation:float 7s ease-in-out infinite;
}
.medal:nth-child(2) .medal-ring{animation-delay:-2.3s}
.medal:nth-child(3) .medal-ring{animation-delay:-4.6s}
.medal-ring img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.medal:hover .medal-ring{transform:translateY(-6px) scale(1.03);box-shadow:0 40px 70px -25px rgba(42,36,32,.6),0 0 0 6px rgba(176,138,71,.18)}
.medal:hover .medal-ring img{transform:scale(1.06)}
@keyframes float{0%,100%{translate:0 0}50%{translate:0 -8px}}
.medal-label{font-family:var(--font-display);font-size:1.25rem;letter-spacing:.04em;color:var(--ink)}
.medal-label small{display:block;font-family:var(--font-body);font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-deep);margin-top:.2rem}
.hero-cta{margin-top:1.6rem;animation:rise 1s 1.3s var(--ease) both;display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap}

/* ---------- proof strip ---------- */
.proof{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(176,138,71,.25);border-block:1px solid rgba(176,138,71,.25)}
.proof > div{background:var(--paper);padding:1.6rem 1.2rem;text-align:center}
.proof b{display:block;font-family:var(--font-display);font-size:2.3rem;font-weight:500;color:var(--gold-deep);line-height:1}
.proof span{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-top:.5rem;line-height:1.5}

/* ---------- content grids ---------- */
.two{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.two .photo{max-height:640px;overflow:hidden}
.two .photo img{max-height:640px;object-fit:cover}
.two.flip > :first-child{order:2}
.photo{border-radius:var(--radius);overflow:hidden;box-shadow:0 30px 60px -30px rgba(42,36,32,.45)}
.photo img{width:100%;height:auto;display:block}
.photo.tall,.photo.wide{aspect-ratio:auto}
.checks{list-style:none;padding:0;margin:1.2rem 0 1.8rem;display:grid;gap:.7rem}
.checks li{position:relative;padding-left:2rem}
.checks li::before{content:"";position:absolute;left:0;top:.55em;width:14px;height:1px;background:var(--gold)}
.checks li::after{content:"";position:absolute;left:10px;top:.35em;width:7px;height:7px;transform:rotate(45deg);border:1px solid var(--gold);border-left:0;border-bottom:0}

/* paths (three programs) */
.paths{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.path{
  background:var(--paper);border:1px solid rgba(176,138,71,.22);border-radius:var(--radius);padding:2rem;
  display:flex;flex-direction:column;transition:transform .45s var(--ease),box-shadow .45s var(--ease)
}
.path:hover{transform:translateY(-6px);box-shadow:0 30px 50px -30px rgba(42,36,32,.4)}
.path .ages{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:.6rem}
.path h3{margin-bottom:.4rem}
.path p{color:var(--ink-soft);flex:1}
.path.rose-card{background:linear-gradient(160deg,#FBF1F4,#FFF8FA);border-color:rgba(201,96,127,.25)}
.path.rose-card .ages{color:var(--rose)}
.path.night-card{background:var(--night);color:#F3EBDD;border-color:rgba(176,138,71,.4)}
.path.night-card p{color:#CFC4B2}
.path .btn{align-self:flex-start;margin-top:1rem}

/* results */
.results{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.results .photo{box-shadow:0 30px 70px -30px rgba(0,0,0,.8)}
.laurels{display:grid;gap:1.1rem;margin-top:1.5rem}
.laurel{display:flex;gap:1rem;align-items:flex-start;padding:1rem 1.1rem;border:1px solid rgba(217,195,154,.25);border-radius:12px}
.laurel b{display:block;font-family:var(--font-display);font-size:1.4rem;font-weight:500;color:var(--gold-soft);line-height:1.1}
.laurel span{font-size:.92rem;color:#CFC4B2}
.laurel .star{color:var(--gold-soft);font-size:1.2rem;line-height:1.3}

/* schedule table */
.table-wrap{overflow-x:auto;border-radius:var(--radius);border:1px solid rgba(176,138,71,.25);background:var(--paper)}
table{border-collapse:collapse;width:100%;min-width:720px;font-size:.9rem}
th,td{padding:.85rem 1rem;text-align:left;border-bottom:1px solid rgba(176,138,71,.15);vertical-align:top}
th{font-weight:500;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep);background:var(--sand)}
td:first-child{font-weight:500;white-space:nowrap}
td .b{color:var(--rose);font-size:.8rem;display:block}
.note{font-size:.85rem;color:var(--ink-soft)}

/* gallery / instagram */
.grid-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:.9rem}
.grid-gallery .photo{aspect-ratio:1}
.grid-gallery .photo.span2{grid-column:span 2;aspect-ratio:2/1}
.ig-head{display:flex;justify-content:space-between;align-items:end;gap:1rem;flex-wrap:wrap;margin-bottom:1.6rem}
.ig-embeds{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.5rem}
.ig-embeds blockquote{margin:0!important;min-width:0!important}

/* testimonials */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.quote{background:var(--paper);border-radius:var(--radius);padding:2rem;border:1px solid rgba(176,138,71,.18)}
.quote p{font-family:var(--font-display);font-size:1.25rem;line-height:1.4;font-style:italic}
.quote cite{font-style:normal;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep)}

/* FAQ */
details{border-bottom:1px solid rgba(176,138,71,.25);padding:1rem 0}
summary{cursor:pointer;font-family:var(--font-display);font-size:1.3rem;list-style:none;display:flex;justify-content:space-between;gap:1rem}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";color:var(--gold);font-size:1.5rem;line-height:1}
details[open] summary::after{content:"–"}
details p{color:var(--ink-soft);margin-top:.6rem}

/* ---------- contact form ---------- */
.contact{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.form{background:var(--paper);border:1px solid rgba(176,138,71,.25);border-radius:var(--radius);padding:2rem;box-shadow:0 30px 60px -35px rgba(42,36,32,.4)}
.field{display:grid;gap:.35rem;margin-bottom:1rem}
.field label{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep)}
.field input,.field select,.field textarea{
  font:inherit;font-weight:300;padding:.85rem 1rem;border:1px solid rgba(42,36,32,.18);border-radius:10px;background:#fff;color:var(--ink);
  transition:border-color .25s,box-shadow .25s
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(176,138,71,.18)}
.field textarea{min-height:110px;resize:vertical}
.pills{display:flex;flex-wrap:wrap;gap:.5rem}
.pills label{cursor:pointer}
.pills input{position:absolute;opacity:0;width:0;height:0}
.pills span{display:inline-block;padding:.5rem 1rem;border-radius:999px;border:1px solid rgba(42,36,32,.2);font-size:.85rem;transition:.25s}
.pills input:checked + span{background:var(--gold-deep);color:#fff;border-color:var(--gold-deep)}
.pills input:focus-visible + span{box-shadow:0 0 0 3px rgba(176,138,71,.3)}
.form .btn{width:100%;justify-content:center;margin-top:.5rem}
.form-status{margin-top:1rem;font-size:.9rem;min-height:1.4em}
.form-status.ok{color:#2F6B3A}
.form-status.err{color:#A94464}
.hp{position:absolute;left:-9999px;opacity:0}
.contact-info{display:grid;gap:1.2rem;margin-top:1.5rem}
.contact-info div{display:flex;gap:1rem;align-items:flex-start}
.contact-info .ico{width:38px;height:38px;border-radius:50%;border:1px solid var(--gold);display:grid;place-items:center;color:var(--gold-deep);flex:none;font-family:var(--font-display);font-size:1.1rem}
.contact-info b{display:block;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep);font-weight:500}

/* ---------- page banners (subpages) ---------- */
.banner{position:relative;padding-top:64px;background:var(--cream)}
.banner img{width:100%;height:auto;display:block}
.banner-mobile-title{display:none}

/* ---------- footer ---------- */
.footer{background:var(--night);color:#CFC4B2;padding:3.5rem 0 2rem;font-size:.9rem}
.footer .wrap{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2rem}
.footer .brand{color:#F3EBDD}
.footer h4{font-family:var(--font-body);font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-soft);margin:0 0 1rem;font-weight:500}
.footer ul{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}
.footer a:hover{color:#fff}
.footer .legal{grid-column:1/-1;border-top:1px solid rgba(217,195,154,.2);padding-top:1.4rem;margin-top:1rem;font-size:.78rem;color:#8E8577;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem}

/* ---------- sticky mobile CTA ---------- */
.sticky-cta{
  position:fixed;left:0;right:0;bottom:0;z-index:40;display:none;padding:.7rem 1rem calc(.7rem + env(safe-area-inset-bottom));
  background:rgba(247,241,230,.94);backdrop-filter:blur(10px);border-top:1px solid rgba(176,138,71,.3);
  transform:translateY(110%);transition:transform .4s var(--ease)
}
.sticky-cta.show{transform:none}
.sticky-cta .btn{width:100%;justify-content:center}

/* ---------- reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.12s}.reveal.d2{transition-delay:.24s}.reveal.d3{transition-delay:.36s}

/* ---------- responsive ---------- */
@media (max-width:960px){
  .paths,.quotes,.grid-gallery,.ig-embeds{grid-template-columns:1fr 1fr}
  .proof{grid-template-columns:1fr 1fr}
  .footer .wrap{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  body{font-size:16px}
  .nav{
    position:fixed;inset:0;background:var(--cream);flex-direction:column;justify-content:center;gap:2rem;
    transform:translateX(100%);transition:transform .4s var(--ease);z-index:49
  }
  .nav.open{transform:none}
  .nav a{font-size:1rem}
  .burger{display:block;position:relative;z-index:51}
  .two,.two.flip,.results,.contact{grid-template-columns:1fr}
  .two.flip > :first-child{order:0}
  .paths,.quotes,.grid-gallery,.ig-embeds{grid-template-columns:1fr}
  .grid-gallery .photo.span2{grid-column:auto;aspect-ratio:3/2}
  .hero{min-height:0}
  .hero-art{position:relative;inset:auto;aspect-ratio:1717/916;background-size:cover;margin-top:64px}
  .hero-art::after{background:linear-gradient(180deg,rgba(247,241,230,0) 70%,var(--cream) 100%)}
  .hero-inner{padding:0 0 3rem;margin-top:-4vw}
  .hero-sub{margin-top:.4rem;font-size:1rem}
  .medallions{gap:.6rem 1rem;width:100%}
  .medal{width:clamp(130px,38vw,170px)}
  .medal-label{font-size:1.05rem}
  .footer .wrap{grid-template-columns:1fr}
  .sticky-cta{display:block}
  .banner{padding-top:56px}
  .banner img{aspect-ratio:auto;object-fit:unset;width:100%}
  .banner-mobile-title{display:block;text-align:center;padding:1.4rem 1rem 0}
  .banner-mobile-title h1{font-size:2rem;margin:0}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}

/* framed photo — cream matte + gold hairline */
.photo.framed{padding:10px;background:var(--paper);box-shadow:0 0 0 1px rgba(176,138,71,.35),0 30px 60px -30px rgba(42,36,32,.45)}
.photo.framed img{border-radius:10px}
/* map */
.map-section{border-top:1px solid rgba(176,138,71,.2)}
.map-row{display:grid;grid-template-columns:1fr 1.2fr;gap:2rem;align-items:center}
.map-frame{display:block;position:relative;height:200px;border-radius:14px;overflow:hidden;border:1px solid rgba(176,138,71,.3);filter:saturate(.6) sepia(.15);transition:filter .4s}
.map-frame:hover{filter:none}
.map-frame iframe{width:100%;height:100%;border:0;pointer-events:none}
@media (max-width:760px){.map-row{grid-template-columns:1fr}.map-frame{height:170px}}

/* page tints — sections differ by program */
body.page-flawless{background:#FBF3F6}
body.page-flawless .section.sand{background:#F3DCE4}
body.page-flawless .section.paper{background:#FFF8FA}
body.page-flawless .eyebrow{color:var(--rose)}
body.page-flawless .checks li::before,body.page-flawless .checks li::after{background:var(--rose);border-color:var(--rose)}
body.page-flawless .checks li::after{background:transparent}
body.page-srg{background:#F1E8D6}
body.page-srg .section.sand{background:#E3D2AE}
body.page-coach{background:#F8F1E4}
body.page-coach .section.sand{background:#EAD9B9}
/* captions */
.cap{display:block;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep);padding:.7rem 1rem;background:var(--paper)}
/* masonry — photos uncropped */
.masonry{columns:3;column-gap:1rem;margin-top:2.2rem}
.masonry .photo{break-inside:avoid;margin-bottom:1rem}
@media (max-width:960px){.masonry{columns:2}}
@media (max-width:600px){.masonry{columns:1}}
/* banners: never upscale beyond source */
.banner img{max-width:2172px;margin:0 auto}

.paths.four{grid-template-columns:repeat(4,1fr)}
@media (max-width:960px){.paths.four{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.paths.four{grid-template-columns:1fr}}

.video-frame{border-radius:var(--radius);overflow:hidden;background:#111;box-shadow:0 30px 60px -30px rgba(42,36,32,.5);max-width:400px;margin:0 auto;aspect-ratio:9/16}
.video-frame video{width:100%;height:100%;display:block;object-fit:cover}

/* path cards with photos */
.path{padding:0;overflow:hidden}
.path > *:not(.path-img){margin-left:2rem;margin-right:2rem}
.path .ages{margin-top:1.6rem}
.path .btn{margin-bottom:2rem}
.path-img{aspect-ratio:3/2;overflow:hidden}
.path-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.path:hover .path-img img{transform:scale(1.05)}
/* inside the gym */
.inside-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.video-frame.auto{max-width:360px}
.masonry.two-col{columns:2}
@media (max-width:760px){.inside-grid{grid-template-columns:1fr}.masonry.two-col{columns:2}}
/* stacked result posters */
.stack{position:relative;width:min(380px,80%);margin:0 auto;padding:0 0 3rem 0}
.stack img{display:block;width:78%;border-radius:10px;box-shadow:0 30px 60px -20px rgba(0,0,0,.8);border:1px solid rgba(217,195,154,.35)}
.stack-back{position:absolute;right:0;top:2.5rem;transform:rotate(4deg);opacity:.85;filter:brightness(.85)}
.stack-front{position:relative;transform:rotate(-3deg);transition:transform .5s var(--ease)}
.stack:hover .stack-front{transform:rotate(0) translateY(-6px)}
/* medallions: bigger, 3D, glow */
.medal{width:clamp(150px,19vw,240px)}
.medal-ring{
  box-shadow:0 35px 60px -22px rgba(42,36,32,.6),0 0 0 1px rgba(176,138,71,.5),inset 0 -10px 22px rgba(0,0,0,.25),inset 0 10px 22px rgba(255,255,255,.35);
  position:relative;
}
.medal-ring::before{content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none;z-index:2;
  background:radial-gradient(120% 80% at 30% 10%,rgba(255,255,255,.45),rgba(255,255,255,0) 45%),radial-gradient(80% 60% at 70% 100%,rgba(0,0,0,.28),rgba(0,0,0,0) 60%)}
.medal::before{content:"";position:absolute;top:-8%;left:-8%;width:116%;aspect-ratio:1;border-radius:50%;z-index:-1;
  background:radial-gradient(circle,rgba(181,136,60,.55) 0%,rgba(181,136,60,.25) 40%,rgba(181,136,60,0) 70%);
  opacity:0;transform:scale(.8);transition:opacity .5s var(--ease),transform .6s var(--ease)}
.medal:hover::before{opacity:1;transform:scale(1.05)}
.medal:nth-child(2)::before{background:radial-gradient(circle,rgba(196,73,110,.5) 0%,rgba(196,73,110,.22) 40%,rgba(196,73,110,0) 70%)}
.medal:hover .medal-ring{transform:translateY(-10px) scale(1.05);box-shadow:0 50px 80px -25px rgba(42,36,32,.65),0 0 0 8px rgba(181,136,60,.22),inset 0 -10px 22px rgba(0,0,0,.25),inset 0 10px 22px rgba(255,255,255,.35)}
.medallions{width:min(720px,100%);gap:.8rem 6rem}
@media (max-width:760px){.medal{width:clamp(135px,40vw,180px)}.medallions{gap:.6rem 1rem}}

.medal{isolation:isolate}
.medal::before{z-index:0;top:-14%;left:-14%;width:128%;background:radial-gradient(circle,rgba(181,136,60,.75) 0%,rgba(181,136,60,.35) 40%,rgba(181,136,60,0) 68%)}
.medal:nth-child(2)::before{background:radial-gradient(circle,rgba(196,73,110,.6) 0%,rgba(196,73,110,.28) 40%,rgba(196,73,110,0) 68%)}
.medal-ring{z-index:1}
.hero-inner{padding-top:25vh}
.medal::before{top:-16%;left:-16%;width:132%;filter:blur(10px);background:radial-gradient(circle,rgba(181,136,60,.9) 0%,rgba(181,136,60,.75) 62%,rgba(181,136,60,.35) 80%,rgba(181,136,60,0) 100%)}
.medal:nth-child(2)::before{background:radial-gradient(circle,rgba(196,73,110,.85) 0%,rgba(196,73,110,.7) 62%,rgba(196,73,110,.3) 80%,rgba(196,73,110,0) 100%)}
.medal:nth-child(3)::before{background:radial-gradient(circle,rgba(217,195,154,.95) 0%,rgba(217,195,154,.8) 62%,rgba(217,195,154,.35) 80%,rgba(217,195,154,0) 100%)}

/* yelp */
.yelp-badge{display:inline-flex;align-items:center;gap:.8rem;padding:.7rem 1.3rem;border-radius:999px;background:var(--paper);border:1px solid rgba(176,138,71,.35);font-size:.9rem;color:var(--ink-soft);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.yelp-badge:hover{transform:translateY(-2px);box-shadow:0 14px 30px -18px rgba(42,36,32,.4)}
.yelp-badge .stars{color:#D32323;letter-spacing:.1em;font-size:1.05rem}
.yelp-badge b{color:var(--ink);font-weight:500}
.yelp-badge .arrow{color:var(--gold-deep)}
/* mobile hero fix: medallions right under the art */
@media (max-width:760px){
  .hero-inner{padding-top:0;margin-top:-10vw}
  .hero-art{margin-top:60px;aspect-ratio:1717/916}
  .medallions{margin-top:0;gap:.4rem 1.2rem}
  .medal{width:clamp(140px,42vw,190px)}
  .medal:nth-child(3){margin-top:-.4rem}
  .hero-sub{margin-top:.6rem}
  .hero-cta{margin-top:1.2rem}
}

/* coach community grid */
.coach-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:220px;gap:1rem;margin-top:2.2rem}
.coach-grid .photo{margin:0;height:100%}
.coach-grid .photo img{width:100%;height:100%;object-fit:cover}
.g-beach{grid-column:1/3;grid-row:1/2}
.g-hpair{grid-column:3/4;grid-row:1/3}
.g-outing{grid-column:1/2;grid-row:2/3}
.g-hall{grid-column:2/3;grid-row:2/3}
.g-comp{grid-column:1/2;grid-row:3/5}
.g-podium{grid-column:2/3;grid-row:3/5}
.g-portrait{grid-column:3/4;grid-row:3/5}
@media (max-width:760px){
  .coach-grid{grid-template-columns:1fr 1fr;grid-auto-rows:170px}
  .g-beach{grid-column:1/3;grid-row:auto}
  .g-hpair,.g-outing,.g-hall,.g-comp,.g-podium,.g-portrait{grid-column:auto;grid-row:auto}
  .g-hpair,.g-comp,.g-podium,.g-portrait{grid-row:span 2}
}
.g-beach img{object-position:center 42%}
.g-hpair img{object-position:center 20%}
.g-comp img{object-position:center 30%}
