/* =====================================================================
   com_afterschool — theme peste Bootstrap (scoped body.com_afterschool)
   Micii Exploratori · verde #1f7a4d + coral #e0533d, cald & prietenos
   ===================================================================== */
body.com_afterschool {
  --as-primary: var(--color-primary, #1f7a4d);
  --as-secondary: var(--color-secondary, #14532d);
  --as-accent: var(--color-accent, #e0533d);
  --as-bg: #faf7f0;
  --as-surface: #ffffff;
  --as-border: var(--color-border, #e7e0cf);
  --as-radius: 18px;
  --as-shadow: 0 10px 30px rgba(20, 83, 45, .10);
}

/* ---- Page heading ---- */
.as-pagehead { margin: .5rem 0 1.75rem; }
.as-pagehead h1 {
  font-size: clamp(1.9rem, 4vw, 2.6rem);
  color: var(--as-primary);
  margin: 0 0 .35rem;
  position: relative; display: inline-block;
}
.as-pagehead h1::after {
  content: ""; display: block; width: 3.2rem; height: 4px; margin-top: .55rem;
  background: var(--as-accent); border-radius: 4px;
}
.as-pagehead__lead { color: rgba(34,48,60,.72); max-width: 60ch; font-size: 1.05rem; margin: 0; }

/* ---- Portal navigation (nav-pills) ---- */
.as-portalnav { margin: 0 0 1.75rem; }
.as-portalnav .nav {
  gap: .4rem; background: var(--as-surface); border: 1px solid var(--as-border);
  border-radius: 999px; padding: .4rem; box-shadow: 0 4px 16px rgba(20,83,45,.06);
  flex-wrap: wrap;
}
.as-portalnav .nav-link {
  color: var(--as-secondary); font-weight: 600; border-radius: 999px;
  padding: .5rem 1.05rem; font-size: .92rem; transition: background .15s, color .15s;
}
.as-portalnav .nav-link:hover { background: rgba(31,122,77,.10); color: var(--as-primary); }
.as-portalnav .nav-link.active { background: var(--as-primary); color: #fff; box-shadow: 0 4px 12px rgba(31,122,77,.35); }

/* ---- Workshops grid & cards ---- */
.as-wsgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.5rem; }
.as-wscard {
  --cat: var(--as-primary);
  display: flex; flex-direction: column; background: var(--as-surface);
  border: 1px solid var(--as-border); border-radius: var(--as-radius);
  overflow: hidden; transition: transform .18s ease, box-shadow .18s ease;
}
.as-wscard:hover { transform: translateY(-4px); box-shadow: var(--as-shadow); }
.as-wscard__media { display: block; position: relative; aspect-ratio: 16/10; overflow: hidden; background: var(--as-bg); border-top: 4px solid var(--cat); }
.as-wscard__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s cubic-bezier(.22,.61,.36,1); }
.as-wscard:hover .as-wscard__media img { transform: scale(1.07); }
.as-wscard__price {
  position: absolute; top: .7rem; right: .7rem; font-size: 1rem; font-weight: 800;
  padding: .5rem .7rem; border-radius: 999px; color: #fff; box-shadow: 0 2px 8px rgba(0,0,0,.18);
}
.as-badge--price { background: var(--cat, var(--as-primary)); }
.as-badge--free  { background: var(--as-accent); }

/* Home: available packages (centered for 1–2 cards) */
.as-pkghome { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.5rem; }
.as-pkghome__card { width: 320px; max-width: 100%; background: var(--as-surface,#fff); border: 1px solid var(--as-border,#e7e0cf); border-radius: var(--as-radius,18px); overflow: hidden; box-shadow: 0 4px 16px rgba(20,80,99,.06); display: flex; flex-direction: column; }
.as-pkghome__media { position: relative; display: block; aspect-ratio: 16/10; overflow: hidden; background: var(--as-bg,#faf6ec); border-top: 4px solid var(--cat,#6d28d9); }
.as-pkghome__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.as-pkghome__price { position: absolute; top: .7rem; right: .7rem; font-size: 1rem; font-weight: 800; padding: .5rem .7rem; border-radius: 999px; color: #fff; box-shadow: 0 2px 8px rgba(0,0,0,.18); }
.as-pkghome__body { display: flex; flex-direction: column; gap: .5rem; padding: 1rem 1.1rem 1.2rem; }
.as-pkghome__body h3 { margin: 0; font-size: 1.15rem; color: var(--as-primary,#1f3a5f); }
.as-pkghome__types { list-style: none; margin: 0; padding: 0; font-size: .9rem; color: rgba(34,48,60,.85); display: flex; flex-direction: column; gap: .2rem; }
.as-pkghome__body .btn { align-self: flex-start; margin-top: .3rem; }

/* Home: month calendar grid (7 columns) */
.as-calm { display: grid; grid-template-columns: repeat(7, 1fr); gap: .5rem; }
.as-calm__dow { text-align: center; font-weight: 800; color: var(--as-secondary,#14532d); padding: .3rem 0; font-size: .85rem; }
.as-calm__cell { min-height: 94px; background: var(--as-surface,#fff); border: 1px solid var(--as-border,#e7e0cf); border-radius: 12px; padding: .35rem .4rem; display: flex; flex-direction: column; gap: .18rem; }
.as-calm__cell--empty { background: transparent; border: 0; }
.as-calm__cell.is-today { border-color: var(--as-primary,#1f7a4d); box-shadow: 0 0 0 2px color-mix(in srgb, var(--as-primary,#1f7a4d) 25%, transparent); }
.as-calm__cell.is-past { opacity: .72; }
.as-calm__num { font-weight: 800; font-size: .8rem; color: rgba(34,48,60,.65); }
.as-calm__ev { font-size: .68rem; line-height: 1.18; padding: .12rem .3rem; border-radius: 6px; color: #fff; background: var(--cat,#1f7a4d); white-space: normal; overflow-wrap: anywhere; word-break: break-word; }
.as-calm__ev b { font-weight: 800; }
.as-calm__more { font-size: .65rem; color: rgba(34,48,60,.6); font-weight: 700; }
@media (max-width: 720px) {
  .as-calm { gap: .25rem; }
  .as-calm__cell { min-height: 60px; padding: .25rem; border-radius: 8px; }
  .as-calm__ev { font-size: .58rem; padding: .1rem .2rem; }
  .as-calm__dow { font-size: .72rem; }
}
.as-wscard__seats {
  position: absolute; bottom: .7rem; left: .7rem; z-index: 99; font-size: .74rem; font-weight: 700;
  padding: .28rem .6rem; border-radius: 999px; background: rgba(255,255,255,.92); color: var(--as-secondary);
}
.as-wscard__seats.is-full { background: var(--as-accent); color: #fff; }
.as-wscard__body { position: relative; z-index: 2; margin-top: -26px; display: flex; flex-direction: column; gap: .6rem; padding: 1.7rem 1.2rem 1.3rem; flex: 1; background: var(--as-surface); }
/* Cloud/scallop transition on the white detail area (workshops & books) */
.as-wscard__body::before {
  content: ""; position: absolute; left: 0; right: 0; top: -35px; height: 46px;
  background-color: var(--as-surface); pointer-events: none;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center bottom; mask-position: center bottom;
  -webkit-mask-size: 100% 100%; mask-size: 100% 100%;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1920 150'%3E%3Cpath d='M1889,0.3c-19.6,0-35.8,11.6-39.1,27c-12.8,0.3-24,5.6-31,13.5c-9.4-7.1-22-11.4-35.8-11.4c-29.2,0-52.9,19.4-52.9,43.5 c0,24.1,1.4,11.4,4,16.5c-7.7-5.8-17.9-9.3-29.1-9.3c-11.2,0-1.6,0-2.3,0c0-0.6,0-1.2,0-1.8c0-18-17.7-32.5-39.7-32.5 s-35.8,11.6-39.1,27c-12.8,0.3-24,5.6-31,13.6c-9.4-7.1-22-11.4-35.8-11.4c-13.8,0-4.1,0.1-6.2,0.3c-2.1-2.4-4.5-4.7-7.1-6.6 c-2.7-22.4-26.3-40-55.2-40c-28.9,0-44.5,12.2-52.2,29.4c-6.6-3.6-14.5-5.7-23.1-5.7c-15,0-28,6.4-35.2,15.9 c-11.6-15.6-33-26.2-57.5-26.2s-16.5,1.3-23.9,3.5c-5-13.6-20.7-23.6-39.4-23.6c-18.7,0-21.8,3.8-29.3,9.8 C1211.3,12.3,1186.4,0,1158.6,0c-41.9,0-77.3,28.1-88.2,66.3c-13.1,1.6-24.9,6.7-33.7,13.9c-3.6-13.5-18.6-23.7-36.7-23.7 S965,68,962.8,82.8c-2.4-0.3-5-0.5-7.5-0.5c-11.2,0-21.5,3.3-29.5,8.7c-8.3-9-21.6-14.8-36.7-14.8c-15.1,0-31.4,7.3-39.3,18 c-1.6-0.1-3.2-0.2-4.9-0.2c-10.7,0-20.7,2.5-29,6.9c-7.5-25.5-36.2-44.5-70.4-44.5s-3.5,0-5.3,0.2c0-0.9,0-1.8,0-2.7 c0-28.7-29.1-51.9-65.1-51.9s-40.5,8.3-52.3,21c-4.1-0.7-8.4-1-12.8-1c-17.5,0-33.4,5.5-45.1,14.5c-11.9-12.2-30.5-20.1-51.5-20.1 c-36,0-65.1,23.3-65.1,51.9c0,28.7,0.8,9.3,2.3,13.6c-8.2-4.2-18.2-6.7-29-6.7c-10.8,0-27.2,4.4-36.3,11.2 c-1.7-8.3-7.9-15.3-16.4-19.7c-7.4-30.4-34.8-52.8-67.6-52.8s-37.9,8.4-50.6,21.7c-7.1-3.3-15.1-5.2-23.5-5.2 c-28.6,0-52.2,21.6-55,49.4c-8.1,1.2-15.6,3.9-22.1,7.7c-7.3-4.6-16.4-7.3-26.2-7.3s-1.6,0-2.3,0c0-0.6,0-1.2,0-1.8 c0-18-17.7-32.5-39.7-32.5s-35.8,11.6-39.1,27c-12.8,0.3-24,5.6-31,13.6c-3.5-2.7-7.5-5-11.8-6.8V150h1920V13.4 c-7.2-8-18.8-13.1-31.8-13.1H1889z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1920 150'%3E%3Cpath d='M1889,0.3c-19.6,0-35.8,11.6-39.1,27c-12.8,0.3-24,5.6-31,13.5c-9.4-7.1-22-11.4-35.8-11.4c-29.2,0-52.9,19.4-52.9,43.5 c0,24.1,1.4,11.4,4,16.5c-7.7-5.8-17.9-9.3-29.1-9.3c-11.2,0-1.6,0-2.3,0c0-0.6,0-1.2,0-1.8c0-18-17.7-32.5-39.7-32.5 s-35.8,11.6-39.1,27c-12.8,0.3-24,5.6-31,13.6c-9.4-7.1-22-11.4-35.8-11.4c-13.8,0-4.1,0.1-6.2,0.3c-2.1-2.4-4.5-4.7-7.1-6.6 c-2.7-22.4-26.3-40-55.2-40c-28.9,0-44.5,12.2-52.2,29.4c-6.6-3.6-14.5-5.7-23.1-5.7c-15,0-28,6.4-35.2,15.9 c-11.6-15.6-33-26.2-57.5-26.2s-16.5,1.3-23.9,3.5c-5-13.6-20.7-23.6-39.4-23.6c-18.7,0-21.8,3.8-29.3,9.8 C1211.3,12.3,1186.4,0,1158.6,0c-41.9,0-77.3,28.1-88.2,66.3c-13.1,1.6-24.9,6.7-33.7,13.9c-3.6-13.5-18.6-23.7-36.7-23.7 S965,68,962.8,82.8c-2.4-0.3-5-0.5-7.5-0.5c-11.2,0-21.5,3.3-29.5,8.7c-8.3-9-21.6-14.8-36.7-14.8c-15.1,0-31.4,7.3-39.3,18 c-1.6-0.1-3.2-0.2-4.9-0.2c-10.7,0-20.7,2.5-29,6.9c-7.5-25.5-36.2-44.5-70.4-44.5s-3.5,0-5.3,0.2c0-0.9,0-1.8,0-2.7 c0-28.7-29.1-51.9-65.1-51.9s-40.5,8.3-52.3,21c-4.1-0.7-8.4-1-12.8-1c-17.5,0-33.4,5.5-45.1,14.5c-11.9-12.2-30.5-20.1-51.5-20.1 c-36,0-65.1,23.3-65.1,51.9c0,28.7,0.8,9.3,2.3,13.6c-8.2-4.2-18.2-6.7-29-6.7c-10.8,0-27.2,4.4-36.3,11.2 c-1.7-8.3-7.9-15.3-16.4-19.7c-7.4-30.4-34.8-52.8-67.6-52.8s-37.9,8.4-50.6,21.7c-7.1-3.3-15.1-5.2-23.5-5.2 c-28.6,0-52.2,21.6-55,49.4c-8.1,1.2-15.6,3.9-22.1,7.7c-7.3-4.6-16.4-7.3-26.2-7.3s-1.6,0-2.3,0c0-0.6,0-1.2,0-1.8 c0-18-17.7-32.5-39.7-32.5s-35.8,11.6-39.1,27c-12.8,0.3-24,5.6-31,13.6c-3.5-2.7-7.5-5-11.8-6.8V150h1920V13.4 c-7.2-8-18.8-13.1-31.8-13.1H1889z'/%3E%3C/svg%3E");
}
.as-wscard__title { font-size: 1.2rem; color: var(--as-primary); margin: 0; }
.as-wscard__title a { color: inherit; text-decoration: none; }
.as-wscard__title a:hover { color: var(--as-accent); }
.as-wscard .as-chip { display: inline-block; align-self: flex-start; color: #fff; font-size: .72rem; font-weight: 700; border-radius: 999px; padding: .25rem .7rem; text-transform: uppercase; letter-spacing: .3px; }
.as-wscard__meta { display: flex; flex-wrap: wrap; gap: .35rem .9rem; font-size: .84rem; color: rgba(34,48,60,.72); }
.as-wscard__desc { margin: 0; font-size: .94rem; color: rgba(34,48,60,.85); line-height: 1.5; }
.as-wscard__foot { margin-top: auto; padding-top: .4rem; display: flex; align-items: center; gap: .5rem; }
.as-wscard__foot .btn-primary { margin-left: auto; }
.as-wscard__foot .btn-primary:hover,
.as-wscard__foot .btn-primary:focus { background-color: var(--cat); border-color: var(--cat); color: #fff; }
.as-wscard__form { display: grid; grid-template-columns: 1fr auto; gap: .5rem; }

/* ---- Generic cards inside the component ---- */
body.com_afterschool main .card {
  border: 1px solid var(--as-border); border-radius: var(--as-radius);
  box-shadow: 0 4px 16px rgba(20,83,45,.05); overflow: hidden;
}
body.com_afterschool main .card .card-body { padding: 1.25rem; }

/* ---- Dashboard / stat cards (generic .as-stat if used) ---- */
.as-stat { background: var(--as-surface); border: 1px solid var(--as-border); border-radius: var(--as-radius);
  padding: 1.25rem 1.4rem; box-shadow: 0 4px 16px rgba(20,83,45,.05); }
.as-stat__value { font-size: 1.9rem; font-weight: 800; color: var(--as-primary); line-height: 1; }
.as-stat__label { color: rgba(34,48,60,.7); font-size: .9rem; margin-top: .3rem; }

/* Buttons are themed site-wide in the template stylesheet (template.css),
   so every Bootstrap variant already follows the brand scheme here. */

/* ---- Tables (payments, invoices, etc.) ---- */
body.com_afterschool main .table { border-radius: var(--as-radius); overflow: hidden; border-collapse: separate; border-spacing: 0; }
body.com_afterschool main .table thead th { background: var(--as-primary); color: #fff; border: 0; font-weight: 600; }
body.com_afterschool main .table tbody td { vertical-align: middle; }
body.com_afterschool main .table tbody tr:hover { background: rgba(31,122,77,.05); }

/* Badges are themed site-wide in template.css using the palette variables
   (.badge.bg-* / .text-bg-*), so no component-scoped overrides are needed. */

/* ---- List groups ---- */
body.com_afterschool main .list-group-item { border-color: var(--as-border); }

/* ---- Fade-in-up on scroll ---- */
.as-reveal { opacity: 0; transform: translateY(26px); transition: opacity .6s ease, transform .6s cubic-bezier(.22,.61,.36,1); transition-delay: var(--as-reveal-delay, 0ms); will-change: opacity, transform; }
.as-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .as-reveal { opacity: 1; transform: none; transition: none; } }

/* ---- Photo gallery (grid of thumbs) ---- */
.as-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: .7rem; margin-top: .4rem; }
.as-gallery__item { display: block; aspect-ratio: 1/1; border-radius: 12px; overflow: hidden; position: relative; cursor: zoom-in; background: var(--as-bg); box-shadow: 0 3px 10px rgba(20,80,99,.08); }
.as-gallery__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .45s cubic-bezier(.22,.61,.36,1); }
.as-gallery__item:hover img { transform: scale(1.09); }
.as-gallery__item::after { content: "🔍"; position: absolute; inset: 0; display: grid; place-items: center; font-size: 1.3rem; background: color-mix(in srgb, var(--as-secondary) 45%, transparent); color: #fff; opacity: 0; transition: opacity .2s; }
.as-gallery__item:hover::after { opacity: 1; }

/* ---- Lightbox ---- */
.as-lb { position: fixed; inset: 0; z-index: 2000; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .5rem; padding: clamp(.5rem, 3vw, 2rem); background: rgba(15,35,42,.92); opacity: 0; transition: opacity .25s ease; }
.as-lb[hidden] { display: none; }
.as-lb.is-open { opacity: 1; }
.as-lb__fig { grid-column: 2; margin: 0; display: flex; flex-direction: column; align-items: center; gap: .8rem; max-height: 92vh; }
.as-lb__img { max-width: 100%; max-height: 82vh; border-radius: 10px; box-shadow: 0 20px 60px rgba(0,0,0,.5); transform: scale(.96); transition: transform .25s ease; }
.as-lb.is-open .as-lb__img { transform: scale(1); }
.as-lb__cap { color: #fff; font-size: .95rem; text-align: center; max-width: 60ch; }
.as-lb__close { position: absolute; top: 1rem; right: 1.2rem; width: 2.8rem; height: 2.8rem; border: 0; border-radius: 999px; background: rgba(255,255,255,.14); color: #fff; font-size: 1.7rem; line-height: 1; cursor: pointer; transition: background .15s; }
.as-lb__close:hover { background: rgba(255,255,255,.28); }
.as-lb__nav { width: 3rem; height: 3rem; border: 0; border-radius: 999px; background: rgba(255,255,255,.14); color: #fff; font-size: 1.9rem; line-height: 1; cursor: pointer; transition: background .15s; }
.as-lb__nav:hover { background: rgba(255,255,255,.28); }
.as-lb__prev { grid-column: 1; }
.as-lb__next { grid-column: 3; }
body.as-lb-open { overflow: hidden; }
@media (max-width: 640px) { .as-lb__nav { position: absolute; bottom: 1rem; } .as-lb__prev { left: 1rem; } .as-lb__next { right: 1rem; } }

/* ---- Workshop detail page ---- */
.as-detail { --cat: var(--as-primary); }
.as-detail__back { display: inline-block; margin-bottom: 1rem; color: var(--as-secondary); font-weight: 600; }
.as-detail__back:hover { color: var(--as-primary); }
.as-detail__grid { display: grid; grid-template-columns: minmax(0,2fr) minmax(280px,1fr); gap: 2rem; align-items: start; }
.as-detail__media { aspect-ratio: 16/9; border-radius: var(--as-radius); overflow: hidden; border-top: 5px solid var(--cat); background: var(--as-bg); margin-bottom: 1.1rem; }
.as-detail__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.as-detail__title { color: var(--as-primary); margin: .5rem 0 1rem; font-size: clamp(1.7rem, 3.5vw, 2.4rem); }
.as-detail .as-chip { display: inline-block; color: #fff; font-size: .72rem; font-weight: 700; border-radius: 999px; padding: .25rem .7rem; text-transform: uppercase; letter-spacing: .3px; }
.as-detail__facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px,1fr)); gap: 1rem; margin: 0 0 1.75rem; }
.as-fact { --c: var(--cat, var(--as-primary)); position: relative; display: flex; flex-direction: column; gap: .3rem;
  background: var(--as-surface); border: 1px solid color-mix(in srgb, var(--c) 16%, var(--as-border)); border-radius: 16px;
  padding: 1.15rem 1.15rem 1rem; box-shadow: 0 8px 22px rgba(20,83,45,.06); overflow: hidden;
  transition: box-shadow .2s ease, border-color .2s ease; }
.as-fact::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 5px; background: linear-gradient(90deg, var(--c), color-mix(in srgb, var(--c) 45%, #fff)); }
.as-fact:hover { box-shadow: 0 16px 34px color-mix(in srgb, var(--c) 20%, transparent); border-color: var(--c); }
.as-fact__k { display: block; font-size: .74rem; color: rgba(34,48,60,.6); font-weight: 800; text-transform: uppercase; letter-spacing: .03em; }
.as-fact__v { display: block; font-weight: 800; color: var(--as-secondary); margin-top: .1rem; }
.as-detail__h2 { font-size: 1.25rem; color: var(--as-primary); margin: 1.5rem 0 .6rem; }
.as-detail__text { color: rgba(34,48,60,.88); line-height: 1.65; }

.as-wsintro { margin: 0 auto 2rem; }
.as-wsintro h2 { font-size: 1.3rem; color: var(--as-primary); }

/* ---- Workshop video card + modal ---- */
.as-videocard { position: relative; display: inline-flex; align-items: flex-end; width: min(280px, 100%); aspect-ratio: 16/10; border: 0; padding: 0; border-radius: 14px; overflow: hidden; cursor: pointer; background-size: cover; background-position: center; box-shadow: 0 8px 22px rgba(20,83,45,.16); }
.as-videocard::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.05), rgba(0,0,0,.55)); transition: background .18s; }
.as-videocard:hover::after { background: linear-gradient(180deg, rgba(0,0,0,.1), rgba(0,0,0,.4)); }
.as-videocard__play { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); z-index: 2; display: grid; place-items: center; width: 58px; height: 58px; border-radius: 50%; background: var(--as-accent); color: #fff; box-shadow: 0 6px 16px rgba(0,0,0,.3); transition: transform .18s; }
.as-videocard:hover .as-videocard__play { transform: translate(-50%,-50%) scale(1.08); }
.as-videocard__play svg { margin-left: 3px; }
.as-videocard__label { position: relative; z-index: 2; color: #fff; font-weight: 700; font-size: .9rem; padding: .7rem .9rem; text-shadow: 0 1px 4px rgba(0,0,0,.5); }
.as-vmodal { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 1rem; }
.as-vmodal[hidden] { display: none; }
.as-vmodal__backdrop { position: absolute; inset: 0; background: rgba(10,16,12,.82); backdrop-filter: blur(3px); }
.as-vmodal__box { position: relative; z-index: 2; width: min(920px, 100%); background: #000; border-radius: 14px; overflow: hidden; box-shadow: 0 20px 60px rgba(0,0,0,.5); }
.as-vmodal__player { display: block; width: 100%; max-height: 82vh; background: #000; }
.as-vmodal__close { position: absolute; top: -.2rem; right: .1rem; z-index: 3; transform: translateY(-110%); background: transparent; border: 0; color: #fff; font-size: 2.2rem; line-height: 1; cursor: pointer; }
@media (max-width: 640px) { .as-vmodal__close { transform: none; top: .3rem; right: .5rem; } }

/* Rich-text from the editor: restore list/formatting the site template resets globally */
.as-rte ul, .as-detail__text ul { list-style: disc outside !important; margin: 0 0 1rem !important; padding-left: 1.5rem !important; }
.as-rte ol, .as-detail__text ol { list-style: decimal outside !important; margin: 0 0 1rem !important; padding-left: 1.5rem !important; }
.as-rte ul ul, .as-detail__text ul ul { list-style: circle outside !important; margin: .2rem 0 !important; }
.as-rte li, .as-detail__text li { margin: .25rem 0 !important; display: list-item !important; }
.as-rte p, .as-detail__text p { margin: 0 0 .9rem; }
.as-rte h2, .as-rte h3, .as-rte h4, .as-detail__text h2, .as-detail__text h3, .as-detail__text h4 { margin: 1.2rem 0 .5rem; line-height: 1.25; }
.as-rte a, .as-detail__text a { color: var(--as-accent); text-decoration: underline; }
.as-rte blockquote, .as-detail__text blockquote { margin: 0 0 1rem; padding: .4rem 0 .4rem 1rem; border-left: 4px solid var(--as-accent); color: rgba(34,48,60,.75); font-style: italic; }
.as-rte img, .as-detail__text img { max-width: 100%; height: auto; border-radius: 8px; }

.as-bookbox { position: sticky; top: 1.5rem; background: var(--as-surface); border: 1px solid var(--as-border); border-radius: var(--as-radius); box-shadow: var(--as-shadow); padding: 1.4rem; border-top: 5px solid var(--cat); }
.as-bookbox__price { text-align: center; margin-bottom: .4rem; }
.as-bookbox__amount { font-size: 2.1rem; font-weight: 800; color: var(--as-primary); }
.as-bookbox__free { font-size: 1.6rem; font-weight: 800; color: var(--as-accent); }
.as-bookbox__seats { text-align: center; font-size: .85rem; font-weight: 600; color: #16a34a; margin: 0 0 1rem; }
.as-bookbox__seats.is-full { color: var(--as-accent); }
.as-bookbox__title { font-size: 1.1rem; color: var(--as-secondary); margin: 0 0 .9rem; }

/* ---- Form card (child edit, etc.) ---- */
.as-formcard { background: var(--as-surface); border: 1px solid var(--as-border); border-radius: var(--as-radius); box-shadow: var(--as-shadow); overflow: hidden; }
.as-formcard__body { padding: 1.6rem 1.7rem .4rem; }
.as-formsection { padding-bottom: 1.4rem; margin-bottom: 1.4rem; border-bottom: 1px dashed var(--as-border); }
.as-formsection:last-child { border-bottom: 0; margin-bottom: 0; }
.as-formsection__title { font-size: 1.05rem; color: var(--as-primary); margin: 0 0 1rem; padding-left: .7rem; border-left: 4px solid var(--as-accent); }
.as-formcard .form-label { font-weight: 600; font-size: .9rem; color: var(--as-secondary); }
.as-formcard .form-control { border-radius: 10px; border-color: var(--as-border); padding: .55rem .8rem; }
.as-formcard .form-control:focus { border-color: var(--as-primary); box-shadow: 0 0 0 .18rem color-mix(in srgb, var(--as-primary) 22%, transparent); }
.as-formcard__foot { display: flex; justify-content: flex-end; gap: .6rem; padding: 1.1rem 1.7rem; background: color-mix(in srgb, var(--as-primary) 5%, transparent); border-top: 1px solid var(--as-border); }

/* ---- Calendar ---- */
.as-cal { display: flex; flex-direction: column; }
.as-cal__day { display: grid; grid-template-columns: 84px 1fr; gap: 1rem; background: var(--as-surface); border: 1px solid var(--as-border); border-radius: var(--as-radius); box-shadow: 0 4px 16px rgba(20,80,99,.05); padding: 1rem 1.1rem; margin-bottom: .5rem; }
.as-cal__day:last-child { margin-bottom: 0; }
.as-cal__date { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; background: color-mix(in srgb, var(--as-primary) 8%, transparent); border-radius: 14px; padding: .6rem .2rem; }
.as-cal__num { font-size: 1.9rem; font-weight: 800; line-height: 1; color: var(--as-primary); }
.as-cal__mon { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--as-accent); margin-top: .15rem; }
.as-cal__dow { font-size: .85rem; text-transform: capitalize; color: rgba(34,48,60,.6); margin-top: .25rem; }
.as-cal__rows { display: flex; flex-direction: column; }
.as-cal__row { display: grid; grid-template-columns: 68px 1fr auto; align-items: center; gap: 1rem; padding: .7rem .3rem; border-bottom: 1px solid var(--as-border); text-decoration: none; color: var(--as-text, inherit); transition: background .15s; position: relative; }
.as-cal__row::before { content: ""; position: absolute; left: -0.25rem; top: 0; bottom: 0; width: 4px; background: var(--cat); border-radius: 4px; opacity: 0; transition: opacity .15s; }
.as-cal__row:hover { background: color-mix(in srgb, var(--cat) 7%, transparent); }
.as-cal__row:hover::before { opacity: 1; }
.as-cal__rows .as-cal__row:last-child { border-bottom: 0; }
.as-cal__time { display: flex; flex-direction: column; font-weight: 800; color: var(--as-secondary); line-height: 1.1; }
.as-cal__time small { font-weight: 600; font-size: .72rem; color: rgba(34,48,60,.55); }
.as-cal__info { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }
.as-cal__ttl { color: var(--as-primary); font-size: 1.02rem; }
.as-cal__ttl::before { content: ""; display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: var(--cat); margin-right: .5rem; vertical-align: middle; }
.as-cal__sub { font-size: .82rem; color: rgba(34,48,60,.62); }
.as-cal__mine { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; margin-top: .25rem; }
.as-cal__minelbl { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; color: rgba(34,48,60,.5); }
.as-cal__kid { font-size: .74rem; font-weight: 700; color: #fff; border-radius: 999px; padding: .1rem .5rem; line-height: 1.5; }
.as-cal__kid.is-on { background: #4ca64c; }
.as-cal__kid.is-pending { background: #f6b93b; color: #3a2f00; }
.as-cal__kid.is-wait { background: #9aa5b1; }
.as-cal__badges { display: flex; align-items: center; justify-content: flex-end; gap: .4rem; margin-left: auto; }

@media (max-width: 640px) {
  /* single column → time sits above the title */
  .as-cal__row { grid-template-columns: 1fr; gap: .35rem; }
  .as-cal__time { flex-direction: row; gap: .4rem; align-items: baseline; }
  .as-cal__time small { font-size: .78rem; }
  /* badges span the full width: seats on the left, price on the right */
  .as-cal__badges { grid-column: auto; margin-left: 0; padding-top: .2rem; }
  .as-cal--cart .as-cal__badges { align-items: stretch; }
  .as-cal__badgerow { justify-content: flex-start; align-items: center; width: 100%; }
  .as-cal__pick { align-self: flex-end; margin-top: .1rem; }
}
@media (max-width: 820px) {
  .as-detail__grid { grid-template-columns: 1fr; }
  .as-bookbox { position: static; }
}
@media (max-width: 640px) {
  .as-wsgrid { grid-template-columns: 1fr; }
}

/* Booking box: children already enrolled in this session */
.as-bookbox__enrolled{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column;gap:.4rem}
.as-bookbox__enrolled li{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .7rem;background:color-mix(in srgb,var(--as-primary) 6%,transparent);border:1px solid var(--as-border);border-radius:10px;font-size:.9rem;font-weight:600}

/* pending-payment child gets a small pay button under the status */
.as-bookbox__enrolled li{flex-direction:column;align-items:stretch;gap:.5rem}
.as-bookbox__erow{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.as-bookbox__pay{align-self:flex-start}

/* per-child dated session list (chronological, attendance for past) */
.as-seslist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}
.as-seslist__item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.82rem;font-weight:500;padding:.3rem .55rem;border-radius:8px;background:#fff;border:1px solid var(--as-border)}
.as-seslist__item.is-past{opacity:.85;background:color-mix(in srgb,var(--as-border) 30%,#fff)}
.as-seslist__dt{color:var(--as-secondary)}
.as-seslist .badge{font-weight:600}

/* ---- Portal dashboard cards ---- */
.as-dash{display:grid;grid-template-columns:1fr;gap:1.4rem}
@media(max-width:800px){.as-dash .as-dcard--pay{grid-column:auto}}
.as-dcard{display:flex;flex-direction:column;background:var(--as-surface);border:1px solid var(--as-border);border-radius:var(--as-radius);box-shadow:0 8px 26px rgba(20,83,45,.07);overflow:hidden}
.as-dcard__head{display:flex;align-items:center;gap:.7rem;padding:1rem 1.25rem;border-bottom:1px solid var(--as-border);background:linear-gradient(180deg,color-mix(in srgb,var(--cardc,var(--as-primary)) 12%,#fff),#fff)}
.as-dcard__ic{flex:0 0 auto;display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:14px;background:color-mix(in srgb,var(--cardc,var(--as-primary)) 18%,#fff);font-size:1.25rem}
.as-dcard__title{margin:0;font-size:1.05rem;font-weight:800;color:var(--as-secondary)}
.as-dcard__action{margin-left:auto;font-size:.82rem;font-weight:700;color:var(--as-primary);text-decoration:none;white-space:nowrap}
.as-dcard__action:hover{text-decoration:underline}
.as-dcard__total{margin-left:auto;font-weight:900;color:var(--as-accent);font-size:1.15rem}
.as-dcard__body{flex:1;padding:1rem 1.25rem 1.25rem}
.as-dcard--kids{--cardc:#1f7a4d}
.as-dcard--up{--cardc:#0891b2}
.as-dcard--pay{--cardc:#e0533d}
.as-kidlist,.as-uplist,.as-paylist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}
.as-kid{display:flex;align-items:center;gap:.8rem;padding:.55rem .65rem;border-radius:14px;background:color-mix(in srgb,var(--as-primary) 4%,transparent);transition:background .15s}
.as-kid:hover{background:color-mix(in srgb,var(--as-primary) 9%,transparent)}
.as-kid__avatar{flex:0 0 auto;width:2.6rem;height:2.6rem;border-radius:50%;display:grid;place-items:center;font-weight:800;color:#fff;background:var(--c,#1f7a4d);box-shadow:0 4px 10px color-mix(in srgb,var(--c,#1f7a4d) 45%,transparent)}
.as-kid__info{display:flex;flex-direction:column;line-height:1.15;min-width:0}
.as-kid__name{font-weight:700;color:var(--as-secondary)}
.as-kid__meta{font-size:.8rem;color:rgba(34,48,60,.6)}
.as-kid .as-tag{margin-left:auto}
.as-up{display:flex;align-items:center;gap:.85rem;padding:.45rem .55rem;border-radius:14px;transition:background .15s}
.as-up:hover{background:color-mix(in srgb,#0891b2 6%,transparent)}
.as-up__date{flex:0 0 auto;width:3rem;height:3rem;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;background:color-mix(in srgb,#0891b2 13%,#fff);color:#0e7490}
.as-up__date b{font-size:1.15rem;font-weight:900}
.as-up__date small{font-size:.62rem;text-transform:uppercase;letter-spacing:.03em;opacity:.85}
.as-pkgreq__row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.6rem 0;border-bottom:1px solid var(--as-border)}
.as-pkgreq__row:last-child{border-bottom:0}
.as-pkgreq__name{font-weight:700;color:var(--as-secondary,#14532d)}
.as-pkgreq__form{margin:0}
.as-up__date--month{width:10rem;height:auto;padding:.5rem .4rem;text-transform:none}
.as-up__date--month b{font-size:1rem;text-transform:none}
.as-up__date--month small{font-size:.7rem;text-transform:none;letter-spacing:0}
.as-up__info{display:flex;flex-direction:column;min-width:0}
.as-up__title{font-weight:700;color:var(--as-secondary)}
.as-up__meta{font-size:.82rem;color:rgba(34,48,60,.6)}
.as-pay{display:flex;align-items:center;flex-wrap:wrap;gap:.9rem;padding:.75rem .85rem;border:1px solid var(--as-border);border-radius:14px;background:#fff}
.as-pay__info{display:flex;flex-direction:column;min-width:0;flex:1}
.as-pay__desc{font-weight:700;color:var(--as-secondary)}
.as-pay__due{font-size:.8rem;color:rgba(34,48,60,.6)}
.as-pay__sessions{display:flex;flex-direction:column;gap:.15rem;margin-top:.4rem}
.as-pay__session{display:flex;flex-wrap:wrap;gap:.35rem;align-items:baseline;font-size:.8rem;padding-left:.75rem;position:relative}
.as-pay__session::before{content:"•";position:absolute;left:0;color:var(--as-accent)}
.as-pay__sesttl{font-weight:700;color:var(--as-secondary)}
.as-pay__sesdt{color:rgba(34,48,60,.6)}
.as-pay__amount{font-weight:900;color:var(--as-accent);font-size:1.05rem}
.as-pay__btn{flex:0 0 auto}
.as-tag{display:inline-block;font-size:.72rem;font-weight:800;padding:.28rem .6rem;border-radius:999px;white-space:nowrap}
.as-tag--primary{background:color-mix(in srgb,#2563eb 15%,#fff);color:#1d4ed8}
.as-tag--info{background:color-mix(in srgb,#0891b2 15%,#fff);color:#0e7490}
.as-tag--success{background:color-mix(in srgb,#16a34a 16%,#fff);color:#15803d}
.as-tag--warning{background:color-mix(in srgb,#d97706 18%,#fff);color:#b45309}
.as-tag--danger{background:color-mix(in srgb,#dc2626 15%,#fff);color:#b91c1c}
.as-tag--secondary{background:#eef0f2;color:#4b5563}
.as-empty{text-align:center;padding:1.5rem .5rem;color:rgba(34,48,60,.7)}
.as-empty__ic{display:block;font-size:2.2rem;margin-bottom:.5rem}
.as-empty p{margin:0 0 .9rem}
.as-empty--ok{color:#15803d}
.as-hbtn{display:inline-flex;align-items:center;gap:.45rem;font-weight:800;text-decoration:none;border-radius:999px;padding:.7rem 1.3rem;transition:transform .15s,box-shadow .15s}
.as-hbtn--sm{padding:.5rem .95rem;font-size:.88rem}
.as-hbtn--primary{background:linear-gradient(135deg,var(--as-accent),#ff8a3d);color:#fff;box-shadow:0 8px 18px color-mix(in srgb,var(--as-accent) 38%,transparent)}
.as-hbtn--primary:hover{transform:translateY(-2px);color:#fff}
.as-hbtn:disabled,.as-hbtn[disabled]{opacity:.5;cursor:not-allowed;box-shadow:none;filter:grayscale(.3)}
.as-hbtn:disabled:hover,.as-hbtn[disabled]:hover{transform:none}
.as-hbtn--ghost{background:#fff;color:var(--as-primary);border:2px solid color-mix(in srgb,var(--as-primary) 22%,transparent)}
.as-hbtn--ghost:hover{transform:translateY(-2px);color:var(--as-primary)}
.as-hbtn--danger{background:#fff;color:#b91c1c;border:2px solid color-mix(in srgb,#dc2626 25%,transparent)}
.as-hbtn--danger:hover{transform:translateY(-2px);background:#dc2626;color:#fff}

/* ---- Accent underline on every portal page title ---- */
body.com_afterschool h1.mb-4,body.com_afterschool h1.mb-2,body.com_afterschool h1.m-0{position:relative;color:var(--as-primary)}
body.com_afterschool h1.mb-4::after,body.com_afterschool h1.mb-2::after,body.com_afterschool h1.m-0::after{content:"";display:block;width:3.2rem;height:4px;margin-top:.55rem;background:var(--as-accent);border-radius:4px}

/* ---- Children page ---- */
.as-childgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem}
.as-childcard{display:flex;flex-direction:column;gap:.9rem;background:var(--as-surface);border:1px solid var(--as-border);border-radius:var(--as-radius);box-shadow:0 8px 26px rgba(20,83,45,.07);padding:1.15rem;transition:transform .18s ease,box-shadow .18s ease}
.as-childcard:hover{transform:translateY(-4px);box-shadow:var(--as-shadow)}
.as-childcard__top{display:flex;align-items:center;gap:.85rem}
.as-childcard__id{display:flex;flex-direction:column;gap:.3rem;min-width:0}
.as-childcard__name{margin:0;font-size:1.15rem;font-weight:800;color:var(--as-secondary)}
.as-childcard__status{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.as-childcard__status small{font-size:.72rem;color:rgba(34,48,60,.55);font-weight:600}
.as-childcard__meta{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem;font-size:.9rem;color:rgba(34,48,60,.78)}
.as-childcard__meta li{display:flex;gap:.5rem}
.as-childcard__foot{margin-top:auto;display:flex;gap:.5rem;flex-wrap:wrap}
.as-kid__avatar--lg{width:3.2rem;height:3.2rem;font-size:1.15rem}

/* ---- Payments page (uses .as-paylist) ---- */
.as-pay__actions{display:flex;gap:.5rem;flex:0 0 auto;flex-wrap:wrap}

/* ---- Documents page ---- */
.as-doclist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.7rem}
.as-doc{display:flex;align-items:center;gap:.9rem;padding:.85rem 1rem;background:var(--as-surface);border:1px solid var(--as-border);border-radius:14px;box-shadow:0 6px 18px rgba(20,83,45,.05);transition:transform .15s,box-shadow .15s}
.as-doc:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(20,83,45,.10)}
.as-doc__ic{flex:0 0 auto;display:grid;place-items:center;width:2.8rem;height:2.8rem;border-radius:12px;background:color-mix(in srgb,var(--as-primary) 12%,#fff);font-size:1.3rem}
.as-doc__info{display:flex;flex-direction:column;gap:.3rem;min-width:0;flex:1}
.as-doc__title{font-weight:700;color:var(--as-secondary)}
.as-doc__actions{flex:0 0 auto}

/* ---- Profile page ---- */
.as-profilecard{background:var(--as-surface);border:1px solid var(--as-border);border-radius:var(--as-radius);box-shadow:0 10px 30px rgba(20,83,45,.08);overflow:hidden}
.as-profilecard__head{display:flex;align-items:center;gap:1rem;padding:1.3rem 1.4rem;background:linear-gradient(180deg,color-mix(in srgb,var(--as-primary) 12%,#fff),#fff);border-bottom:1px solid var(--as-border)}
.as-profilecard__head h2{margin:0;font-size:1.2rem;font-weight:800;color:var(--as-secondary)}
.as-profilecard__head span{color:rgba(34,48,60,.65);font-size:.9rem}
.as-profile{list-style:none;margin:0;padding:.6rem 1.4rem 1.2rem}
.as-profile li{display:flex;align-items:center;gap:.8rem;padding:.7rem 0;border-bottom:1px solid var(--as-border)}
.as-profile li:last-child{border-bottom:0}
.as-profile .ic{flex:0 0 auto;font-size:1.15rem;width:1.6rem;text-align:center}
.as-profile .lbl{width:7rem;flex:0 0 auto;font-size:.82rem;font-weight:700;color:rgba(34,48,60,.55);text-transform:uppercase;letter-spacing:.02em}
.as-profile .val{font-weight:600;color:var(--as-secondary);word-break:break-word}
.as-profile__foot{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.2rem}

/* ---- Consents page ---- */
.as-consentcard{background:var(--as-surface);border:1px solid var(--as-border);border-radius:var(--as-radius);box-shadow:0 10px 30px rgba(20,83,45,.08);padding:1.4rem 1.5rem}
.as-consentcard h2{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:rgba(34,48,60,.55);margin:0 0 .8rem}
.as-consentcard h2:not(:first-child){margin-top:1.6rem}
.as-consent{display:flex;align-items:flex-start;gap:.75rem;padding:.85rem 1rem .85rem 3.5rem;border:1px solid var(--as-border);border-radius:12px;margin-bottom:.6rem;transition:background .15s,border-color .15s}
.as-consent:hover{background:color-mix(in srgb,var(--as-primary) 4%,transparent)}
.as-consent .form-check-input{width:2.6em;height:1.4em;margin-top:.1em;cursor:pointer}
.as-consent .form-check-input:checked{background-color:var(--as-primary);border-color:var(--as-primary)}
.as-consent label{cursor:pointer;font-weight:600;color:var(--as-secondary)}

/* ---- Calendar workshop dropdown filter ---- */
.as-wsfilter{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.as-wsfilter__lbl{font-weight:700;font-size:.9rem;color:var(--as-secondary)}
.as-wsfilter__sel{max-width:22rem}

/* ---- Your children's status on workshop cards/detail ---- */
.as-wskids{margin:.2rem 0 .4rem;padding:.6rem .7rem;border:1px dashed var(--as-border);border-radius:12px;background:color-mix(in srgb,var(--as-primary) 4%,transparent)}
.as-wskids__lbl{display:block;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:rgba(34,48,60,.55);margin-bottom:.35rem}
.as-wskids__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}
.as-wskids__item{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.as-wskids__name{font-weight:700;color:var(--as-secondary)}
.as-wskids__badge{font-size:.72rem;font-weight:700;padding:.15rem .5rem;border-radius:999px}
.as-wskids__badge.is-on{background:color-mix(in srgb,#16a34a 16%,#fff);color:#15803d}
.as-wskids__badge.is-pending{background:color-mix(in srgb,#d97706 18%,#fff);color:#b45309}
.as-wskids__badge.is-off{background:#eef0f2;color:#6b7280}

/* ---- Calendar cart (multi-session selection) ---- */
.as-tiers{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 0 1.25rem;padding:.6rem .9rem;border-radius:14px;
  background:color-mix(in srgb,var(--as-accent) 10%,#fff);border:1px dashed color-mix(in srgb,var(--as-accent) 35%,transparent)}
.as-tiers__lbl{font-weight:800;color:var(--as-secondary);font-size:.9rem}
.as-tiers__chip{font-size:.8rem;font-weight:700;color:var(--as-accent);background:#fff;border:1px solid color-mix(in srgb,var(--as-accent) 30%,transparent);border-radius:999px;padding:.2rem .6rem}
.as-cal__row{position:relative}
.as-cal__row[data-href]{cursor:pointer}
/* Right column: price/seats badges on top, on/off switch underneath */
.as-cal--cart .as-cal__badges{display:flex;flex-direction:column;align-items:flex-end;gap:.4rem}
.as-cal__badgerow{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.35rem}
.as-cal__seats{order:-1}
.as-cal__price{margin-left:auto}
.as-cal__pick{display:inline-flex;align-items:center;gap:.45rem;cursor:pointer;user-select:none}
.as-cal__picklbl{font-size:.78rem;font-weight:700;color:var(--as-secondary)}
.as-cal__check{appearance:none;-webkit-appearance:none;flex:0 0 auto;position:relative;width:46px;height:26px;border-radius:999px;background:#cbd5e1;cursor:pointer;transition:background .2s;border:0}
.as-cal__check:checked ~ *,.as-cal__pick:has(.as-cal__check:checked) .as-cal__picklbl{color:var(--cat,var(--as-primary))}
.as-cal__check::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .2s}
.as-cal__check:checked{background:var(--cat,var(--as-primary))}
.as-cal__check:checked::after{transform:translateX(20px)}
.as-cal__check:focus-visible{outline:2px solid var(--cat,var(--as-primary));outline-offset:2px}
.as-cal--cart .as-cal__row:has(.as-cal__check:checked){background:color-mix(in srgb,var(--cat,var(--as-primary)) 9%,transparent);box-shadow:inset 3px 0 0 var(--cat,var(--as-primary))}
.as-cal__row.is-full{opacity:.7}

.as-cart{position:sticky;bottom:0;z-index:30;margin-top:1.25rem}
body.as-has-cart{padding-bottom:5rem}
.as-cart__inner{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem 1.25rem;background:var(--as-surface);
  border:1px solid var(--as-border);border-radius:18px;box-shadow:0 -8px 30px rgba(20,83,45,.14);padding:1.2rem}
.as-cart__left{display:flex;align-items:center;gap:.5rem}
.as-cart__childlbl{margin:0;font-weight:700;font-size:.85rem;color:var(--as-secondary)}
.as-cart__child{min-width:12rem}
.as-cart__mid{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem 1.1rem;flex:1;font-size:.92rem;color:var(--as-secondary)}
.as-cart__mid b{color:var(--as-primary)}
.as-cart__disc b{color:var(--as-accent)}
.as-cart__total{font-weight:800}
.as-cart__total b{font-size:1.15rem;color:var(--as-accent)}
.as-cart__right{display:flex;gap:.5rem;margin-left:auto}
@media(max-width:640px){
  .as-cart__inner{gap:.7rem}
  .as-cart__left{width:100%;justify-content:center}
  .as-cart__child{flex:0 1 auto;min-width:0;max-width:16rem}
  /* each stat on its own line, centered */
  .as-cart__mid{flex-direction:column;align-items:center;text-align:center;gap:.2rem;width:100%}
  /* leave room on the right so the button never sits under the back-to-top arrow */
  .as-cart__right{margin-left:0;width:100%;padding-right:3.75rem}
  .as-cart__right .as-hbtn{flex:1;justify-content:center}
  .as-cart__right [data-clear]{flex:0 0 auto}
}
