/* One spacing rhythm across the public site and native WooCommerce flows.
   Section spacing belongs to the section OR its inner wrapper, never both. */
.oc-site {
  --oc-space-xs:8px;
  --oc-space-sm:12px;
  --oc-space-md:16px;
  --oc-space-lg:24px;
  --oc-space-xl:32px;
  --oc-space-section:64px;
  --oc-space-column:48px;
  --oc-space-edge:32px;
}
.oc-site main p:empty {display:none}
.oc-site main :is(.oc-document,.oc-commerce-shell) {padding:48px var(--oc-space-edge) var(--oc-space-section)}
.oc-site main.oc-commerce-shell {padding:48px var(--oc-space-edge) var(--oc-space-section)}
.oc-site main .oc-section[class*="max-w-"] {max-width:var(--oc-page);padding-inline:var(--oc-space-edge);padding-block:var(--oc-space-section)}
.oc-site main .oc-section:not([class*="max-w-"]):not(.oc-hero):has(>[class*="max-w-"]) {padding-block:0}
.oc-site main .oc-section:not(.oc-hero)>[class*="max-w-"] {max-width:var(--oc-page);margin-inline:auto;padding:var(--oc-space-section) var(--oc-space-edge)}
.oc-site main .oc-section[class*="max-w-"]>[class*="max-w-"] {padding:0}
.oc-site main .oc-section.oc-hero {padding-block:var(--oc-space-section)!important}
.oc-site main .oc-section.oc-hero:not(.oc-home-masthead):has(>[class*="max-w-"]) {padding-block:0!important}
.oc-site main .oc-section.oc-hero:not(.oc-home-masthead)>[class*="max-w-"] {padding-block:var(--oc-space-section);padding-inline:var(--oc-space-edge)}
.oc-site .oc-hero-grid {gap:var(--oc-space-column)}
.oc-site .oc-hero-grid>* {min-width:0}
.oc-site .oc-hero-media {width:100%;min-width:0;min-height:0;max-width:100%;height:auto;aspect-ratio:auto;align-self:center;border-radius:4px!important}
.oc-site .oc-hero-media img {display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain}
.oc-site .oc-hero-media::after {display:none}
.oc-site.oc-workshop .oc-hero-copy h1,.oc-site.oc-teams .oc-hero-copy h1 {font-size:clamp(36px,4.2vw,60px);line-height:1.08;max-width:18ch}
.oc-site .oc-hero-copy ul li {padding-bottom:0}
.oc-site .oc-hero-copy .mt-8.flex {gap:12px;justify-content:flex-start;flex-wrap:wrap}
.oc-site .oc-hero-copy .grid.grid-cols-2 {gap:32px;margin-top:24px;padding-top:20px}

/* Marketing spreads share an outer alignment; columns keep useful separation. */
.oc-site .oc-personal-section {padding:var(--oc-space-section) var(--oc-space-edge)}
.oc-site .oc-personal-spread {gap:var(--oc-space-column)}
.oc-site .oc-personal-practice {margin-top:32px;padding-top:24px;gap:24px}
.oc-site .oc-personal-paths {margin-top:32px;padding-top:24px;gap:32px}
.oc-site .oc-personal-actions {margin-top:24px;gap:12px}
.oc-site .oc-personal-copy h1,.oc-site .oc-personal-copy h2 {margin-bottom:20px}
.oc-home .oc-home-masthead .oc-home-copy,.oc-home .oc-home-masthead .oc-home-visual {width:min(100%,1104px);max-width:1104px!important}
.oc-home .oc-home-masthead .oc-home-visual {max-height:none;margin-top:32px}
.oc-home .oc-home-choices {padding:var(--oc-space-section) var(--oc-space-edge)}
.oc-home .oc-home-section-heading {margin-bottom:32px;column-gap:var(--oc-space-column)}
.oc-home .oc-home-choice-list {gap:var(--oc-space-column)}
.oc-home .oc-home-choice-photo {margin-bottom:24px}
.oc-home .oc-home-choice-copy h3 {margin-bottom:16px}
.oc-home .oc-home-company-layout {column-gap:var(--oc-space-column);row-gap:24px}
.oc-home .oc-home-company-group+.oc-home-company-group {margin-top:32px}
.oc-site.oc-home main>.oc-home-inquiry {padding:0}
.oc-site.oc-home main>.oc-home-inquiry>.oc-home-inquiry-layout {
  width:100%;max-width:var(--oc-page);margin-inline:auto;
  padding:min(48px,var(--oc-space-section)) var(--oc-space-edge);
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px var(--oc-space-column);align-items:center;
}
.oc-site.oc-home .oc-home-inquiry-layout>h2 {margin:0;max-width:24ch;line-height:1.12}
.oc-site.oc-home .oc-home-inquiry-layout>p {margin:0;max-width:64ch;text-wrap:pretty;line-height:1.6}
.oc-site.oc-home .oc-home-inquiry-layout>div {margin:0;min-width:0}
.oc-site.oc-home .oc-home-inquiry-layout .oc-button {min-height:48px;white-space:normal}
.oc-individuals :is(.oc-skills-spread,.oc-day-flow) {--oc-layout-gap:var(--oc-space-column)}
.oc-individuals .oc-day-steps {margin-top:32px;gap:24px}
.oc-individuals .oc-community-feature .oc-community-inner {max-width:var(--oc-page);padding:var(--oc-space-section) var(--oc-space-edge)}
.oc-individuals .oc-community-feature .oc-community-heading {gap:var(--oc-space-column);margin-bottom:32px}
.oc-individuals .oc-community-feature .oc-community-footnote {padding-top:24px}
.oc-teams .oc-team-process-heading {margin-bottom:32px}
.oc-teams .oc-team-process-spread,.oc-teams .oc-team-enquire-grid {gap:var(--oc-space-column)}
.oc-teams .oc-team-process-media {padding-top:0}
.oc-teams .oc-team-privacy-features {margin-top:32px;gap:32px}
.oc-teams .oc-team-directory [data-oc-audience-grid="departments"] {margin-bottom:40px}
.oc-industry .oc-industry-hero,.oc-industry .oc-industry-split {gap:var(--oc-space-column)}
.oc-site .oc-industry-row {padding-block:24px;gap:24px}
.oc-site .oc-industry-rows {margin-top:32px}
.oc-site .oc-industry-photo img {height:auto;aspect-ratio:auto;object-fit:contain;border-radius:4px}
.oc-site.oc-virtual main .oc-section>[class*="max-w-"] {padding-block:var(--oc-space-section)}
.oc-site.oc-virtual main .oc-section>.pointer-events-none {pointer-events:none}

/* Legacy content rows use the same 4px spacing scale. */
.oc-site main .oc-section:not(#community):not(#dates) :is(.mt-16,.lg\:mt-24) {margin-top:40px}
.oc-site main .oc-section:not(#community):not(#dates) :is(.mb-12,.lg\:mb-16) {margin-bottom:32px}
.oc-site main .oc-section:not(#community):not(#dates) .lg\:gap-16 {gap:var(--oc-space-column)}
.oc-site main .oc-section:not(#community):not(#dates):not(.oc-home-inquiry) h2+p {margin-top:16px}
.oc-site main .oc-section:not(#community):not(#dates) h3+p {margin-top:12px}

/* FAQs are one connected list, with a compact introduction alongside on desktop. */
/* Only the outer FAQ wrapper becomes a grid. Its heading, introduction and
   answer list must stay in normal flow, including when every answer is open. */
.oc-site main .oc-faq-actions {display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0;padding:0 0 12px;color:var(--oc-muted);font-size:13px;line-height:1.5}
.oc-site main .oc-faq-all-toggle {display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 14px;border:1px solid var(--oc-control-border);border-radius:3px;background:transparent;color:var(--oc-ink);font:inherit;font-weight:650;cursor:pointer;transition:background-color .15s ease-out,color .15s ease-out}
.oc-site main .oc-faq-all-toggle:hover {background:var(--oc-ink);border-color:var(--oc-ink);color:var(--oc-paper)}
.oc-site main .oc-faq-all-toggle:focus-visible {outline:3px solid var(--oc-action);outline-offset:3px}
.oc-site main .faq-item {margin:0}
.oc-site main .faq-toggle {padding:18px 0;gap:20px;min-height:56px}
.oc-site main .faq-content>p,.oc-site main .faq-content>div {padding:0 36px 20px 0;margin:0}
.oc-site main .faq-content>div p:last-child {margin-bottom:0}
.oc-site main .oc-section:not([class*="max-w-"]):has(.faq-item):not(.oc-home-faq)>[class*="max-w-"] {max-width:var(--oc-page)}
@media(min-width:1000px) {
  .oc-site main .oc-section:not([class*="max-w-"]):has(.faq-item):not(.oc-home-faq)>[class*="max-w-"],
  .oc-site main .oc-section[class*="max-w-"]:has(.faq-item):not(.oc-home-faq) {display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:var(--oc-space-column);align-items:start}
  .oc-site main .oc-section:not([class*="max-w-"]):has(.faq-item):not(.oc-home-faq)>[class*="max-w-"]>div,
  .oc-site main .oc-section[class*="max-w-"]:has(.faq-item):not(.oc-home-faq)>div {min-width:0;margin:0;max-width:none}
}

/* Prices and calendar retain their compact/full-detail behaviors. */
.oc-site main>.oc-upfront-pricing:not(.oc-pricing-compact) {max-width:1280px;padding:var(--oc-space-section) var(--oc-space-edge)}
.oc-site .oc-group-prompt {max-width:1216px;margin-block:32px;padding:32px;gap:32px}
.oc-site main>.oc-group-prompt {width:calc(100% - var(--oc-space-edge)*2);max-width:1216px}
.oc-site #dates.oc-woo-schedule>.max-w-7xl {padding-block:var(--oc-space-section)}
.oc-site #dates .oc-results-bar {margin-top:24px}
.oc-site #dates .oc-calendar-more {margin-top:24px}

/* Native product structure keeps the gallery with the actual purchase overview. */
.oc-site .oc-product-overview {display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--oc-space-column);align-items:start;margin-bottom:40px}
.oc-site.oc-commerce .oc-product-overview>div.images,.oc-site.oc-commerce .oc-product-overview>div.summary {width:100%;float:none;margin:0;min-width:0}
.oc-site.oc-commerce .oc-product-overview>div.images {position:sticky!important;top:148px;align-self:start}
.oc-site.oc-commerce .oc-product-overview .product_title {font-size:clamp(28px,3vw,40px);line-height:1.15;margin-bottom:20px}
.oc-site.oc-commerce .oc-product-overview p.price {margin-bottom:20px}
.oc-site.oc-commerce .oc-product-overview .woocommerce-product-details__short-description {margin-bottom:20px}
.oc-site.oc-commerce .oc-product-overview form.cart {margin-block:24px}
.oc-site.oc-commerce .oc-product-overview .flex-control-thumbs {display:flex;gap:8px;padding-top:12px}
.oc-site.oc-commerce .oc-product-overview .flex-control-thumbs li {float:none;flex:1;width:auto!important}
.oc-site.oc-commerce div.product .woocommerce-tabs {padding-top:0}
.oc-site.oc-commerce div.product .woocommerce-tabs .panel>h2:first-child {margin-top:0}
.oc-site.oc-commerce div.product .woocommerce-tabs .panel p:empty {display:none}
.oc-site.oc-commerce ul.products {gap:40px 28px}
.oc-site.oc-commerce ul.products li.product a.woocommerce-loop-product__link {display:flex;flex-direction:column}
.oc-site.oc-commerce ul.products li.product .price {margin-top:auto;padding-top:16px;margin-bottom:20px}
.oc-site.oc-commerce ul.products li.product .woocommerce-loop-product__title {font-size:21px;line-height:1.35}
.oc-site .oc-document-heading {margin-bottom:32px}
.oc-site .oc-document:has(.oc-commerce-page) {max-width:1280px}
.oc-site .oc-document:has(.oc-commerce-page) .oc-document-heading {margin-bottom:20px}
.oc-site .oc-group-builder {margin-block:32px 40px;gap:var(--oc-space-column)}
.oc-site .oc-group-step {margin-bottom:24px}
.oc-site .oc-group-step legend {padding-block:20px 16px}
.oc-site .oc-enrollment-reassurance {padding-top:24px;gap:32px}
.oc-site .oc-cart-layout {gap:var(--oc-space-column)}
.oc-site .oc-cart-facts {margin-top:24px;gap:20px}
.oc-site .oc-cart-course-heading {gap:20px}
.oc-site.woocommerce-cart .oc-commerce-shell {padding-top:24px}
.oc-site.woocommerce-checkout .woocommerce form .form-row {margin-bottom:16px;padding:0}
.oc-site.woocommerce-checkout .woocommerce form .form-row label {margin-bottom:6px}
.oc-site.woocommerce-account .woocommerce-MyAccount-content>p {margin:0 0 20px}

/* The inquiry banner sits in a narrow column, so use the column's space. */
.oc-site.oc-contact .rounded-2xl:has(>.oc-inquiry) {padding:24px;background:var(--oc-wash);overflow:visible}
.oc-site.oc-contact .rounded-2xl:has(>.oc-inquiry)>.oc-group-prompt {margin:0 0 28px;padding:0 0 24px;border:0;border-bottom:1px solid var(--oc-border);display:block;background:transparent}
.oc-site.oc-contact .oc-group-prompt h2 {max-width:30ch}
.oc-site.oc-contact .oc-group-links {display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px;text-align:left;margin-top:20px}
.oc-site.oc-contact .oc-inquiry-form p {margin-bottom:20px}
.oc-site.oc-contact .oc-inquiry-form label {margin-bottom:8px}

/* Campaigns remain focused, with the same page-edge and section rhythm. */
.oc-site.ocg-page .ocg-wrap {width:min(1216px,100% - var(--oc-space-edge)*2)}
.oc-site.ocg-page :is(.ocg-hero,.ocg-personal,.ocg-faq,.ocg-project-layout) {column-gap:var(--oc-space-column)}
.oc-site.ocg-page .ocg-hero {padding-block:48px 40px}
.oc-site.ocg-page :is(.ocg-project,.ocg-personal,.ocg-faq) {padding-block:var(--oc-space-section)}
.oc-site.ocg-page .ocg-enrollment {padding-block:0 var(--oc-space-section)}
.oc-site.ocg-page .ocg-final {padding-block:40px;margin-bottom:0}
.oc-site.ocg-page .ocg-form-panel {padding:24px}
.oc-site.ocg-page .ocg-section-heading {margin-bottom:24px}
.oc-site.ocg-page .ocg-enroll-row {padding-block:24px;gap:24px}
.oc-site .oc-footer-wrap {max-width:1280px;padding:48px var(--oc-space-edge) 24px}
.oc-site .oc-footer-main {gap:48px;padding-bottom:32px}
.oc-site .oc-footer-bottom {padding-top:20px}

@media(max-width:999px) {
  .oc-site {--oc-space-column:32px;--oc-space-section:56px}
  .oc-site main .oc-section:has(.faq-item) {max-width:1280px}
  .oc-site.oc-commerce .oc-product-overview>div.images {position:static!important;top:auto}
  .oc-site .oc-product-overview {grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px}
  .oc-site .oc-group-builder {gap:28px}
  .oc-site .oc-footer-main {gap:32px}
  .oc-site.oc-home main>.oc-home-inquiry>.oc-home-inquiry-layout {display:block}
  .oc-site.oc-home .oc-home-inquiry-layout>p {margin-top:12px}
  .oc-site.oc-home .oc-home-inquiry-layout>div {margin-top:24px}
}
@media(max-width:767px) {
  .oc-site {--oc-space-edge:24px;--oc-space-section:48px;--oc-space-column:28px}
  .oc-site .oc-product-overview {grid-template-columns:minmax(0,1fr);gap:28px;margin-bottom:32px}
  .oc-site main :is(.oc-document,.oc-commerce-shell),.oc-site main.oc-commerce-shell {padding-top:32px}
  .oc-site .oc-group-prompt {padding:24px}
  .oc-site main .faq-toggle {padding-block:16px;gap:16px}
  .oc-site main .faq-content>p,.oc-site main .faq-content>div {padding-right:0}
  .oc-site .oc-personal-practice {gap:24px}
  .oc-site .oc-personal-paths {gap:20px}
  .oc-site .oc-industry-row {gap:16px}
  .oc-site.ocg-page .ocg-hero {padding-top:32px}
  .oc-site .oc-footer-main {gap:28px}
}
@media(max-width:600px) {
  .oc-site {--oc-space-edge:20px;--oc-space-section:40px;--oc-space-column:24px}
  .oc-site .oc-group-builder {gap:24px}
  .oc-site .oc-home-choice-list {gap:32px}
  .oc-site .oc-home-choice+.oc-home-choice {padding-top:24px}
  .oc-site.oc-home .oc-home-inquiry-layout .oc-button {width:100%}
  .oc-site.oc-contact .rounded-2xl:has(>.oc-inquiry) {padding:20px}
  .oc-site.oc-contact .oc-group-links {display:grid;justify-items:start}
  .oc-site .oc-cart-layout {gap:32px}
  .oc-site .oc-cart-facts {gap:16px}
  .oc-site .oc-footer-wrap {padding-top:40px}
}
@media(min-width:768px) and (max-height:720px) {.oc-site.oc-commerce .oc-product-overview>div.images {position:static!important;top:auto}}

/* Keep legacy headings, explanatory copy and their action on one alignment. */
.oc-site main .oc-section .text-left.lg\:text-center {text-align:left}
.oc-site main .oc-section .text-left.lg\:text-center>p {margin-inline:0}
.oc-site main .oc-section .text-left.lg\:text-center>.flex {align-items:flex-start;justify-content:flex-start;flex-wrap:wrap;margin-top:28px}
.oc-site .oc-hero-copy .mt-8.flex>div {display:contents}
.oc-site .oc-hero-copy .mt-8.flex>div>p {order:3;flex-basis:100%;margin:0}

.oc-site.oc-commerce .oc-product-overview .woocommerce-product-gallery__wrapper {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.oc-site.oc-commerce .oc-product-overview .woocommerce-product-gallery__wrapper>.woocommerce-product-gallery__image {width:100%!important;margin:0}
.oc-site.oc-commerce .oc-product-overview .woocommerce-product-gallery__wrapper>.woocommerce-product-gallery__image:first-child {grid-column:1/-1;margin-bottom:4px}

.oc-site .oc-section.oc-audience {padding-block:var(--oc-space-section)}
.oc-site .oc-audience .oc-audience-inner {max-width:1280px;padding-inline:var(--oc-space-edge)}

/* Checkout: keep the order alongside billing, rather than an empty notes column. */
.oc-site.woocommerce-checkout .woocommerce form.checkout #customer_details {display:block}
.oc-site.woocommerce-checkout .woocommerce form.checkout #customer_details>.col-1,
.oc-site.woocommerce-checkout .woocommerce form.checkout #customer_details>.col-2 {float:none;width:100%;max-width:none}
.oc-site.woocommerce-checkout .woocommerce form.checkout #customer_details>.col-2 {margin-top:32px}
.oc-site.woocommerce-checkout .woocommerce form.checkout :is(.woocommerce-billing-fields,.woocommerce-additional-fields)>h3 {margin:0 0 24px}
.oc-site.woocommerce-checkout .woocommerce form.checkout #order_review_heading {margin:32px 0 20px}
@media(min-width:1000px) {
  .oc-site.woocommerce-checkout .woocommerce form.checkout {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto 1fr;gap:24px var(--oc-space-column);align-items:start}
  .oc-site.woocommerce-checkout .woocommerce form.checkout::before,
  .oc-site.woocommerce-checkout .woocommerce form.checkout::after {display:none}
  .oc-site.woocommerce-checkout .woocommerce form.checkout #customer_details {grid-column:1;grid-row:1/3;min-width:0}
  .oc-site.woocommerce-checkout .woocommerce form.checkout #order_review_heading {grid-column:2;grid-row:1;margin:0}
  .oc-site.woocommerce-checkout .woocommerce form.checkout #order_review {grid-column:2;grid-row:2;min-width:0}
}
/* Preserve the word boundary at the photo caption's authored line break. */
.oc-site .oc-community-feature .oc-community-photo figcaption p br {display:revert}
