/* Preserved from app/static/style.css at c4e9e3c: main-site brand reference. */
:root { --ink:#000054; --green:#13ce66; --pale:#f2ffff; --paper:#fff; --line:#dbe6e9; --muted:#535a76; --footer:#111; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.65 Montserrat,Arial,sans-serif; }
a { color:var(--ink); text-underline-offset:4px; } a:hover { text-decoration-thickness:2px; }
img { display:block; max-width:100%; height:auto; } p { margin:12px 0; }
h1,h2,h3 { line-height:1.25; font-weight:600; }
h1 { font-size:clamp(36px,4.8vw,62px); letter-spacing:-.035em; margin:12px 0 20px; }
h2 { font-size:28px; letter-spacing:-.025em; margin:0 0 8px; } h3 { font-size:20px; letter-spacing:-.02em; margin:0 0 6px; }
.content-wrap,.header-inner,.footer-inner { width:min(1160px,calc(100% - 64px)); margin-inline:auto; }
.site-header { background:var(--pale); } .header-inner { min-height:110px; display:flex; justify-content:space-between; align-items:center; gap:36px; }
.brand { display:block; flex:0 0 300px; text-decoration:none; } .brand img { width:300px; height:95px; object-fit:contain; }
.desktop-nav { display:flex; align-items:center; gap:29px; } .desktop-nav a { font-size:18px; font-weight:400; text-decoration:none; } .mobile-info { display:none; }
.banner { padding:8px 20px; text-align:center; font-size:11px; letter-spacing:.06em; background:#e4eded; color:#414966; }
.skip-link { position:absolute; top:-80px; left:20px; z-index:10; padding:10px 18px; background:white; } .skip-link:focus { top:10px; }
.back-link { display:inline-block; font-size:13px; text-decoration:none; } .eyebrow { font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
.course-intro { background:var(--pale); padding:20px 0 39px; } .intro-center { text-align:center; margin:15px auto 0; max-width:800px; }
.intro-description { font-size:20px; line-height:1.6; margin:0; } .course-price { display:flex; align-items:baseline; justify-content:center; gap:10px; margin:20px 0 0; }
.course-price strong { font-size:30px; font-weight:600; } .course-price span { font-size:15px; }
.dates-section { padding-top:45px; padding-bottom:64px; } .section-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; margin:0 0 24px; }
.section-heading p { color:var(--muted); font-size:15px; margin:6px 0 0; } .text-link { flex-shrink:0; font-size:14px; }
.class-list { list-style:none; padding:0; margin:0; display:grid; gap:14px; }
.class-card { display:grid; grid-template-columns:72px minmax(0,1fr) 180px; align-items:center; gap:26px; border:1px solid var(--line); padding:24px 28px; border-radius:8px; background:white; }
.calendar-date { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:82px; background:var(--pale); border-radius:6px; line-height:1.2; }
.calendar-date span { font-size:12px; text-transform:uppercase; font-weight:500; letter-spacing:.08em; } .calendar-date strong { font-size:34px; font-weight:500; margin-top:5px; }
.class-details { min-width:0; } .class-details h3 { overflow-wrap:anywhere; } .class-details p { margin:0; color:var(--muted); font-size:15px; overflow-wrap:anywhere; }
.booking-action { display:grid; justify-items:stretch; gap:9px; } .booking-action .button { white-space:nowrap; }
.availability { display:block; text-align:center; font-size:13px; font-weight:600; color:#16623d; }
.availability::before { content:''; display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--green); margin:0 7px 1px 0; }
.availability.sold,.availability.paused { color:#5b6075; } .availability.sold::before,.availability.paused::before { background:#777d8d; }
.class-card.full { background:#f7f9fa; } .full .calendar-date { background:#eceff2; }
.button,button { display:inline-block; font:600 14px/1.45 Montserrat,Arial,sans-serif; border:1px solid transparent; padding:13px 24px; border-radius:30px; background:var(--ink); color:#fff; text-align:center; text-decoration:none; cursor:pointer; transition:background-color .15s ease; }
.button:hover,button:hover { background:#222278; text-decoration:none; } .button span { margin-left:6px; }
button:disabled { background:#e7ebef; color:#575d70; cursor:not-allowed; } .secondary { border-color:var(--ink); color:var(--ink); background:transparent; font-weight:500; } .secondary:hover { background:var(--pale); }
.danger { background:#a8313d; color:white; } .danger:hover { background:#872331; }
.availability-note { color:var(--muted); font-size:12px; margin-top:17px; } .booking-help { margin-top:43px; border-top:1px solid var(--line); padding-top:32px; display:grid; grid-template-columns:1.35fr 1fr; gap:75px; }
.booking-help h2 { font-size:22px; } .booking-help p { color:var(--muted); font-size:15px; margin-top:10px; } .booking-help .button { margin-top:8px; }
.site-footer { background:var(--footer); color:white; padding:39px 0; } .footer-inner { display:flex; justify-content:space-between; align-items:start; gap:32px; font-size:13px; }
.footer-name { font-size:18px; font-weight:600; margin:0; } .footer-inner p { margin-top:0; } .footer-inner small { color:#bbb; font-size:11px; }
.footer-inner nav { display:flex; gap:28px; flex-wrap:wrap; padding-top:5px; } .site-footer a { color:white; }
main>.content-wrap { padding-top:32px; padding-bottom:64px; } .split { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:65px; margin-top:24px; }
.split h1 { font-size:38px; overflow-wrap:anywhere; } .split .panel { margin-top:0; } .price { font-size:30px; } .price small { font-size:14px; }
.pill { display:inline-block; background:var(--pale); border:1px solid var(--line); border-radius:24px; padding:4px 12px; font-size:13px; }
.panel { padding:28px; background:white; border:1px solid var(--line); border-radius:8px; margin:20px 0; } .narrow { max-width:700px; margin:32px auto; } .narrow h1 { font-size:36px; }
.muted,.help { color:var(--muted); } .help { display:block; font-size:12px; overflow-wrap:anywhere; } label { display:block; margin:16px 0; font-size:14px; font-weight:500; }
input,select,textarea { display:block; width:100%; min-width:0; border:1px solid #abb8ca; border-radius:4px; padding:11px; font:inherit; background:white; color:var(--ink); margin-top:6px; }
textarea { resize:vertical; } input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible,summary:focus-visible { outline:3px solid var(--ink); outline-offset:4px; }
.check { display:flex; align-items:flex-start; gap:10px; font-size:13px; font-weight:400; } .check input { width:18px; height:18px; flex-shrink:0; margin:3px 0; accent-color:var(--ink); }
.notice { background:#fff5df; border-left:3px solid #ac7a24; padding:14px 18px; font-size:14px; } .empty { padding:36px; border:1px dashed var(--line); border-radius:8px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 24px; } .metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.metrics>div { padding:16px 22px; background:var(--pale); border-radius:8px; } .metrics span,.metrics strong { display:block; } .metrics span { font-size:12px; color:var(--muted); }
.table-scroll { overflow:auto; border:1px solid var(--line); border-radius:8px; background:white; margin-bottom:28px; } table { border-collapse:collapse; width:100%; font-size:13px; text-align:left; }
th { background:var(--pale); font-size:11px; text-transform:uppercase; letter-spacing:.5px; } td,th { padding:16px; border-bottom:1px solid var(--line); vertical-align:top; } td { min-width:95px; }
td a,code { overflow-wrap:anywhere; } summary { cursor:pointer; font-weight:600; } .compact { max-width:300px; min-width:180px; } .compact label { margin:8px 0; font-size:12px; }
.compact input,.compact select { padding:5px; } .compact .check input { padding:0; width:16px; } .compact button { font-size:12px; padding:8px 12px; }
.admin-filter { display:flex; align-items:end; gap:16px; flex-wrap:wrap; margin:16px 0; }
.admin-filter label { margin:0; min-width:220px; } .admin-filter button { margin:0; }
.inventory-form input { max-width:100px; } .page-admin td { vertical-align:top; }
pre { font-size:12px; line-height:1.5; white-space:pre-wrap; } code { font-size:10px; } details+details { margin-top:14px; }
@media(min-width:1280px) { .desktop-nav a { font-size:20px; } }
@media(max-width:1000px) { .header-inner { min-height:94px; } .brand { flex-basis:250px; } .brand img { width:250px; height:auto; } .desktop-nav { display:none; } .mobile-info { display:block; font-size:13px; flex-shrink:0; text-decoration:none; } .split { gap:30px; } }
@media(max-width:640px) {
  .content-wrap,.header-inner,.footer-inner { width:calc(100% - 40px); } .header-inner { min-height:85px; gap:12px; } .brand { flex:0 1 215px; min-width:0; } .brand img { width:215px; }
  .mobile-info { font-size:11px; } .banner { padding:7px 14px; font-size:9px; } .course-intro { padding:19px 0 30px; } .back-link { font-size:12px; } .intro-center { margin-top:21px; }
  .eyebrow { font-size:10px; } h1 { font-size:38px; } .intro-description { font-size:16px; } .course-price { margin-top:16px; } .course-price strong { font-size:27px; } .course-price span { font-size:13px; }
  .dates-section { padding-top:30px; padding-bottom:40px; } h2 { font-size:23px; } .section-heading { display:block; margin-bottom:20px; } .section-heading .text-link { display:inline-block; margin-top:12px; font-size:12px; } .section-heading p { font-size:14px; }
  .class-card { grid-template-columns:56px minmax(0,1fr); padding:19px; gap:16px; } .calendar-date { min-height:65px; } .calendar-date strong { font-size:27px; } .calendar-date span { font-size:10px; }
  .class-details h3 { font-size:17px; } .class-details p { font-size:13px; } .booking-action { grid-column:1 / -1; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); align-items:center; gap:10px; }
  .availability { text-align:left; font-size:12px; } .button,button { padding:12px 16px; font-size:12px; } .availability-note { font-size:11px; } .booking-help { margin-top:30px; padding-top:26px; grid-template-columns:1fr; gap:22px; }
  .booking-help h2 { font-size:21px; } .booking-help p { font-size:14px; } .footer-inner { display:block; } .footer-inner nav { margin-top:22px; gap:14px 22px; font-size:12px; } .footer-name { font-size:17px; }
  .split,.metrics,.form-grid { grid-template-columns:1fr; gap:18px; } .split h1 { font-size:30px; } .panel { padding:21px; } .narrow h1 { font-size:29px; } .narrow { margin:10px auto; } .split input,.split select,.split textarea { font-size:16px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .button,button { transition:none; } }
/* Private electronic releases, adapted from the AIDA course paperwork flow. */
.waiver-form label{display:block;margin:22px 0 10px}.waiver-form input:not([type=checkbox]){width:100%}.release-text{line-height:1.8}.signature-pad{display:block;width:100%;height:180px;border:1px solid #929daf;border-radius:6px;background:#fff;touch-action:none}.signature-field{margin:26px 0}.signature-field h2{font-size:18px}.signature-field button{margin-top:8px}.saved-signature{max-width:100%;height:auto;max-height:190px;border-bottom:1px solid #aaa}.waiver-list{list-style:none;padding:0}.waiver-list li{padding:20px 0;border-bottom:1px solid #d4e0e3}.waiver-list li>span{display:block;margin:8px 0}.waiver-form .check{display:flex;align-items:flex-start;gap:12px}.waiver-form .check input{flex-shrink:0;margin-top:6px}.form-status:empty{display:none}[hidden]{display:none!important}@media print{.site-header,.site-footer,.banner,.skip-link,.page-waiver a{display:none}.page-waiver .panel{border:0;box-shadow:none;padding:0}.saved-signature{break-inside:avoid}.content-wrap{max-width:none;width:100%}}
/* Shared site header and the approved booking confirmation card. */
.site-header{position:relative;z-index:5}.header-inner{width:calc(100% - clamp(40px,8vw,120px));min-height:100px;gap:clamp(24px,5.5vw,80px)}.brand{flex:none}.brand img{width:clamp(180px,18.75vw,270px);height:auto}.desktop-nav{flex:1;min-width:0;justify-content:center;gap:clamp(14px,2.1vw,30px);white-space:nowrap}.desktop-nav a{font-size:clamp(15px,1.4vw,20px)}.mobile-menu{display:none}
.page-receipt{background:var(--pale)}.page-receipt main{padding:56px 0 100px}.receipt-wrap{width:calc(100% - 40px);max-width:720px;margin-inline:auto}.receipt-card{background:#fff;border:1px solid #e0e6ed;border-radius:16px;box-shadow:0 6px 20px rgba(0,0,84,.10),0 1px 3px rgba(0,0,84,.06);overflow:hidden}
.receipt-heading{padding:clamp(28px,6vw,52px) clamp(24px,6vw,52px) 36px;text-align:center}.receipt-badge{display:inline-flex;align-items:center;gap:10px;border-radius:999px;padding:6px 16px;font-size:15px;font-weight:600}.receipt-badge.confirmed{background:#e3f9ec;color:#0b6b3a;padding-left:8px}.receipt-badge.pending{background:#edf1f5;color:#454c65}.receipt-badge svg{flex:none}.receipt-heading h1{font-size:clamp(32px,5vw,42px);margin:22px 0 10px;letter-spacing:normal}.receipt-date{margin:0;font-size:22px;font-weight:500}
.receipt-details{margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));text-align:center;border-block:1px solid #e0e6ed;background:#fafdfd}.receipt-details>div{padding:20px 16px;border-right:1px solid #e0e6ed}.receipt-details>div:last-child{border-right:0}.receipt-details dt{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#5b6075;font-weight:600;margin-bottom:4px}.receipt-details dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.receipt-body{padding:36px clamp(24px,6vw,52px) 40px;display:flex;flex-direction:column;align-items:center;gap:24px;text-align:center}.receipt-body p{margin:0;max-width:520px;overflow-wrap:anywhere}.receipt-body .receipt-waivers{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:12px 40px;background:#fff;color:var(--ink);border:1.5px solid var(--ink);border-radius:30px;font-size:16px;font-weight:600}.receipt-body .receipt-waivers:hover{background:var(--pale)}.receipt-body form{margin:0}
.receipt-footer{margin-top:28px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;font-size:15px}.receipt-footer>div{display:flex;flex-wrap:wrap;gap:12px 24px}.receipt-footer>span{font-size:13px;color:#5b6075;overflow-wrap:anywhere}
.checkout-countdown{width:100%;max-width:440px;padding:20px;border:1px solid #d4e7e8;border-radius:12px;background:var(--pale);display:flex;flex-direction:column;align-items:center;gap:8px}.checkout-countdown-label{font-size:14px;font-weight:600}.checkout-countdown-value{font-size:36px;line-height:1.2;font-variant-numeric:tabular-nums;letter-spacing:.03em}.receipt-body .checkout-countdown-status{font-size:15px}.checkout-countdown small{font-size:12px;line-height:1.6;color:#454c65}
@media(max-width:1120px){.desktop-nav{display:none}.mobile-menu{display:block}.mobile-menu summary{width:40px;height:36px;display:flex;flex-direction:column;justify-content:space-around;padding:5px 0;list-style:none}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary span{display:block;height:2px;width:30px;background:var(--ink)}.mobile-menu nav{position:absolute;top:100%;left:0;right:0;display:flex;flex-direction:column;gap:15px;background:var(--pale);padding:20px 35px;border-top:1px solid var(--line)}.mobile-menu a{text-decoration:none}}
@media(max-width:520px){.receipt-details{grid-template-columns:1fr}.receipt-details>div{border-right:0;border-bottom:1px solid #e0e6ed;padding:16px}.receipt-details>div:last-child{border-bottom:0}.receipt-body .receipt-waivers{padding:12px 24px}.receipt-date{font-size:20px}}
.priority-wrap{max-width:780px;margin:40px auto 64px}.priority-wrap>p{line-height:1.7}.priority-form fieldset{border:0;padding:0;margin:0 0 28px}.priority-form legend{font-size:20px;font-weight:700;margin-bottom:16px}.priority-month{border:1px solid #e3e7ec;border-radius:12px;margin:12px 0;padding:0 16px}.priority-month summary{padding:16px 0;cursor:pointer;font-weight:600}.priority-dates{display:grid;grid-template-columns:1fr;gap:10px;padding-bottom:16px}.priority-choice{display:flex!important;align-items:center;gap:12px;border:1px solid #e3e7ec;border-radius:9px;padding:14px!important;margin:0!important;cursor:pointer;font-weight:500!important}.priority-choice:has(input:checked){background:#edfbfa;border-color:#14bdb8}.priority-choice:has(input:disabled){opacity:.5}.priority-choice input{width:20px!important;height:20px!important;flex:0 0 20px;margin:0!important;accent-color:#008f8c}.priority-admin{max-width:1100px;padding-bottom:60px}.priority-admin .panel{margin:24px 0}.priority-admin table{min-width:600px}.priority-admin input,.priority-admin select{max-width:100%}.inline-priority{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border:1px solid #e6e8ed;border-radius:12px;margin-top:10px;text-decoration:none;background:#fff;font-weight:600}.inline-priority small{display:block;font-size:12px;font-weight:400}.inline-priority .inline-availability{background:#e3f8f8;color:#000054;padding:3px 10px;border-radius:20px;font-size:12px}@media(max-width:540px){.priority-wrap{margin-top:24px}.priority-dates{grid-template-columns:1fr}.priority-wrap .panel{padding:18px}.priority-admin h1{font-size:28px}}

.priority-wrap .save-preferences{margin-top:20px}
