/* 1.0.18 city-page booking cards — site colours (charcoal / gold; BRC II blue accent like the site's "experienced" class card). */
.cmacal-cb{margin:8px 0 26px;color:#f0f0f0;font-family:inherit;scroll-margin-top:110px}
.cmacal-cb .cmacal-cb-h{font-family:Rajdhani,Montserrat,sans-serif;font-weight:700;font-size:clamp(22px,2.6vw,30px);line-height:1.15;text-transform:uppercase;color:#f0a332;margin:0 0 6px;letter-spacing:.2px}
.cmacal-cb .cmacal-cb-sub{font-size:15px;color:#d8d8d8;margin:0 0 14px;max-width:760px}
.cmacal-cb-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.cmacal-cb-card{background:#2e2e2e;border:1px solid #3a3a3a;border-top:4px solid #f0a332;border-radius:4px;padding:18px 18px 14px;min-width:0}
.cmacal-cb-card.is-second{border-top-color:#5b8fd1}
.cmacal-cb .cmacal-cb-tag{font:700 12px/1 Montserrat,sans-serif;letter-spacing:1.5px;text-transform:uppercase;color:#f0a332;margin:0 0 8px}
.cmacal-cb-card.is-second .cmacal-cb-tag{color:#8fb6e8}
.cmacal-cb .cmacal-cb-title{font-family:Rajdhani,Montserrat,sans-serif;font-weight:700;font-size:24px;line-height:1.15;color:#fff;margin:0 0 6px;text-transform:none}
.cmacal-cb .cmacal-cb-price{margin:0 0 6px;color:#bdbdbd;font-size:14px}
.cmacal-cb .cmacal-cb-price strong{color:#f0a332;font:700 26px/1 Rajdhani,Montserrat,sans-serif;margin-right:6px}
.cmacal-cb .cmacal-cb-blurb{margin:0 0 12px;color:#e0e0e0;font-size:15px;line-height:1.45}
.cmacal-cb .cmacal-cb-loading{min-height:240px;margin:0;padding:16px;background:#fff;color:#555;border-radius:3px}
.cmacal-cb .cmacal-cb-more{margin:10px 0 0;font-size:14px}
.cmacal-cb .cmacal-cb-more a,.cmacal-cb .cmacal-cb-fine a,.cmacal-cb .cmacal-cb-none a{color:#f0a332}
/* The date list itself: the product page's box, compact inside the card (white box, dark text, like the product page). */
.cmacal-cb .cmacal{margin:0 0 10px;padding:12px;color:#222;border-radius:3px;z-index:auto;--cmacal-list-max:236px}
.cmacal-cb .cmacal legend{display:none}
.cmacal-cb .cmacal .cmacal-cost{display:none!important} /* price is in the card header */
.cmacal-cb .cmacal p,.cmacal-cb .cmacal label,.cmacal-cb .cmacal small{color:#222}
.cmacal-cb .cmacal .cmacal-info p,.cmacal-cb .cmacal .cmacal-info strong{color:#f0a332}
.cmacal-cb .cmacal-row{grid-template-columns:2.3fr 1.9fr .9fr 1.1fr;gap:.5rem;padding:.45rem .6rem;font-size:14px}
.cmacal-cb .cmacal-month-tab{min-height:40px;padding:.3rem .75rem;font-size:14px}
.cmacal-cb .cmacal .cmacal-month-title{display:none}
.cmacal-cb .cmacal-month-tab,.cmacal-cb .cmacal-month-tab:hover{text-decoration:none} /* 1.0.20: the site's link underline showed on the month tabs */
.cmacal-cb .cmacal-participants{display:flex;align-items:center;gap:12px;margin:.6em 0 .2em}
.cmacal-cb .cmacal-participants>label{margin:0}
.cmacal-cb .cmacal-comments textarea{min-height:2.6em}
.cmacal-cb .cmacal-cb-btn{display:block;width:100%;background:#f0a332!important;color:#242424!important;font:700 16px/1 Montserrat,sans-serif;padding:16px 20px;border:2px solid #f0a332;border-radius:2px;cursor:pointer;text-align:center}
.cmacal-cb .cmacal-cb-btn:hover{background:#ff9800!important;border-color:#ff9800}
.cmacal-cb form.cmacal-nodate .cmacal-cb-btn{opacity:.6}
.cmacal-cb .cmacal-cb-btn.loading{opacity:.6;pointer-events:none}
.cmacal-cb .cmacal-cb-msg{background:#3a2a12;border:1px solid #f0a332;border-left:4px solid #f0a332;color:#f5e6c8;padding:10px 12px;margin:0 0 10px;font-size:14px}
.cmacal-cb .cmacal-cb-fine{margin:8px 0 0;font-size:12.5px;color:#bdbdbd}
.cmacal-cb .cmacal-cb-none{margin:8px 0 0;color:#e0e0e0}
.cmacal-cb-wrap{padding:28px 0 8px!important}
@media (max-width:860px){.cmacal-cb-cards{grid-template-columns:1fr}}
@media (min-width:861px) and (max-width:1100px){.cmacal-cb .cmacal-row{grid-template-columns:1fr;gap:.1rem}.cmacal-cb .cmacal-head{display:none}.cmacal-cb .cmacal-time,.cmacal-cb .cmacal-venue,.cmacal-cb .cmacal-seats{padding-left:1.6rem;font-size:.9em;text-align:left}}
@media (max-width:640px){.cmacal-cb-card{padding:14px 12px 12px}.cmacal-cb .cmacal{padding:10px}.cmacal-cb .cmacal-row{grid-template-columns:1fr}}
@media (max-width:640px){.cmacal-cb{margin-top:0}.cmacal-cb .cmacal-cb-title{font-size:22px}.cmacal-cb .cmacal-cb-price strong{font-size:24px}.cmacal-cb .cmacal-cb-blurb{font-size:14px;margin-bottom:10px}}
/* City pages style every <section> with big padding; the date list's month panels are sections too. */
.cmacal-cb section.cmacal-month{padding:0!important;margin:0 0 .5rem!important;background:none!important}
.cmacal-cb .cmacal-cb-more{margin-top:8px}
/* 1.0.19: side-by-side cards are the same height on desktop. The row stretches both cards; header / dates / footer sit on
   shared rows (subgrid) so titles, prices, blurbs and date lists line up; the shorter card's white date panel takes the
   spare space, so Book now + fine print + "Full class details" sit at the bottom of both cards. Phones (stacked) keep
   natural heights. */
@media (min-width:861px){
.cmacal-cb-cards{align-items:stretch}
.cmacal-cb-card{display:flex;flex-direction:column}
.cmacal-cb-card>.cmacal-cb-body{flex:1 1 auto;display:flex;flex-direction:column}
.cmacal-cb-body>.cmacal-cb-form{flex:1 1 auto;display:flex;flex-direction:column}
.cmacal-cb-form>.cmacal{flex:1 1 auto}
.cmacal-cb-body>.cmacal-cb-loading{flex:1 1 auto}
@supports (grid-template-rows:subgrid){
.cmacal-cb-cards{row-gap:0}
.cmacal-cb-card{display:grid;grid-row:span 3;grid-template-rows:subgrid;row-gap:0}
.cmacal-cb-card:nth-child(n+3){margin-top:20px}
}
}
/* 1.0.20 phones / small tablets (<=860px, cards stacked). Nothing is hidden: the section heading, its sub line and each
   card's tag are visible again on phones (1.0.18-1.0.19 hid them there). Nothing in the page's own text, headings or
   source order changes either.
   1) "Dates first" (section class is-mfirst, option cmacal_city_mobile_first, default yes): when the cards sit right after
      the intro's lead paragraph (cmacal_city_position=after_lead), the intro becomes a flex column and the cards are shown
      right under the H1; the lead paragraph and the rest of the intro follow them, unchanged and visible. CSS order only:
      the HTML source order stays H1 > lead > cards. Desktop (>=861px) is not affected. Browsers without :has() keep the
      1.0.19 layout.
   2) Compact card: section padding from the city page's generic "section" rule removed, month tabs on one row, each
      date row on two lines (date + seats left / time + town), shorter Comments box, no 56px product-page ticker gap
      under the fine print, larger tap areas for the small links. */
@media (max-width:860px){
:where(*):has(> .lead + .cmacal-cb.is-mfirst){display:flex!important;flex-direction:column}
:where(*):has(> .lead + .cmacal-cb.is-mfirst) > :has(~ .lead + .cmacal-cb){order:-2}
:where(*):has(> .lead + .cmacal-cb.is-mfirst) > .cmacal-cb{order:-1;margin:4px 0 22px}
.cmacal-cb{padding:0!important}
.cmacal-cb-wrap{padding:16px 0 8px!important}
.cmacal-cb form.cart{padding-bottom:0!important}
}
@media (max-width:640px){
.cmacal-cb{display:flex;flex-direction:column}
.cmacal-cb .cmacal-cb-h{font-size:21px;margin:0 0 10px}
.cmacal-cb .cmacal-cb-sub{order:1;font-size:14px;line-height:1.45;margin:12px 0 0}
.cmacal-cb-cards{gap:16px}
.cmacal-cb .cmacal-cb-head{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:8px;align-items:start}
.cmacal-cb .cmacal-cb-head>*{grid-column:1/-1}
.cmacal-cb .cmacal-cb-head>.cmacal-cb-title{grid-column:1;grid-row:1}
.cmacal-cb .cmacal-cb-head>.cmacal-cb-tag{grid-column:2;grid-row:1;margin:3px 0 0;padding:4px 7px;border:1px solid currentColor;border-radius:3px;font-size:11px;letter-spacing:1px;white-space:nowrap}
.cmacal-cb .cmacal-cb-blurb{line-height:1.4}
.cmacal-cb .cmacal{min-width:0}
.cmacal-cb .cmacal-months{flex-wrap:wrap;gap:6px;margin-bottom:8px}
.cmacal-cb .cmacal-month-tab{flex:1 1 60px;min-width:0;min-height:40px;padding:.25rem .2rem;font-size:13px;white-space:nowrap}
.cmacal-cb .cmacal-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"d s" "t v";gap:.15rem .5rem;min-height:44px;padding:.5rem .6rem;align-items:baseline}
.cmacal-cb .cmacal-row>.cmacal-date{grid-area:d;font-weight:600}
.cmacal-cb .cmacal-row>.cmacal-seats{grid-area:s;padding-left:0;text-align:right;white-space:nowrap;font-size:.9em}
.cmacal-cb .cmacal-row>.cmacal-time{grid-area:t;padding-left:1.6rem;font-size:.86em}
.cmacal-cb .cmacal-row>.cmacal-venue{grid-area:v;padding-left:0;text-align:right;font-size:.86em}
.cmacal-cb .cmacal-participants{margin:.5em 0 .1em}
.cmacal-cb .cmacal .cmacal-info{margin-top:8px;padding:6px 10px 8px}
.cmacal-cb .cmacal-ack{margin:.5em 0}
.cmacal-cb .cmacal-ack label{font-size:15px;line-height:1.4}
.cmacal-cb .cmacal-comments{margin-bottom:6px}
.cmacal-cb .cmacal-comments label{font-size:15px;margin-bottom:.25em}
.cmacal-cb .cmacal-comments textarea{height:3.4em;min-height:3.4em}
.cmacal-cb .cmacal-cb-btn{padding:15px 20px}
.cmacal-cb .cmacal-cb-fine a{display:inline-block;padding:5px 0}
.cmacal-cb .cmacal-cb-more{margin-top:4px}
.cmacal-cb .cmacal-cb-more a{display:inline-block;padding:9px 0}
.cmacal-cb .cmacal-cb-loading{min-height:420px}
}
@media (max-width:359px){.cmacal-cb .cmacal-month-tab{flex:1 1 0;font-size:12px;padding:.25rem 0;min-width:0}.cmacal-cb .cmacal-months{gap:4px}}
