/* Logo-aligned navy and mint with a warm neutral canvas. */
body:not(.admin-body){--paper:#faf6ed;--cream:#f2eadc;--line:#d7e2db;--brand-accent:#006b57;background:var(--paper)}
body:not(.admin-body) .site-header{background:#faf6edf5}
body:not(.admin-body) .button-primary{background:var(--brand-accent);border-color:var(--brand-accent);color:#fff}
body:not(.admin-body) .button-primary:hover{background:#004e40}
body:not(.admin-body) .section-label{color:var(--brand-accent)}
body:not(.admin-body) .hero-copy h1 em{color:var(--brand-accent)}
body:not(.admin-body) .notice{background:#edf4ef;border-color:var(--line);color:var(--ink)}
.training-bento{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:36px;align-items:start}
.training-bento .catalogue-card{padding:28px;border-radius:18px;background:#fffdf8;min-width:0;position:relative;overflow:hidden}
.training-bento .catalogue-card:first-child{background:#e7f3ed}
.training-bento .catalogue-card:first-child{border-top:4px solid var(--brand-accent)}
.training-bento .catalogue-card h2{font-size:clamp(25px,2.5vw,35px);margin:25px 0 12px;max-width:640px}
.training-bento .catalogue-card p{max-width:650px;line-height:1.65}
.training-bento .course-topline{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;text-transform:none;letter-spacing:0;font-weight:600;color:#33594d}
.outcome-kicker{font-size:11px!important;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--brand-accent);margin:24px 0 5px!important}
.training-bento .course-outcome{font:700 clamp(21px,2vw,28px)/1.28 var(--manrope);letter-spacing:-.025em;color:var(--ink);margin:0 0 12px}
.training-bento .catalogue-card h2{margin:20px 0 10px;font-size:clamp(22px,2vw,29px)}
.course-concepts{max-width:750px;line-height:1.65;color:#3d5360}
.training-bento .card-bottom{flex-wrap:wrap;gap:18px}
.training-bento .card-bottom strong{font-size:24px}
.roadmap-link{margin:25px 0 0;text-align:right}
.roadmap-heading{margin-top:clamp(56px,7vw,90px)}
.roadmap-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:27px}
.roadmap-card{min-width:0;padding:24px;border:1px solid var(--line);border-radius:18px;background:#fffdf8;display:flex;flex-direction:column}
.roadmap-card h3{font:750 clamp(21px,2vw,27px)/1.18 var(--manrope);letter-spacing:-.03em;margin:8px 0 12px}
.roadmap-card>p:not(.section-label){font-size:14px;line-height:1.55;color:#3d5360}
.roadmap-card .project-destination{margin:16px 0}
.roadmap-card .project-destination strong{font-size:15px}
.roadmap-card .roadmap-meta{font-weight:700;color:var(--ink)!important;margin-top:auto}
.roadmap-card .text-link{margin-top:10px}
.project-destination{border-left:3px solid var(--brand-accent);padding:8px 0 8px 16px;margin:16px 0 22px}
.project-destination small{display:block;font-size:10px;letter-spacing:.12em;color:#33594d;margin-bottom:7px;font-weight:700}
.project-destination strong{display:block;font-size:18px;line-height:1.4;color:var(--ink)}
.course-section{padding-top:96px}
.level-jump{display:flex;flex-wrap:wrap;gap:10px;margin:30px 0 22px}
.level-jump a{display:inline-flex;align-items:center;gap:10px;padding:10px 15px;border:1px solid #bdd2c8;border-radius:999px;color:var(--ink);background:#fffdf8;text-decoration:none;font-size:13px;font-weight:700;transition:background .2s,border-color .2s,transform .2s}
.level-jump a:hover,.level-jump a:focus-visible{background:#e7f3ed;border-color:var(--brand-accent);transform:translateY(-2px)}
.level-jump span{color:var(--brand-accent);font-size:11px;letter-spacing:.08em}
.learning-level{padding:22px 0 56px;scroll-margin-top:18px}
.level-ribbon{position:sticky;top:0;z-index:4;display:flex;align-items:center;gap:22px;padding:17px 24px;border-radius:14px;background:var(--navy);color:#fff;box-shadow:0 14px 32px rgba(20,43,59,.13)}
.level-2 .level-ribbon{background:#075d50}
.level-3 .level-ribbon{background:#17394a}
.level-ribbon-number{font:800 43px/1 var(--manrope);letter-spacing:-.07em;color:#77e0bc}
.level-ribbon p{margin:0 0 2px;color:#b8ded1;font-size:10px;font-weight:700;letter-spacing:.11em;text-transform:uppercase}
.level-ribbon h3{margin:0;font:750 clamp(19px,2.2vw,27px)/1.15 var(--manrope);letter-spacing:-.035em}
.level-ribbon-desc{margin-left:auto;max-width:245px;color:#d7e8df;font-size:13px;line-height:1.4;text-align:right}
.home-course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}
.home-course-card{min-width:0;min-height:324px;padding:26px 28px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:17px;background:#fffdf8;box-shadow:0 5px 22px rgba(20,43,59,.035);transition:opacity .55s ease,transform .55s ease,box-shadow .25s ease,border-color .25s ease}
.home-course-card:hover{box-shadow:0 18px 36px rgba(20,43,59,.09);border-color:#a9cfc0}
.home-course-card.will-reveal{opacity:0;transform:translateY(28px)}
.home-card-top{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:#49695f;font-size:10px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}
.home-card-top span:last-child{color:#60736d;letter-spacing:0;text-transform:none}
.home-course-card h4{margin:15px 0 9px;color:var(--navy);font:800 clamp(25px,2.6vw,34px)/1.15 var(--manrope);letter-spacing:-.045em}
.level-2 .home-course-card h4{color:#075d50}
.home-card-outcome{margin:0;color:#3b535b;font-size:14px;line-height:1.55;max-width:55ch}
.home-card-project{margin:23px 0 19px;padding-left:13px;border-left:3px solid var(--brand-accent)}
.home-card-project small{display:block;margin-bottom:4px;color:#4a675b;font-size:10px;font-weight:750;letter-spacing:.1em}
.home-card-project strong{display:block;color:var(--ink);font:700 15px/1.4 var(--manrope)}
.home-card-footer{display:flex;align-items:end;justify-content:space-between;gap:12px;padding-top:15px;margin-top:auto;border-top:1px solid var(--line)}
.home-card-footer p{margin:0;color:#4b625e;font-size:12px;line-height:1.55}
.home-card-footer p strong{color:var(--navy);font-weight:750}
.home-card-footer .text-link{white-space:nowrap;font-size:13px}
.home-card-actions{display:flex;align-items:center;gap:15px;flex:none}
.home-card-dates{min-height:44px;padding:10px 15px;border:1px solid #006b57;border-radius:9px;background:#006b57;color:#fff;font:750 13px var(--manrope);cursor:pointer;white-space:nowrap;transition:background .2s,transform .2s,box-shadow .2s}
.home-card-dates:hover,.home-card-dates:focus-visible{background:#004e40;box-shadow:0 8px 18px rgba(0,107,87,.16);transform:translateY(-2px)}
.home-card-dates:focus-visible,.session-dialog-close:focus-visible,.session-option-action:focus-visible{outline:3px solid #7ad5ad;outline-offset:3px}
.session-dialog-open{overflow:hidden}
.course-session-dialog{position:fixed;inset:0;width:min(1080px,calc(100vw - 32px));max-width:none;max-height:min(86dvh,900px);margin:auto;padding:0;overflow:hidden;border:1px solid #c7dacf;border-radius:23px;background:rgba(250,246,237,.96);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);color:var(--navy);box-shadow:0 30px 95px rgba(8,35,43,.26)}
.course-session-dialog::backdrop{background:rgba(9,34,42,.58);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
.course-session-dialog[open]{animation:session-dialog-enter .22s ease-out}
.session-dialog-panel{display:flex;flex-direction:column;max-height:min(86dvh,900px)}
.session-dialog-header{display:flex;align-items:start;justify-content:space-between;gap:24px;padding:28px 32px 21px;border-bottom:1px solid #d8e4db;background:rgba(250,246,237,.88)}
.session-dialog-eyebrow{margin:0 0 8px;color:#00735e;font-size:11px;font-weight:800;letter-spacing:.12em}
.session-dialog-header h2{margin:0;color:var(--navy);font:800 clamp(24px,3vw,38px)/1.14 var(--manrope);letter-spacing:-.045em}
.session-dialog-header h2 span{font-weight:600;color:#53706a}
.session-dialog-header p:last-child{margin:9px 0 0;color:#4c6468;font-size:14px;line-height:1.5}
.session-dialog-close{flex:none;width:44px;height:44px;border:1px solid #bfd4c8;border-radius:50%;background:#fffdf8;color:var(--navy);font:400 28px/1 var(--manrope);cursor:pointer}
.session-dialog-close:hover{background:#e6f3e9}
.session-dialog-scroll{overflow-y:auto;overscroll-behavior:contain;padding:24px 32px 30px}
.session-dialog-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:stretch}
.session-option{display:flex;flex-direction:column;min-width:0;padding:20px;border:1px solid #c8dad0;border-radius:16px;background:#fffdf8;box-shadow:0 5px 18px rgba(13,45,53,.045)}
.session-option-top{display:flex;align-items:start;justify-content:space-between;gap:7px;color:#3f6558;font-size:10px;font-weight:800;letter-spacing:.08em}
.session-option-top .availability{font-size:10px;letter-spacing:0;white-space:nowrap;padding:6px 8px}
.session-option h3{margin:18px 0 5px;color:var(--navy);font:800 21px/1.2 var(--manrope);letter-spacing:-.035em}
.session-option-range{margin:0 0 13px;color:#46605f;font-size:12px;line-height:1.45}
.session-option dl{margin:0;border-top:1px solid #e0e9df}
.session-option dl>div{display:flex;justify-content:space-between;gap:9px;padding:9px 0;border-bottom:1px solid #e0e9df;font-size:12px;line-height:1.4}
.session-option dt{color:#557067}.session-option dd{margin:0;text-align:right;color:var(--navy);font-weight:750}
.class-calendar{margin:5px 0 16px}
.class-calendar-heading{display:flex;justify-content:space-between;gap:8px;margin-bottom:9px;color:#3d6258;font-size:11px;font-weight:750}
.class-calendar-heading span:last-child{font-weight:600;color:#5c716b}
.class-date-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;list-style:none;padding:0;margin:0}
.class-date{min-width:0;min-height:89px;display:grid;grid-template-columns:1fr auto;align-content:start;gap:1px 5px;padding:8px 6px;border:1px solid #c9dfd3;border-radius:10px;background:#f1f7f1;color:#173c35}
.class-date-month{grid-column:1/-1;color:#285c4b;font-size:10px;font-weight:800;letter-spacing:0;text-transform:uppercase}
.class-date-day{font:800 26px/1 var(--manrope);letter-spacing:-.05em}
.class-date-weekday{align-self:end;padding-bottom:2px;color:#55736a;font-size:11px;font-weight:750}
.class-date-time{grid-column:1/-1;margin-top:6px;color:#173c35;font-size:10px;font-weight:800;letter-spacing:-.02em;line-height:1.3;white-space:nowrap}
.session-option-action{display:block;width:100%;min-height:44px;margin-top:16px;text-align:center;font-size:13px}
body:not(.admin-body) .button.booking-status-fast{background:#edbb4d;border-color:#d9a630;color:#17313c}
body:not(.admin-body) .button.booking-status-fast:hover{background:#dca834;border-color:#cb9828;color:#17313c}
body:not(.admin-body) .button.booking-status-available{background:#006b57;border-color:#006b57;color:#fff}
body:not(.admin-body) .button.booking-status-available:hover{background:#004e40;border-color:#004e40}
.booking-status-pending{background:#e5ebe7!important;border-color:#c6d3ca!important;color:#526760!important;cursor:not-allowed}
.session-dialog-caveat{margin:20px 0 11px;padding:12px 15px;border-radius:10px;background:#e7f0e7;color:#30544a;font-size:12px;line-height:1.55}
.session-dialog-curriculum{color:#006b57;font-size:13px;font-weight:750;text-underline-offset:3px}
.session-dialog-empty{padding:24px;border:1px dashed #b8cec2;border-radius:12px}
@keyframes session-dialog-enter{from{opacity:0;transform:translateY(15px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:940px){.session-dialog-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.home-course-grid{grid-template-columns:1fr}.level-ribbon-desc{display:none}}
@media(max-width:680px){.course-session-dialog{inset:auto 0 0;width:100%;max-width:100%;height:min(90dvh,900px);max-height:90dvh;margin:auto 0 0;border-radius:22px 22px 0 0;border-bottom:0}.session-dialog-panel{height:100%;max-height:90dvh}.session-dialog-header{padding:21px 18px 16px}.session-dialog-header h2{font-size:25px}.session-dialog-header p:last-child{font-size:12px}.session-dialog-scroll{padding:17px 16px max(24px,env(safe-area-inset-bottom))}.session-dialog-list{grid-template-columns:1fr;gap:12px}.session-option{padding:18px}.session-option h3{margin-top:12px}.session-dialog-close{width:44px;height:44px}}
@media(max-width:600px){.course-section{padding-top:70px}.level-jump{display:grid;grid-template-columns:1fr}.level-jump a{justify-content:flex-start}.learning-level{padding:15px 0 35px}.level-ribbon{gap:14px;padding:15px 18px;border-radius:12px}.level-ribbon-number{font-size:35px}.level-ribbon h3{font-size:20px}.home-course-card{min-height:0;padding:23px}.home-card-footer{align-items:start;flex-direction:column}.home-card-actions{width:100%;justify-content:space-between}.home-card-footer .text-link{white-space:normal}}
@media(max-width:380px){.home-card-actions{align-items:start;flex-direction:column}.home-card-dates{width:100%}}
@media(prefers-reduced-motion:reduce){.home-course-card,.level-jump a,.home-card-dates{transition:none}.home-course-card.will-reveal{opacity:1;transform:none}.course-session-dialog[open]{animation:none}}
@media(max-width:900px){.roadmap-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.training-bento,.roadmap-grid{grid-template-columns:1fr}.training-bento .catalogue-card,.roadmap-card{padding:24px}.roadmap-link{text-align:left}}
.batch-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding:4px 2px 22px}
.intake-card{scroll-snap-align:start;border:1px solid var(--line);border-radius:18px;background:#fff;padding:26px;display:flex;flex-direction:column}
.intake-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:10px;letter-spacing:.06em;color:#526c62;font-weight:700}
.availability{padding:8px 10px;border-radius:30px;background:#dcf7ec;color:#006b57;font-size:12px;letter-spacing:0}
.availability.full{background:#fbe7e0;color:#a82d21}
.availability.fast{background:#fff0d8;color:#81520b}
.availability.pending{background:#e8f2ed;color:#006b57}
.intake-card h3{font:750 27px/1.2 var(--manrope);letter-spacing:-.03em;margin:24px 0 12px}
.intake-ticket{min-width:0}
.intake-ticket h3{margin:19px 0 10px}
.ticket-outcome{font-size:16px;line-height:1.5;font-weight:650;color:var(--ink);margin:0 0 18px}
.intake-explainer{max-width:75ch;line-height:1.65;color:#3d5360;margin:0 0 18px}
.ticket-actions{padding:15px 0;border-top:1px solid var(--line);margin-top:auto}
.intake-ticket .interest-form{padding-top:12px}
.intake-ticket .interest-form label{display:block;font-size:13px;font-weight:700;margin-bottom:8px}
.intake-ticket .inline-form{display:flex;align-items:stretch;gap:8px}
.intake-ticket .inline-form input{min-width:0;flex:1;border:1px solid #aebeb7;border-radius:8px;padding:11px;font:inherit;background:#fff;color:var(--ink)}
.intake-ticket .inline-form .button{padding:10px 13px;white-space:nowrap;font-size:12px}
.intake-ticket .interest-form small,.ticket-note{display:block;font-size:11px;line-height:1.45;color:#536b60;margin-top:8px}
.ticket-note{margin-top:5px}
.intake-format{font-size:14px;color:#39564b}.intake-dates{font:700 23px/1.4 var(--manrope);margin:16px 0 4px}.intake-times{font-size:13px;color:var(--muted);margin-top:0}
.ticket-price{font:750 25px/1.2 var(--manrope);color:var(--ink);margin:12px 0 18px}.ticket-price small{display:block;font:500 11px/1.5 var(--inter, sans-serif);color:var(--muted);margin-top:4px}
.session-journey{display:grid;grid-template-columns:repeat(4,1fr);list-style:none;padding:20px 0;gap:6px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:20px 0 8px}
.session-journey li{font-size:11px;color:#33594d}.session-journey span{display:block;background:#dcf7ec;color:#006b57;border-radius:50%;width:25px;height:25px;text-align:center;line-height:25px;margin-bottom:10px;font-weight:700}
.intake-note{font-size:13px;line-height:1.6;color:var(--muted)}.intake-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:auto;padding-top:20px}.intake-bottom strong{font:700 24px var(--manrope)}.intake-bottom small,.demo-note{display:block;font-size:11px;color:var(--muted);margin-top:8px}.intake-bottom a{font-size:13px}.demo-note{border-top:1px solid var(--line);padding-top:12px;margin-top:18px}
@media(max-width:760px){.batch-strip{grid-template-columns:1fr;gap:16px}.intake-card{padding:20px}.intake-card h3{font-size:24px}.intake-bottom{flex-wrap:wrap}.session-journey li{font-size:10px}}
@media(max-width:650px){.intake-ticket .inline-form{flex-direction:column}.intake-ticket .inline-form .button{width:100%}}
/* A dated intake is one complete course. The perforated stub borrows the clarity
   of a physical ticket while the controls keep 30 intakes navigable. */
.ticket-context{display:flex;justify-content:space-between;gap:24px;align-items:start;border-top:1px solid var(--line);padding-top:23px;margin-top:27px;color:#39545b}
.ticket-context p{margin:0;max-width:52ch;font-size:17px;line-height:1.55;font-weight:650}
.ticket-context span{display:block;max-width:30ch;font-size:13px;line-height:1.55;color:#5f726f}
.ticket-toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px;margin:28px 0 16px}
.ticket-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:end}
.ticket-filters label{display:flex;flex-direction:column;gap:6px;color:#426258;font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:800}
.ticket-filters select{min-height:42px;max-width:260px;border:1px solid #b8cec2;border-radius:9px;background:#fffdf8;padding:9px 34px 9px 12px;color:var(--navy);font:650 13px var(--manrope);letter-spacing:0;text-transform:none}
.ticket-controls{display:flex;align-items:center;gap:8px;white-space:nowrap}
.ticket-controls span{font-size:12px;color:#536c64;margin-right:6px}
.ticket-arrow{width:42px;height:42px;border:1px solid #abc8b9;border-radius:50%;background:#fffdf8;color:var(--navy);font-size:21px;cursor:pointer}
.ticket-arrow:hover,.ticket-arrow:focus-visible{background:#e5f4eb;border-color:#006b57}
.batch-strip{display:flex;overflow-x:auto;gap:18px;scroll-snap-type:x mandatory;scroll-padding-inline:3px;overscroll-behavior-inline:contain;padding:3px 3px 18px;scrollbar-color:#a9cbb9 transparent}
.intake-ticket{position:relative;flex:0 0 calc((100% - 18px)/2);min-width:0;display:flex;overflow:hidden;border:1px solid #c9dbd0;border-radius:18px;background:#fffdf8;box-shadow:0 11px 31px rgba(13,45,53,.045);scroll-snap-align:start}
.intake-ticket[hidden]{display:none}
.ticket-stub{position:relative;flex:0 0 94px;display:flex;align-items:center;flex-direction:column;padding:26px 9px 20px;color:#e9fff5;background:linear-gradient(155deg,#153749,#006b57);text-align:center;border-right:2px dashed #d3e7db}
.ticket-stub::before,.ticket-stub::after{content:"";position:absolute;right:-11px;width:20px;height:20px;border-radius:50%;background:#faf6ed;z-index:2}
.ticket-stub::before{top:-11px}.ticket-stub::after{bottom:-11px}
.ticket-stub-kicker{font-size:9px;font-weight:800;letter-spacing:.18em}
.ticket-stub strong{font:800 44px/1 var(--manrope);letter-spacing:-.06em;margin-top:17px}
.ticket-stub>span:nth-of-type(2){font:800 13px var(--manrope);letter-spacing:.13em;margin-top:3px}
.ticket-stub i{width:36px;height:1px;background:#8cc8b2;margin:auto 0 20px}
.ticket-stub small{font:750 10px/1.35 var(--manrope);letter-spacing:.13em}
.ticket-body{min-width:0;flex:1;display:flex;flex-direction:column;padding:23px 24px 19px}
.ticket-topline{display:flex;align-items:center;justify-content:space-between;gap:7px;flex-wrap:wrap;color:#326453;font-size:9px;letter-spacing:.08em;font-weight:800}
.ticket-topline .availability{font-size:10px;padding:6px 9px}
.intake-ticket h3{margin:15px 0 7px;color:var(--navy);font:800 clamp(22px,2.1vw,29px)/1.13 var(--manrope);letter-spacing:-.04em;text-wrap:balance}
.intake-ticket .ticket-outcome{font-size:13px;line-height:1.5;font-weight:500;color:#4a6265;margin:0 0 16px}
.ticket-facts{display:grid;grid-template-columns:1fr 1fr;gap:11px 16px;padding:14px 0;border-block:1px solid #dce7dd}
.ticket-facts p{margin:0;min-width:0}
.ticket-facts p:last-child{grid-column:1/-1}
.ticket-facts small,.ticket-footer small{display:block;font-size:9px;line-height:1.4;letter-spacing:.08em;font-weight:800;color:#5c756c}
.ticket-facts strong{display:block;margin-top:4px;color:var(--navy);font:700 13px/1.45 var(--manrope)}
.ticket-sessions{margin:10px 0 0;color:#47655a;font-size:12px}
.ticket-sessions summary,.ticket-interest summary{cursor:pointer;font-weight:750;text-decoration:underline;text-underline-offset:3px}
.ticket-sessions ol{max-height:175px;overflow:auto;margin:9px 0 3px;padding-left:19px;line-height:1.65}
.ticket-footer{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-top:auto;padding:18px 0 12px}
.ticket-footer strong{display:block;margin-top:3px;font:800 25px var(--manrope);letter-spacing:-.04em;color:var(--navy)}
.ticket-footer .text-link{font-size:12px;white-space:nowrap}
.ticket-interest{padding:11px 0 0;border-top:1px solid #dce7dd;color:#006b57;font-size:13px}
.ticket-interest .interest-form{padding-top:12px;color:var(--navy)}
.ticket-interest .interest-form label{font-size:12px}
.ticket-interest .inline-form .button{font-size:11px}
.intake-ticket .ticket-note{margin:8px 0 0;font-size:10px;line-height:1.45;color:#657971}
@media(max-width:900px){.intake-ticket{flex-basis:min(74vw,540px)}.ticket-toolbar{align-items:start;flex-direction:column}.ticket-context{flex-direction:column;gap:8px}.ticket-context span{max-width:70ch}}
@media(max-width:600px){.intake-ticket{flex-basis:91%;border-radius:15px}.ticket-stub{flex-basis:66px;padding:21px 5px 14px}.ticket-stub strong{font-size:33px}.ticket-stub>span:nth-of-type(2){font-size:10px}.ticket-stub small{font-size:8px}.ticket-body{padding:18px 15px 15px}.ticket-filters{display:grid;grid-template-columns:1fr 1fr;width:100%}.ticket-filters label:nth-child(2){grid-column:1/-1;grid-row:2}.ticket-filters select{width:100%;max-width:none}.ticket-controls{width:100%;justify-content:flex-end}.ticket-controls span{margin-right:auto}.ticket-footer{align-items:start;flex-direction:column}.ticket-footer .text-link{white-space:normal}.ticket-facts{grid-template-columns:1fr}.ticket-facts p:last-child{grid-column:auto}}
@media(prefers-reduced-motion:reduce){.batch-strip{scroll-behavior:auto}}
/* Ten compact tickets per page on desktop; the request path never implies a paid seat. */
.batch-strip.ticket-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;overflow:visible;padding:3px 0 10px;scroll-snap-type:none}
.ticket-grid .intake-ticket{display:flex;min-width:0;min-height:318px;flex-basis:auto;border-radius:13px;box-shadow:0 5px 17px rgba(13,45,53,.06)}
.ticket-grid .intake-ticket[hidden]{display:none}
.ticket-grid .ticket-stub{flex-basis:45px;padding:15px 3px 10px}
.ticket-grid .ticket-stub strong{font-size:26px;margin-top:11px}
.ticket-grid .ticket-stub>span:nth-of-type(2){font-size:9px;letter-spacing:.03em}
.ticket-grid .ticket-stub i{width:22px;margin:auto 0 10px}
.ticket-grid .ticket-stub small{font-size:7px;letter-spacing:.02em}
.ticket-grid .ticket-body{padding:13px 11px 12px}
.ticket-grid .ticket-topline{gap:5px;font-size:8px;line-height:1.35}
.ticket-grid .ticket-topline .availability{font-size:9px;padding:5px 7px;white-space:nowrap}
.ticket-grid h3{font-size:17px;line-height:1.18;margin:10px 0 9px;letter-spacing:-.03em}
.ticket-grid .ticket-facts{display:block;padding:8px 0}
.ticket-grid .ticket-facts p{display:flex;justify-content:space-between;gap:7px;margin:3px 0}
.ticket-grid .ticket-facts small{font-size:9px;flex:0 0 42%;color:#4b665c}
.ticket-grid .ticket-facts strong{font-size:11px;line-height:1.35;text-align:right;margin:0}
.ticket-grid .ticket-sessions{display:none}
.ticket-grid .ticket-footer{display:block;padding:9px 0 7px}
.ticket-grid .ticket-footer strong{font-size:20px}
.ticket-grid .ticket-footer .text-link{display:inline-block;margin-top:5px;font-size:11px;white-space:normal}
.ticket-book{display:block;width:100%;text-align:center;margin-top:auto;font-size:11px;padding:9px 8px}
.ticket-book-disabled{background:#fbe7e0!important;border-color:#e3aaa3!important;color:#a82d21!important;cursor:not-allowed}
.ticket-controls .ticket-arrow{width:auto;min-width:115px;height:42px;border-radius:9px;padding:0 13px;font:750 12px var(--manrope)}
.ticket-controls #ticket-next{background:#006b57;color:white;border-color:#006b57;box-shadow:0 6px 14px rgba(0,107,87,.16)}
.ticket-controls #ticket-next:hover{background:#004e40}
.ticket-controls .ticket-arrow:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
.availability.available{background:#d9f3e4;color:#075f40}
.booking-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,440px);gap:clamp(24px,5vw,70px);align-items:start}
.booking-summary{background:#fffdf8;border:1px solid #c9dbd0;border-radius:15px;padding:17px 23px;margin:20px 0}
.booking-summary p{display:flex;justify-content:space-between;gap:16px;margin:9px 0;border-bottom:1px solid #e1eae3;padding-bottom:9px}
.booking-summary small{color:#5c756c;font-size:10px;font-weight:800}.booking-summary strong{text-align:right;color:var(--navy);font-size:14px}
.booking-choice{border:0;padding:0;margin:0 0 18px}.booking-choice legend{font-weight:800;margin-bottom:8px}
.booking-choice label{display:flex;gap:11px;border:1px solid #c9dbd0;border-radius:10px;padding:11px;margin:8px 0;cursor:pointer}
.booking-choice input{accent-color:#006b57}.booking-choice span{display:grid;gap:3px}.booking-choice small{font-size:12px;color:#596d69;line-height:1.4}
@media(max-width:1250px){.batch-strip.ticket-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:980px){.batch-strip.ticket-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:740px){.batch-strip.ticket-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-layout{grid-template-columns:1fr}}
@media(max-width:520px){.batch-strip.ticket-grid{grid-template-columns:1fr}.ticket-grid .intake-ticket{min-height:245px}.ticket-grid .ticket-stub{flex-basis:62px}.ticket-grid .ticket-body{padding:17px}.ticket-grid h3{font-size:20px}.ticket-grid .ticket-facts strong{font-size:12px}.ticket-controls{flex-wrap:wrap}.ticket-controls span{flex:0 0 100%}}
.guide-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:clamp(2rem,6vw,6rem);align-items:start}
.guide-layout h1{max-width:650px}.guide-points{padding-left:1.3rem;line-height:1.7;margin:2rem 0;color:#243e4b}
.guide-form{background:#fff;border:1px solid #d8e6de;border-radius:22px;padding:clamp(1.5rem,3vw,2.5rem);box-shadow:0 20px 55px rgba(20,44,58,.07)}
.guide-form h2{margin-top:0}.guide-form .field{display:block;font-weight:600;margin:1rem 0}.guide-form .field input{display:block;width:100%;padding:.85rem 1rem;margin-top:.4rem;border:1px solid #b9cac4;border-radius:10px;background:#fff;color:#142c3a;font:inherit}
.guide-form .check-field{display:flex;gap:.7rem;align-items:flex-start;font-size:.89rem;line-height:1.5;margin:1rem 0}.guide-form .check-field input{margin-top:.25rem;flex:none}.guide-form .button{width:100%;margin-top:.6rem}.guide-form .form-status{min-height:2.5rem}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
@media(max-width:780px){.guide-layout{grid-template-columns:1fr}}
.hero-format{max-width:540px;color:#52646c;font-size:12px;line-height:1.55;margin:12px 0 0}
.term-note{background:#e8f2ed;border-left:3px solid var(--deep);padding:11px 14px;color:#234b40;font-size:14px;line-height:1.55;margin:17px 0}
.catalogue-card .pending-fee{font:700 17px/1.3 var(--manrope);letter-spacing:-.02em}
.join-next{background:#e8f2ed;color:var(--navy);padding:clamp(26px,4vw,45px);border-radius:9px}
body:not(.admin-body) .join-copy .section-label{color:#91c9bd}
.join-next .section-label{color:var(--deep)}
.join-next h3{font:700 clamp(27px,3vw,39px)/1.12 var(--manrope);letter-spacing:-.04em;margin:14px 0}
.join-next p:not(.section-label){font-size:15px;line-height:1.7;max-width:60ch;color:#354d56}
.join-next .button{margin-top:16px}
@media(max-width:600px){.join-next .button{width:100%;text-align:center}.hero-format{font-size:12px}}

/* Foundations curriculum */
.foundation-destination{margin:28px 0;padding:clamp(22px,4vw,38px);border:1px solid #c6dfcf;border-radius:20px;background:#e9f5e9}.foundation-destination h2{font-size:clamp(25px,3.2vw,36px)}.foundation-destination p{max-width:800px}.foundation-flow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:20px}.foundation-flow span{background:#fffdf8;border-radius:10px;padding:12px;color:#1d5144;font-size:12px;font-weight:750}.foundation-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.foundation-sessions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.foundation-session{border:1px solid #d0e1d4;border-top:4px solid #00745d;border-radius:17px;background:#fffdf8;padding:24px}.foundation-session-head{display:flex;align-items:start;gap:14px}.foundation-session-head h3{margin:0 0 16px}.foundation-number{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:10px;background:#142f3c;color:white;font-weight:800}.foundation-why,.foundation-topics{padding:14px;margin:12px 0;border-radius:10px;background:#eef7ed;color:#22483e}.foundation-topics h4,.foundation-session h4{margin:0 0 8px;color:#006b57;font-size:13px}.foundation-topics ul{display:grid;grid-template-columns:1fr 1fr;gap:5px 16px;margin:0;padding-left:18px}.foundation-list{padding-left:20px;line-height:1.65}.foundation-outcome{border-top:1px solid #dce9dc;padding-top:14px}.foundation-extras{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin:55px 0}.foundation-form{background:#e9f5e9;border:1px solid #c6dfcf;border-radius:18px;padding:26px}.foundation-form .field,.foundation-form .check-field{margin:14px 0}.foundation-form .button{min-height:44px}.foundation-form .form-status{margin:12px 0 0}.foundation-form .success-card{background:transparent}.foundation-list li,.foundation-topics li{margin-bottom:4px}@media(max-width:700px){.foundation-flow{grid-template-columns:1fr 1fr}.foundation-sessions,.foundation-extras{grid-template-columns:1fr}.foundation-session{padding:20px}.foundation-topics ul{grid-template-columns:1fr}.foundation-extras{margin:38px 0}.foundation-actions .button{width:100%;text-align:center}}

.foundation-why strong{display:block;margin-bottom:5px;color:#006b57}

.curriculum-reminder{position:fixed;z-index:60;right:1.25rem;bottom:1.25rem;display:flex;align-items:center;gap:1rem;max-width:min(620px,calc(100vw - 2rem));padding:1rem 3rem 1rem 1.15rem;background:#f7fff8;color:#132e3c;border:1px solid #bcdccc;border-radius:16px;box-shadow:0 12px 35px #102f2e2b}.curriculum-reminder strong,.curriculum-reminder span{display:block}.curriculum-reminder span{font-size:.875rem;line-height:1.35}.curriculum-reminder .button{white-space:nowrap;flex-shrink:0}.curriculum-reminder-close{position:absolute;right:.55rem;top:.35rem;border:0;background:transparent;color:#23443b;font-size:1.5rem;line-height:1;cursor:pointer;padding:.3rem}.curriculum-reminder-close:focus-visible{outline:3px solid #006b57;outline-offset:2px}@media(max-width:600px){.curriculum-reminder{left:.75rem;right:.75rem;bottom:.75rem;max-width:none;display:grid;gap:.55rem;padding:.8rem 2.5rem .8rem .9rem}.curriculum-reminder .button{justify-self:start;padding:.55rem .8rem;font-size:.875rem}}

.curriculum-concept{margin:1.2rem 0 1.4rem}.curriculum-concept img{display:block;width:100%;height:auto;border:1px solid #bed7cd;border-radius:12px;background:#fff}.curriculum-concept figcaption{margin-top:.5rem;font-size:.8rem;color:#49656b;line-height:1.5}.curriculum-concept a:focus-visible{outline:3px solid #007960;outline-offset:4px}

/* Keep each topic marker inside its own grid cell at narrow card widths. */
.foundation-topics ul{grid-template-columns:repeat(2,minmax(0,1fr));list-style:none;padding:0;column-gap:20px;row-gap:8px}
.foundation-topics li{position:relative;min-width:0;padding-left:15px;overflow-wrap:anywhere}
.foundation-topics li::before{content:"•";position:absolute;left:0;color:#007960}
@media(max-width:700px){.foundation-topics ul{grid-template-columns:1fr}}
