/* Shared by the website and the public catalog's embedded presentation. */
.class-catalog{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none;gap:22px;align-items:start}
.course-card.boarding-pass{display:grid;grid-template-columns:minmax(0,1fr) 158px;width:100%;max-width:none;min-width:0;position:relative;border:1px solid #dce2e6;border-top:3px solid var(--red);border-radius:10px;background:#fff;overflow:hidden;box-shadow:0 4px 14px #243a5007;transform:none;transition:none}
.boarding-main{min-width:0;padding:18px 22px 16px}
.boarding-topline{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:8px;min-height:22px;font-size:12px;line-height:1.3}
.boarding-mode{color:#536472}
.boarding-next{color:#a3182b;background:#fceef0;border-radius:3px;padding:3px 7px;font-size:11px}
.boarding-topline .seat-status{font-size:12px;color:#9f1d30}
.boarding-main h3{font-size:29px;line-height:1.12;margin:0;overflow-wrap:anywhere;letter-spacing:-.02em}
.boarding-school{font-size:14px;line-height:1.4;color:#536472;margin-top:5px;overflow-wrap:anywhere}
.boarding-label{display:block;font-size:10px;letter-spacing:.1em;line-height:1.4;color:#536472}
.boarding-dates{display:grid;grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr);align-items:center;gap:8px;margin-top:15px}
.boarding-dates>div:last-child{text-align:right}
.boarding-dates strong{display:block;font-weight:400;font-size:27px;line-height:1.1;margin-top:4px}
.boarding-dates small{display:block;font-size:12px;color:#536472;margin-top:4px}
.boarding-pending{font-size:17px}
.boarding-route{display:flex;align-items:center;gap:4px;color:#9ba7b1}
.boarding-route i{flex:1;border-top:1px dashed #b9c2ca}
.boarding-route svg{width:18px;height:18px;transform:rotate(90deg);color:var(--red)}
.boarding-availability{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 10px;font-size:13px;line-height:1.4;margin-top:14px;color:#536472}
.boarding-availability strong{color:var(--text);font-weight:400}
.boarding-capacity{height:3px;background:#e9edf0;border-radius:2px;overflow:hidden;margin-top:7px}
.boarding-capacity>span{display:block;height:100%;background:var(--red)}
.boarding-waitlist{font-size:13px;line-height:1.4;color:#536472}
.boarding-stub{position:relative;min-width:0;border-left:1px dashed #bec8d0;background:#fafbfc;border-radius:0 7px 0 0;padding:24px 16px 16px;display:flex;flex-direction:column;justify-content:center}
.boarding-stub:before{content:"";position:absolute;top:-9px;left:-9px;width:16px;height:16px;border:1px solid #dce2e6;border-top-color:transparent;border-left-color:transparent;border-radius:50%;background:#fff;transform:rotate(45deg)}
.boarding-price strong{font-size:30px;line-height:1.2;font-weight:400;display:block;overflow-wrap:anywhere;margin-top:5px}
.boarding-stub .button{display:flex;width:100%;min-height:44px;margin-top:20px;padding:10px 8px;font-size:15px;line-height:1.2;text-align:center;justify-content:center;border-radius:4px;gap:4px}
.boarding-note{font-size:11px;line-height:1.4;color:#536472;margin-top:9px;text-align:center}
.boarding-details{grid-column:1/-1;border-top:1px dashed #cbd3da;min-width:0}
.boarding-details summary{min-height:44px;padding:11px 22px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px;line-height:1.4;cursor:pointer;list-style:none;color:#435563}
.boarding-details summary::-webkit-details-marker{display:none}
.boarding-details summary>span{font-size:20px;line-height:1;color:var(--red)}
.boarding-details[open] summary>span{transform:rotate(45deg)}
.boarding-details-body{padding:0 22px 16px;font-size:14px;line-height:1.5;color:#536472;overflow-wrap:anywhere}
.boarding-details-body p{margin:0 0 13px;white-space:pre-line}
.boarding-details-body strong{display:block;font-weight:400;color:var(--text);margin-bottom:3px}
.boarding-details-body p>span{display:block}
.boarding-details-body a{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:#a3182b;text-decoration:underline;text-underline-offset:3px}
.boarding-pass :focus-visible,.boarding-catalog:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.boarding-swipe-hint{display:none}
@media(min-width:701px) and (max-width:1150px){
  .class-catalog{grid-template-columns:1fr}
  .course-card.boarding-pass{grid-template-columns:minmax(0,1fr) 185px}
  .boarding-main{padding:20px 26px 14px}
  .boarding-dates{max-width:340px}
}
@media(max-width:700px){
  .class-catalog{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:2px;padding:3px 2px 14px;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#b6c0c8 #eef1f3}
  .course-card.boarding-pass{grid-template-columns:minmax(0,1fr)}
  .class-catalog>.boarding-pass{flex:0 0 92%;scroll-snap-align:start;align-self:flex-start}
  .class-catalog>.boarding-pass:only-child{flex-basis:100%}
  .class-catalog>.empty-catalog{flex:0 0 100%}
  .boarding-main{padding:17px 16px 13px}
  .boarding-main h3{font-size:27px}
  .boarding-dates{margin-top:15px;grid-template-columns:minmax(0,1fr) 42px minmax(0,1fr)}
  .boarding-dates strong{font-size:26px}
  .boarding-stub{border-left:0;border-top:1px dashed #bec8d0;border-radius:0;padding:14px 16px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2px 12px;align-items:center}
  .boarding-stub:before,.boarding-stub:after{content:"";position:absolute;top:-8px;left:-8px;width:14px;height:14px;border:1px solid #dce2e6;border-radius:50%;background:#fff;transform:none}
  .boarding-stub:after{left:auto;right:-8px}
  .boarding-stub .boarding-label{grid-column:1;grid-row:1;font-size:9px}
  .boarding-price{grid-column:1;grid-row:2}
  .boarding-price strong{font-size:27px;margin:0}
  .boarding-stub .button{grid-column:2;grid-row:1/3;margin:0;font-size:14px;min-height:44px}
  .boarding-note{grid-column:1/-1;text-align:left;margin-top:4px}
  .boarding-details summary{padding:11px 16px}
  .boarding-details-body{padding:0 16px 14px}
  .boarding-swipe-hint{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;color:#536472;margin-top:16px}
  .boarding-swipe-hint span{font-size:19px;color:var(--red)}
}
@media(max-width:380px){
  .boarding-dates{grid-template-columns:minmax(0,1fr) 26px minmax(0,1fr);gap:6px}
  .boarding-dates strong{font-size:24px}
  .boarding-stub{grid-template-columns:minmax(70px,.8fr) minmax(0,1fr)}
  .boarding-price strong{font-size:24px}
}
