/* compact vertical rhythm: hero -> rail -> price cards, equal small gaps */
.phero{min-height:66svh;padding-bottom:2.5vh;}
.phero h1{font-size:clamp(2.6rem,8vw,7rem);}
#sessions{padding-block:clamp(14px,2vw,30px) clamp(48px,6vw,90px);}
#sessions .sess{margin-top:0;}
/* rail: fixed in the flow, horizontally draggable/scrollable */
.rail-wrap{position:relative;}
.phero__spine{bottom:3vh;}
.rail-pin{position:relative;padding-block:clamp(10px,1.5vw,22px) clamp(14px,2vw,30px);overflow:hidden;}
.rail{display:flex;gap:18px;padding-inline:var(--pad);margin-top:12px;
  overflow-x:auto;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;cursor:grab;}
@media (max-width:900px){ .rail{scroll-snap-type:x proximity;} }
.rail::-webkit-scrollbar{display:none;}
.rail.is-dragging{cursor:grabbing;scroll-snap-type:none;}
.rail.is-dragging .rail__panel{pointer-events:none;}
.rail__panel{flex:none;width:clamp(240px,26vw,340px);border:1px solid var(--line-2);background:linear-gradient(160deg,#1B1210,#140D0B);
  padding:26px;position:relative;min-height:300px;transition:border-color .3s,box-shadow .3s;scroll-snap-align:start;user-select:none;}
.rail__panel.is-active{border-color:var(--accent);box-shadow:0 0 34px rgba(236,48,18,.25);}
.rail__no{position:absolute;top:14px;right:18px;font-size:2.2rem;color:transparent;-webkit-text-stroke:1px rgba(236,48,18,.6);}
.rail__panel h3{font-size:1.6rem;margin-top:90px;}
.rail__panel p{color:var(--muted);font-size:.95rem;margin-top:8px;}
.rail__bar{margin:16px var(--pad) 0;height:2px;background:var(--line-2);position:relative;}
.rail__bar i{position:absolute;inset:0 auto 0 0;width:0;background:var(--grad-soft);transition:width .15s linear;}
/* session cards: the row of three always stays intact */
.sess{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:26px;align-items:stretch;}
.sess-card{all:unset;box-sizing:border-box;display:flex;flex-direction:column;gap:8px;padding:26px;cursor:pointer;
  border:1px solid var(--line-2);background:#171009;position:relative;transition:border-color .25s,box-shadow .3s,transform .25s;}
.sess-card:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}
.sess-card--feat{border-color:rgba(236,48,18,.5);}
.sess-card__name{font-size:1.8rem;}
.sess-card__price{font-size:2.6rem;}
.sess-card__price small{font-family:var(--f-body);font-size:.85rem;color:var(--muted);font-weight:500;}
.sess-card__wave{height:12px;}
.sess-card__wave i{animation-play-state:paused;}
.sess-card:hover .sess-card__wave i{animation-play-state:running;}
.sess-card__open{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;margin-top:6px;transition:color .2s;}
.sess-card:hover{border-color:var(--accent);box-shadow:0 14px 44px rgba(236,48,18,.25);transform:translateY(-3px);}
.sess-card:hover .sess-card__open{color:var(--accent);}
.sess-card.is-active{border-color:var(--accent);background:radial-gradient(120% 140% at 50% 0,rgba(236,48,18,.12),#171009 60%);}
.sess-card.is-active .sess-card__open{color:var(--accent);}
/* detail panel: expands BELOW the row */
.sess-panels{position:relative;}
.sess-panel{position:relative;margin-top:18px;border:1px solid var(--accent);
  background:radial-gradient(100% 130% at 100% 0,rgba(236,48,18,.14),#160C09 55%);
  padding:clamp(22px,3vw,36px);overflow:hidden;}
.sess-panel__x{position:absolute;top:14px;right:16px;background:none;border:0;color:var(--muted);font-size:1.1rem;cursor:pointer;}
.sess-panel__x:hover{color:var(--ink);}
.sess-panel__title{font-size:clamp(1.6rem,2.6vw,2.4rem);margin-bottom:6px;}
.sess-panel__cols{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(20px,4vw,48px);}
.sess-panel__list{list-style:none;margin:10px 0 0;padding:0;}
.sess-panel__list li{padding:10px 0;border-top:1px solid var(--line-2);color:#E0D6D2;display:flex;gap:10px;font-size:.96rem;}
.sess-panel__list li::before{content:"→";background:var(--grad-soft);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-weight:700;}
.sess-panel__steps{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;}
.sess-panel__steps span{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--line);padding:7px 12px;color:var(--muted);}
.sess-form{display:flex;flex-direction:column;gap:12px;background:#0F0907;border:1px solid var(--line);padding:20px;}
.sess-form__err{color:#F87171;font-size:.85rem;margin:0;}
.sess-form__ok{font-weight:700;margin:0;}
.sess-note{color:var(--muted);text-align:center;margin-top:26px;font-size:.9rem;}
.sess-note__link{color:var(--accent);}
@media (max-width:900px){ .sess{grid-template-columns:1fr;} .sess-panel__cols{grid-template-columns:1fr;} }
