/* ESN Programs — Section Styles */

/* ---- HERO ---- */
.esn-prog-hero-badges{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:48px;}
.esn-prog-hero-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.1);padding:8px 14px;font-family:'DM Sans',sans-serif;font-size:12px;font-weight:600;color:rgba(255,255,255,0.55);}
.esn-prog-hero-badge span{width:5px;height:5px;border-radius:50%;background:#C8102E;flex-shrink:0;}
.esn-prog-hero-cta{display:inline-flex;align-items:center;gap:10px;font-family:'Barlow Condensed',sans-serif;font-size:18px;font-weight:800;letter-spacing:0.07em;text-transform:uppercase;background:#22c55e;color:#fff;padding:16px 36px;border:none;cursor:pointer;text-decoration:none;transition:background 0.2s ease;}
.esn-prog-hero-cta:hover{background:#16a34a;}

/* ---- SUBSCRIPTIONS ---- */
.esn-prog-sub-wrap{max-width:1100px;margin:0 auto;padding:0 24px;}
.esn-prog-notice{background:rgba(34,197,94,.06);border:1px solid rgba(34,197,94,.18);border-radius:12px;padding:11px 20px;display:flex;align-items:center;gap:10px;font-family:'DM Sans',sans-serif;font-size:14px;color:#aaa;line-height:1.5;margin-bottom:28px;}
.esn-prog-notice strong{color:#fff;}
.esn-prog-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;align-items:end;}
.esn-price-card{background:#1a1a1a;border:1.5px solid #2a2a2a;border-radius:16px;padding:22px 18px 20px;position:relative;display:flex;flex-direction:column;cursor:pointer;transition:transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .35s ease,opacity .35s ease,padding .35s ease;transform:scale(0.94) translateY(10px);opacity:.6;box-shadow:0 4px 16px rgba(0,0,0,.5);}
.esn-price-card.esn-card-active{transform:scale(1.05) translateY(-8px);opacity:1;padding:28px 22px 24px;z-index:10;border-color:#3a3a3a;box-shadow:0 24px 64px rgba(0,0,0,.7),0 4px 16px rgba(0,0,0,.5);}
.esn-price-card.esn-card-featured{border-color:#C8102E;border-width:2px;}
.esn-price-card.esn-card-featured.esn-card-active{box-shadow:0 24px 64px rgba(200,16,46,.4),0 8px 32px rgba(0,0,0,.6);}
.esn-card-badge{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:#C8102E;color:#fff;font-family:'Barlow Condensed',sans-serif;font-size:9px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;padding:4px 14px;border-radius:8px;white-space:nowrap;}
.esn-card-eyebrow{font-size:9px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#C8102E;margin-bottom:8px;}
.esn-card-price{font-family:'Barlow Condensed',sans-serif;font-size:38px;font-weight:900;color:#fff;line-height:1;margin-bottom:3px;transition:font-size .25s ease;}
.esn-card-active .esn-card-price{font-size:48px;}
.esn-card-price sub{font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;color:#555;vertical-align:baseline;}
.esn-card-cancel{font-size:10px;color:#555;margin-bottom:14px;}
.esn-card-divider{height:1px;background:#2a2a2a;margin-bottom:14px;}
.esn-card-stat{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:#777;margin-bottom:7px;}
.esn-card-active .esn-card-stat{color:#aaa;font-size:14px;}
.esn-card-stat strong{color:#ccc;}
.esn-card-active .esn-card-stat strong{color:#fff;}
.esn-card-dot{width:5px;height:5px;min-width:5px;border-radius:50%;background:#C8102E;margin-top:4px;}
.esn-card-extra{max-height:0;overflow:hidden;transition:max-height .35s ease,opacity .3s ease;opacity:0;}
.esn-card-active .esn-card-extra{max-height:120px;opacity:1;}
.esn-card-btn{display:block;width:100%;text-align:center;font-family:'Barlow Condensed',sans-serif;font-size:14px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:13px;border:none;cursor:pointer;border-radius:10px;background:#22c55e;color:#fff;margin-top:auto;transition:background .2s ease,opacity .25s ease,transform .25s ease;opacity:0;pointer-events:none;transform:translateY(6px);}
.esn-card-active .esn-card-btn{opacity:1;pointer-events:auto;margin-top:18px;transform:translateY(0);}
.esn-card-btn:hover{background:#16a34a;box-shadow:0 0 24px rgba(34,197,94,.5);}
.esn-card-tap{font-size:10px;color:#3a3a3a;text-align:center;margin-top:14px;}
.esn-card-active .esn-card-tap{display:none;}
.esn-prog-sub-footer{text-align:center;font-size:11px;color:#444;margin-top:16px;line-height:1.8;}
@media(max-width:860px){.esn-prog-grid{grid-template-columns:repeat(2,1fr);}.esn-price-card{transform:none;opacity:1;}.esn-price-card.esn-card-active{transform:none;}}
@media(max-width:480px){.esn-prog-grid{grid-template-columns:1fr;}}

/* ---- SLOT SELECTOR ---- */
.esn-slot-selector{display:none;max-width:760px;margin:48px auto 0;padding:0 24px;}
.esn-slot-tier-pill{display:inline-flex;align-items:center;gap:10px;background:#1a1a1a;border:1.5px solid #2a2a2a;border-radius:100px;padding:8px 16px 8px 12px;font-size:12px;color:#aaa;margin-bottom:24px;}
.esn-slot-tier-pill strong{color:#fff;}
.esn-slot-tier-pill .esn-pill-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;flex-shrink:0;}
.esn-slot-tier-pill .esn-pill-change{color:#C8102E;font-size:11px;cursor:pointer;text-decoration:underline;}
.esn-slot-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px;}
.esn-slot-step-eye{font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#C8102E;display:block;margin-bottom:4px;font-family:'DM Sans',sans-serif;}
.esn-slot-step-title{font-family:'Barlow Condensed',sans-serif;font-size:22px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#fff;}
.esn-slot-cap-note{font-size:11px;color:#555;text-align:right;line-height:1.7;font-family:'DM Sans',sans-serif;}
.esn-slot-rows{display:flex;flex-direction:column;gap:10px;}
.esn-slot-row{background:#1a1a1a;border:1.5px solid #2a2a2a;border-radius:14px;padding:18px 20px;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:16px;cursor:pointer;transition:border-color .2s,box-shadow .2s,background .2s;}
.esn-slot-row:hover{border-color:#444;}
.esn-slot-selected{border-color:#22c55e;background:#0f1f14;box-shadow:0 0 0 1px #22c55e,0 8px 32px rgba(34,197,94,.15);}
.esn-slot-full{opacity:.5;cursor:not-allowed;background:#141414;}
.esn-slot-coming{opacity:.4;cursor:not-allowed;background:#141414;border-style:dashed;}
.esn-slot-name{font-family:'Barlow Condensed',sans-serif;font-size:19px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:#fff;margin-bottom:3px;}
.esn-slot-meta{font-size:13px;color:#666;font-family:'DM Sans',sans-serif;}
.esn-avail-wrap{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:64px;}
.esn-avail-track{width:64px;height:6px;background:#2a2a2a;border-radius:99px;overflow:hidden;}
.esn-avail-bar{height:100%;border-radius:99px;transition:width .3s ease;}
.esn-bar-green{background:#22c55e;}.esn-bar-yellow{background:#f59e0b;}.esn-bar-red{background:#C8102E;}
.esn-count-text{font-size:10px;font-weight:600;color:#666;white-space:nowrap;font-family:'DM Sans',sans-serif;}
.esn-green{color:#22c55e;}.esn-yellow{color:#f59e0b;}.esn-red{color:#C8102E;}
.esn-slot-btn{font-family:'Barlow Condensed',sans-serif;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:10px 18px;border-radius:8px;border:none;cursor:pointer;white-space:nowrap;transition:all .2s;}
.esn-btn-select{background:#1f2f1f;color:#22c55e;border:1.5px solid #22c55e;}
.esn-btn-select:hover{background:#22c55e;color:#fff;}
.esn-btn-selected{background:#22c55e;color:#fff;border:1.5px solid #22c55e;}
.esn-btn-waitlist{background:transparent;color:#666;border:1.5px solid #333;font-size:11px;cursor:pointer;}
.esn-btn-coming{background:transparent;color:#555;border:1.5px solid #2a2a2a;font-size:11px;cursor:not-allowed;}
.esn-checkout-foot{margin-top:24px;padding-top:20px;border-top:1px solid #1e1e1e;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.esn-checkout-sum{font-size:14px;color:#666;font-family:'DM Sans',sans-serif;line-height:1.7;}
.esn-checkout-btn{font-family:'Barlow Condensed',sans-serif;font-size:16px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:14px 32px;border-radius:10px;border:none;cursor:pointer;background:#22c55e;color:#fff;transition:all .2s;}
.esn-checkout-btn:disabled{opacity:.35;cursor:not-allowed;}
.esn-checkout-btn:not(:disabled):hover{background:#16a34a;box-shadow:0 0 24px rgba(34,197,94,.4);}
.esn-wl-modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:9999;align-items:center;justify-content:center;padding:24px;}
.esn-wl-box{background:#1a1a1a;border:1.5px solid #2a2a2a;border-radius:16px;padding:36px 32px;max-width:420px;width:100%;}
.esn-wl-title{font-family:'Barlow Condensed',sans-serif;font-size:26px;font-weight:800;text-transform:uppercase;color:#fff;margin-bottom:6px;}
.esn-wl-sub{font-size:16px;color:#666;margin-bottom:24px;font-family:'DM Sans',sans-serif;}
.esn-wl-label{font-size:10px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.45);display:block;margin-bottom:6px;font-family:'DM Sans',sans-serif;}
.esn-wl-input{width:100%;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.1);color:#fff;font-family:'DM Sans',sans-serif;font-size:16px;padding:13px 16px;border-radius:8px;margin-bottom:16px;box-sizing:border-box;}
.esn-wl-input:focus{outline:none;border-color:#C8102E;}
.esn-wl-btn{display:block;width:100%;font-family:'Barlow Condensed',sans-serif;font-size:18px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;padding:15px;background:#22c55e;color:#fff;border:none;border-radius:10px;cursor:pointer;margin-top:8px;}
.esn-wl-msg{font-size:14px;color:#22c55e;margin-top:10px;font-family:'DM Sans',sans-serif;min-height:18px;}
.esn-wl-close{float:right;background:transparent;border:none;color:#555;font-size:22px;cursor:pointer;line-height:1;margin-top:-8px;}

/* ---- SUMMER BLOCK ---- */
.esn-prog-summer-divider{display:flex;align-items:center;gap:20px;padding:36px 24px 28px;max-width:1100px;margin:0 auto;}
.esn-prog-summer-divider-line{flex:1;height:1px;background:#ddd;}
.esn-prog-summer-divider-label{font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#bbb;white-space:nowrap;font-family:'DM Sans',sans-serif;}
.esn-prog-summer-wrap{max-width:1100px;margin:0 auto;background:#f4f4f4;border-radius:20px;overflow:hidden;box-shadow:0 32px 80px rgba(0,0,0,.15),0 8px 24px rgba(0,0,0,.08);margin-bottom:40px;}
.esn-prog-summer-hdr{position:relative;background:#fff;padding:36px 40px 32px;border-bottom:2px solid #ececec;overflow:hidden;}
.esn-prog-summer-hdr-accent{position:absolute;left:0;top:0;bottom:0;width:5px;background:linear-gradient(to bottom,#C8102E,#8B0000);}
.esn-prog-summer-wm{position:absolute;right:-20px;bottom:-28px;font-family:'Barlow Condensed',sans-serif;font-size:140px;font-weight:900;color:rgba(200,16,46,.055);line-height:1;letter-spacing:-.02em;pointer-events:none;user-select:none;}
.esn-prog-summer-inner{position:relative;z-index:1;}
.esn-prog-summer-pill{display:inline-flex;align-items:center;gap:8px;background:#C8102E;color:#fff;font-family:'Barlow Condensed',sans-serif;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;padding:5px 14px;border-radius:100px;margin-bottom:14px;}
.esn-prog-summer-blink{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.6);flex-shrink:0;animation:esn-blink 1.5s ease-in-out infinite;}
@keyframes esn-blink{0%,100%{opacity:1}50%{opacity:.3}}
.esn-prog-summer-h2{font-family:'Barlow Condensed',sans-serif;font-size:clamp(28px,4vw,48px);font-weight:900;text-transform:uppercase;color:#0D0D0D;line-height:.95;margin-bottom:12px;}
.esn-prog-summer-h2 em{color:#C8102E;font-style:normal;}
.esn-prog-summer-sub{font-size:16px;color:#666;line-height:1.65;max-width:520px;margin-bottom:10px;font-family:'DM Sans',sans-serif;}
.esn-prog-summer-note{display:inline-flex;align-items:flex-start;gap:8px;background:#f8f8f8;border:1px solid #e8e8e8;border-radius:8px;padding:10px 14px;font-size:11px;color:#999;line-height:1.55;font-style:italic;font-family:'DM Sans',sans-serif;}
.esn-prog-summer-cards{display:grid;grid-template-columns:repeat(3,1fr);}
.esn-prog-sc{padding:28px 28px 32px;position:relative;border-right:1px solid #e4e4e4;display:flex;flex-direction:column;transition:background .2s ease;}
.esn-prog-sc:last-child{border-right:none;}
.esn-prog-sc:hover{background:#eee;}
.esn-prog-sc-stripe{position:absolute;top:0;left:0;right:0;height:3px;}
.esn-prog-sc-stripe-red{background:linear-gradient(to right,#C8102E,#ff4444);}
.esn-prog-sc-stripe-amber{background:linear-gradient(to right,#d97706,#f59e0b);}
.esn-prog-sc-stripe-green{background:linear-gradient(to right,#16a34a,#22c55e);}
.esn-prog-sc-eye{font-size:9px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#aaa;margin-bottom:10px;margin-top:12px;font-family:'DM Sans',sans-serif;}
.esn-prog-sc-price{font-family:'Barlow Condensed',sans-serif;font-size:52px;font-weight:900;color:#0D0D0D;line-height:1;margin-bottom:2px;}
.esn-prog-sc-price sub{font-size:14px;font-weight:500;color:#aaa;vertical-align:baseline;}
.esn-prog-sc-save{display:inline-flex;align-items:center;gap:5px;background:#0D0D0D;color:#fff;font-family:'Barlow Condensed',sans-serif;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:4px 10px;border-radius:6px;margin:10px 0 16px;}
.esn-prog-sc-save span{color:#22c55e;}
.esn-prog-sc-div{height:1px;background:#e0e0e0;margin-bottom:16px;}
.esn-prog-sc-detail{font-size:14px;color:#888;line-height:1.9;flex:1;margin-bottom:20px;font-family:'DM Sans',sans-serif;}
.esn-prog-sc-detail strong{color:#333;}
.esn-prog-sc-converts{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:10px 12px;font-size:10px;color:#aaa;line-height:1.6;margin-bottom:20px;font-family:'DM Sans',sans-serif;}
.esn-prog-sc-converts strong{color:#555;display:block;font-size:11px;margin-bottom:2px;}
.esn-prog-sc-btn{display:block;width:100%;text-align:center;font-family:'Barlow Condensed',sans-serif;font-size:14px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:14px;border-radius:12px;border:none;cursor:pointer;background:#0D0D0D;color:#fff;transition:all .2s;box-shadow:0 4px 16px rgba(0,0,0,.15);}
.esn-prog-sc-btn:hover{background:#C8102E;box-shadow:0 6px 24px rgba(200,16,46,.3);transform:translateY(-2px);}
.esn-prog-sc-nonref{font-size:10px;color:#bbb;text-align:center;margin-top:10px;font-family:'DM Sans',sans-serif;}
@media(max-width:700px){.esn-prog-summer-cards{grid-template-columns:1fr;}.esn-prog-sc{border-right:none;border-bottom:1px solid #e4e4e4;}}

/* ---- PRIVATE TRAINING ---- */
.esn-prog-priv-wrap{max-width:960px;margin:0 auto;padding:0 24px;}
.esn-prog-priv-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:32px;}
.esn-prog-priv-card{background:#1a1a1a;border:1.5px solid #2a2a2a;border-radius:16px;padding:28px 24px;display:flex;flex-direction:column;}
.esn-prog-priv-card.esn-priv-purchasable{border-color:#333;}
.esn-prog-priv-eye{font-size:9px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#C8102E;margin-bottom:8px;font-family:'DM Sans',sans-serif;}
.esn-prog-priv-price{font-family:'Barlow Condensed',sans-serif;font-size:42px;font-weight:900;color:#fff;line-height:1;margin-bottom:4px;}
.esn-prog-priv-price sub{font-size:14px;font-weight:400;color:#555;vertical-align:baseline;}
.esn-prog-priv-detail{font-size:16px;color:#666;line-height:1.8;flex:1;margin:12px 0 20px;font-family:'DM Sans',sans-serif;}
.esn-prog-priv-detail strong{color:#aaa;}
.esn-prog-priv-btn-contact{display:block;width:100%;text-align:center;font-family:'Barlow Condensed',sans-serif;font-size:13px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:12px;border-radius:10px;background:transparent;border:1.5px solid #333;color:#666;cursor:pointer;margin-top:auto;transition:all .2s;text-decoration:none;}
.esn-prog-priv-btn-contact:hover{border-color:#fff;color:#fff;}
.esn-prog-priv-btn-buy{display:block;width:100%;text-align:center;font-family:'Barlow Condensed',sans-serif;font-size:14px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:13px;border-radius:10px;background:#22c55e;color:#fff;border:none;cursor:pointer;margin-top:auto;transition:all .2s;}
.esn-prog-priv-btn-buy:hover{background:#16a34a;box-shadow:0 0 24px rgba(34,197,94,.4);}
.esn-prog-priv-save{display:inline-block;background:rgba(34,197,94,.08);border:1px solid rgba(34,197,94,.2);border-radius:6px;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#22c55e;padding:3px 8px;margin-bottom:12px;font-family:'DM Sans',sans-serif;}
.esn-prog-priv-note{font-size:14px;color:#555;text-align:center;margin-top:14px;font-family:'DM Sans',sans-serif;}
@media(max-width:600px){.esn-prog-priv-grid{grid-template-columns:1fr;}}

/* ---- SPECIALTY COACHING ---- */
.esn-prog-spec-wrap{max-width:960px;margin:0 auto;padding:0 24px;}
.esn-prog-spec-intro{font-size:16px;color:#aaa;line-height:1.7;max-width:580px;margin-bottom:32px;font-family:'DM Sans',sans-serif;}
.esn-prog-spec-badges{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:36px;}
.esn-prog-spec-badge{display:inline-flex;align-items:center;gap:10px;background:#1a1a1a;border:1.5px solid #2a2a2a;border-radius:10px;padding:14px 20px;}
.esn-prog-spec-badge-name{font-family:'Barlow Condensed',sans-serif;font-size:20px;font-weight:800;text-transform:uppercase;color:#fff;}
.esn-prog-spec-badge-tag{font-size:9px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:#555;background:#111;border:1px solid #2a2a2a;padding:3px 8px;border-radius:4px;font-family:'DM Sans',sans-serif;}
.esn-prog-spec-note{font-size:16px;color:#666;font-style:italic;margin-bottom:32px;padding:14px 18px;background:#111;border-left:3px solid #C8102E;font-family:'DM Sans',sans-serif;}

/* ---- SIBLING DISCOUNT ---- */
.esn-prog-sibling-wrap{max-width:960px;margin:0 auto;padding:0 24px 48px;}
.esn-prog-sibling{padding:24px;display:flex;align-items:flex-start;gap:16px;background:#141414;border-radius:12px;border-left:4px solid #C8102E;}
.esn-prog-sibling-text{font-size:16px;color:#888;line-height:1.75;font-family:'DM Sans',sans-serif;}
.esn-prog-sibling-text strong{color:#fff;}

/* ---- FAQ ---- */
.esn-prog-faq{max-width:780px;margin:0 auto;padding:0 24px;}
.esn-prog-faq-item{border-bottom:1px solid #DCDCDC;}
.esn-prog-faq-item:first-child{border-top:1px solid #DCDCDC;}
.esn-prog-faq-btn{width:100%;background:none;border:none;padding:24px 0;display:flex;align-items:center;justify-content:space-between;gap:20px;text-align:left;cursor:pointer;}
.esn-prog-faq-q{font-family:'Barlow Condensed',sans-serif;font-size:22px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:#0D0D0D;}
.esn-prog-faq-icon{width:34px;height:34px;min-width:34px;border:2px solid #CACACA;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:300;color:#AAAAAA;line-height:1;transition:all .25s ease;user-select:none;}
.esn-prog-faq-item.esn-faq-open .esn-prog-faq-icon{background:#C8102E;border-color:#C8102E;color:#fff;transform:rotate(45deg);}
.esn-prog-faq-a{max-height:0;overflow:hidden;transition:max-height .4s ease;}
.esn-prog-faq-item.esn-faq-open .esn-prog-faq-a{max-height:400px;}
.esn-prog-faq-a-inner{padding:0 0 28px;font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.72;color:#555;}

/* ---- CONTACT ---- */
.esn-prog-contact-items{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin-top:28px;margin-bottom:16px;}
.esn-prog-contact-item{display:flex;align-items:center;gap:12px;background:#1a1a1a;border:1.5px solid #2a2a2a;border-radius:12px;padding:16px 24px;}
.esn-prog-contact-item a{font-family:'Barlow Condensed',sans-serif;font-size:20px;font-weight:800;color:#fff;text-decoration:none;letter-spacing:.04em;}
.esn-prog-contact-item a:hover{color:#22c55e;}
.esn-prog-contact-note{font-size:16px;color:#555;text-align:center;line-height:1.7;font-family:'DM Sans',sans-serif;}

/* ============================================================
   FONT SIZE ENFORCEMENT — 16px minimum on all content text
   !important overrides inline <style> blocks in code elements
   ============================================================ */

/* Buttons */
.esn-card-btn{font-size:16px !important;}
.esn-prog-sc-btn{font-size:16px !important;}
.esn-prog-priv-btn-contact{font-size:16px !important;}
.esn-prog-priv-btn-buy{font-size:16px !important;}
.esn-wl-btn{font-size:18px !important;}
.esn-checkout-btn{font-size:16px !important;}
.esn-slot-btn{font-size:14px !important;}

/* Body / description text */
.esn-prog-summer-sub{font-size:16px !important;}
.esn-prog-summer-note{font-size:14px !important;}
.esn-prog-sc-detail{font-size:14px !important;}
.esn-prog-sc-converts{font-size:13px !important;}
.esn-prog-sc-converts strong{font-size:14px !important;}
.esn-prog-priv-detail{font-size:16px !important;}
.esn-prog-priv-note{font-size:14px !important;}
.esn-prog-spec-intro{font-size:16px !important;}
.esn-prog-spec-note{font-size:16px !important;}
.esn-prog-sibling-text{font-size:16px !important;}
.esn-prog-contact-note{font-size:16px !important;}
.esn-prog-sub-footer{font-size:14px !important;}
.esn-prog-notice{font-size:14px !important;}

/* Card stats */
.esn-card-stat{font-size:13px !important;}
.esn-card-active .esn-card-stat{font-size:14px !important;}
.esn-card-cancel{font-size:12px !important;}
.esn-card-price sub{font-size:14px !important;}

/* Slot selector */
.esn-slot-meta{font-size:14px !important;}
.esn-slot-cap-note{font-size:13px !important;}
.esn-checkout-sum{font-size:14px !important;}
.esn-slot-tier-pill{font-size:14px !important;}
.esn-pill-change{font-size:13px !important;}

/* Waitlist modal */
.esn-wl-sub{font-size:16px !important;}
.esn-wl-input{font-size:16px !important;}
.esn-wl-msg{font-size:14px !important;}

/* Hero badges */
.esn-prog-hero-badge{font-size:14px !important;}

/* FAQ answer */
.esn-prog-faq-a-inner{font-size:16px !important;}

/* ============================================================
   MOBILE — Full responsive pass
   ============================================================ */

/* Stop horizontal overflow at root */
html, body { overflow-x: hidden; max-width: 100%; }

/* Force all Bricks containers to respect viewport on mobile */
@media(max-width: 767px) {
  .brxe-section { overflow-x: hidden; }
  .brxe-container { max-width: 100% !important; width: 100% !important; box-sizing: border-box; }

  /* Hero — get CTA above the fold */
  .brxe-section#brxe-pg01s { padding-top: 36px !important; padding-bottom: 36px !important; }
  .brxe-heading.brxe-pg01b { font-size: clamp(44px,12vw,68px) !important; margin-bottom: 14px !important; }
  .brxe-text-basic.brxe-pg01d { font-size: 15px !important; line-height: 1.55 !important; margin-bottom: 22px !important; }
  .esn-prog-hero-badges { gap: 8px; margin-bottom: 20px; }
  .esn-prog-hero-badge { font-size: 13px !important; padding: 6px 11px; }
  .esn-prog-hero-cta { font-size: 16px !important; padding: 14px 28px; }

  /* Pricing cards — single column on mobile */
  .esn-prog-sub-wrap { padding: 0 16px; max-width: 100%; }
  .esn-prog-grid { grid-template-columns: 1fr !important; gap: 12px; }
  .esn-price-card { transform: none !important; opacity: 1 !important; }
  .esn-price-card.esn-card-active { transform: none !important; }
  .esn-card-btn { opacity: 1 !important; pointer-events: auto !important; transform: none !important; margin-top: 16px; }
  .esn-card-extra { max-height: none !important; opacity: 1 !important; }
  .esn-card-tap { display: none !important; }
  .esn-prog-sub-footer { font-size: 13px !important; padding: 0 8px; }
  .esn-prog-notice { font-size: 13px !important; }

  /* Slot selector */
  .esn-slot-selector { padding: 0 16px; margin-top: 32px; }
  .esn-slot-row { grid-template-columns: 1fr auto; gap: 10px; padding: 14px 16px; }
  .esn-avail-wrap { display: none; }
  .esn-checkout-foot { flex-direction: column; align-items: stretch; }
  .esn-checkout-btn { width: 100%; }

  /* Summer block */
  .esn-prog-summer-divider { padding: 28px 16px 20px; }
  .esn-prog-summer-wrap { margin: 0 16px 32px; border-radius: 14px; }
  .esn-prog-summer-hdr { padding: 24px 20px; }
  .esn-prog-summer-wm { font-size: 80px; }
  .esn-prog-summer-cards { grid-template-columns: 1fr; }
  .esn-prog-sc { border-right: none; border-bottom: 1px solid #e4e4e4; }
  .esn-prog-sc:last-child { border-bottom: none; }
  .esn-prog-sc-price { font-size: 40px; }

  /* Private training */
  .esn-prog-priv-wrap { padding: 0 16px; }
  .esn-prog-priv-grid { grid-template-columns: 1fr !important; gap: 12px; }

  /* Specialty coaching */
  .esn-prog-spec-wrap { padding: 0 16px; }
  .esn-prog-spec-badges { gap: 8px; }
  .esn-prog-spec-badge { padding: 12px 16px; }

  /* Sibling discount */
  .esn-prog-sibling-wrap { padding: 0 16px 32px; }

  /* FAQ */
  .esn-prog-faq { padding: 0 16px; }
  .esn-prog-faq-q { font-size: 18px !important; }

  /* Contact */
  .esn-prog-contact-items { flex-direction: column; align-items: center; }

  /* Waitlist modal */
  .esn-wl-box { padding: 28px 20px; }

  /* Summer cards detail text smaller on mobile for space */
  .esn-prog-sc-detail { font-size: 14px !important; }
  .esn-prog-sc-converts { font-size: 13px !important; }
}

/* ============================================================
   V2 — LAUNCH BANNER
   ============================================================ */
#esn-launch-banner {
  display: none;
  background: #0D0D0D;
  border-bottom: 3px solid #C8102E;
  padding: 16px 24px;
  text-align: center;
}
.esn-banner-inner { max-width: 900px; margin: 0 auto; }
.esn-banner-text {
  font-family: 'DM Sans', sans-serif;
  font-size: 16px;
  color: rgba(255,255,255,0.85);
  line-height: 1.6;
  margin-bottom: 8px;
}
.esn-banner-text strong { color: #fff; }
.esn-banner-spots-num { color: #22c55e; font-weight: 800; font-size: 20px; }
.esn-banner-countdown {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 28px;
  font-weight: 900;
  color: #C8102E;
  letter-spacing: .06em;
  margin-bottom: 10px;
}
.esn-banner-cta {
  display: inline-block;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  background: #22c55e;
  color: #fff;
  padding: 10px 28px;
  border-radius: 8px;
  text-decoration: none;
  transition: background .2s;
}
.esn-banner-cta:hover { background: #16a34a; }
@media(max-width:767px) {
  #esn-launch-banner { padding: 14px 16px; }
  .esn-banner-text { font-size: 14px; }
  .esn-banner-countdown { font-size: 22px; }
}

/* ============================================================
   V2 — REGISTRATION SECTION
   ============================================================ */
.esn-reg-wrap { max-width: 760px; margin: 0 auto; padding: 0 24px; }

/* Slot cards */
.esn-reg-slots { display: flex; flex-direction: column; gap: 12px; margin-bottom: 32px; }
.esn-reg-slot-row {
  background: #1a1a1a; border: 1.5px solid #2a2a2a; border-radius: 14px;
  padding: 18px 20px; display: grid; grid-template-columns: 1fr auto auto;
  align-items: center; gap: 16px; cursor: pointer;
  transition: border-color .2s, background .2s;
}
.esn-reg-slot-row:hover { border-color: #444; }
.esn-reg-slot-row.esn-slot-selected { border-color: #22c55e; background: #0f1f14; box-shadow: 0 0 0 1px #22c55e, 0 8px 32px rgba(34,197,94,.15); }
.esn-reg-slot-row.esn-slot-full { opacity: .5; cursor: not-allowed; background: #141414; }
.esn-reg-slot-name { font-family: 'Barlow Condensed', sans-serif; font-size: 20px; font-weight: 800; text-transform: uppercase; color: #fff; margin-bottom: 3px; }
.esn-reg-slot-meta { font-size: 14px; color: #666; font-family: 'DM Sans', sans-serif; }
.esn-reg-slot-btn {
  font-family: 'Barlow Condensed', sans-serif; font-size: 13px; font-weight: 800;
  letter-spacing: .1em; text-transform: uppercase; padding: 10px 20px;
  border-radius: 8px; border: none; cursor: pointer; white-space: nowrap; transition: all .2s;
}
.esn-reg-slot-btn.esn-btn-select { background: #1f2f1f; color: #22c55e; border: 1.5px solid #22c55e; }
.esn-reg-slot-btn.esn-btn-select:hover { background: #22c55e; color: #fff; }
.esn-reg-slot-btn.esn-btn-waitlist { background: transparent; color: #666; border: 1.5px solid #333; font-size: 12px; cursor: pointer; }

/* Registration form */
#esn-reg-form-wrap {
  background: #141414; border: 1.5px solid #2a2a2a; border-radius: 16px;
  padding: 32px 28px; margin-bottom: 32px;
}
.esn-reg-plan-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid #2a2a2a; }
.esn-reg-plan-label-text { font-size: 12px; color: #666; font-family: 'DM Sans', sans-serif; }
.esn-reg-plan-current { font-family: 'Barlow Condensed', sans-serif; font-size: 18px; font-weight: 800; color: #fff; }
.esn-reg-plan-change { background: transparent; border: none; color: #C8102E; font-size: 13px; font-family: 'DM Sans', sans-serif; cursor: pointer; text-decoration: underline; padding: 0; }
#esn-reg-plan-options {
  background: #1a1a1a; border: 1px solid #2a2a2a; border-radius: 10px;
  padding: 16px; margin-bottom: 20px;
}
#esn-reg-plan-options label { display: flex; align-items: center; gap: 10px; font-family: 'DM Sans', sans-serif; font-size: 16px; color: #aaa; margin-bottom: 10px; cursor: pointer; }
#esn-reg-plan-options label:last-child { margin-bottom: 0; }
#esn-reg-plan-options input[type="radio"] { accent-color: #22c55e; width: 18px; height: 18px; }
.esn-reg-selected-slot { font-size: 14px; color: #555; font-family: 'DM Sans', sans-serif; margin-bottom: 24px; }
.esn-reg-section-label { font-size: 10px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #555; font-family: 'DM Sans', sans-serif; margin: 20px 0 10px; }
.esn-reg-input {
  width: 100%; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.28);
  color: #fff; font-family: 'DM Sans', sans-serif; font-size: 16px; padding: 13px 16px;
  border-radius: 8px; margin-bottom: 12px; box-sizing: border-box;
}
.esn-reg-input:focus { outline: none; border-color: #22c55e; background: rgba(255,255,255,.18); }
.esn-reg-input::placeholder { color: rgba(255,255,255,.45); }
.esn-reg-age-error { color: #C8102E; font-size: 14px; font-family: 'DM Sans', sans-serif; margin-bottom: 12px; }
.esn-reg-submit-btn {
  display: block; width: 100%; text-align: center;
  font-family: 'Barlow Condensed', sans-serif; font-size: 18px; font-weight: 800;
  letter-spacing: .1em; text-transform: uppercase; padding: 16px; border-radius: 10px;
  border: none; cursor: pointer; background: #22c55e; color: #fff;
  transition: background .2s; margin-top: 8px;
}
.esn-reg-submit-btn:hover { background: #16a34a; }
.esn-reg-submit-btn:disabled { opacity: .5; cursor: not-allowed; }
.esn-reg-error { color: #C8102E; font-size: 14px; font-family: 'DM Sans', sans-serif; margin-top: 10px; }

/* "These times don't work" */
.esn-reg-no-times {
  background: #111; border: 1.5px solid #2a2a2a; border-radius: 14px;
  padding: 28px 24px; text-align: center; margin-top: 24px;
}
.esn-reg-no-times-text { font-size: 16px; color: #888; line-height: 1.65; font-family: 'DM Sans', sans-serif; margin-bottom: 20px; }
.esn-reg-waitlist-btn {
  font-family: 'Barlow Condensed', sans-serif; font-size: 18px; font-weight: 800;
  letter-spacing: .08em; text-transform: uppercase; padding: 14px 36px;
  background: #C8102E; color: #fff; border: none; border-radius: 10px; cursor: pointer;
  transition: background .2s;
}
.esn-reg-waitlist-btn:hover { background: #a00f26; }

/* General waitlist modal checkboxes */
.esn-gw-checkboxes { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 16px; margin-top: 8px; }
.esn-gw-checkboxes label { display: flex; align-items: center; gap: 8px; font-family: 'DM Sans', sans-serif; font-size: 15px; color: #aaa; cursor: pointer; }
.esn-gw-checkboxes input[type="checkbox"] { accent-color: #22c55e; width: 16px; height: 16px; }

@media(max-width:767px) {
  .esn-reg-wrap { padding: 0 16px; }
  .esn-reg-slot-row { grid-template-columns: 1fr auto; gap: 10px; }
  .esn-avail-wrap { display: none; }
  #esn-reg-form-wrap { padding: 20px 16px; }
}

/* ============================================================
   CARD BUTTON — ONE GREEN AT A TIME
   Inactive cards show ghost button. Active card shows green.
   ============================================================ */
.esn-card-btn {
  background: transparent !important;
  color: rgba(255,255,255,.5) !important;
  border: 1.5px solid rgba(255,255,255,.15) !important;
  box-shadow: none !important;
}
.esn-card-active .esn-card-btn {
  background: #22c55e !important;
  color: #fff !important;
  border: none !important;
}
.esn-card-active .esn-card-btn:hover {
  background: #16a34a !important;
  box-shadow: 0 0 24px rgba(34,197,94,.5) !important;
}
