*{box-sizing:border-box}body{margin:0;font:15px/1.65 Archivo,Arial,sans-serif;color:#143b2b;background:#f5f7f2}a{color:#24643f;text-underline-offset:4px}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{touch-action:manipulation}:focus-visible{outline:2px solid #2e6b47;outline-offset:3px}.review-lock{background:#e6f2d5;color:#133a22;text-align:center;padding:9px 18px;font-size:11px;font-weight:700;letter-spacing:.5px}.review-header{padding:20px max(24px,calc((100% - 1240px)/2));display:flex;gap:40px;align-items:center;background:#002d1b url('/assets/images/nalc-stadium.jpg') center/cover}.review-header img{width:auto;height:100px;display:block}.review-header nav{display:flex;gap:24px;flex-wrap:wrap;align-items:center}.review-header nav a{color:#fff;font-size:13px;font-weight:700;text-decoration:none}.review-header nav a:hover{color:#a4d45c}.hero{background:#002d1b url('/assets/images/nalc-stadium.jpg') center/cover;color:white;padding:48px max(24px,calc((100% - 1240px)/2))}.hero h1{font:italic 900 clamp(28px,4vw,48px)/1.1 Archivo,Arial,sans-serif;text-transform:uppercase;margin:0 0 20px;max-width:900px}.hero .fee{color:#a6da67;font:28px 'Bebas Neue',Arial,sans-serif}.hero p{max-width:850px;margin:12px 0}.page-width{max-width:1240px;margin:32px auto;padding:0 24px}.columns{display:grid;grid-template-columns:minmax(0,2.3fr) minmax(260px,1fr);gap:28px;align-items:start}.panel{background:white;border:1px solid #d7e2d4;padding:28px;margin-bottom:24px}.panel h2,.panel h3{margin:0 0 16px;line-height:1.3}.panel.dark{background:#082c20;color:#e3eddf;border-top:4px solid #7fbe2a}.panel.dark a{color:#b5e082}.panel ul{padding-left:20px}.panel li{margin:10px 0}.notice{background:#eaf1e6;border-left:4px solid #2e6b47;padding:16px 20px;margin-bottom:22px}.warning{background:#fff6df;border-left-color:#9a6b04;color:#704900}.errors{border:1px solid #b42318;background:#fff4f4;color:#8d1714;padding:20px;margin-bottom:24px}.errors h2{font-size:18px;margin-top:0}fieldset{border:0;border-top:1px solid #d7e2d4;padding:24px 0;margin:0}fieldset:first-of-type{border-top:0}legend{font-weight:700;font-size:20px;padding:0 12px 0 0}.fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field label{display:block;font-size:13px;font-weight:700;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;min-height:46px;padding:10px 12px;border:1px solid #bfcfc3;border-radius:2px;background:#fff;color:#143b2b}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid transparent;outline-offset:0;border-color:#2e6b47;box-shadow:0 0 0 2px #2e6b4747}.field textarea{min-height:100px}.field input[aria-invalid=true],.field select[aria-invalid=true]{border-color:#b42318}.field small,.hint{color:#526b5c;font-size:12px}.error-text{color:#b42318!important}.required{color:#a62316}.full{grid-column:1/-1}.consent{display:flex;gap:12px;align-items:flex-start;padding:20px;background:#edf3e8;margin:16px 0}.consent input{margin-top:6px;flex-shrink:0;width:18px;height:18px;accent-color:#2e6b47}.summary-line{display:flex;justify-content:space-between;gap:24px;padding:12px 0;border-bottom:1px solid #d7e2d4}.summary-line strong{white-space:nowrap}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.button,button[type=submit]{display:inline-block;background:#7fbe2a;border:1px solid #7fbe2a;color:#102710;padding:13px 24px;font:22px 'Bebas Neue',Arial,sans-serif;letter-spacing:.5px;text-decoration:none;cursor:pointer}.button:hover,button[type=submit]:hover{background:#a1d453}.button.secondary{background:#fff;color:#245a3c;border-color:#9fb7a6;font:14px Archivo,Arial,sans-serif}.button:disabled{background:#d7e0cf;border-color:#d7e0cf;color:#52614b;cursor:not-allowed}footer{background:#082c20;color:#dce8d6;text-align:center;padding:36px 20px;margin-top:48px}footer a{color:#b5e082}footer small{font-size:12px}details{margin:20px 0}summary{cursor:pointer;font-weight:700}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{padding:14px;border-bottom:1px solid #d7e2d4;text-align:left;vertical-align:top}th{background:#edf3e8}dt{font-weight:700}dd{margin:0 0 14px;overflow-wrap:anywhere}.tag{display:inline-block;background:#e6f2d5;padding:3px 9px;font-size:12px}.group-hint{font-size:13px;color:#526b5c}.review-email{max-width:800px;margin:36px auto}.review-email p{overflow-wrap:anywhere}[hidden]{display:none!important}
@media(max-width:900px){.columns{grid-template-columns:1fr}.review-header{gap:24px}.review-header nav{gap:12px 18px}.review-header img{height:80px}}
@media(max-width:600px){.review-lock{font-size:10px}.review-header{padding:20px;align-items:flex-start}.review-header nav{display:grid;gap:10px}.review-header nav a{font-size:12px}.hero{padding:32px 20px}.page-width{padding:0 16px;margin-top:24px}.fields{grid-template-columns:1fr}.panel{padding:20px}.hero h1{font-size:30px}.actions{flex-direction:column}.button{text-align:center}.review-email{margin:24px 16px}.summary-line{font-size:13px}.hero p{font-size:14px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media(forced-colors:active){.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid Highlight;box-shadow:none}}

main>.page-width{background:white;padding:32px;overflow-wrap:anywhere}main>.page-width form:not(.panel){padding:20px 0;border-top:1px solid #d7e2d4}main>.page-width form>label{display:block;margin:12px 0 4px}main>.page-width form>input:not([type=checkbox]):not([type=hidden]),main>.page-width form>select,main>.page-width form>textarea{display:block;width:100%;max-width:700px;min-height:44px;padding:10px;border:1px solid #bfcfc3}button:not(.button){background:#7fbe2a;color:#102710;border:1px solid #689c20;padding:12px 18px;cursor:pointer;margin:8px 8px 8px 0}button:hover{background:#a1d453}@media(max-width:600px){main>.page-width{padding:20px 16px;margin:20px 12px}h1{font-size:28px;line-height:1.2}}

/* Registration form card: keep inner padding (the generic `main>.page-width form` rule above
   must not reach the .panel form) and give sections clear, consistent spacing. */
#registration-form.panel{padding:32px 32px 28px;border-top:4px solid #7fbe2a}
#registration-form>.hint{margin:0 0 4px}
#registration-form fieldset{padding:28px 0 24px}
#registration-form fieldset:first-of-type{padding-top:12px}
#registration-form legend{font-size:21px;color:#0b3a26;padding:0 14px 0 0;margin-bottom:6px}
#registration-form .fields{gap:18px 22px}
#registration-form .field label{color:#163d2b}
#registration-form .field input,#registration-form .field select,#registration-form .field textarea{border-radius:4px}
#registration-form .field small{display:block;margin-top:4px}
#registration-form .group-hint{margin:0 0 14px}
@media(max-width:600px){#registration-form.panel{padding:22px 18px}main>.page-width.columns{padding:16px 12px}}

/* Checkout pages: buttons grouped in one row, same height; secondary = outline (2026-11-03). */
.checkout-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-top:24px;padding-top:24px;border-top:1px solid #d7e2d4}
main>.page-width .checkout-actions form{padding:0;border:0;margin:0}
.checkout-actions button{margin:0!important;min-height:52px;padding:0 26px}
main>.page-width form.checkout-form{border-top:0;padding-top:0}
.checkout-actions button.secondary{background:#fff;color:#1f5134;border:1px solid #2e6b47;font:22px 'Bebas Neue',Arial,sans-serif;letter-spacing:.5px}
.checkout-actions button.secondary:hover{background:#edf3e8}
.promo-field{flex:1 1 260px;max-width:420px}
.promo-field label{display:block;font-size:13px;font-weight:700;margin-bottom:6px}
.promo-field input{display:block;width:100%;min-height:52px;padding:10px 12px;border:1px solid #bfcfc3;border-radius:4px;background:#fff;color:#143b2b}
.promo-row+.hint{margin-top:10px}
@media(max-width:600px){.checkout-actions{flex-direction:column;align-items:stretch}.checkout-actions form,.checkout-actions button,.promo-field{width:100%;max-width:none}.promo-field{flex:0 0 auto}}

/* Registration submission feedback, shared by all three category forms. */
#registration-submit{display:inline-flex;align-items:center;justify-content:center;gap:10px}
#registration-submit:disabled{cursor:wait;opacity:.85;background:#7fbe2a}
.registration-spinner{display:inline-block;width:18px;height:18px;flex-shrink:0;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:nalc-submit-spin .7s linear infinite}
.registration-spinner[hidden]{display:none}
#registration-submit-status{display:block;align-self:center}
@keyframes nalc-submit-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.registration-spinner{animation:none}}
.stripe-checkout{margin:24px 0;padding:24px;background:#fff;border:1px solid #d7e0cf}.stripe-checkout-status{margin:0 0 16px;font-weight:600}#checkout-form{min-height:120px}@media(max-width:480px){.stripe-checkout{padding:16px 12px}}
/* Line under the registration name (Athletic Professional Registration). */
.hero .registration-description{margin:-8px 0 16px;font-size:18px;font-weight:600;color:#e6f2d5}
/* Hotel and Travel: video tour + photo gallery. */
.hotel-media h2{margin-top:0}.hotel-video{position:relative;aspect-ratio:16/9;background:#082c20;margin-bottom:20px}.hotel-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.hotel-gallery{list-style:none;margin:0 0 12px;padding:0!important;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.hotel-gallery li{margin:0!important}.hotel-gallery a{display:block}.hotel-gallery img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}.hotel-gallery span{display:block;font-size:13px;margin-top:6px;color:#143b2b}@media(max-width:1024px){.hotel-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.hotel-gallery{grid-template-columns:1fr}}
/* Lightbox (nalc-lightbox.js) for [data-lightbox] galleries. */
.hotel-gallery a{cursor:zoom-in;overflow:hidden}.hotel-gallery img{transition:transform .25s ease}.hotel-gallery a:hover img,.hotel-gallery a:focus-visible img{transform:scale(1.04)}html.nalc-lightbox-open{overflow:hidden}.nalc-lightbox{padding:0;border:0;margin:0;width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;background:rgba(0,20,12,.94);color:#fff}.nalc-lightbox::backdrop{background:rgba(0,20,12,.94)}.nalc-lightbox[open]{display:flex;align-items:center;justify-content:center}.nalc-lightbox-figure{margin:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:56px 72px 24px;box-sizing:border-box}.nalc-lightbox-figure img{max-width:100%;max-height:calc(100% - 48px);object-fit:contain;box-shadow:0 10px 40px rgba(0,0,0,.5)}.nalc-lightbox-figure figcaption{display:flex;gap:16px;justify-content:space-between;width:100%;max-width:1200px;margin-top:12px;font-size:15px;color:#e6f2d5}.nalc-lightbox-count{color:#a6da67;white-space:nowrap}.nalc-lightbox-btn{position:absolute;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:rgba(0,45,27,.8);color:#fff;font:400 32px/1 Arial,sans-serif;cursor:pointer;padding:0}.nalc-lightbox-btn:hover,.nalc-lightbox-btn:focus-visible{background:#7fbe2a;color:#102710;border-color:#7fbe2a}.nalc-lightbox-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}.nalc-lightbox-close{top:12px;right:12px}.nalc-lightbox-prev{left:12px;top:50%;transform:translateY(-50%)}.nalc-lightbox-next{right:12px;top:50%;transform:translateY(-50%)}@media(max-width:640px){.nalc-lightbox-figure{padding:64px 12px 84px}.nalc-lightbox-prev,.nalc-lightbox-next{top:auto;bottom:16px;transform:none}.nalc-lightbox-prev{left:calc(50% - 60px)}.nalc-lightbox-next{right:calc(50% - 60px)}}@media(prefers-reduced-motion:reduce){.hotel-gallery img{transition:none}}
.nalc-lightbox{touch-action:pan-y pinch-zoom;overscroll-behavior:contain}
