/* Page-local presentation; branding, typography and site chrome remain shared. */
.crash-course { background: white; }
.crash-course main { --cc-border: #dce3dc; --cc-muted: #516257; }
.crash-course [hidden] { display: none !important; }
.crash-course main .container { max-width: 1200px; }
.crash-course .cc-warm { background: #f7f7f2; }
.crash-course .hub-hero { padding-bottom: 72px; }
.crash-course h2 { font-size: clamp(1.8rem, 3vw, 2.65rem); }
.crash-course h3 { font-size: 1.3rem; }
.crash-course .hub-section-intro p:last-child { color: var(--text-mid); }
.cc-hero-layout { display: grid; grid-template-columns: 1.35fr 1fr; gap: 64px; align-items: center; }
.crash-course .hub-hero h1 { font-size: clamp(2.4rem, 4.1vw, 3.65rem); line-height: 1.13; }
.crash-course .hub-headline { color: #f0d394; font-size: 1.15rem; font-weight: 400; max-width: 490px; }
.cc-hero-price { display: flex; align-items: center; gap: 20px; margin-top: 28px; }
.cc-hero-price span { max-width: none; font-size: .87rem; color: #e1e9e4; }
.crash-course .hub-actions a { padding-inline: 20px; font-size: .85rem; }
.cc-glance { min-width: 0; container-type: inline-size; border: 1px solid #668573; border-radius: 24px; padding: 30px; background: radial-gradient(ellipse at top right, #345b43 0, transparent 65%), #193b2b; box-shadow: 0 24px 60px #071c2433, inset 0 1px 0 #ffffff12; }
.cc-panel-label { display: flex; align-items: center; gap: 8px; font-size: .7rem; color: #d8e3dc; margin: 0 0 16px; letter-spacing: .03em; }
.cc-panel-label > span { width: 6px; height: 6px; border-radius: 50%; background: #ebcf91; box-shadow: 0 0 0 4px #ebcf9114; }
.crash-course .cc-glance h2 { color: white; font-family: 'Lato', sans-serif; font-size: clamp(.8rem, 5.5cqi, 1.65rem); font-weight: 700; line-height: 1.3; letter-spacing: -.035em; white-space: nowrap; margin: 0; }
.cc-glance-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 26px 0 20px; gap: 12px; }
.cc-glance-grid > div { display: flex; flex-direction: column-reverse; gap: 14px; border: 1px solid #ffffff1c; border-radius: 16px; padding: 20px 16px; background: #ffffff06; }
.cc-glance-grid dt { font-size: .72rem; color: #d8e3dc; font-weight: 400; line-height: 1.5; }
.cc-glance-grid dt i, .cc-glance-grid dt svg { color: #e5cd99; margin-right: 4px; }
.cc-glance-grid dd { color: white; font-size: 2.5rem; font-weight: 700; line-height: 1.1; letter-spacing: -.04em; margin: 0; }
.cc-glance-grid dd span { font-size: .85rem; font-weight: 400; letter-spacing: 0; color: #d8e3dc; }
.cc-glance-grid .cc-small-value { font-size: 2rem; line-height: 1.375; }
.cc-glance-grid .cc-glance-price { background: #ecd49d; border-color: #ecd49d; }
.cc-glance-price dt, .cc-glance-price dd { color: #193b2b; }
.cc-glance-footer { display: flex; align-items: center; justify-content: center; gap: 8px; color: #d8e3dc; font-size: .75rem; margin: 0; }
.cc-glance-footer i, .cc-glance-footer svg { color: #e5cd99; }
.cc-benefits { border-bottom: 1px solid var(--cc-border); padding-block: 32px; }
.cc-benefit-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); }
.cc-benefit-grid > div { padding: 0 24px; border-right: 1px solid var(--cc-border); }
.cc-benefit-grid > div:first-child { padding-left: 0; }
.cc-benefit-grid > div:last-child { border: 0; }
.cc-benefit-grid svg { color: var(--green-light); font-size: 1.2rem; margin-bottom: 12px; }
.crash-course .cc-benefits h2 { font: 700 .95rem/1.45 'Lato',sans-serif; }
.cc-benefits p { font-size: .85rem; color: var(--cc-muted); margin-bottom: 0; }
.cc-audience, .cc-learning { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.cc-audience article { display: flex; gap: 20px; border: 1px solid var(--cc-border); border-radius: 12px; padding: 28px; background: white; }
.cc-audience article > svg { flex-shrink: 0; color: var(--green-light); margin-top: 4px; font-size: 1.2rem; }
.cc-audience p, .cc-learning p { margin: 12px 0 0; color: var(--text-mid); font-size: .95rem; }
.cc-learning article { display: flex; gap: 24px; padding: 30px; border: 1px solid var(--cc-border); border-radius: 12px; }
.cc-number { color: #80601b; font: 400 1.8rem/1.2 'Playfair Display',serif; }
.cc-confidence { background: #fbf6e8; border-color: #c4a455 !important; }
.cc-tag { display: inline-block; color: #715313; font-size: .65rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 700; margin-bottom: 14px; }
.cc-mock-layout { display: grid; grid-template-columns: .85fr 1.2fr; gap: 72px; align-items: center; }
.cc-mock-panel { position: relative; overflow: hidden; isolation: isolate; background: radial-gradient(ellipse at 90% 5%, #3e6c54 0, transparent 58%), #143b2c; color: white; border-radius: 28px; padding: 32px; border: 1px solid #ffffff24; box-shadow: 0 24px 50px -24px #173c2c66; }
.cc-mock-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.cc-mock-eyebrow { color: #d6e5dc; font: 700 .65rem/1.5 'Lato', sans-serif; text-transform: uppercase; letter-spacing: .12em; }
.cc-mock-duration { display: inline-flex; align-items: center; gap: 7px; flex-shrink: 0; padding: 7px 10px; border: 1px solid #ffffff2b; border-radius: 20px; color: #f2ead5; font-size: .75rem; background: #ffffff08; }
.cc-mock-visual { position: relative; width: 160px; height: 132px; margin: 22px auto 18px; }
.cc-mock-orbit { position: absolute; width: 120px; height: 120px; border: 1px solid #c7ddc929; border-radius: 50%; top: 6px; left: 20px; box-shadow: 0 0 0 16px #d5e8d405; }
.cc-mock-avatar { position: absolute; display: grid; place-items: center; width: 76px; height: 76px; top: 28px; left: 42px; border-radius: 25px; background: linear-gradient(145deg, #e4edda, #b5cfb3); color: #254b37; font-size: 2rem; box-shadow: 0 12px 26px #071c2440; transform: rotate(-7deg); }
.cc-mock-avatar svg { transform: rotate(7deg); }
.cc-mock-feedback { position: absolute; display: grid; place-items: center; width: 48px; height: 42px; right: 4px; top: 12px; border-radius: 16px 16px 16px 4px; background: #edd59c; color: #36533d; font-size: 1.3rem; transform: rotate(8deg); }
.cc-mock-check { position: absolute; display: grid; place-items: center; width: 30px; height: 30px; bottom: 10px; left: 18px; border-radius: 50%; background: #355f47; color: #dcebc9; border: 1px solid #90b18a66; font-size: .75rem; }
.cc-mock-kicker { display: block; color: #e9d49f; font-size: .7rem; letter-spacing: .04em; margin-bottom: 10px; }
.crash-course .cc-mock-panel h3 { color: #fff; font: 700 clamp(1.7rem, 2.6vw, 2.25rem)/1.12 'Lato', sans-serif; letter-spacing: -.045em; margin: 0 0 14px; }
.cc-mock-panel .cc-mock-description { color: #cbded2; font-size: .9rem; line-height: 1.65; max-width: 300px; margin: 0 0 26px; }
.cc-mock-included { display: flex; align-items: center; gap: 12px; padding-top: 20px; border-top: 1px solid #ffffff20; }
.cc-mock-included-icon { display: grid; place-items: center; width: 30px; height: 30px; flex-shrink: 0; border-radius: 50%; color: #e8d5a5; background: #ffffff0c; font-size: .75rem; }
.cc-mock-included strong { display: block; color: #f0f4e9; font-size: .8rem; font-weight: 700; }
.cc-mock-included div > span { display: block; color: #bdcfc2; font-size: .7rem; margin-top: 4px; line-height: 1.5; }
.cc-note { font-size: .85rem; color: var(--cc-muted); }
.cc-note a, .cc-contact, .cc-intakes a { text-decoration: underline; text-underline-offset: 4px; }
.cc-book-intro { max-width: 750px; margin: -12px 0 36px; color: var(--text-mid); }
.cc-book-layout { display: grid; grid-template-columns: 1.45fr 1fr; gap: 36px; align-items: start; }
.cc-intakes { min-width: 0; }
.cc-intakes legend { font: 500 1.4rem/1.4 'Playfair Display',serif; margin-bottom: 12px; }
.cc-date-card { display: flex; align-items: center; gap: 20px; position: relative; border: 1px solid var(--cc-border); border-radius: 12px; padding: 22px; margin-bottom: 14px; cursor: pointer; background: white; }
.cc-date-card:has(input:checked) { border-color: var(--green-light); background: #eff6f0; box-shadow: inset 0 0 0 1px var(--green-light); }
.cc-date-card:has(input:focus-visible) { outline: 3px solid var(--gold-dark); outline-offset: 3px; }
.cc-date-card input { width: 19px; height: 19px; accent-color: var(--green-mid); margin-left: auto; flex-shrink: 0; }
.cc-date-badge { display: flex; flex-direction: column; text-align: center; justify-content: center; width: 60px; min-height: 70px; border: 1px solid var(--cc-border); border-radius: 8px; background: white; flex-shrink: 0; font-size: .65rem; letter-spacing: .08em; }
.cc-date-badge strong { font-size: 1.7rem; line-height: 1.25; letter-spacing: 0; font-weight: 400; }
.cc-date-copy { min-width: 0; }
.cc-date-copy strong { display: block; color: var(--green-deep); font-size: 1rem; }
.cc-date-copy span { display: block; color: var(--cc-muted); font-size: .78rem; margin-top: 3px; }
.cc-date-copy .cc-status { font-size: .7rem; color: #715313; margin-top: 8px; }
.cc-summary { position: sticky; top: 120px; padding: 32px; border: 1px solid var(--cc-border); border-top: 3px solid var(--green-mid); border-radius: 14px; box-shadow: 0 12px 40px #0f2d1f08; }
.cc-summary h3 { margin-bottom: 24px; }
.cc-summary-label { display: block; font-size: .75rem; color: var(--cc-muted); margin-bottom: 5px; }
.cc-course-name { font-weight: 700; line-height: 1.5; }
.cc-selected { padding: 18px; background: #f0f5ef; border-radius: 8px; margin-block: 24px; }
.cc-selected strong { display: block; color: var(--green-deep); }
#selected-times { display: block; font-size: .75rem; margin-top: 6px; color: var(--cc-muted); }
.cc-summary-facts { border-bottom: 1px solid var(--cc-border); padding-bottom: 20px; margin-bottom: 20px; font-size: .85rem; }
.cc-summary-facts div { display: flex; justify-content: space-between; gap: 16px; margin-top: 8px; }
.cc-summary-facts dt { font-weight: 400; color: var(--cc-muted); }
.cc-summary-facts dd { font-weight: 700; margin: 0; }
.crash-course .cc-price { font-size: 3rem; line-height: 1.2; font-weight: 700; margin: 12px 0; }
.cc-summary > p:not(.cc-price,.cc-course-name) { font-size: .85rem; }
#booking-cta { width: 100%; margin-top: 12px; }
#booking-cta:disabled { background: #e4e7df; border-color: #e4e7df; color: #586252; cursor: not-allowed; box-shadow: none; transform: none; }
.cc-booking-message, .cc-secure { text-align: center; margin-top: 12px; }
.cc-contact { display: block; text-align: center; font-size: .8rem; }
.cc-process { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 36px; list-style: none; padding: 0; margin: 0; }
.cc-process li { border-top: 1px solid #bcc9bd; padding-top: 24px; }
.cc-process h3 { margin: 20px 0 14px; }
.cc-process p { color: var(--text-mid); }
.cc-faq-wrap { max-width: 860px; margin: auto; }
.cc-faq { border-bottom: 1px solid var(--cc-border); }
.cc-faq summary { padding: 24px 8px; color: var(--green-deep); font-weight: 700; cursor: pointer; }
.cc-faq summary::marker { color: var(--green-light); }
.cc-faq p { padding: 0 8px 24px; margin: 0; color: var(--text-mid); }
.cc-faq-wrap > .cc-note { margin-top: 28px; }
.crash-course .hub-final h2 { font-size: clamp(2rem, 3vw, 3rem); }
.crash-course .hub-final .section-label { color: var(--gold-light); margin-bottom: 20px; }
.crash-course .hub-final .cc-price { margin: 28px auto 12px; color: var(--gold-light); }
@media (max-width: 1100px) { .cc-hero-layout { gap: 32px; } .cc-glance { padding: 26px; } .cc-book-layout { gap: 24px; } .cc-summary { padding: 24px; } }
@media (max-width: 991px) { .cc-benefit-grid { grid-template-columns: 1fr 1fr; gap: 24px 0; } .cc-benefit-grid > div:nth-child(odd) { padding-left: 0; } .cc-benefit-grid > div:nth-child(even) { border-right: 0; } .cc-hero-layout { grid-template-columns: 1fr; } .cc-glance { max-width: 650px; } .cc-mock-layout { gap: 32px; } .cc-book-layout { grid-template-columns: 1fr; } .cc-summary { position: static; } }
@media (max-width: 767px) { .cc-audience, .cc-learning, .cc-mock-layout, .cc-process { grid-template-columns: 1fr; } .crash-course .hub-hero { padding-bottom: 40px; } .cc-learning article, .cc-audience article { padding: 24px; gap: 18px; } .cc-mock-panel { padding: 32px; } .cc-hero-price { flex-wrap: wrap; } .cc-hero-price span { max-width: none; } .cc-benefit-grid > div { padding-inline: 16px; } .cc-date-card { padding: 16px; gap: 12px; } }
@media (max-width: 359px) { .cc-benefit-grid { grid-template-columns: 1fr; } .cc-benefit-grid > div { padding: 16px 0; border-right: 0; border-bottom: 1px solid var(--cc-border); } .cc-date-badge { width: 44px; } .cc-date-card { padding: 12px; gap: 10px; } .cc-date-copy strong { font-size: .9rem; } .cc-summary { padding: 22px; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
/* Match footer row gutters to the container on this route at tablet widths. */
.crash-course .footer-top .row { --bs-gutter-x: 1.5rem; }
/* Shared course, with separate group booking and individual availability routes. */
.cc-format-cards { display: grid; gap: 14px; margin: 24px 0 20px; }
.cc-format-card { padding: 20px; border: 1px solid #ffffff26; border-radius: 16px; background: #ffffff06; }
.cc-format-card .cc-format-tag { color: #e5cd99; font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; margin: 0 0 8px; }
.crash-course .cc-format-card h3 { color: white; font: 700 1.15rem/1.35 'Lato', sans-serif; margin: 0; }
.cc-format-card .cc-format-price { color: white; font-size: 2.2rem; font-weight: 700; line-height: 1.2; margin: 10px 0; }
.cc-format-card p { color: #e1e9e4; font-size: .85rem; margin-bottom: 12px; }
.cc-format-card .cc-format-schedule { font-size: .75rem; color: #d8e3dc; }
.cc-format-card a { display: flex; justify-content: center; padding: 11px 12px; font-size: .8rem; text-align: center; }
.cc-format-individual { border-color: #e5cd9970; background: #e5cd990c; }
#book-course { background: #f7f8f4; }
#book-course > .container > .hub-section-intro { max-width: 760px; margin-bottom: 28px; }
.cc-format-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.cc-choice { display: flex; flex-direction: column; padding: 28px; border: 1px solid #d8e1d7; border-radius: 20px; text-decoration: none; box-shadow: 0 6px 20px #183b2b05; }
.cc-choice-group { background: #193b2b; color: #fff; border-color: #193b2b; }
.cc-choice-one { background: #fffdf7; color: #193b2b; border-color: #ded5bb; }
.cc-choice:hover { box-shadow: 0 10px 28px #183b2b18; }
.cc-choice-group:hover { color: white; background: #214932; }
.cc-choice-one:hover { color: #193b2b; background: #faf6e9; }
.cc-choice:focus-visible { outline: 3px solid #b58a36; outline-offset: 4px; }
.cc-choice-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; }
.cc-choice-icon { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 12px; background: #ffffff12; color: #efd496; font-size: 1.1rem; }
.cc-choice-one .cc-choice-icon { color: #80601b; background: #efe5cc; }
.cc-choice-price { font-size: 2rem; font-weight: 700; line-height: 1; letter-spacing: -.04em; }
.cc-choice > strong { font-size: 1.3rem; margin-bottom: 6px; }
.cc-choice-description { font-size: .95rem; line-height: 1.5; }
.cc-choice-detail { font-size: .8rem; margin-top: 14px; color: #d5e2d8; }
.cc-choice-one .cc-choice-detail { color: #586451; }
.cc-choice-action { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid #ffffff26; margin-top: 22px; padding-top: 16px; font-size: .85rem; font-weight: 700; color: #f0d394; }
.cc-choice-one .cc-choice-action { border-color: #ded5bb; color: #193b2b; }
.cc-shared-inclusions { display: flex; align-items: baseline; justify-content: center; gap: 10px; margin: 20px 0 36px; color: #516257; font-size: .85rem; text-align: center; }
.cc-shared-inclusions svg { color: #477450; flex-shrink: 0; }
.cc-group-panel { padding: 30px; border: 1px solid #dce3dc; border-radius: 22px; background: white; }
.cc-book-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid #e5e9e2; padding-bottom: 22px; margin-bottom: 26px; }
.cc-book-heading .section-label { font-size: .65rem; margin-bottom: 8px; }
.crash-course .cc-book-heading h3 { font-size: 1.65rem; margin: 0; }
.cc-book-badge { display: inline-flex; align-items: center; gap: 8px; background: #eef4ec; color: #385b40; border-radius: 24px; padding: 8px 12px; font-size: .75rem; white-space: nowrap; }
.cc-group-panel .cc-summary { background: #f7f8f4; box-shadow: none; border: 1px solid #e2e7dd; padding: 24px; }
.cc-group-panel .cc-intakes legend { font: 700 1rem/1.4 'Lato', sans-serif; }
@media (max-width: 767px) { .cc-format-links { grid-template-columns: 1fr; gap: 14px; } .cc-choice { padding: 24px; } .cc-group-panel { padding: 20px; } .cc-book-heading { align-items: flex-start; flex-direction: column; } .cc-shared-inclusions { text-align: left; } }
#group-booking, #individual-booking { scroll-margin-top: 120px; }
.cc-individual-booking { display: grid; grid-template-columns: 1.3fr 1fr; align-items: center; gap: 36px; border: 1px solid #d7dfd2; border-radius: 20px; padding: 36px; margin-top: 48px; background: #f4f6ef; }
.cc-individual-booking .section-label { color: #715313; }
.cc-individual-booking p { color: var(--cc-muted); }
.cc-individual-booking .cc-note { margin-bottom: 0; font-weight: 700; }
.cc-individual-actions { display: flex; flex-direction: column; gap: 12px; }
.cc-individual-actions a { text-align: center; padding: 14px 16px; font-size: .85rem; }
.cc-individual-actions p { font-size: .75rem; text-align: center; margin: 0; }
@media (min-width: 600px) and (max-width: 991px) { .cc-format-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .cc-individual-booking { grid-template-columns: 1fr; padding: 24px; gap: 24px; } }
