/* WooCommerce course flow, loaded after the base child-theme stylesheet. */
.ldal-cart-link { position: relative; }
.ldal-cart-count { position: absolute; top: -.55rem; right: -.8rem; display: flex; min-width: 20px; height: 20px; align-items: center; justify-content: center; padding: 0 6px; border-radius: 999px; background: var(--ldal-accent); color: var(--ldal-text); font-size: 11px; font-weight: 700; line-height: 1; }
.ldal-cart-count[data-count="0"] { display: none; }
.ldal-course-action svg { width: 1rem; height: 1rem; }
.ldal-button--in-cart { cursor: not-allowed; opacity: .7; }
.ldal-course__bottom > .added_to_cart { display: none !important; }

body:is(.woocommerce-cart,.woocommerce-checkout) #primary { width: 100%; max-width: none; margin: 0; padding: 0; }
body:is(.woocommerce-cart,.woocommerce-checkout) #primary > .content-container,
body:is(.woocommerce-cart,.woocommerce-checkout) #primary .site-container,
body:is(.woocommerce-cart,.woocommerce-checkout) #primary article.entry,
body:is(.woocommerce-cart,.woocommerce-checkout) #primary .entry-content-wrap { width: 100%; max-width: none; margin: 0; padding: 0; background: transparent !important; box-shadow: none !important; }
body:is(.woocommerce-cart,.woocommerce-checkout) .entry-header { display: none; }
.ldal-empty-cart { width: calc(100% - 3rem); max-width: 36rem; margin: 0 auto; padding: 6rem 0 7rem; text-align: center; }
.ldal-empty-cart__icon { width: 3.5rem; height: 3.5rem; color: var(--ldal-muted); }
.ldal-empty-cart h1 { margin: 1.5rem 0 0; font-size: var(--ldal-text-3xl); font-weight: 600; line-height: 2.25rem; }
.ldal-empty-cart p { margin: .75rem 0 0; color: var(--ldal-muted); }
.ldal-empty-cart .ldal-button { margin-top: 2rem; }
.ldal-basket, .ldal-checkout { width: 100%; max-width: var(--ldal-wide); margin: 0 auto; padding: 4rem 1.5rem; }
@media (min-width: 768px) {
  .ldal-basket, .ldal-checkout { padding: 6rem 1.5rem; }
}
.ldal-commerce-heading h1 { margin: 0 !important; font-size: var(--ldal-text-4xl); line-height: 2.8125rem; font-weight: 600; }
.ldal-commerce-heading p { margin: .5rem 0 0 !important; color: var(--ldal-muted); font-size: var(--ldal-text-base); line-height: 1.5rem; }
@media (min-width: 768px) {
  .ldal-commerce-heading h1 { font-size: var(--ldal-text-5xl); line-height: 3.75rem; }
}
/* checkout.tsx's blocking-error style (rounded-2xl border-destructive/40
 * bg-destructive/5), not the softer accent/notice tone. */
.ldal-basket-access-warning { display: flex; align-items: flex-start; gap: .75rem; margin-top: 1.5rem; padding: 1.25rem; border: 1px solid color-mix(in oklab,var(--ldal-destructive) 40%,transparent); border-radius: 1.25rem; background: color-mix(in oklab,var(--ldal-destructive) 5%,transparent); }
.ldal-basket-access-warning > span { display: grid; width: 2.5rem; height: 2.5rem; flex: 0 0 auto; place-items: center; border-radius: 50%; background: color-mix(in oklab,var(--ldal-destructive) 10%,transparent); color: var(--ldal-destructive); font-size: 1.1rem; font-weight: 700; }
.ldal-basket-access-warning strong { display: block; color: var(--ldal-destructive); font-weight: 600; font-size: var(--ldal-text-sm); line-height: 1.25rem; }
.ldal-basket-access-warning p { margin: .25rem 0 0; color: color-mix(in oklab,var(--ldal-destructive) 90%,transparent); font-size: var(--ldal-text-sm); line-height: 1.25rem; }

.ldal-basket__layout { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(280px,1fr); align-items: start; gap: 2.5rem; margin-top: 2.5rem; }
.woocommerce .ldal-basket ul.ldal-basket__items { display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; }
.ldal-basket-item, .ldal-basket__summary, .ldal-checkout-card, .ldal-checkout-summary, .ldal-invoice { border: 0; border-radius: 1.25rem; background: var(--ldal-card); box-shadow: var(--ldal-shadow); transition: transform .2s ease, box-shadow .2s ease; }
/* card-elevated's hover lift (basket.tsx, checkout.tsx, invoice.$id.tsx). */
.ldal-basket__summary:hover, .ldal-checkout-card:hover, .ldal-checkout-summary:hover, .ldal-invoice:hover { transform: translateY(-4px); box-shadow: var(--ldal-shadow-elevated); }
.ldal-basket-item { display: flex; flex-direction: column; gap: 1rem; padding: 1.25rem; transition: transform .2s,box-shadow .2s; }
.ldal-basket-item:hover { transform: translateY(-4px); box-shadow: var(--ldal-shadow-elevated); }
.ldal-basket-item--restricted { border: 1px solid color-mix(in oklab,var(--ldal-accent) 35%,var(--ldal-border)); }
.ldal-basket-item__course { min-width: 0; flex: 1; }
.ldal-basket-item__course > span { display: block; color: var(--ldal-accent); font-size: .75rem; font-weight: 500; letter-spacing: .05em; text-transform: uppercase; }
.woocommerce .ldal-basket-item__course > a, .ldal-basket-item__course > strong { display: block; margin-top: .15rem; color: var(--ldal-text); font-family: var(--ldal-font-display); font-size: var(--ldal-text-xl); font-weight: 600; line-height: 1.75rem; text-decoration: none; }
.woocommerce .ldal-basket-item__course > a:hover { color: var(--ldal-primary); }
.ldal-basket-item__course small { display: block; color: var(--ldal-muted); font-size: .875rem; }
.ldal-basket-item__course small.ldal-basket-item__access { margin-top: .25rem; color: var(--ldal-primary); font-weight: 600; }
.ldal-basket-item__seat { display: inline-flex; align-items: center; gap: .375rem; padding: .25rem .75rem; border-radius: 999px; background: var(--ldal-secondary); color: color-mix(in oklab,var(--ldal-text) 70%,transparent); font-size: .75rem; font-weight: 500; white-space: nowrap; }
.ldal-basket-item__seat svg { width: 14px; height: 14px; color: var(--ldal-primary); }
.ldal-basket-item__remove svg { width: 16px; height: 16px; }
.ldal-basket-item__price { width: 6rem; font-family: var(--ldal-font-sans); font-size: var(--ldal-text-base) !important; font-style: normal; font-weight: 600; text-align: right; }
body.woocommerce-cart .woocommerce a.ldal-basket-item__remove { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 50%; color: var(--ldal-muted) !important; font-size: inherit; font-weight: 400; line-height: 1; }
body.woocommerce-cart .woocommerce a.ldal-basket-item__remove:hover { background: color-mix(in oklab,var(--ldal-destructive) 8%,var(--ldal-card)); color: var(--ldal-destructive) !important; }
.ldal-basket__clear { display: inline-block; color: var(--ldal-muted); font-size: .875rem; text-decoration: none; }
.ldal-basket__clear:hover { color: var(--ldal-destructive); }
.ldal-basket__summary { position: sticky; top: 96px; padding: 1.5rem; }
.ldal-basket__summary h2, .ldal-checkout-summary h2 { margin: 0 !important; font-size: var(--ldal-text-2xl); font-weight: 600; line-height: 2rem; }
.ldal-basket-totals { display: grid; gap: .25rem; margin-top: 1rem !important; padding: 1rem; border-radius: 1rem; background: color-mix(in oklab,var(--ldal-secondary) 60%,transparent); font-size: .875rem; }
.ldal-basket-totals > div { display: flex; justify-content: space-between; gap: 1rem; }
.ldal-basket-totals__total { margin-top: .25rem; padding-top: .5rem; border-top: 1px solid var(--ldal-border); }
.ldal-basket-totals__total strong { font-weight: 600; }
.ldal-basket-totals__discount { color: var(--ldal-primary); }

/* Promo code widget (cart-totals.php.j2) — three states: empty, applied
 * chip, inline error. Errors are WooCommerce's own notice text, styled here
 * instead of the default .woocommerce-error box. */
.ldal-basket-promo { margin-top: 1rem; }
.ldal-basket-promo__label { display: flex; align-items: center; gap: .375rem; color: var(--ldal-text); font-size: var(--ldal-text-xs); line-height: 1rem; font-weight: 500; }
.ldal-basket-promo__label svg { flex: 0 0 auto; color: var(--ldal-accent); }
/* Kadence's own form-margin reset outranks a single class here too. */
.ldal-basket-promo .ldal-basket-promo__form { display: flex; gap: .5rem; margin-top: .5rem; margin-bottom: 0 !important; }
/* Kadence's bare input[type=text] reset outranks a single class; scoped
 * under .ldal-basket-promo to win, plus `all: unset` to clear the rest. */
.ldal-basket-promo .ldal-basket-promo__input { all: unset; box-sizing: border-box; display: block; min-width: 0; flex: 1; padding: .375rem .75rem; border: 1px solid var(--ldal-border); border-radius: .75rem; background: var(--ldal-bg); color: var(--ldal-text); font-family: var(--ldal-font-sans); font-size: var(--ldal-text-sm); line-height: 1.25rem; text-transform: uppercase; cursor: text; }
.ldal-basket-promo .ldal-basket-promo__input:focus { border-color: var(--ldal-primary); box-shadow: 0 0 0 2px color-mix(in oklab,var(--ldal-primary) 20%,transparent); }
.ldal-basket-promo .ldal-basket-promo__input--error { border-color: var(--ldal-destructive); }
.ldal-basket-promo .ldal-basket-promo__input--error:focus { box-shadow: 0 0 0 2px color-mix(in oklab,var(--ldal-destructive) 20%,transparent); }
.ldal-basket-promo .ldal-basket-promo__apply { all: unset; box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; padding: .375rem .75rem; border: 1px solid var(--ldal-border); border-radius: .75rem; background: transparent; color: var(--ldal-text); font-family: var(--ldal-font-sans); font-size: var(--ldal-text-sm); font-weight: 500; line-height: 1.25rem; text-align: center; cursor: pointer; }
.ldal-basket-promo .ldal-basket-promo__apply:hover { background: var(--ldal-secondary); }
.ldal-basket-promo__error { margin: .375rem 0 0 !important; color: var(--ldal-destructive); font-size: var(--ldal-text-xs); line-height: 1rem; }
.ldal-basket-promo__applied { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-top: .5rem; padding: .5rem .75rem; border: 1px solid color-mix(in oklab,var(--ldal-primary) 30%,transparent); border-radius: 1rem; background: color-mix(in oklab,var(--ldal-primary) 5%,transparent); }
.ldal-basket-promo__applied > span { display: inline-flex; align-items: center; gap: .5rem; min-width: 0; font-size: var(--ldal-text-sm); line-height: 1.25rem; }
.ldal-basket-promo__applied strong { font-weight: 600; text-transform: uppercase; }
.ldal-basket-promo__check { flex: 0 0 auto; color: var(--ldal-primary); }
.ldal-basket-promo__amount { overflow: hidden; color: var(--ldal-muted); text-overflow: ellipsis; white-space: nowrap; }
.ldal-basket-promo .ldal-basket-promo__remove { all: unset; box-sizing: border-box; display: grid; flex: 0 0 auto; width: 24px; height: 24px; place-items: center; border-radius: 50%; color: var(--ldal-muted); cursor: pointer; }
.ldal-basket-promo .ldal-basket-promo__remove:hover { background: color-mix(in oklab,var(--ldal-destructive) 10%,transparent); color: var(--ldal-destructive); }
.ldal-basket-promo .ldal-basket-promo__remove svg { width: 16px; height: 16px; }

.woocommerce .ldal-basket__summary .checkout-button { width: 100%; margin: 1rem 0 0; }
.woocommerce .ldal-basket__summary .ldal-checkout-disabled { display: inline-flex; align-items: center; justify-content: center; cursor: not-allowed; opacity: .5; pointer-events: none; }
.ldal-basket__summary .cart_totals > p { margin: .75rem 0 0; color: var(--ldal-muted); font-size: .75rem; }

.ldal-checkout { padding-top: 3rem; }
.ldal-checkout__back { display: inline-flex; align-items: center; gap: .375rem; margin-bottom: 1rem; color: var(--ldal-muted); font-size: .875rem; text-decoration: none; }
.ldal-checkout__back svg { width: 1rem; height: 1rem; }
.ldal-checkout__back:hover { color: var(--ldal-primary); }
.woocommerce form.checkout.ldal-checkout__layout { display: grid !important; width: 100%; max-width: none; grid-template-columns: minmax(0,1.6fr) minmax(300px,1fr); align-items: start; gap: 2.5rem; margin-top: 2.5rem !important; padding: 0; float: none; clear: both; }
.woocommerce form.checkout.ldal-checkout__layout::before, .woocommerce form.checkout.ldal-checkout__layout::after { display: none !important; content: none !important; }
.ldal-checkout__details { display: grid; gap: 2rem; }
.ldal-checkout__details > .ldal-checkout-card { margin: 0 !important; }
.ldal-checkout__guest { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(300px,1fr); align-items: start; gap: 2.5rem; margin-top: 2.5rem; }
.ldal-checkout__guest > .ldal-checkout-card > p { margin: 0; color: var(--ldal-muted); font-size: var(--ldal-text-sm); }
.ldal-checkout__guest > .ldal-checkout-card > div:last-child { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; margin-top: 1rem; }
.ldal-checkout-account-action { display: flex; align-items: center; justify-content: center; gap: .5rem; padding: .75rem 1rem; border: 1px solid var(--ldal-border); border-radius: .75rem; color: var(--ldal-text); font-size: var(--ldal-text-sm); font-weight: 500; text-decoration: none; }
.ldal-checkout-account-action:hover { border-color: color-mix(in oklab,var(--ldal-primary) 50%,var(--ldal-border)); background: var(--ldal-secondary); color: var(--ldal-text); }
.ldal-checkout-account-action--primary { border-color: var(--ldal-primary); background: var(--ldal-primary); color: var(--ldal-primary-foreground); }
.ldal-checkout-account-action--primary:hover { background: var(--ldal-primary-deep); color: var(--ldal-primary-foreground); }
.ldal-checkout-account-action svg { width: 1rem; height: 1rem; }
.ldal-checkout-signin { width: 100%; margin-top: 1.5rem; }
.ldal-checkout-summary .ldal-checkout-signin + .ldal-checkout-summary__guarantee { margin-top: 1rem !important; }
.ldal-checkout-summary .ldal-checkout-submit ~ .ldal-checkout-summary__guarantee { margin-top: 1rem !important; }
.ldal-checkout-account__identity { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; padding: 1rem; border: 1px solid color-mix(in oklab,var(--ldal-primary) 20%,transparent); border-radius: 1rem; background: color-mix(in oklab,var(--ldal-primary) 5%,transparent); }
.ldal-checkout-account__person { display: flex; min-width: 180px; flex: 1; align-items: center; gap: .75rem; }
.ldal-checkout-account__person > span { display: grid; width: 2.5rem; height: 2.5rem; flex: 0 0 2.5rem; place-items: center; border-radius: 50%; background: color-mix(in oklab,var(--ldal-primary) 10%,transparent); color: var(--ldal-primary); }
.ldal-checkout-account__person strong { font-weight: 600; }
.ldal-checkout-account__identity svg { width: 1.25rem; height: 1.25rem; }
.ldal-checkout-account__identity p { margin: 0; font-size: var(--ldal-text-sm); }
.ldal-checkout-account__identity strong,.ldal-checkout-account__identity small { display: block; }
.ldal-checkout-account__identity small { color: var(--ldal-muted); font-size: var(--ldal-text-xs); }
.ldal-checkout-account__identity a { color: var(--ldal-primary); font-size: var(--ldal-text-xs); font-weight: 500; }
.ldal-checkout-card, .ldal-checkout-summary { padding: 1.5rem; }
.ldal-checkout-card__heading { display: flex; align-items: center; gap: .75rem; margin-bottom: 1.25rem; }
.ldal-checkout-card__heading > span { display: flex; width: 32px; height: 32px; flex: 0 0 32px; align-items: center; justify-content: center; border-radius: 50%; background: color-mix(in oklab,var(--ldal-primary) 10%,transparent); color: var(--ldal-primary); font-size: var(--ldal-text-base) !important; font-weight: 600; line-height: 1; }
.woocommerce .ldal-checkout-card__heading > h2 { margin: 0 !important; padding: 0; font-size: var(--ldal-text-xl); font-weight: 600; line-height: 1.75rem; }
.ldal-checkout-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; }
/* Lovable's Field never shows a required-indicator glyph; hiding just that,
 * fields stay HTML-required. */
.ldal-checkout-fields .required { display: none; }
/* Lovable's Field label inherits text-sm (.875rem) from its parent label. */
.ldal-checkout-fields .form-row label { display: block !important; margin-bottom: .25rem !important; color: var(--ldal-text) !important; font-size: var(--ldal-text-sm) !important; font-weight: 500 !important; line-height: 1.25rem !important; }
.ldal-checkout-card .form-row { width: 100% !important; margin: 0 !important; padding: 0 !important; }
.ldal-checkout-fields :is(#billing_address_1_field,#billing_address_2_field,#billing_company_field,#billing_country_field,#billing_state_field) { grid-column: 1/-1; }
.ldal-checkout-card label { display: block; margin: 0 0 .3rem; color: var(--ldal-text); font-size: .875rem; font-weight: 600; }
.ldal-checkout-card .optional { color: var(--ldal-muted); font-weight: 400; }
/* Lovable's Field component: rounded-lg border-input bg-background px-3
 * py-2 focus:border-primary focus:ring-2 focus:ring-primary/20. */
.woocommerce .ldal-checkout-card :is(input.input-text,select,.select2-selection) { width: 100%; padding: .5rem .75rem; border: 1px solid var(--ldal-border); border-radius: .75rem; background: var(--ldal-bg); color: var(--ldal-text); box-shadow: none; font-size: var(--ldal-text-sm); line-height: 1.25rem; }
.woocommerce .ldal-checkout-card :is(input.input-text,select):focus, .woocommerce .ldal-checkout-card .select2-container--focus .select2-selection { border-color: var(--ldal-primary); outline: 0; box-shadow: 0 0 0 2px color-mix(in oklab,var(--ldal-primary) 20%,transparent); }
/* Select2's own .select2-selection__rendered carries a hardcoded color
 * independent of its parent — override it directly. */
.woocommerce .ldal-checkout-card .select2-selection__rendered { color: var(--ldal-text) !important; }
/* Select2's default box/rendered-span line-height only line up at its own
 * default size; our taller box needs flex centering instead, matching how
 * Lovable's Radix Select trigger centers its label. */
.woocommerce .ldal-checkout-card .select2-selection { display: flex !important; align-items: center; }
.woocommerce .ldal-checkout-card .select2-selection__rendered { height: auto !important; line-height: 1.25rem !important; }
.woocommerce .ldal-checkout-card .select2-selection__arrow { top: 50% !important; height: auto !important; transform: translateY(-50%); }
/* The open dropdown panel (appended to <body>, hence unscoped below).
 * Lovable's country field is a bare native <select> with no styled
 * dropdown to copy, so this restyles select2's own default look to use
 * this site's existing tokens instead. */
.select2-dropdown { border: 1px solid var(--ldal-border) !important; border-radius: .75rem !important; box-shadow: var(--ldal-shadow-elevated) !important; overflow: hidden; font-family: var(--ldal-font-sans); }
.select2-search--dropdown { padding: .5rem !important; }
.select2-search--dropdown .select2-search__field { border: 1px solid var(--ldal-border) !important; border-radius: .5rem !important; padding: .375rem .5rem !important; font-size: var(--ldal-text-sm) !important; color: var(--ldal-text) !important; outline: 0; }
.select2-search--dropdown .select2-search__field:focus { border-color: var(--ldal-primary) !important; box-shadow: 0 0 0 2px color-mix(in oklab,var(--ldal-primary) 20%,transparent); }
.select2-results__option { padding: .375rem .5rem !important; margin: 0 .25rem !important; width: calc(100% - .5rem) !important; border-radius: .5rem !important; font-size: var(--ldal-text-sm) !important; color: var(--ldal-text) !important; }
.select2-results__option--highlighted[aria-selected] { background: color-mix(in oklab,var(--ldal-primary) 10%,transparent) !important; color: var(--ldal-text) !important; }
.select2-results__option[aria-selected="true"] { background: color-mix(in oklab,var(--ldal-primary) 10%,transparent) !important; }
/* !important throughout: WooCommerce/gateway plugin CSS (Mollie, Stripe)
 * isn't guaranteed to load before ours, so a native radio/list look can
 * otherwise win. */
.ldal-checkout-card #payment { margin: 0 !important; background: transparent !important; }
.ldal-checkout-card #payment ul.payment_methods { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: .75rem !important; margin: 0 !important; padding: 0 !important; border: 0 !important; list-style: none !important; }
.ldal-checkout-card #payment ul.payment_methods > li { display: contents !important; margin: 0 !important; padding: 0 !important; }
.ldal-checkout-card #payment ul.payment_methods > li > input { position: absolute !important; width: 1px !important; height: 1px !important; margin: -1px !important; padding: 0 !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important; border: 0 !important; white-space: nowrap !important; }
.ldal-checkout-card #payment ul.payment_methods > li > label { display: flex !important; min-height: 74px !important; grid-row: 1 !important; align-items: center !important; gap: .5rem !important; margin: 0 !important; padding: 1rem !important; border: 1px solid var(--ldal-border) !important; border-radius: .75rem !important; background: transparent !important; cursor: pointer !important; font-weight: 700 !important; line-height: 1.4 !important; }
.ldal-checkout-card #payment ul.payment_methods > li > input:focus-visible + label { outline: 2px solid var(--ldal-primary) !important; outline-offset: 2px !important; }
.ldal-checkout-card #payment ul.payment_methods > li > input:checked + label { border-color: var(--ldal-primary) !important; background: color-mix(in oklab,var(--ldal-primary) 5%,transparent) !important; box-shadow: 0 0 0 2px color-mix(in oklab,var(--ldal-primary) 18%,transparent) !important; }
.ldal-checkout-card #payment ul.payment_methods > li > label img { width: auto !important; max-width: 92px !important; max-height: 24px !important; margin: 0 0 0 auto !important; object-fit: contain !important; }
.ldal-checkout-card #payment div.payment_box { width: 100% !important; min-width: 0 !important; grid-column: 1/-1 !important; grid-row: 2 !important; margin: .25rem 0 0 !important; padding: 1rem !important; border: 0 !important; border-radius: .75rem !important; background: var(--ldal-secondary) !important; font-size: var(--ldal-text-sm) !important; line-height: 1.25rem !important; }
.ldal-checkout-card #payment div.payment_box :is(iframe,.wc-stripe-elements-field,.stripe-source-errors) { max-width: 100% !important; }
.ldal-checkout-card #payment div.payment_box p:last-child { margin-bottom: 0 !important; }
.ldal-checkout-card #payment div.payment_box::before { display: none !important; }
.ldal-payment-security { display: flex; align-items: center; gap: .45rem; margin: 1.25rem 0 0; color: var(--ldal-muted); font-size: .75rem; }
.ldal-payment-security svg { width: 14px; height: 14px; }
.woocommerce form.checkout.ldal-checkout__layout .ldal-checkout-summary { position: sticky; top: 96px; width: auto; padding: 1.5rem; float: none; clear: none; }
.woocommerce .ldal-checkout-summary ul.ldal-order-summary__courses { display: grid; width: 100%; gap: .75rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.ldal-order-summary__courses li { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; font-size: .875rem; }
.ldal-order-summary__courses li > div { min-width: 0; }
.ldal-order-summary__courses strong { display: block; font-weight: 500; }
.ldal-order-summary__courses small { display: block; margin-top: .1rem; color: var(--ldal-muted); font-size: .75rem; }
.ldal-order-summary__totals { display: grid; gap: .25rem; margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--ldal-border); font-size: .875rem; }
.ldal-order-summary__totals > div { display: flex; justify-content: space-between; gap: 1rem; color: var(--ldal-muted); }
.ldal-order-summary__totals .ldal-order-summary__total { margin-top: .5rem; padding-top: .5rem; border-top: 1px solid var(--ldal-border); color: var(--ldal-text); font-size: 1rem; }
.ldal-order-summary__totals .ldal-order-summary__total strong { font-weight: 600; }
.ldal-order-summary__totals .ldal-order-summary__discount { color: var(--ldal-primary); }

/* Checkout "Discount code" mini-card (checkout.tsx) — mirrors the basket
 * promo chip, plus the code/"Edit in basket" and empty-state text. */
.ldal-order-summary__promo { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--ldal-border); }
.ldal-order-summary__promo-header { display: flex; align-items: center; justify-content: space-between; }
.ldal-order-summary__promo-header span { font-size: var(--ldal-text-xs); line-height: 1rem; font-weight: 500; color: var(--ldal-text); }
.ldal-order-summary__promo-header a { font-size: var(--ldal-text-xs); line-height: 1rem; font-weight: 500; color: var(--ldal-primary); text-decoration: none; }
.ldal-order-summary__promo-header a:hover { text-decoration: underline; }
.ldal-order-summary__promo-applied { display: flex; align-items: center; gap: .5rem; margin-top: .5rem; padding: .5rem .75rem; border: 1px solid color-mix(in oklab,var(--ldal-primary) 30%,transparent); border-radius: 1rem; background: color-mix(in oklab,var(--ldal-primary) 5%,transparent); font-size: var(--ldal-text-sm); line-height: 1.25rem; }
.ldal-order-summary__promo-applied svg { flex: 0 0 auto; color: var(--ldal-primary); }
.ldal-order-summary__promo-applied strong { font-weight: 600; text-transform: uppercase; }
.ldal-order-summary__promo-applied > span { color: var(--ldal-muted); }
.ldal-order-summary__promo-applied > span.ldal-order-summary__promo-amount { margin-left: auto; color: var(--ldal-primary); }
.ldal-order-summary__promo-empty { margin: .375rem 0 0 !important; color: var(--ldal-muted); font-size: var(--ldal-text-xs); line-height: 1rem; }
.woocommerce .ldal-checkout-summary .ldal-checkout-submit { display: inline-flex; width: 100%; align-items: center; justify-content: center; gap: .5rem; margin: 1.5rem 0 0; }
.ldal-checkout-submit svg { width: 1rem; height: 1rem; }
.ldal-checkout-summary .woocommerce-terms-and-conditions-wrapper { margin-top: 1rem; font-size: .75rem; }
.ldal-checkout-summary .woocommerce-privacy-policy-text p { margin: 0 0 1rem !important; color: var(--ldal-muted); }
.ldal-checkout-summary .ldal-immediate-access { margin: .75rem 0 0 !important; font-size: .75rem; line-height: 1.15rem; }
.ldal-checkout-summary .ldal-immediate-access label { display: grid; grid-template-columns: auto 1fr; align-items: start; gap: .5rem; cursor: pointer; }
.ldal-checkout-summary .ldal-immediate-access input { margin-top: .15rem; }
.ldal-checkout-summary .ldal-newsletter-optin { margin: .75rem 0 0 !important; color: var(--ldal-muted); font-size: .75rem; line-height: 1.15rem; }
.ldal-checkout-summary .ldal-newsletter-optin label { display: grid; grid-template-columns: auto 1fr; align-items: start; gap: .5rem; cursor: pointer; }
.ldal-checkout-summary .ldal-newsletter-optin input { margin-top: .15rem; }
.ldal-checkout-summary__guarantee { display: flex; align-items: center; gap: .5rem; margin: 1.5rem 0 0; color: var(--ldal-muted); font-size: var(--ldal-text-xs); line-height: 1rem; }
.ldal-checkout-summary__guarantee svg { width: 16px; height: 16px; color: var(--ldal-primary); }
/* General safety net: the Stripe gateway JS inserts its own fresh
 * .woocommerce-notices-wrapper directly under Kadence's page wrapper, not
 * inside .ldal-checkout__layout — the checkout-scoped rules below don't
 * reach it, so it rendered full viewport width. This unscoped rule catches
 * it wherever it lands; the more specific rules below still win for their
 * own contexts. */
.woocommerce-notices-wrapper { width: calc(100% - 3rem); max-width: var(--ldal-wide); margin: 1.5rem auto; }
/* WooCommerce always prints this wrapper div even with no notice inside —
 * an empty one shouldn't keep the margin (it was adding a stray gap above
 * "Continue learning"); a real notice still keeps its spacing. */
.woocommerce-notices-wrapper:empty { margin: 0; }
.woocommerce-checkout .woocommerce-form-login-toggle, .woocommerce-checkout .woocommerce-form-coupon-toggle, .woocommerce-checkout > .woocommerce-notices-wrapper { width: calc(100% - 3rem); max-width: var(--ldal-wide); margin-right: auto; margin-left: auto; }
.woocommerce-cart .woocommerce-notices-wrapper { width: calc(100% - 3rem); max-width: var(--ldal-wide); margin: 1.5rem auto 0; }
/* This used to also set width:100%; margin:0, tying the max-width rule
 * above and winning by source order — blowing the notice out to full
 * viewport width. grid-column alone is enough to span both columns. */
.woocommerce-checkout .woocommerce-NoticeGroup-checkout,.woocommerce-checkout .woocommerce-notices-wrapper { grid-column: 1/-1; }
/* The icon used to be an absolutely-positioned ::before, so it never took
 * part in the grid's own height (driven only by the li text) — a 40px icon
 * against a single 20px text line then centers ~10px too low. Making it a
 * real grid item spanning every text row self-centers it regardless of how
 * many lines are present (1 on cart, 2+ on checkout). */
body:is(.woocommerce-checkout,.woocommerce-cart) ul.woocommerce-error { display: grid; grid-template-columns: 2.5rem 1fr; align-items: center; column-gap: .75rem; row-gap: .2rem; overflow: hidden; margin: 0 0 1.5rem !important; padding: 1.25rem !important; border: 1px solid color-mix(in oklab,var(--ldal-destructive) 40%,transparent) !important; border-radius: 1rem; background: color-mix(in oklab,var(--ldal-destructive) 5%,var(--ldal-card)); box-shadow: none; color: var(--ldal-destructive); font-size: var(--ldal-text-sm); line-height: 1.25rem; list-style: none; }
body:is(.woocommerce-checkout,.woocommerce-cart) ul.woocommerce-error::before { grid-column: 1; grid-row: 1/-1; align-self: center; display: block; width: 2.5rem; height: 2.5rem; border-radius: 50%; background-color: color-mix(in oklab,var(--ldal-destructive) 10%,transparent); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23dc2626' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21.73 18 13.73 4a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z'/%3E%3Cpath d='M12 9v4'/%3E%3Cpath d='M12 17h.01'/%3E%3C/svg%3E"); background-position: center; background-repeat: no-repeat; background-size: 1.25rem; content: ""; }
body:is(.woocommerce-checkout,.woocommerce-cart) ul.woocommerce-error > li { grid-column: 2; margin: 0 !important; padding: 0 !important; color: color-mix(in oklab,var(--ldal-destructive) 90%,var(--ldal-text)); font-size: var(--ldal-text-sm); line-height: 1.25rem; }
body.woocommerce-checkout ul.woocommerce-error li:first-child::before { display: block; margin: 0 0 .25rem; color: var(--ldal-destructive); content: "We couldn’t complete checkout"; font-size: var(--ldal-text-base); font-weight: 600; line-height: 1.5rem; }
body.woocommerce-checkout ul.woocommerce-error > li + li { color: var(--ldal-muted); font-size: var(--ldal-text-xs); }
body.woocommerce-checkout ul.woocommerce-error a { color: var(--ldal-primary); font-weight: 500; text-decoration: underline; text-underline-offset: 2px; }

@media (max-width: 900px) {
  .ldal-basket__layout, .woocommerce form.checkout.ldal-checkout__layout,.ldal-checkout__guest { grid-template-columns: 1fr; }
  .ldal-basket__summary, .woocommerce form.checkout.ldal-checkout__layout .ldal-checkout-summary { position: static; }
}
@media (max-width: 620px) {
  .ldal-basket, .ldal-checkout { padding: 2.5rem 1rem 4rem; }
  body:is(.woocommerce-checkout,.woocommerce-cart) ul.woocommerce-error { padding: 1rem !important; }
  .ldal-checkout-fields, .ldal-checkout-card #payment ul.payment_methods { grid-template-columns: 1fr !important; }
  .ldal-checkout-card #payment ul.payment_methods > li > label,
  .ldal-checkout-card #payment div.payment_box { grid-row: auto !important; }
  .ldal-checkout__guest > .ldal-checkout-card > div:last-child { grid-template-columns: 1fr; }
  .ldal-checkout-card .form-row { grid-column: 1 !important; }
}
@media (min-width: 640px) {
  .ldal-basket-item { flex-direction: row; align-items: center; }
}

/* Order received, matched to the Lovable confirmation layout. */
body.woocommerce-order-received #primary { width: 100%; max-width: none; margin: 0; padding: 0; }
body.woocommerce-order-received #primary > .content-container,
body.woocommerce-order-received #primary .site-container,
body.woocommerce-order-received #primary article.entry,
body.woocommerce-order-received #primary .entry-content-wrap { width: 100%; max-width: none; margin: 0; padding: 0; background: transparent !important; box-shadow: none !important; }
body.woocommerce-order-received .entry-header { display: none; }
.ldal-confirmation { width: calc(100% - 3rem); max-width: 64rem; margin: 0 auto; padding: 4rem 0; }
/* order-confirmed.tsx wraps both in card-elevated, including the hover lift. */
.ldal-confirmation__card, .ldal-confirmation__hero { border: 0; border-radius: 1.25rem; background: var(--ldal-card); box-shadow: var(--ldal-shadow); transition: transform .2s ease, box-shadow .2s ease; }
.ldal-confirmation__card:hover, .ldal-confirmation__hero:hover { transform: translateY(-4px); box-shadow: var(--ldal-shadow-elevated); }
.ldal-confirmation__hero { overflow: hidden; padding: 3rem; text-align: center; }
.ldal-confirmation__success { display: grid; width: 5rem; height: 5rem; place-items: center; margin: 0 auto; border-radius: 50%; background: color-mix(in oklab,var(--ldal-primary) 10%,transparent); color: var(--ldal-primary); }
.ldal-confirmation__success svg { width: 3rem; height: 3rem; }
.ldal-confirmation__hero h1 { margin: 1.5rem 0 0; font-size: var(--ldal-text-4xl); font-weight: 600; line-height: 2.5rem; }
.ldal-confirmation__hero > p { margin: .75rem 0 0; color: var(--ldal-muted); font-size: var(--ldal-text-lg); line-height: 1.75rem; }
.ldal-confirmation__hero > .ldal-button { margin-top: 1.5rem; }
.ldal-confirmation__meta { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin-top: 1.5rem; font-size: var(--ldal-text-sm); }
.ldal-confirmation__meta > span { display: inline-flex; align-items: center; gap: .5rem; padding: .5rem 1rem; border-radius: 999px; background: var(--ldal-secondary); color: var(--ldal-muted); }
.ldal-confirmation__meta small { font-size: inherit; }
.ldal-confirmation__meta strong { color: var(--ldal-text); font-weight: 600; }
.ldal-confirmation__meta svg { width: .875rem; height: .875rem; }
.ldal-confirmation__copy { display: grid; width: 1.5rem; height: 1.5rem; place-items: center; margin: 0 0 0 .1rem; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--ldal-muted); cursor: pointer; }
.ldal-confirmation__copy:hover, .ldal-confirmation__copy.is-copied { background: var(--ldal-bg); color: var(--ldal-primary); }
.ldal-confirmation__details { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(260px,1fr); align-items: start; gap: 1.5rem; margin-top: 2rem; }
.ldal-confirmation__courses { padding: 2rem; }
.ldal-confirmation__courses > header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.ldal-confirmation__courses h2, .ldal-confirmation__next h2 { margin: 0; font-size: var(--ldal-text-2xl); font-weight: 600; line-height: 2rem; }
.ldal-confirmation__courses > header > span { color: var(--ldal-muted); font-size: var(--ldal-text-xs); }
.woocommerce .ldal-confirmation__courses ul { margin: 1.25rem 0 0; padding: 0 !important; padding-inline-start: 0 !important; list-style: none; }
.ldal-confirmation__courses li { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--ldal-border); }
.ldal-confirmation__courses li > div:first-child { min-width: 0; }
.ldal-confirmation__courses li strong { font-weight: 600; }
.ldal-confirmation__courses li p { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: .25rem 0 0; color: var(--ldal-muted); font-size: var(--ldal-text-xs); }
.ldal-confirmation__courses li p span { padding: .125rem .5rem; border-radius: 999px; background: var(--ldal-secondary); }
.ldal-confirmation__line-total { flex: 0 0 auto; font-weight: 600; text-align: right; }
.ldal-confirmation__line-total small { display: block; color: var(--ldal-muted); font-size: var(--ldal-text-xs); font-weight: 400; }
.ldal-confirmation__totals { margin-top: 1.5rem; padding: 1rem; border-radius: .75rem; background: color-mix(in oklab,var(--ldal-secondary) 55%,transparent); font-size: var(--ldal-text-sm); }
.ldal-confirmation__totals p { display: flex; justify-content: space-between; gap: 1rem; margin: 0 0 .25rem; color: var(--ldal-muted); }
.ldal-confirmation__totals .ldal-confirmation__total { margin: .5rem 0 0; padding-top: .5rem; border-top: 1px solid var(--ldal-border); color: var(--ldal-text); font-size: var(--ldal-text-base); }
.ldal-confirmation__totals .ldal-confirmation__discount { color: var(--ldal-primary); }
.ldal-confirmation__side { display: grid; gap: 1.5rem; }
/* order-confirmed.tsx InfoCard: card-elevated p-5 text-sm — had only the
 * padding/font-size half; background/radius/shadow/hover was missing. */
.ldal-confirmation__info { padding: 1.25rem; border-radius: 1.25rem; background: var(--ldal-card); box-shadow: var(--ldal-shadow); font-size: var(--ldal-text-sm); transition: transform .2s ease, box-shadow .2s ease; }
.ldal-confirmation__info:hover { transform: translateY(-4px); box-shadow: var(--ldal-shadow-elevated); }
/* tracking-wide (Tailwind) = .025em, not .05em (tracking-wider) — same
 * mixup already found and fixed on the contact page's info cards. */
.ldal-confirmation__info header { display: flex; align-items: center; gap: .5rem; margin-bottom: .75rem; color: var(--ldal-muted); font-size: var(--ldal-text-xs); font-weight: 600; letter-spacing: .025em; text-transform: uppercase; }
/* order-confirmed.tsx: "h-6 w-6 ... rounded-md" = .625rem under the
 * customized scale, not the generic .375rem default. */
.ldal-confirmation__info header span { display: grid; width: 1.5rem; height: 1.5rem; place-items: center; border-radius: .625rem; background: color-mix(in oklab,var(--ldal-primary) 10%,transparent); color: var(--ldal-primary); }
.ldal-confirmation__info svg { width: 1rem; height: 1rem; }
.ldal-confirmation__info > strong { display: block; font-weight: 500; }
.ldal-confirmation__info p, .ldal-confirmation__info address { margin: .125rem 0 0; color: var(--ldal-muted); font-style: normal; line-height: 1.5; }
.ldal-confirmation__contact { display: grid; margin-top: .5rem; padding-top: .5rem; border-top: 1px solid var(--ldal-border); color: var(--ldal-muted); font-size: var(--ldal-text-xs); overflow-wrap: anywhere; }
.ldal-confirmation__next { margin-top: 2.5rem; }
.ldal-confirmation__next > div { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; margin-top: 1rem; }
/* order-confirmed.tsx NextStep: "card-elevated p-5 text-left" — same missing
 * hover half as the two cards above. */
.ldal-confirmation__next article { padding: 1.25rem; border: 0; border-radius: 1.25rem; background: var(--ldal-card); box-shadow: var(--ldal-shadow); text-align: left; transition: transform .2s ease, box-shadow .2s ease; }
.ldal-confirmation__next article:hover { transform: translateY(-4px); box-shadow: var(--ldal-shadow-elevated); }
/* order-confirmed.tsx: "h-9 w-9 ... rounded-lg" = .75rem, not .5rem. */
.ldal-confirmation__next article > span { display: grid; width: 2.25rem; height: 2.25rem; place-items: center; border-radius: .75rem; background: color-mix(in oklab,var(--ldal-primary) 10%,transparent); color: var(--ldal-primary); }
.ldal-confirmation__next article svg { width: 1.25rem; height: 1.25rem; }
.ldal-confirmation__next article strong { display: block; margin-top: .75rem; font-weight: 600; }
.ldal-confirmation__next article p { margin: .25rem 0 0; color: var(--ldal-muted); font-size: var(--ldal-text-sm); line-height: 1.25rem; }
.ldal-confirmation__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .75rem; margin-top: 2.5rem; }
.ldal-confirmation__actions .ldal-button svg { width: 1rem; height: 1rem; }
.ldal-confirmation__secondary { display: inline-flex; align-items: center; justify-content: center; padding: .625rem 1.25rem; border: 1px solid var(--ldal-border); border-radius: 999px; color: var(--ldal-text); font-size: var(--ldal-text-sm); font-weight: 500; line-height: 1.25rem; text-decoration: none; }
.ldal-confirmation__secondary:hover { background: var(--ldal-secondary); color: var(--ldal-text); }
.ldal-confirmation__help { margin: 2rem 0 0 !important; color: var(--ldal-muted); font-size: var(--ldal-text-xs); text-align: center; }
.ldal-confirmation__help a { color: var(--ldal-primary); }
@media (max-width: 800px) {
  .ldal-confirmation__details { grid-template-columns: 1fr; }
}
@media (min-width: 768px) {
  .ldal-confirmation { padding-top: 6rem; padding-bottom: 6rem; }
}
@media (max-width: 640px) {
  .ldal-confirmation { width: calc(100% - 2rem); padding: 2.5rem 0 4rem; }
  .ldal-confirmation__hero { padding: 2rem 1rem; }
  .ldal-confirmation__meta { align-items: stretch; flex-direction: column; }
  .ldal-confirmation__meta > span { justify-content: center; overflow-wrap: anywhere; }
  .ldal-confirmation__courses { padding: 1.25rem; }
  .ldal-confirmation__next > div { grid-template-columns: 1fr; }
}

/* Order invoice / view-order page (woocommerce/myaccount/view-order.php.j2)
 * — Lovable's invoice.$id.tsx. Real order data throughout; the "From"
 * block intentionally omits KvK/BTW registration numbers and a street
 * address, since none exist anywhere in this site's real business data —
 * inventing them would put false information on a real customer invoice. */
.ldal-invoice-shell { width: 100%; max-width: 56rem; margin: 0 auto; padding: 4rem 1.5rem; }
.ldal-invoice-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; }
.ldal-invoice-back { display: inline-flex; align-items: center; gap: .5rem; color: var(--ldal-muted); font-size: var(--ldal-text-sm); font-weight: 500; text-decoration: none; }
.ldal-invoice-back:hover { color: var(--ldal-primary); }
.ldal-invoice-back svg { width: 16px; height: 16px; }
.ldal-invoice-print svg { width: 16px; height: 16px; }
.ldal-invoice { margin-top: 1.5rem; overflow: hidden; }
.ldal-invoice__header { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 1.5rem; padding: 2rem; border-bottom: 1px solid var(--ldal-border); background: color-mix(in oklab,var(--ldal-secondary) 40%,transparent); }
.ldal-invoice__brand { display: flex; align-items: center; gap: .75rem; }
.ldal-invoice__brand img { width: 2.75rem; height: 2.75rem; }
.ldal-invoice__brand-name { font-family: var(--ldal-font-display); font-size: var(--ldal-text-xl); font-weight: 600; line-height: 1.25; }
.ldal-invoice__brand p { margin: 0; color: var(--ldal-muted); font-size: var(--ldal-text-xs); }
.ldal-invoice__meta { text-align: right; }
.ldal-invoice__title { font-family: var(--ldal-font-display); font-size: var(--ldal-text-3xl); font-weight: 600; line-height: 1; }
.ldal-invoice__number { margin-top: .5rem; color: var(--ldal-muted); font-size: var(--ldal-text-sm); }
.ldal-invoice__status { display: inline-flex; align-items: center; gap: .375rem; margin-top: .75rem; padding: .25rem .75rem; border-radius: 999px; font-size: var(--ldal-text-xs); font-weight: 500; }
.ldal-invoice__status svg { width: 14px; height: 14px; }
.ldal-invoice__status--paid { background: color-mix(in oklab,var(--ldal-primary) 10%,transparent); color: var(--ldal-primary); }
.ldal-invoice__status--refunded, .ldal-invoice__status:not(.ldal-invoice__status--paid) { background: var(--ldal-secondary); color: var(--ldal-muted); }
.ldal-invoice__grid { display: grid; gap: 2rem; padding: 2rem; }
.ldal-invoice__block { font-size: var(--ldal-text-sm); line-height: 1.625; color: var(--ldal-muted); }
.ldal-invoice__block-title { color: color-mix(in oklab,var(--ldal-text) 60%,transparent); font-size: var(--ldal-text-xs); font-weight: 600; letter-spacing: .025em; text-transform: uppercase; }
.ldal-invoice__block-body { margin-top: .5rem; }
.ldal-invoice__block-body > * + * { margin-top: .125rem; }
.ldal-invoice__block-name { color: var(--ldal-text); font-weight: 500; }
.ldal-invoice__block-small:first-of-type { margin-top: .5rem; }
.ldal-invoice__block-small { font-size: var(--ldal-text-xs); }
.ldal-invoice__block-small a { color: inherit; }
.ldal-invoice__row { display: flex; justify-content: space-between; gap: .75rem; }
.ldal-invoice__row span:last-child { color: var(--ldal-text); font-weight: 500; }
.ldal-invoice__body { padding: 0 2rem 2rem; }
.ldal-invoice__table-wrap { overflow: hidden; border: 1px solid var(--ldal-border); border-radius: 1.25rem; }
.ldal-invoice__table { width: 100%; border-collapse: collapse; font-size: var(--ldal-text-sm); }
.ldal-invoice__table thead tr { background: color-mix(in oklab,var(--ldal-secondary) 60%,transparent); color: var(--ldal-muted); font-size: var(--ldal-text-xs); letter-spacing: .025em; text-align: left; text-transform: uppercase; }
.ldal-invoice__table th { padding: .75rem 1rem; font-weight: 600; }
.ldal-invoice__table td { padding: 1rem; border-top: 1px solid var(--ldal-border); }
.ldal-invoice__table tbody tr:first-child td { border-top: 0; }
.ldal-invoice__table-center { text-align: center; }
.ldal-invoice__table-right { text-align: right; }
.ldal-invoice__table-amount { font-weight: 500; }
.ldal-invoice__item-name { color: var(--ldal-text); font-weight: 500; }
.ldal-invoice__item-level { margin-top: .1rem; color: var(--ldal-muted); font-size: var(--ldal-text-xs); }
.ldal-invoice__totals-wrap { display: flex; justify-content: flex-end; margin-top: 1.5rem; }
.ldal-invoice__totals { width: 100%; max-width: 20rem; font-size: var(--ldal-text-sm); }
.ldal-invoice__totals > div { display: flex; align-items: center; justify-content: space-between; }
.ldal-invoice__totals > div + div { margin-top: .5rem; }
.ldal-invoice__totals dt, .ldal-invoice__totals dd { margin: 0; }
.ldal-invoice__totals-discount { color: var(--ldal-primary); }
.ldal-invoice__totals-muted { color: var(--ldal-muted); }
.ldal-invoice__totals-total { margin-top: .5rem !important; padding-top: .75rem; border-top: 1px solid var(--ldal-border); font-size: var(--ldal-text-base); font-weight: 600; }
.ldal-invoice__footnote { margin: 2rem 0 0; padding-top: 1.25rem; border-top: 1px solid var(--ldal-border); color: var(--ldal-muted); font-size: var(--ldal-text-xs); line-height: 1.625; }
.ldal-invoice__footnote a { color: var(--ldal-primary); text-decoration: none; }
.ldal-invoice__footnote a:hover { text-decoration: underline; }

@media (min-width: 640px) {
  .ldal-invoice__grid { grid-template-columns: repeat(3, 1fr); }
}

@media print {
  .ldal-invoice-actions { display: none; }
  .ldal-invoice { border: 0; box-shadow: none; }
}
