/* Shared financial decisions: clear controls, quiet structure, explicit contrast pairs. */
.oc-commerce-page,.oc-policy{color:var(--oc-ink,#1c2946)}
.oc-commerce-lead{font-size:clamp(1.3rem,2.2vw,1.75rem);font-weight:650;line-height:1.4;max-width:40ch;letter-spacing:-.025em;margin:0 0 12px}
.oc-commerce-eyebrow{font-size:.72rem;line-height:1.5;letter-spacing:.1em;font-weight:750;color:var(--oc-action,#b63300)}
.oc-commerce-page>p{max-width:74ch;line-height:1.75;margin:16px 0}
.oc-commerce-page>h2{font-size:clamp(1.4rem,2.2vw,1.8rem);margin:40px 0 16px;line-height:1.25}
.oc-commerce-page>h2.oc-after-action{margin-top:56px}
/* Button selectors never inherit ordinary text-link colors. No opposite-polarity crossfade. */
.oc-site .oc-commerce-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:50px;padding:14px 22px;background:var(--oc-action,#b63300);color:var(--oc-paper,#f5f8fc);border:1px solid var(--oc-action,#b63300);font:inherit;font-weight:700;text-decoration:none;border-radius:4px;line-height:1.4;text-align:center;cursor:pointer;transition:background-color .15s,border-color .15s}
.oc-site .oc-commerce-button:is(:hover,:focus-visible,:active){background:var(--oc-action-hover,#862600);border-color:var(--oc-action-hover,#862600);color:var(--oc-paper,#f5f8fc);text-decoration:none}
.oc-site .oc-commerce-button:disabled{background:var(--oc-wash);color:var(--oc-muted);border-color:var(--oc-muted);opacity:1;cursor:not-allowed}
.oc-site :is(.oc-commerce-button,.oc-group-builder input,.oc-group-builder select,.oc-group-builder button,.oc-support-form input,.oc-support-form select,.oc-support-form textarea,.oc-rate-scroll):focus-visible{outline:3px solid var(--oc-ink);outline-offset:4px;box-shadow:0 0 0 3px var(--oc-paper)}
.oc-commerce-muted{color:var(--oc-muted,#4b5d77);font-size:.9rem;line-height:1.65}
.oc-commerce-fine,.oc-cart-policy{font-size:.875rem;line-height:1.7}
.oc-commerce-notice a,.oc-cart-policy a,.oc-product-group-quote a,.oc-policy a:not(.oc-commerce-button),.oc-commerce-page a:not(.oc-commerce-button){color:var(--oc-action);text-decoration:underline;text-underline-offset:4px}
.oc-commerce-notice a:hover,.oc-cart-policy a:hover,.oc-product-group-quote a:hover,.oc-policy a:not(.oc-commerce-button):hover,.oc-commerce-page a:not(.oc-commerce-button):hover{color:var(--oc-action-hover)}
/* Group invitations share the same action vocabulary on campaigns, shop and training. */
.oc-group-prompt{background:var(--oc-wash,#e3edf9);border:1px solid var(--oc-border);padding:clamp(24px,4vw,40px);display:flex;gap:32px;justify-content:space-between;align-items:center;margin:40px auto;max-width:1200px;color:var(--oc-ink)}
.oc-group-prompt h2{font-size:clamp(1.35rem,2vw,1.85rem);margin:8px 0 12px;line-height:1.25}
.oc-group-prompt p{margin:0;max-width:66ch;line-height:1.7}
.oc-group-links{display:grid;gap:12px;flex:0 0 270px;text-align:center}
.oc-group-links>a:last-child{display:flex;align-items:center;justify-content:center;min-height:44px;font-size:.9rem;color:var(--oc-ink);text-underline-offset:4px}
.oc-group-links>a:last-child:hover{color:var(--oc-action-hover)}
/* Enrollment: three open steps and one order preview. */
.oc-document:has(.oc-commerce-page){max-width:1220px}
.oc-document:has(.oc-commerce-page) .oc-document-heading{margin-bottom:20px}
.oc-document:has(.oc-commerce-page) .oc-document-heading h1{font-size:clamp(2.3rem,5vw,3.75rem);line-height:1.1;letter-spacing:-.045em}
.oc-document:has(.oc-commerce-page) .oc-document-heading .oc-eyebrow{margin-bottom:16px}
.oc-enrollment-intro{max-width:720px}
.oc-enrollment-intro>p:last-child{font-size:1rem;color:var(--oc-muted);line-height:1.7;max-width:60ch;margin:12px 0 0}
.oc-group-builder{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,380px);gap:clamp(32px,5vw,72px);margin:44px 0 48px;align-items:start}
.oc-group-fields{min-width:0}
.oc-group-step{border:0;border-top:1px solid var(--oc-border);min-width:0;margin:0 0 28px;padding:0 0 4px}
.oc-group-step[hidden]{display:none}
.oc-group-step legend{float:left;width:100%;display:flex;align-items:baseline;gap:12px;padding:24px 0 18px;font-size:1.2rem;line-height:1.3;letter-spacing:-.025em;font-weight:750}
.oc-group-step legend span{font-size:.8rem;font-weight:750;color:var(--oc-action);font-variant-numeric:tabular-nums;letter-spacing:.04em}
.oc-group-step legend+*{clear:both}
.oc-step-help{color:var(--oc-muted);font-size:.9rem;line-height:1.65;margin:0 0 20px}
.oc-form-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.oc-group-builder label,.oc-support-form label{display:block;font-weight:650;font-size:.875rem;line-height:1.5}
.oc-group-builder select,.oc-group-builder input,.oc-support-form select,.oc-support-form input,.oc-support-form textarea{font:inherit;font-size:1rem;color:var(--oc-ink);max-width:100%;min-width:0;min-height:52px;width:100%;padding:12px 14px;border:1px solid var(--oc-muted);border-radius:4px;background:var(--oc-paper);margin-top:8px}
.oc-group-builder select{padding-right:28px}
.oc-group-builder :is(select,input):hover,.oc-support-form :is(select,input,textarea):hover{border-color:var(--oc-ink)}
.oc-learning-note{font-size:.875rem;line-height:1.7;color:var(--oc-muted);margin:16px 0 0;max-width:65ch}
.oc-session-detail{margin-top:20px;font-size:.9rem}
.oc-session-detail dl{margin:0;display:grid;gap:10px}
.oc-session-detail dl>div{display:grid;grid-template-columns:76px minmax(0,1fr);gap:16px}
.oc-session-detail dt{color:var(--oc-muted)}
.oc-session-detail dd{margin:0;color:var(--oc-ink);line-height:1.65}
.oc-participant-row{display:flex;gap:28px;align-items:center}
.oc-participant-control{display:flex;align-items:center;margin-top:8px;width:180px;flex:none}
.oc-group-builder .oc-participant-control input{margin:0;width:76px;min-width:0;height:52px;border-radius:0;text-align:center;border-left:0;border-right:0;font-size:1.15rem;font-weight:650;font-variant-numeric:tabular-nums;appearance:textfield;-moz-appearance:textfield}
.oc-participant-control input::-webkit-inner-spin-button,.oc-participant-control input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.oc-participant-control button{width:52px;height:52px;flex:none;border:1px solid var(--oc-muted);background:var(--oc-paper);color:var(--oc-ink);font-size:1.4rem;cursor:pointer}
.oc-participant-control button:first-child{border-radius:4px 0 0 4px}
.oc-participant-control button:last-child{border-radius:0 4px 4px 0}
.oc-participant-control button:is(:hover,:focus-visible,:active){background:var(--oc-wash);color:var(--oc-ink);border-color:var(--oc-ink)}
.oc-participant-control button:disabled{background:var(--oc-wash);color:var(--oc-muted);border-color:var(--oc-muted);cursor:not-allowed;opacity:1}
.oc-participant-row .oc-commerce-muted{margin:20px 0 0;font-size:.85rem}
.oc-enrollment-mixed{font-size:.875rem;line-height:1.75;color:var(--oc-muted);margin:0;border-top:1px solid var(--oc-border);padding-top:20px}
.oc-group-estimate{background:var(--oc-ink);color:var(--oc-paper);padding:clamp(24px,3vw,36px);border-radius:6px;align-self:start;position:sticky;top:140px;min-width:0}
.oc-group-estimate .oc-commerce-eyebrow{color:#ffb18b}
.oc-group-estimate h2{font-family:var(--font-body);font-size:1.55rem;line-height:1.3;letter-spacing:-.025em;color:var(--oc-paper);margin:14px 0 12px}
.oc-group-estimate h2 span{display:block}
.oc-group-estimate h2 span:first-child{font-size:.95rem;font-weight:500;letter-spacing:0;color:#dce7f7;margin-bottom:4px}
.oc-group-estimate p{color:#dce7f7;font-size:.875rem;line-height:1.7;margin:12px 0}
#oc-group-summary-session{padding-bottom:20px;border-bottom:1px solid #72819a;margin:0 0 24px}
.oc-quote-row{display:flex;gap:20px;justify-content:space-between;font-size:.875rem;line-height:1.5;margin:12px 0}
.oc-quote-row>span{color:#dce7f7}
.oc-quote-row strong{text-align:right;font-variant-numeric:tabular-nums;color:var(--oc-paper)}
.oc-quote-total{border-top:1px solid #72819a;padding-top:24px;margin-top:24px}
.oc-total-label{font-size:.875rem;display:block}
.oc-quote-total strong{display:block;font-size:clamp(2rem,3.1vw,2.8rem);font-weight:650;line-height:1.15;letter-spacing:-.045em;margin:8px 0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.oc-total-currency{display:block;font-size:.75rem;color:#dce7f7}
.oc-group-estimate .oc-quote-route{margin-top:24px;font-weight:650;color:var(--oc-paper)}
.oc-group-estimate .oc-quote-note{font-size:.8rem;margin-bottom:0}
.oc-site .oc-group-estimate .oc-commerce-button{width:100%;background:#ffb18b;border-color:#ffb18b;color:var(--oc-ink);margin-top:24px}
.oc-site .oc-group-estimate .oc-commerce-button:is(:hover,:focus-visible,:active){background:#ffd6c1;border-color:#ffd6c1;color:var(--oc-ink)}
.oc-site .oc-group-estimate .oc-commerce-button:disabled{background:#dce7f7;border-color:#dce7f7;color:#415371;opacity:1}
.oc-group-estimate .oc-no-payment{font-size:.75rem;text-align:center;margin:12px 0 16px}
.oc-commerce-page .oc-group-estimate a:not(.oc-commerce-button){color:#dce7f7;text-underline-offset:4px}
.oc-commerce-page .oc-group-estimate a:not(.oc-commerce-button):is(:hover,:focus-visible,:active){color:#fff}
.oc-group-estimate .oc-rate-link{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;font-size:.875rem;border-top:1px solid #72819a;padding-top:16px}
.oc-enrollment-reassurance{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,72px);border-top:1px solid var(--oc-border);padding-top:32px}
.oc-enrollment-reassurance h2{font-family:var(--font-body);font-size:1.15rem;line-height:1.4;letter-spacing:-.02em;margin:0 0 14px}
.oc-enrollment-reassurance p{font-size:.875rem;line-height:1.8;color:var(--oc-muted);margin:12px 0 0}
/* Group pricing remains an easy-to-compare ledger. */
.oc-rate-hint{font-size:.875rem;color:var(--oc-muted)}
.oc-rate-scroll{max-width:100%;overflow:auto;margin:24px 0 32px;border:1px solid var(--oc-border);border-radius:4px}
.oc-rate-table{width:100%;border-collapse:collapse;min-width:580px;font-size:.95rem;font-variant-numeric:tabular-nums}
.oc-rate-table caption{text-align:left;font-size:.875rem;padding:18px;color:var(--oc-muted);caption-side:bottom}
.oc-rate-table th,.oc-rate-table td{padding:20px;text-align:right;border-bottom:1px solid var(--oc-border);white-space:nowrap}
.oc-rate-table tr>:first-child{text-align:left}
.oc-rate-table thead{background:var(--oc-ink);color:var(--oc-paper)}
.oc-rate-table tbody tr:nth-child(even){background:var(--oc-wash)}
.oc-rate-table tbody tr:last-child{font-weight:750}
.oc-payment-pair{display:grid;grid-template-columns:1fr 1fr;gap:40px;border-top:1px solid var(--oc-border);border-bottom:1px solid var(--oc-border);margin:32px 0;padding:28px 0}
.oc-payment-pair section{padding:0}
.oc-payment-pair h2{font-family:var(--font-body);font-size:1.4rem;line-height:1.3;margin:10px 0 12px;letter-spacing:-.025em}
.oc-payment-pair p{font-size:.95rem;color:var(--oc-muted);line-height:1.75;max-width:50ch;margin:0}
.oc-policy{max-width:780px}
.oc-document:has(.oc-policy) .oc-document-heading h1{font-size:clamp(2.1rem,4.6vw,3.5rem);line-height:1.13}
.oc-policy h2{font-family:var(--font-body);font-weight:700;font-size:1.4rem;line-height:1.3;margin:36px 0 14px;letter-spacing:-.025em}
.oc-policy p,.oc-policy li{line-height:1.8}
.oc-policy p{margin:16px 0}
.oc-policy li{margin-bottom:16px}
.oc-policy .oc-commerce-button{margin:12px 0}
.oc-commerce-notice,.oc-product-group-quote{padding:24px;background:var(--oc-wash);color:var(--oc-ink);border:1px solid var(--oc-border);margin:24px 0}
.oc-product-group-quote output{display:block;font-size:1.05rem;font-weight:700}
.oc-support-form{max-width:660px;margin:32px 0}
.oc-support-form label{margin:24px 0}
.oc-support-form textarea::placeholder{color:var(--oc-muted);opacity:1}
.oc-wire-details>div{padding:10px 0;border-bottom:1px solid var(--oc-border)}
.oc-wire-details dt{font-weight:700}
.oc-wire-details dd{margin:5px 0;overflow-wrap:anywhere}
@media(max-width:900px){.oc-group-builder{grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);gap:28px}.oc-form-pair{grid-template-columns:1fr;gap:18px}.oc-participant-row{flex-direction:column;gap:12px;align-items:flex-start}.oc-participant-row .oc-commerce-muted{margin:0}.oc-group-estimate{top:145px;padding:24px}.oc-group-prompt{flex-direction:column;align-items:stretch}.oc-group-links{flex-basis:auto;display:flex;align-items:center;gap:24px;text-align:left}}
@media(max-width:700px){.oc-group-builder{grid-template-columns:1fr;gap:12px;margin-top:32px}.oc-group-estimate{position:static}.oc-form-pair{grid-template-columns:1fr 1fr}.oc-participant-row{flex-direction:row;align-items:center;gap:20px}.oc-enrollment-reassurance,.oc-payment-pair{grid-template-columns:1fr;gap:28px}.oc-payment-pair section+section{border-top:1px solid var(--oc-border);padding-top:28px}.oc-group-links{display:grid;gap:12px}.oc-group-prompt{margin:32px 0;padding:24px}.oc-rate-table th,.oc-rate-table td{padding:16px 14px}.oc-group-estimate h2{font-size:1.7rem}.oc-quote-total strong{font-size:2.5rem}.oc-policy{overflow-wrap:anywhere}}
@media(max-width:440px){.oc-form-pair{grid-template-columns:1fr}.oc-participant-row{flex-direction:column;align-items:flex-start;gap:14px}.oc-commerce-page>.oc-commerce-button,.oc-policy>.oc-commerce-button{width:100%}.oc-rate-table tr>:first-child{position:sticky;left:0;background:var(--oc-paper);color:var(--oc-ink);border-right:1px solid var(--oc-border)}.oc-rate-table thead tr>:first-child{background:var(--oc-ink);color:var(--oc-paper)}.oc-rate-table tbody tr:nth-child(even)>:first-child{background:var(--oc-wash)}}
@media(prefers-reduced-motion:reduce){.oc-site .oc-commerce-button{transition:none}}
@media(forced-colors:active){.oc-site .oc-commerce-button:focus-visible,.oc-group-builder :focus-visible,.oc-support-form :focus-visible{outline:3px solid Highlight;box-shadow:none}}

/* A short viewport must allow the full summary to scroll naturally. */
@media(min-width:701px) and (max-height:950px){.oc-group-estimate{position:static}}
.oc-participant-control:has(button[hidden]) input{border:1px solid var(--oc-muted);border-radius:4px;width:100%}
@media(min-width:701px){.oc-commerce-page .oc-rate-hint{display:none}}

.oc-group-fields .oc-input-error{font-size:.875rem;line-height:1.6;color:var(--oc-action);font-weight:650;margin:14px 0 0}
.oc-group-fields .oc-input-error[hidden]{display:none}
.oc-group-builder input[aria-invalid="true"]{border-color:var(--oc-action)}
/* Conditional team information stays out of a solo enrollment. */
.oc-product-group-quote[hidden],.oc-group-builder [data-oc-group-only][hidden]{display:none!important}

#oc-group-summary-session{display:grid;gap:6px}
#oc-group-summary-session strong{font-weight:700}
