/*
Theme Name: Learn Dutch Kadence
Description: Kadence child theme for Learn Dutch At Last.
Author: Learn Dutch At Last
Template: kadence
Version: 2.1.0
Text Domain: learndutch-kadence
*/

@font-face { font-family: "Fraunces"; src: url("assets/fonts/fraunces-latin.woff2") format("woff2"); font-style: normal; font-weight: 400 700; font-display: swap; }
@font-face { font-family: "Inter"; src: url("assets/fonts/inter-latin.woff2") format("woff2"); font-style: normal; font-weight: 400 700; font-display: swap; }
/* Only the upright (font-style: normal) faces were bundled until now — any
 * <em>/italic text (e.g. md_lite()'s *single-asterisk* markdown in tip/note
 * callouts) had no real italic glyphs to render, so browsers fell back to
 * synthesizing one. Chrome fakes it by shearing the upright glyphs (reads
 * as a "cursive" slant); Safari does not synthesize italics for these
 * variable fonts at all and silently renders them upright — the exact
 * "Chrome shows it slanted, Safari doesn't" mismatch. Real italic faces
 * make both browsers use actual glyph outlines instead of guessing, so
 * they finally agree. */
@font-face { font-family: "Fraunces"; src: url("assets/fonts/fraunces-latin-italic.woff2") format("woff2"); font-style: italic; font-weight: 400 700; font-display: swap; }
@font-face { font-family: "Inter"; src: url("assets/fonts/inter-latin-italic.woff2") format("woff2"); font-style: italic; font-weight: 400 700; font-display: swap; }

:root {
  --ldal-bg: oklch(98.5% .008 85);
  --ldal-text: oklch(22% .04 250);
  --ldal-muted: oklch(50% .03 250);
  --ldal-card: oklch(100% 0 0);
  --ldal-primary: oklch(53% .14 249);
  --ldal-primary-deep: oklch(38% .12 250);
  --ldal-primary-foreground: oklch(98.5% .008 85);
  --ldal-secondary: oklch(94% .02 85);
  --ldal-accent: oklch(72% .18 55);
  --ldal-destructive: oklch(55% .22 27);
  --ldal-border: oklch(88% .015 85);
  --ldal-shadow: 0 4px 24px -12px oklch(38% .12 250 / .18);
  --ldal-shadow-elevated: 0 20px 50px -20px oklch(38% .12 250 / .25);
  --ldal-wide: 72rem;
  --ldal-font-sans: Inter, ui-sans-serif, system-ui, sans-serif;
  --ldal-font-display: Fraunces, ui-serif, Georgia, serif;
  --ldal-text-xs: .75rem;
  --ldal-text-sm: .875rem;
  --ldal-text-base: 1rem;
  --ldal-text-lg: 1.125rem;
  --ldal-text-xl: 1.25rem;
  --ldal-text-2xl: 1.5rem;
  --ldal-text-3xl: 1.875rem;
  --ldal-text-4xl: 2.25rem;
  --ldal-text-5xl: 3rem;
  --ldal-text-6xl: 3.75rem;
  --global-palette1: oklch(53% .14 249);
  --global-palette2: oklch(38% .12 250);
  --global-palette3: oklch(22% .04 250);
  --global-palette4: oklch(50% .03 250);
  --global-palette7: oklch(94% .02 85);
  --global-palette8: oklch(98.5% .008 85);
  --global-palette9: oklch(100% 0 0);
  --global-body-font-family: var(--ldal-font-sans);
  --global-heading-font-family: var(--ldal-font-display);
}

* { box-sizing: border-box; }
html { font-family: var(--ldal-font-sans) !important; font-size: 16px; scroll-behavior: smooth; }
body, body button, body input, body select, body textarea { color: var(--ldal-text); font-family: var(--ldal-font-sans) !important; font-feature-settings: "ss01", "cv11"; font-synthesis: none; }
body { margin: 0; background: var(--ldal-bg); font-size: var(--ldal-text-base); line-height: 1.5rem; }
body button, body input, body select, body textarea { font-size: inherit; }
body h1, body h2, body h3, body h4, body h5, body h6, body .ldal-display, body .ldal-brand__name { font-family: var(--ldal-font-display) !important; font-optical-sizing: auto; font-synthesis: none; letter-spacing: -.02em; }
.woocommerce, .woocommerce-page, .learndash-wrapper { font-family: var(--ldal-font-sans) !important; }
a { color: inherit; }
html, body, #wrapper, #inner-wrap, .site, .site-container, .site-content, .content-area, .site-main { background-color: var(--ldal-bg) !important; }
.ldal-site-shell { display: flex; min-height: 100vh; flex-direction: column; }
.ldal-site-shell > main { display: flex; min-height: 0; flex: 1 0 auto; flex-direction: column; }
.ldal-site-shell > .ldal-footer { flex: 0 0 auto; }
body.admin-bar .ldal-site-shell { min-height: calc(100vh - 32px); }
.home #primary { width: 100%; max-width: none; margin: 0; padding: 0; }
.home #primary > .entry-content-wrap, .home #primary .content-container, .home #primary .site-container { width: 100%; max-width: none; margin: 0; padding: 0; }
.home .entry-header, .home .entry-title { display: none; }
.home .entry-content, .home .entry-content > * { max-width: none; margin: 0; }
.home article:not(.ldal-course), .home .entry, .home .entry-content-wrap { background: transparent !important; box-shadow: none !important; }
.ldal-wrap { width: 100%; max-width: var(--ldal-wide); margin-inline: auto; padding-inline: 1.5rem; }

.ldal-header { position: sticky; z-index: 1000; top: 0; border-bottom: 1px solid oklch(88% .015 85 / .6); background: oklch(98.5% .008 85 / .8); backdrop-filter: blur(8px); }
.ldal-header__inner { display: flex; min-height: 73px; align-items: center; justify-content: space-between; gap: 24px; }
.ldal-brand { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 12px; color: var(--ldal-text); text-decoration: none; }
.ldal-brand img { width: 40px; height: 40px; object-fit: contain; }
.ldal-brand__copy { line-height: 1; white-space: nowrap; }
.ldal-brand__name { display: block; font-family: var(--ldal-font-display); font-size: var(--ldal-text-lg); font-weight: 600; line-height: 1.75rem; }
.ldal-brand__tagline { display: block; color: var(--ldal-muted); font-size: var(--ldal-text-xs); line-height: 1rem; }
.ldal-nav { display: flex; align-items: center; gap: 2rem; }
.ldal-nav a { color: var(--ldal-text); font-size: var(--ldal-text-sm); line-height: 1.25rem; text-decoration: none; }
.ldal-nav a:hover { color: var(--ldal-primary); }
.ldal-nav .ldal-account-button, .ldal-account-button { display: inline-flex; align-items: center; justify-content: center; padding: .55rem 1rem; border: 1.5px solid var(--ldal-primary); border-radius: 999px; background: var(--ldal-primary); color: var(--ldal-primary-foreground); font-size: var(--ldal-text-sm); font-weight: 600; line-height: 1.25rem; text-decoration: none; white-space: nowrap; }
.ldal-nav .ldal-account-button:hover, .ldal-account-button:hover { border-color: var(--ldal-primary-deep); background: var(--ldal-primary-deep); color: var(--ldal-primary-foreground); }
.ldal-user-menu { position: relative; }
.ldal-user-menu > summary { gap: .35rem; cursor: pointer; list-style: none; }
.ldal-user-menu > summary::-webkit-details-marker { display: none; }
.ldal-user-menu > summary svg { width: .875rem; height: .875rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; transition: transform .2s; }
.ldal-user-menu[open] > summary svg:not(.ldal-mobile-account-button__user) { transform: rotate(180deg); }
.ldal-user-menu > div { position: absolute; z-index: 20; top: calc(100% + .6rem); right: 0; display: grid; min-width: 11rem; gap: .25rem; padding: .5rem; border: 1px solid var(--ldal-border); border-radius: .75rem; background: var(--ldal-card); box-shadow: 0 18px 45px -18px rgb(25 55 83 / .35); }
.ldal-nav .ldal-user-menu > div a,.ldal-actions .ldal-user-menu > div a { display: flex; align-items: center; gap: .5rem; padding: .55rem .65rem; border-radius: .5rem; color: var(--ldal-text); font-size: var(--ldal-text-sm); font-weight: 500; line-height: 1.25rem; text-decoration: none; white-space: nowrap; }
.ldal-nav .ldal-user-menu > div a:hover,.ldal-actions .ldal-user-menu > div a:hover { background: var(--ldal-secondary); color: var(--ldal-primary); }
.ldal-user-menu > div .ldal-user-menu__logout { color: var(--ldal-destructive); }
.ldal-user-menu__logout svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
.ldal-cart-link { display: inline-flex; align-items: center; gap: 8px; }
.ldal-cart-icon { width: 1.25rem; height: 1.25rem; }
.ldal-cart-count { display: inline-grid; min-width: 19px; height: 19px; place-items: center; padding: 0 5px; border-radius: 99px; background: var(--ldal-primary); color: var(--ldal-primary-foreground); font-size: 10px; }
.ldal-cart-count[data-count="0"] { display: none; }
.ldal-actions { display: none; }

.ldal-hero { position: relative; overflow: hidden; }
.ldal-hero::before { position: absolute; inset: 0; background: linear-gradient(135deg,var(--ldal-primary),var(--ldal-primary-deep)); content: ""; opacity: .06; }
.ldal-hero__grid { position: relative; display: grid; grid-template-columns: 1.15fr 1fr; align-items: stretch; gap: 3rem; padding-block: 7rem; }
.ldal-pill { display: inline-flex; align-items: center; gap: .5rem; padding: .25rem .75rem; border: 1px solid var(--ldal-border); border-radius: 9999px; background: oklch(98.5% .008 85 / .6); color: var(--ldal-primary-deep); font-size: .75rem; line-height: 1rem; font-weight: 500; }
.ldal-pill svg { width: .875rem; height: .875rem; }
.ldal-hero h1 { margin: 1.5rem 0 0; font-size: 3.75rem; font-weight: 600; line-height: 1.05; letter-spacing: -.025em; }
.ldal-hero h1 span { color: var(--ldal-primary); }
.ldal-hero p { max-width: 36rem; margin: 1.5rem 0 0; color: var(--ldal-muted); font-size: 1.125rem; line-height: 1.75rem; }
.ldal-buttons { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.ldal-button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button { display: inline-flex; flex-shrink: 0; align-items: center; justify-content: center; gap: .5rem; padding: .75rem 1.5rem; border: 1.5px solid var(--ldal-primary) !important; border-radius: 9999px !important; background: var(--ldal-primary) !important; box-shadow: var(--ldal-shadow); color: var(--ldal-primary-foreground) !important; font-size: var(--ldal-text-base); font-weight: 600; line-height: 1.5rem; text-decoration: none; white-space: nowrap; transition: transform .15s, background .2s, box-shadow .2s; }
.ldal-button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover { transform: translateY(-1px); background: var(--ldal-primary-deep) !important; color: var(--ldal-primary-foreground) !important; }
.ldal-button--outline { background: transparent !important; box-shadow: none; color: var(--ldal-primary) !important; }
.ldal-button--outline:hover { background: var(--ldal-primary) !important; color: var(--ldal-primary-foreground) !important; }
.ldal-button:disabled, .ldal-button[aria-disabled="true"], .woocommerce button.button:disabled, .woocommerce button.button:disabled[disabled] { cursor: not-allowed; opacity: .7; transform: none; }
.ldal-button svg { width: 1rem; height: 1rem; }
.ldal-stats { display: grid; max-width: 28rem; grid-template-columns: repeat(3,1fr); gap: 1.5rem; margin: 3rem 0 0; font-size: .875rem; }
.ldal-stats dt { color: var(--ldal-muted); font-weight: 400; }
.ldal-stats dd { margin: 0; font-family: var(--ldal-font-display) !important; font-size: 1.5rem; line-height: 2rem; font-weight: 600; }
.ldal-hero__image { position: relative; display: flex; width: 100%; max-width: none; height: 100%; margin-inline: auto; align-items: center; justify-content: center; }
.ldal-hero__image img { position: relative; width: 100%; height: 100%; max-height: 620px; border: 1px solid var(--ldal-border); border-radius: 1.5rem; background: color-mix(in oklab,var(--ldal-card) 70%,transparent); box-shadow: 0 20px 50px -20px oklch(38% .12 250 / .25); object-fit: cover; }

.ldal-courses { padding: 3rem 0 80px; }
.ldal-section-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 24px; padding-bottom: 40px; }
.ldal-kicker { margin: 0; color: var(--ldal-accent); font-size: var(--ldal-text-xs); font-weight: 600; line-height: 1rem; letter-spacing: .12em; text-transform: uppercase; }
.ldal-section-head h2 { margin: .25rem 0 0; font-size: 2.25rem; line-height: 2.5rem; font-weight: 600; }
.ldal-section-head__copy { max-width: 450px; margin: 0; color: var(--ldal-muted); font-size: var(--ldal-text-sm); line-height: 1.25rem; }
.ldal-course-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.ldal-course { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 0; border-radius: 1.25rem; background: var(--ldal-card); box-shadow: var(--ldal-shadow); transition: transform .2s, box-shadow .2s; }
.ldal-course:hover { transform: translateY(-4px); box-shadow: var(--ldal-shadow-elevated); }
/* design-codebase's CourseCard picks one of 4 named accent gradients per
 * course (tulip/sky/sand/canal), driven by a real per-course "accent"
 * field its mock data has that ours doesn't — with no such field to read,
 * this used to rotate through all 4 by DOM position instead, but with only
 * a couple of real courses live that just meant whichever course landed
 * on "sky" (primary/10 -> primary/5, no accent orange at all) looked flat
 * next to its neighbors. Always using "tulip" — the reference's own
 * default/primary example (primary/15 -> accent/10) — keeps every card
 * looking intentional regardless of how many courses exist. */
.ldal-course__top { padding: 1.5rem 1.5rem 2rem; background: linear-gradient(135deg,oklch(53% .14 249 / .15),oklch(72% .18 55 / .1)); }
.ldal-course__labels { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.ldal-course__badge { padding: .25rem .75rem; border-radius: 9999px; background: oklch(98.5% .008 85 / .7); color: var(--ldal-primary-deep); font-size: .75rem; line-height: 1rem; font-weight: 500; }
.ldal-course__format { color: var(--ldal-muted); font-size: var(--ldal-text-xs); line-height: 1rem; text-align: right; }
.ldal-course h3 { margin: 1.5rem 0 0; font-family: var(--ldal-font-display); font-size: 1.5rem; font-weight: 600; line-height: 2rem; }
.ldal-course h3 a { color: var(--ldal-text); text-decoration: none; }
.ldal-course h3 a:hover { color: var(--ldal-primary); }
.ldal-course__duration { display: block; margin-top: 4px; color: var(--ldal-muted); font-size: var(--ldal-text-sm); line-height: 1.25rem; }
.ldal-course__access { display: block; margin-top: 4px; color: var(--ldal-primary); font-size: var(--ldal-text-sm); font-weight: 600; line-height: 1.25rem; }
.ldal-course__body { display: flex; flex: 1; flex-direction: column; gap: 1rem; padding: 1.25rem 1.5rem; }
.ldal-course__description { flex: 1; margin: 0; color: color-mix(in oklab,var(--ldal-text) 80%,transparent); font-size: var(--ldal-text-sm); line-height: 1.25rem; }
.ldal-course__features { display: grid; gap: .375rem; margin: 0; padding: 0; color: var(--ldal-muted); font-size: var(--ldal-text-sm); line-height: 1.25rem; list-style: none; }
.ldal-course__features li { display: flex; align-items: flex-start; gap: .5rem; }
.ldal-course__features li::before { width: .375rem; height: .375rem; flex: 0 0 auto; margin-top: .375rem; border-radius: 50%; background: var(--ldal-accent); content: ""; }
.ldal-course__bottom { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-top: auto; padding-top: 1rem; border-top: 1px solid color-mix(in oklab,var(--ldal-border) 60%,transparent); }
.ldal-course__price { font-size: var(--ldal-text-2xl); font-weight: 600; line-height: 2rem; }
.ldal-course__price-note { display: block; color: var(--ldal-muted); font-size: .75rem; line-height: 1rem; }
.ldal-course__bottom .ldal-button { padding: .75rem 1.5rem; }
.ldal-empty { grid-column: 1/-1; color: var(--ldal-muted); text-align: center; }

.ldal-method { border-block: 1px solid oklch(88% .015 85 / .6); background: oklch(94% .02 85 / .4); }
.ldal-method__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 40px; padding-block: 80px; }
.ldal-method__icon { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 16px; background: oklch(53% .14 249 / .1); color: var(--ldal-primary); font-size: 22px; }
.ldal-method h3 { margin: 16px 0 0; font-size: 1.25rem; font-weight: 600; }
.ldal-method p { margin: 8px 0 0; color: var(--ldal-muted); font-size: var(--ldal-text-sm); line-height: 1.25rem; }

.ldal-footer { border-top: 1px solid oklch(88% .015 85 / .6); background: oklch(94% .02 85 / .4); }
.ldal-footer__grid { display: grid; grid-template-columns: 1.3fr .7fr .7fr 1.3fr; gap: 40px; padding-block: 48px; }
.ldal-footer__brand { display: flex; align-items: center; gap: 12px; }
.ldal-footer__brand img { width: 42px; height: 42px; object-fit: contain; }
.ldal-footer h3 { margin: 0; font-size: var(--ldal-text-xl); line-height: 1.75rem; }
.ldal-footer p, .ldal-footer li, .ldal-footer a { color: var(--ldal-muted); font-size: var(--ldal-text-sm); line-height: 1.25rem; text-decoration: none; }
.ldal-footer h4 { margin: 0; font-size: var(--ldal-text-sm); line-height: 1.25rem; }
.ldal-footer ul { margin: 9px 0 0; padding: 0; list-style: none; }
.ldal-footer__social { display: inline-flex; align-items: center; gap: 5px; }
.ldal-footer__social svg { width: 14px; height: 14px; }
.ldal-footer__social:hover { color: var(--ldal-primary); }
.ldal-footer__bottom { padding: 14px 24px; border-top: 1px solid rgba(223,219,208,.7); color: var(--ldal-muted); font-size: var(--ldal-text-xs); line-height: 1rem; text-align: center; }

.ldal-newsletter__intro { margin: 9px 0 0; }
.ldal-newsletter { margin-top: 12px; }
.ldal-newsletter__row { display: flex; gap: .5rem; }
.ldal-newsletter__row input { flex: 1; min-width: 0; padding: .5rem .75rem !important; border: 1px solid var(--ldal-border) !important; border-radius: .75rem !important; outline: 0; background: var(--ldal-bg) !important; color: var(--ldal-text) !important; font-family: var(--ldal-font-sans); font-size: var(--ldal-text-sm); line-height: 1.25rem; }
.ldal-newsletter__row input:focus { border-color: var(--ldal-primary) !important; box-shadow: 0 0 0 2px color-mix(in oklab,var(--ldal-primary) 20%,transparent); }
.ldal-newsletter__row .ldal-button { padding: .5rem 1rem !important; font-size: var(--ldal-text-sm); }
.ldal-newsletter__consent { display: flex; align-items: flex-start; gap: .4rem; margin-top: .5rem; font-size: var(--ldal-text-xs); line-height: 1rem; }
.ldal-newsletter__consent input { margin-top: .1rem; }
.ldal-newsletter__error { margin: .375rem 0 0; color: var(--ldal-destructive); font-size: var(--ldal-text-xs); line-height: 1rem; }
.ldal-newsletter__done { display: flex; align-items: center; gap: .5rem; margin: 9px 0 0; color: var(--ldal-primary); font-size: var(--ldal-text-sm); font-weight: 600; }
.ldal-newsletter__done svg { width: 1.25rem; height: 1.25rem; flex-shrink: 0; }

@media (max-width: 640px) {
  .ldal-newsletter__row { flex-direction: column; align-items: flex-start; }
  .ldal-newsletter__row input { width: 100%; }
}

/* Shared Lovable editorial pages. */
.ldal-content-page { width: 100%; flex: 1; }
.ldal-editorial { width: 100%; max-width: var(--ldal-wide); margin: 0 auto; padding: 4rem 1.5rem; }
.ldal-editorial > header { max-width: 48rem; }
.ldal-editorial > header > span { color: var(--ldal-primary); font-size: var(--ldal-text-xs); font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.ldal-editorial > header h1 { margin: .75rem 0 0; font-size: var(--ldal-text-5xl); font-weight: 600; line-height: 1.05; }
.ldal-editorial > header p { margin: 1rem 0 0; color: var(--ldal-muted); font-size: var(--ldal-text-lg); line-height: 1.75rem; }
.ldal-method-page { width: calc(100% - 3rem); max-width: 64rem; margin: 0 auto; padding: 4rem 0 6rem; }
.ldal-method-page > header { max-width: 48rem; }
.ldal-method-page > header > span,.ldal-method__lower aside > span { color: var(--ldal-primary); font-size: var(--ldal-text-xs); font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.ldal-method-page > header h1 { margin: .75rem 0 0; font-size: var(--ldal-text-5xl); font-weight: 600; line-height: 1.05; }
.ldal-method-page > header p { margin: 1rem 0 0; color: var(--ldal-muted); font-size: var(--ldal-text-lg); line-height: 1.75rem; }
.ldal-method__principles { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; margin-top: 3.5rem; }
.ldal-method__principles article { padding: 1.5rem; border: 1px solid color-mix(in oklab,var(--ldal-border) 60%,transparent); border-radius: 1.25rem; background: var(--ldal-card); box-shadow: var(--ldal-shadow); }
.ldal-method__card-icon { display: grid; width: 2.75rem; height: 2.75rem; place-items: center; border-radius: .75rem; background: color-mix(in oklab,var(--ldal-primary) 10%,transparent); color: var(--ldal-primary); font-size: var(--ldal-text-xs); font-weight: 600; }
.ldal-method__principles h2 { margin: 1rem 0 0; font-size: var(--ldal-text-xl); line-height: 1.75rem; }
.ldal-method__principles p { margin: .5rem 0 0; color: var(--ldal-muted); font-size: var(--ldal-text-sm); line-height: 1.25rem; }
.ldal-method__highlights { display: grid; grid-template-columns: repeat(3,1fr); gap: 2rem; margin-top: 4rem; padding: 2.5rem; border-radius: 1.5rem; background: var(--ldal-primary); color: var(--ldal-primary-foreground); }
.ldal-method__highlights strong { display: block; font-family: var(--ldal-font-display); font-size: var(--ldal-text-4xl); line-height: 2.5rem; font-weight: 600; }
.ldal-method__highlights span { display: block; margin-top: .25rem; font-size: var(--ldal-text-sm); opacity: .8; }
.ldal-method__lower { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); gap: 2.5rem; margin-top: 4rem; }
.ldal-method__lower h2 { margin: 0; font-size: var(--ldal-text-3xl); line-height: 2.25rem; }
.ldal-method__lower ol { display: grid; gap: 1rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }
.ldal-method__lower li { display: grid; grid-template-columns: 9rem 1fr; gap: 1rem; padding: 1rem; border: 1px solid color-mix(in oklab,var(--ldal-border) 60%,transparent); border-radius: .75rem; background: var(--ldal-card); font-size: var(--ldal-text-sm); }
.ldal-method__lower li strong { color: var(--ldal-primary); font-family: var(--ldal-font-display); }
.ldal-method__lower li span,.ldal-method__lower aside p { color: var(--ldal-muted); }
.ldal-method__lower aside { padding: 1.5rem; border: 1px solid color-mix(in oklab,var(--ldal-border) 60%,transparent); border-radius: 1rem; background: color-mix(in oklab,var(--ldal-secondary) 50%,transparent); }
.ldal-method__lower aside h2 { margin-top: .5rem; font-size: var(--ldal-text-2xl); line-height: 2rem; }
.ldal-method__lower aside p { margin: .75rem 0 0; font-size: var(--ldal-text-sm); }
.ldal-method__lower aside .ldal-button { margin-top: 1.5rem; }
.ldal-teacher-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.5rem; margin-top: 3.5rem; }
.ldal-teacher-card,.ldal-editorial-card { padding: 1.5rem; border: 1px solid color-mix(in oklab,var(--ldal-border) 60%,transparent); border-radius: 1.25rem; background: var(--ldal-card); box-shadow: var(--ldal-shadow); }
.ldal-teacher-card__person { display: flex; align-items: center; gap: 1rem; }
.ldal-teacher-card__person > span { display: grid; width: 3.5rem; height: 3.5rem; flex: 0 0 auto; place-items: center; border-radius: 50%; background: linear-gradient(135deg,var(--ldal-primary),var(--ldal-primary-deep)); color: var(--ldal-primary-foreground); font-family: var(--ldal-font-display); font-size: var(--ldal-text-lg); font-weight: 600; }
.ldal-teacher-card__person > img { width: 5.5rem; height: 5.5rem; flex: 0 0 auto; border-radius: 50%; background: var(--ldal-secondary); object-fit: contain; }
.ldal-teacher-card h2 { margin: 0; font-size: var(--ldal-text-lg); line-height: 1.75rem; }
.ldal-teacher-card small { color: var(--ldal-muted); font-size: var(--ldal-text-xs); }
.ldal-teacher-card > strong { display: block; margin-top: 1rem; color: var(--ldal-primary); font-size: var(--ldal-text-xs); font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }
.ldal-teacher-card > p { margin: .5rem 0 0; color: var(--ldal-muted); font-size: var(--ldal-text-sm); line-height: 1.25rem; }
.ldal-teacher-card__facts { display: flex; flex-direction: column; gap: .375rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid color-mix(in oklab,var(--ldal-border) 60%,transparent); font-size: var(--ldal-text-sm); }
.ldal-teacher-card__facts > div { display: flex; justify-content: space-between; gap: .75rem; }
.ldal-teacher-card__facts > div > span:first-child { color: var(--ldal-muted); }
.ldal-teacher-card__facts > div > span:last-child { color: var(--ldal-text); font-weight: 500; text-align: right; }
.ldal-teacher-card__social { display: inline-flex; align-items: center; gap: .375rem; margin-top: 1rem; color: var(--ldal-muted); font-size: var(--ldal-text-sm); font-weight: 500; text-decoration: none; }
.ldal-teacher-card__social svg { width: 16px; height: 16px; }
.ldal-teacher-card__social:hover { color: var(--ldal-primary); }
.ldal-teacher-card__course { display: block; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid color-mix(in oklab,var(--ldal-border) 60%,transparent); color: var(--ldal-primary); font-size: var(--ldal-text-sm); font-weight: 500; text-decoration: none; }
.ldal-teacher-card__course:hover { color: var(--ldal-primary-deep); }
.ldal-teacher-card__course strong { color: var(--ldal-text); font-weight: 600; }
.ldal-editorial-cta { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-top: 4rem; padding: 2rem; border: 1px solid color-mix(in oklab,var(--ldal-border) 60%,transparent); border-radius: 1.5rem; background: color-mix(in oklab,var(--ldal-secondary) 50%,transparent); }
.ldal-editorial-cta h2,.ldal-editorial-card h2 { margin: 0; font-size: var(--ldal-text-2xl); line-height: 2rem; }
.ldal-editorial-cta p { margin: .5rem 0 0; color: var(--ldal-muted); font-size: var(--ldal-text-sm); }
.ldal-editorial-cta--teach { border-color: color-mix(in oklab,var(--ldal-primary) 15%,transparent); background: linear-gradient(135deg,color-mix(in oklab,var(--ldal-primary) 15%,var(--ldal-card)),color-mix(in oklab,var(--ldal-accent) 10%,var(--ldal-card))); }
.ldal-contact-page { width: 100%; max-width: var(--ldal-wide); margin: 0 auto; padding: 4rem 1.5rem; }
.ldal-contact-page > header { max-width: 42rem; }
/* tracking-widest (Tailwind) = .1em, not .12em. */
.ldal-contact-page > header > span { color: var(--ldal-primary); font-size: var(--ldal-text-xs); font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
/* contact.tsx: text-4xl leading-tight md:text-5xl (same pairing as
 * .ldal-commerce-heading h1). */
.ldal-contact-page > header h1 { margin: .75rem 0 0; font-size: var(--ldal-text-4xl); font-weight: 600; line-height: 2.8125rem; }
.ldal-contact-page > header p { margin: 1rem 0 0; color: var(--ldal-muted); font-size: var(--ldal-text-lg); line-height: 1.75rem; }
.ldal-contact__layout { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(260px,1fr); gap: 2.5rem; margin-top: 3rem; }
.ldal-contact__layout > aside { display: grid; align-content: start; gap: 1rem; }
/* card-elevated utility (background/radius/shadow + hover lift). */
.ldal-contact__form-card,.ldal-contact__info { border-radius: 1.25rem; background: var(--ldal-card); box-shadow: var(--ldal-shadow); transition: transform .2s, box-shadow .2s; }
.ldal-contact__form-card:hover,.ldal-contact__info:hover { transform: translateY(-4px); box-shadow: var(--ldal-shadow-elevated); }
.ldal-contact__form-card { padding: 2rem; }
.ldal-contact__info { padding: 1.25rem; font-size: var(--ldal-text-sm); }
/* tracking-wide (Tailwind) = .025em, not .05em (that's tracking-wider). */
.ldal-contact__info header { display: flex; align-items: center; gap: .5rem; color: var(--ldal-muted); font-size: var(--ldal-text-xs); font-weight: 600; letter-spacing: .025em; text-transform: uppercase; }
/* rounded-md under the customized radius scale (--radius: .75rem) = .625rem. */
.ldal-contact__info header i { 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); font-style: normal; }
.ldal-contact__info header i svg { width: 16px; height: 16px; }
.ldal-contact__info > :is(a,p) { display: block; margin: .75rem 0 0; color: var(--ldal-text); line-height: 1.625; text-decoration: none; }
.ldal-contact__info > a { color: var(--ldal-primary); }
.ldal-editorial-card > span { display: block; color: var(--ldal-primary); font-size: var(--ldal-text-xs); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.ldal-editorial-card > a,.ldal-editorial-card > strong { display: block; margin-top: .5rem; color: var(--ldal-text); font-size: var(--ldal-text-base); font-weight: 600; overflow-wrap: anywhere; text-decoration: none; }
.ldal-editorial-card > p { margin: .25rem 0 0; color: var(--ldal-muted); font-size: var(--ldal-text-sm); }
.ldal-contact-form { display: grid; gap: 1rem; margin: 0; }
.ldal-contact-form h2 { margin: 0; font-size: var(--ldal-text-2xl); line-height: 2rem; }
.ldal-contact-form > .ldal-button { justify-self: start; }
.ldal-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
/* mb-1 (Tailwind) = .25rem, not .375rem. */
.ldal-field label { display: block; margin-bottom: .25rem; font-size: var(--ldal-text-sm); font-weight: 500; }
/* Field component: rounded-lg = .75rem under the customized radius scale.
 * Input inherits text-sm from the label it's nested in in Lovable's
 * markup — ours are siblings, so font-size is set explicitly here.
 * !important: ties with Kadence's own global input[type] reset at equal
 * specificity for plain <input> (select/textarea aren't affected). */
.ldal-field :is(input,select,textarea) { display: block; width: 100%; padding: .5rem .75rem !important; border: 1px solid var(--ldal-border) !important; border-radius: .75rem !important; outline: 0; background: var(--ldal-bg) !important; color: var(--ldal-text) !important; font-family: var(--ldal-font-sans); font-size: var(--ldal-text-sm); line-height: 1.25rem; resize: vertical; }
.ldal-field :is(input,select,textarea):focus { border-color: var(--ldal-primary); box-shadow: 0 0 0 2px color-mix(in oklab,var(--ldal-primary) 20%,transparent); }
.ldal-contact-form__privacy { margin: 0; color: var(--ldal-muted); font-size: var(--ldal-text-xs); line-height: 1rem; }
.ldal-contact-form__privacy a { color: var(--ldal-primary); text-decoration: underline; }
.ldal-honeypot { position: absolute; left: -9999px; }
/* Matches contact.tsx's sent-state: icon circle, h2, message, reset button —
 * replaces the form entirely (sent ? successView : form). */
.ldal-notice-success { padding: 2rem 0; text-align: center; }
.ldal-notice-success__icon { display: grid; width: 3.5rem; height: 3.5rem; margin: 0 auto; place-items: center; border-radius: 50%; background: color-mix(in oklab,var(--ldal-primary) 10%,transparent); color: var(--ldal-primary); }
.ldal-notice-success__icon svg { width: 2rem; height: 2rem; }
.ldal-notice-success h2 { margin: 1rem 0 0; font-family: var(--ldal-font-display); font-size: var(--ldal-text-2xl); font-weight: 600; line-height: 2rem; }
.ldal-notice-success p { margin: .5rem 0 0; color: var(--ldal-muted); font-size: var(--ldal-text-sm); line-height: 1.25rem; }
.ldal-notice-success__reset { display: inline-block; margin-top: 1.5rem; padding: .5rem 1rem; border: 1px solid var(--ldal-border); border-radius: 999px; color: var(--ldal-text); font-size: var(--ldal-text-sm); text-decoration: none; }
.ldal-notice-success__reset:hover { background: var(--ldal-secondary); }
.ldal-legal { width: calc(100% - 3rem); max-width: 48rem; margin: 0 auto; padding: 4rem 0; }
.ldal-legal > header > span { color: var(--ldal-primary); font-size: var(--ldal-text-xs); font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.ldal-legal > header h1 { margin: .75rem 0 0; font-size: var(--ldal-text-4xl); font-weight: 600; line-height: 2.5rem; }
.ldal-legal > header p { margin: .75rem 0 0; color: var(--ldal-muted); font-size: var(--ldal-text-sm); line-height: 1.25rem; }
.ldal-legal__body { margin-top: 2.5rem; font-size: .9375rem; line-height: 1.625; }
.ldal-legal__body > :first-child { margin-top: 0; }
.ldal-legal__body h2 { margin: 2rem 0 0; font-size: var(--ldal-text-xl); font-weight: 600; line-height: 1.75rem; }
.ldal-legal__body h2 > span { margin-right: .5rem; color: var(--ldal-primary); }
.ldal-legal__body h2 + :is(p,ul,ol,table),.ldal-legal__body h3 + :is(p,ul,ol) { margin-top: .5rem; }
.ldal-legal__body h3 { margin: 2rem 0 0; font-size: var(--ldal-text-base); font-weight: 600; }
.ldal-legal__body p,.ldal-legal__body li { color: var(--ldal-muted); }
.ldal-legal__body p { margin-block: .75rem 0; }
.ldal-legal__body ul,.ldal-legal__body ol { margin-block: .5rem 0; padding-left: 1.25rem; }
.ldal-legal__body li + li { margin-top: .25rem; }
.ldal-legal__body a { color: var(--ldal-primary); text-decoration: underline; text-underline-offset: 2px; }
.ldal-legal__body table { width: 100%; margin: .75rem 0 0; border-collapse: collapse; font-size: var(--ldal-text-sm); }
.ldal-legal__body th,.ldal-legal__body td { padding: .75rem; border-bottom: 1px solid color-mix(in oklab,var(--ldal-border) 60%,transparent); text-align: left; vertical-align: top; }
.ldal-legal__body th { color: var(--ldal-text); font-weight: 600; }
.ldal-legal__body code { overflow-wrap: anywhere; }
.ldal-legal__crosslink { margin-top: 3rem; padding: 1.5rem; border: 1px solid color-mix(in oklab,var(--ldal-border) 60%,transparent); border-radius: 1rem; background: color-mix(in oklab,var(--ldal-secondary) 50%,transparent); font-size: var(--ldal-text-sm); }
.ldal-legal__crosslink a { color: var(--ldal-primary); text-decoration: underline; text-underline-offset: 2px; }
.ldal-legal__pending { font-style: italic; }
@media (min-width: 768px) {
  .ldal-editorial,.ldal-contact-page { padding-block: 6rem; }
  /* md:text-5xl leading-tight, same pairing as .ldal-commerce-heading h1. */
  .ldal-contact-page > header h1 { font-size: var(--ldal-text-5xl); line-height: 3.75rem; }
  .ldal-legal { padding-block: 6rem; }
  .ldal-legal > header h1 { font-size: var(--ldal-text-5xl); line-height: 1; }
  .ldal-editorial-cta--teach h2 { font-size: var(--ldal-text-3xl); line-height: 2.25rem; }
  .ldal-editorial-cta--teach p { font-size: var(--ldal-text-base); line-height: 1.5rem; }
  .ldal-pdp__hero { padding: 3rem; }
}

/* Complianz owns consent state and interaction. This is the compact bottom-bar
 * presentation used earlier today. */
body #cmplz-cookiebanner-container .cmplz-cookiebanner {
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  top: auto !important;
  display: grid !important;
  grid-template-columns: minmax(0,1fr) auto !important;
  grid-template-rows: auto auto !important;
  align-items: center !important;
  width: 100% !important;
  max-width: none !important;
  max-height: calc(100vh - 1rem) !important;
  margin: 0 !important;
  padding: 1.25rem max(1.25rem,calc((100vw - 80rem)/2)) !important;
  gap: 1rem !important;
  border: 0 !important;
  border-top: 1px solid var(--ldal-border) !important;
  border-radius: 0 !important;
  background: color-mix(in srgb,var(--ldal-card) 95%,transparent) !important;
  box-shadow: 0 -14px 36px rgba(24,33,49,.12) !important;
  color: var(--ldal-text) !important;
  font-family: var(--ldal-font-sans) !important;
  transform: none !important;
  backdrop-filter: blur(12px);
}
body #cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-hidden,
body #cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-dismissed {
  display: none !important;
}
body #cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-categories-visible {
  max-height: calc(100vh - 1rem) !important;
  max-height: calc(100dvh - 1rem) !important;
  box-sizing: border-box !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
}
body #cmplz-cookiebanner-container .cmplz-header {
  display: flex !important;
  grid-column: 1 !important;
  grid-row: 1 !important;
  align-items: center;
  gap: 1rem;
}
body #cmplz-cookiebanner-container .cmplz-header::before {
  width: 2.5rem;
  height: 2.5rem;
  flex: 0 0 2.5rem;
  border-radius: 999px;
  background: color-mix(in srgb,var(--ldal-primary) 10%,transparent) center/1.25rem no-repeat
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232f72b7' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2a10 10 0 1 0 10 10 4 4 0 0 1-5-5 4 4 0 0 1-5-5'/%3E%3Cpath d='M8.5 8.5v.01M16 15.5v.01M12 12v.01'/%3E%3C/svg%3E");
  content: "";
}
body #cmplz-cookiebanner-container .cmplz-title {
  font-size: var(--ldal-text-base) !important;
  line-height: 1.5rem !important;
  font-weight: 500 !important;
}
body #cmplz-cookiebanner-container .cmplz-body {
  grid-column: 1 !important;
  grid-row: 2 !important;
  width: auto !important;
  margin: -.25rem 0 0 3.5rem !important;
  overflow: visible !important;
}
body #cmplz-cookiebanner-container .cmplz-message {
  margin: 0 !important;
  color: var(--ldal-muted) !important;
  font-size: var(--ldal-text-sm) !important;
  line-height: 1.35rem !important;
}
body #cmplz-cookiebanner-container .cmplz-message a {
  color: var(--ldal-primary) !important;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 2px;
}
body #cmplz-cookiebanner-container .cmplz-buttons {
  position: relative;
  z-index: 2;
  display: flex !important;
  grid-column: 2 !important;
  grid-row: 1/3 !important;
  align-self: center !important;
  grid-template-columns: none !important;
  gap: .5rem !important;
  pointer-events: auto !important;
}
body #cmplz-cookiebanner-container .cmplz-btn {
  width: max-content !important;
  min-width: max-content !important;
  max-width: none !important;
  min-height: 2.75rem !important;
  flex: 0 0 auto !important;
  height: auto !important;
  padding: .7rem 1rem !important;
  border: 1px solid var(--ldal-border) !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: var(--ldal-text) !important;
  font-family: var(--ldal-font-sans) !important;
  font-size: var(--ldal-text-sm) !important;
  line-height: 1.25rem !important;
  font-weight: 600 !important;
  white-space: nowrap;
  cursor: pointer !important;
  pointer-events: auto !important;
}
body #cmplz-cookiebanner-container .cmplz-btn.cmplz-accept,
body #cmplz-cookiebanner-container .cmplz-btn.cmplz-save-preferences {
  border-color: var(--ldal-primary) !important;
  background: var(--ldal-primary) !important;
  color: var(--ldal-primary-foreground) !important;
}
body #cmplz-cookiebanner-container .cmplz-btn:hover {
  transform: translateY(-1px);
}
body #cmplz-cookiebanner-container .cmplz-logo,
body #cmplz-cookiebanner-container .cmplz-close,
body #cmplz-cookiebanner-container .cmplz-divider,
body #cmplz-cookiebanner-container .cmplz-links,
body #cmplz-cookiebanner-container .cmplz-documents {
  display: none !important;
}
body #cmplz-cookiebanner-container .cmplz-categories {
  grid-column: 1/-1;
  margin-top: 1rem;
  font-size: var(--ldal-text-sm);
}
body #cmplz-manage-consent .cmplz-manage-consent {
  right: 1.5rem !important;
  bottom: 1.25rem !important;
  min-width: 0 !important;
  height: auto !important;
  padding: .625rem 1rem !important;
  border: 1px solid var(--ldal-border) !important;
  border-radius: 999px !important;
  background: var(--ldal-card) !important;
  box-shadow: var(--ldal-shadow) !important;
  color: var(--ldal-muted) !important;
  font-family: var(--ldal-font-sans) !important;
  font-size: var(--ldal-text-xs) !important;
  line-height: 1rem !important;
  font-weight: 500 !important;
  animation: none !important;
}
body #cmplz-manage-consent .cmplz-manage-consent:hover {
  border-color: var(--ldal-primary) !important;
  color: var(--ldal-primary) !important;
}
@media (max-width: 639px) {
  body #cmplz-cookiebanner-container .cmplz-cookiebanner,
  body #cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-categories-visible {
    grid-template-columns: 1fr !important;
    align-items: stretch !important;
    padding: 1rem !important;
  }
  body #cmplz-cookiebanner-container .cmplz-header,
  body #cmplz-cookiebanner-container .cmplz-body,
  body #cmplz-cookiebanner-container .cmplz-buttons,
  body #cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-categories-visible .cmplz-header,
  body #cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-categories-visible .cmplz-body,
  body #cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-categories-visible .cmplz-buttons {
    grid-column: 1 !important;
    grid-row: auto !important;
  }
  body #cmplz-cookiebanner-container .cmplz-body {
    margin: 0 !important;
  }
  body #cmplz-cookiebanner-container .cmplz-buttons {
    width: 100%;
    flex-direction: column;
  }
  body #cmplz-cookiebanner-container .cmplz-btn {
    width: 100% !important;
  }
  body #cmplz-manage-consent .cmplz-manage-consent {
    right: 1rem !important;
    bottom: 1rem !important;
  }
}

.woocommerce .quantity .qty, .woocommerce input.input-text, .woocommerce textarea, .learndash-wrapper input { border: 1px solid var(--ldal-border); border-radius: 10px; }
.woocommerce div.product, .woocommerce-cart-form, .cart_totals, .woocommerce-checkout, .woocommerce-account .woocommerce { --global-palette1: var(--ldal-primary); }

/* WooCommerce account entry, based on the Lovable two-panel sign-in design. */
body.woocommerce-account:not(.logged-in) #primary { width: 100%; max-width: none; margin: 0; padding: 0; }
body.woocommerce-account:not(.logged-in) #primary > .content-container,
body.woocommerce-account:not(.logged-in) #primary .site-container,
body.woocommerce-account:not(.logged-in) #primary .content-area,
body.woocommerce-account:not(.logged-in) #primary .site-main,
body.woocommerce-account:not(.logged-in) #primary article,
body.woocommerce-account:not(.logged-in) #primary .entry-content-wrap,
body.woocommerce-account:not(.logged-in) #primary .entry-content { width: 100%; max-width: none; margin: 0; padding: 0; background: transparent !important; box-shadow: none !important; }
body.woocommerce-account:not(.logged-in) .entry-header { display: none; }
.ldal-auth-shell { display: grid; width: calc(100% - 3rem); max-width: 60rem; min-height: 0; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 3rem; align-items: stretch; margin: 2.5rem auto; }
.ldal-auth-story, .ldal-auth-card__inner { border: 1px solid var(--ldal-border); border-radius: 2rem; background: rgba(255,255,255,.8); box-shadow: 0 20px 25px -5px rgb(25 55 83 / .10),0 8px 10px -6px rgb(25 55 83 / .10); }
.ldal-auth-story { display: flex; flex-direction: column; padding: 2.5rem; overflow: hidden; }
.ldal-auth-story__brand { display: flex; align-items: center; gap: .75rem; color: var(--ldal-text); font-family: var(--ldal-font-display); font-size: var(--ldal-text-lg); font-weight: 600; line-height: 1.75rem; text-decoration: none; }
.ldal-auth-story__brand img { width: 44px; height: 44px; object-fit: contain; }
.ldal-auth-story p { max-width: 29rem; margin: 2rem 0 0; color: var(--ldal-muted); font-size: var(--ldal-text-base); line-height: 1.5rem; }
.ldal-auth-story__image { width: 100%; height: 220px; margin: 1.5rem 0; border-radius: 1.25rem; object-fit: cover; object-position: center 43%; }
.ldal-auth-story ul { display: grid; gap: .65rem; margin: auto 0 0; padding: 0; color: var(--ldal-muted); font-size: var(--ldal-text-sm); line-height: 1.25rem; list-style: none; }
.ldal-auth-story li { display: flex; gap: .6rem; align-items: flex-start; }
.ldal-auth-story li::before { color: var(--ldal-primary); content: "✣"; }
.ldal-auth-card { display: flex; min-width: 0; align-items: center; justify-content: center; }
.ldal-auth-card__inner { display: flex; width: 100%; height: 100%; min-height: 0; flex-direction: column; justify-content: center; padding: 2.5rem; }
.ldal-auth-card__mobile-brand { display: none; }
.ldal-auth-view h2 { margin: 0; font-size: var(--ldal-text-3xl); line-height: 2.25rem; }
.ldal-auth-lead { margin: .5rem 0 0; color: var(--ldal-muted); font-size: var(--ldal-text-sm); line-height: 1.25rem; }
.ldal-auth-form { margin: 1.5rem 0 0 !important; padding: 0 !important; border: 0 !important; }
/* login.tsx error div: "rounded-lg border border-destructive/40 ..." = .75rem
 * under the customized scale, not the generic .5rem this had. */
.ldal-auth-error { display: flex; align-items: flex-start; gap: .75rem; margin-top: 1.5rem; padding: .75rem; border: 1px solid color-mix(in oklab,var(--ldal-destructive) 40%,transparent); border-radius: .75rem; background: color-mix(in oklab,var(--ldal-destructive) 5%,transparent); color: var(--ldal-destructive); font-size: .875rem; line-height: 1.25rem; }
.ldal-auth-error > svg { width: 1rem; height: 1rem; flex: 0 0 1rem; margin-top: .125rem; stroke-linecap: round; stroke-linejoin: round; }
.ldal-auth-error__title { font-weight: 500; }
.ldal-auth-error__help { margin-top: .125rem; color: color-mix(in oklab,var(--ldal-destructive) 80%,transparent); font-size: .75rem; line-height: 1rem; }
.ldal-auth-error__help a { color: inherit; text-decoration: underline; }
.ldal-auth-view ul.woocommerce-error { margin: 1.5rem 0 0 !important; padding: .75rem .75rem .75rem 2.5rem !important; border: 1px solid color-mix(in oklab,var(--ldal-destructive) 40%,transparent) !important; border-radius: .5rem; background: color-mix(in oklab,var(--ldal-destructive) 5%,transparent); color: var(--ldal-destructive); font-size: var(--ldal-text-sm); line-height: 1.25rem; list-style: none; }
.ldal-auth-view ul.woocommerce-error::before { top: .75rem; left: .75rem; color: var(--ldal-destructive); }
.ldal-auth-form .form-row { margin: 0 0 1rem !important; padding: 0 !important; }
/* login.tsx Field: <span className="mb-1.5 block font-medium ..."> — mb-1.5
 * is .375rem, not .45rem. */
/* !important: Kadence's ".woocommerce form .form-row label" reset has
 * higher specificity and was winning outright on login/register labels. */
.ldal-auth-form label { display: block !important; margin: 0 0 .375rem !important; color: var(--ldal-text) !important; font-size: var(--ldal-text-sm) !important; font-weight: 500 !important; line-height: 1.25rem !important; }
.ldal-auth-field { position: relative; display: block; width: 100%; }
.ldal-auth-field__icon { position: absolute; top: 50%; left: .75rem; z-index: 1; display: block; width: 1rem; height: 1rem; color: var(--ldal-muted); pointer-events: none; transform: translateY(-50%); }
.ldal-auth-field__icon svg { display: block; width: 1rem; height: 1rem; }
/* login.tsx Field input: rounded-lg = .75rem; inherits label's text-sm
 * (no font-size class of its own). */
.woocommerce .ldal-auth-field input.input-text, .woocommerce .ldal-auth-field input { display: block; width: 100%; height: auto; min-height: 0; margin: 0; padding: .625rem .75rem .625rem 2.5rem; border: 1px solid var(--ldal-border) !important; border-radius: .75rem; outline: 0; background: var(--ldal-bg); box-shadow: none; font-size: var(--ldal-text-sm); line-height: 1.25rem; transition: border-color .2s,box-shadow .2s; }
.woocommerce .ldal-auth-field--plain input.input-text, .woocommerce .ldal-auth-field--plain input { padding-left: .75rem; }
.woocommerce .ldal-auth-field input:focus { border-color: var(--ldal-primary) !important; box-shadow: 0 0 0 2px rgba(43,108,176,.2); }
.ldal-auth-options { display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 1rem !important; margin: .2rem 0 1.2rem !important; color: var(--ldal-muted); font-size: var(--ldal-text-sm); line-height: 1.25rem; }
/* !important: this label is inside .ldal-auth-form too, so the Email/Password
 * label fix's !important display:block was silently winning here as well. */
.ldal-auth-options label { display: flex !important; align-items: center !important; gap: .5rem !important; margin: 0 !important; color: var(--ldal-muted) !important; font-weight: 400 !important; }
.ldal-auth-options input { width: 16px !important; height: 16px !important; margin: 0 !important; }
.ldal-auth-options a, .ldal-auth-switch a { color: var(--ldal-primary); font-weight: 600; text-decoration: none; }
.woocommerce .ldal-auth-submit { width: 100%; min-height: 48px; }
.ldal-auth-switch { margin: 2rem 0 0; color: var(--ldal-muted); font-size: var(--ldal-text-sm); line-height: 1.25rem; text-align: center; }
.ldal-auth-legal { margin: 1.25rem 0 0; color: var(--ldal-muted); font-size: var(--ldal-text-xs); line-height: 1rem; text-align: center; }
.ldal-auth-legal a { text-decoration: underline; }
.ldal-auth-help { margin: -.2rem 0 1rem; color: var(--ldal-muted); font-size: var(--ldal-text-sm); line-height: 1.25rem; }
.ldal-auth-shell[data-mode="login"] .ldal-auth-view--register,
.ldal-auth-shell[data-mode="register"] .ldal-auth-view--login { display: none; }

/* Branded password recovery, matched to Lovable's /forgot-password page. */
body.ldal-recovery-page #primary { width: 100%; max-width: none; margin: 0; padding: 0; }
.ldal-forgot-password { position: relative; display: flex; min-height: 0; flex: 1; align-items: center; justify-content: center; overflow: hidden; padding: 2.5rem 1rem; background: linear-gradient(135deg,var(--ldal-bg),color-mix(in oklab,var(--ldal-secondary) 40%,var(--ldal-bg)),var(--ldal-bg)); }
.ldal-forgot-password__glow { position: absolute; border-radius: 50%; pointer-events: none; filter: blur(64px); }
.ldal-forgot-password__glow--left { top: 25%; left: -6rem; width: 18rem; height: 18rem; background: color-mix(in oklab,var(--ldal-primary) 5%,transparent); }
.ldal-forgot-password__glow--right { right: -6rem; bottom: 25%; width: 20rem; height: 20rem; background: color-mix(in oklab,var(--ldal-accent) 10%,transparent); }
.ldal-forgot-password__card { position: relative; z-index: 1; width: 100%; max-width: 28rem; padding: 2.5rem; border-radius: 2rem; background: color-mix(in oklab,var(--ldal-card) 80%,transparent); box-shadow: 0 20px 25px -5px rgb(25 55 83 / .10),0 8px 10px -6px rgb(25 55 83 / .10); backdrop-filter: blur(4px); }
.ldal-forgot-password__brand { display: flex; align-items: center; gap: .75rem; margin-bottom: 1.5rem; color: var(--ldal-text); font-family: var(--ldal-font-display); font-size: var(--ldal-text-lg); font-weight: 600; line-height: 1.75rem; text-decoration: none; }
.ldal-forgot-password__brand img { width: 40px; height: 40px; object-fit: contain; }
.ldal-forgot-password h1 { margin: 0; font-size: var(--ldal-text-3xl); font-weight: 600; line-height: 2.25rem; }
.ldal-forgot-password__card > p, .ldal-forgot-password__confirmation > p { margin: .5rem 0 0; color: var(--ldal-muted); font-size: var(--ldal-text-sm); line-height: 1.25rem; }
.ldal-forgot-password__form { display: grid; gap: 1rem; margin-top: 1.5rem; }
.ldal-forgot-password__form label { margin-bottom: -.625rem; font-size: var(--ldal-text-sm); font-weight: 500; line-height: 1.25rem; }
.ldal-forgot-password__field { position: relative; display: block; }
.ldal-forgot-password__field svg { position: absolute; top: 50%; left: .75rem; width: 1rem; height: 1rem; color: var(--ldal-muted); pointer-events: none; transform: translateY(-50%); }
/* Same Field pattern as login/register: rounded-lg = .75rem, and no
 * font-size class of its own means it inherits the label's text-sm. */
.ldal-forgot-password .ldal-forgot-password__field input[type="email"] { all: unset; display: block; box-sizing: border-box; width: 100%; padding: .625rem .75rem .625rem 2.5rem; border: 1px solid var(--ldal-border); border-radius: .75rem; background: var(--ldal-bg); color: var(--ldal-text); cursor: text; font-family: var(--ldal-font-sans); font-size: var(--ldal-text-sm); font-weight: 400; line-height: 1.25rem; }
.ldal-forgot-password .ldal-forgot-password__field input[type="email"]::placeholder { color: color-mix(in oklab,var(--ldal-text) 50%,transparent); opacity: 1; }
.ldal-forgot-password .ldal-forgot-password__field input[type="email"]:focus { border-color: var(--ldal-primary); box-shadow: 0 0 0 2px color-mix(in oklab,var(--ldal-primary) 20%,transparent); }
.ldal-forgot-password__form .ldal-button { width: 100%; }
.ldal-forgot-password__signin { margin: 1.5rem 0 0 !important; text-align: center; }
.ldal-forgot-password__signin a { color: var(--ldal-primary); font-weight: 500; text-decoration: none; }
.ldal-forgot-password__signin a:hover { text-decoration: underline; }
.ldal-forgot-password__confirmation { text-align: center; }
.ldal-forgot-password__confirmation h1 { font-size: var(--ldal-text-2xl); line-height: 2rem; }
.ldal-forgot-password__confirmation strong { color: var(--ldal-text); font-weight: 500; }
.ldal-forgot-password__success-icon { display: flex; width: 3.5rem; height: 3.5rem; align-items: center; justify-content: center; margin: 0 auto 1rem; border-radius: 50%; background: color-mix(in oklab,var(--ldal-primary) 10%,transparent); color: var(--ldal-primary); }
.ldal-forgot-password__success-icon svg { width: 2rem; height: 2rem; }
.ldal-forgot-password__back { margin-top: 1.5rem; }
.ldal-forgot-password__back svg { width: 1rem; height: 1rem; }
.ldal-reset-password .ldal-forgot-password__field input[type="password"] { all: unset; display: block; box-sizing: border-box; width: 100%; padding: .625rem .75rem .625rem 2.5rem; border: 1px solid var(--ldal-border); border-radius: .75rem; background: var(--ldal-bg); color: var(--ldal-text); cursor: text; font-family: var(--ldal-font-sans); font-size: var(--ldal-text-sm); font-weight: 400; line-height: 1.25rem; }
.ldal-reset-password .ldal-forgot-password__field input[type="password"]::placeholder { color: color-mix(in oklab,var(--ldal-text) 50%,transparent); opacity: 1; }
.ldal-reset-password .ldal-forgot-password__field input[type="password"]:focus { border-color: var(--ldal-primary); box-shadow: 0 0 0 2px color-mix(in oklab,var(--ldal-primary) 20%,transparent); }
.ldal-reset-password .ldal-forgot-password__field input[type="password"].has-error { border-color: var(--ldal-destructive); background: color-mix(in oklab,var(--ldal-destructive) 5%,var(--ldal-bg)); }
.ldal-reset-password .ldal-forgot-password__field input[type="password"].has-error:focus { box-shadow: 0 0 0 2px color-mix(in oklab,var(--ldal-destructive) 20%,transparent); }
.ldal-password-strength { margin-top: -.5rem; }
.ldal-password-strength__bars { display: flex; gap: .25rem; }
.ldal-password-strength__bars span { height: .25rem; flex: 1; border-radius: 999px; background: var(--ldal-border); }
.ldal-password-strength__bars span.is-weak { background: var(--ldal-destructive); }
.ldal-password-strength__bars span.is-okay { background: var(--ldal-accent); }
.ldal-password-strength__bars span.is-strong { background: var(--ldal-primary); }
.ldal-password-strength p, .ldal-reset-password__mismatch { margin: .25rem 0 0; color: var(--ldal-muted); font-size: var(--ldal-text-xs); line-height: 1rem; }
/* reset-password.tsx guidance box: "rounded-lg bg-secondary/60 p-3" = .75rem,
 * same correction as the auth-error box above. */
.ldal-register-password__guidance { display: flex; align-items: flex-start; gap: .5rem; margin: 0 0 1rem; padding: .75rem; border-radius: .75rem; background: color-mix(in oklab,var(--ldal-secondary) 60%,transparent); color: var(--ldal-muted); font-size: var(--ldal-text-xs); line-height: 1rem; }
.ldal-register-password__guidance svg { width: 1rem; height: 1rem; flex: 0 0 1rem; margin-top: .125rem; color: var(--ldal-primary); }
.ldal-reset-password__mismatch { margin-top: -.75rem; color: var(--ldal-destructive); }
.ldal-reset-password__guidance { display: flex; align-items: flex-start; gap: .5rem; padding: .75rem; border-radius: .75rem; background: color-mix(in oklab,var(--ldal-secondary) 60%,transparent); color: var(--ldal-muted); font-size: var(--ldal-text-xs); line-height: 1rem; }
.ldal-reset-password__guidance svg { width: 1rem; height: 1rem; flex: 0 0 1rem; margin-top: .125rem; color: var(--ldal-primary); }
/* No direct Lovable equivalent (a reset-key-expired banner isn't modeled in
 * reset-password.tsx) — aligned to the same .75rem used by the other
 * destructive alert card on this page family (.ldal-auth-error) for visual
 * consistency rather than left at the generic default. */
.ldal-reset-password__error { margin-top: 1rem; padding: .75rem; border: 1px solid color-mix(in oklab,var(--ldal-destructive) 40%,transparent); border-radius: .75rem; background: color-mix(in oklab,var(--ldal-destructive) 5%,transparent); color: var(--ldal-destructive); font-size: var(--ldal-text-sm); line-height: 1.25rem; }
.ldal-reset-password__invalid-icon { display: flex; width: 3.5rem; height: 3.5rem; align-items: center; justify-content: center; margin: 0 auto 1rem; border-radius: 50%; background: color-mix(in oklab,var(--ldal-destructive) 10%,transparent); color: var(--ldal-destructive); }
.ldal-reset-password__invalid-icon svg { width: 2rem; height: 2rem; }

/* Course product detail, populated from the real WooCommerce/LearnDash product. */
body.single-product #primary { width: 100%; max-width: none; margin: 0; padding: 0; }
body.single-product .kadence-breadcrumb-container { display: none !important; }
.ldal-pdp { padding: 3.5rem 0 6rem; }
.ldal-pdp__layout { display: grid; grid-template-columns: minmax(0,1.42fr) minmax(300px,1fr); gap: 2.5rem; align-items: start; }
.ldal-pdp__hero { padding: 2rem; border-radius: 1.5rem; background: linear-gradient(135deg,rgba(43,108,176,.18),rgba(43,108,176,.04) 55%,rgba(239,135,36,.12)); }
.ldal-pdp__badges { display: flex; flex-wrap: wrap; gap: .55rem; }
.ldal-pdp__badges span { padding: .3rem .75rem; border-radius: 999px; background: rgba(255,255,255,.78); color: var(--ldal-primary-deep); font-size: var(--ldal-text-xs); font-weight: 500; line-height: 1rem; }
.ldal-pdp__badges span + span { border: 1px solid rgba(223,219,208,.8); color: var(--ldal-muted); font-weight: 400; }
.ldal-pdp__hero h1 { margin: 1.5rem 0 0; font-size: var(--ldal-text-5xl); font-weight: 600; line-height: 1; }
.ldal-pdp__hero p { max-width: 40rem; margin: 1rem 0 0; color: var(--ldal-muted); font-size: var(--ldal-text-lg); line-height: 1.75rem; }
.ldal-pdp__facts { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; margin: 1.5rem 0 0; }
.ldal-pdp__facts > div { min-width: 0; padding: 1rem; border: 1px solid color-mix(in oklab,var(--ldal-border) 70%,transparent); border-radius: 1.25rem; background: var(--ldal-card); box-shadow: var(--ldal-shadow); transition: transform .2s ease, box-shadow .2s ease; }
.ldal-pdp__facts > div:hover { transform: translateY(-4px); box-shadow: var(--ldal-shadow-elevated); }
.ldal-pdp__facts > div > span { color: var(--ldal-primary); font-size: 1.25rem; }
.ldal-pdp__facts dt { margin-top: .6rem; color: var(--ldal-muted); font-size: var(--ldal-text-xs); line-height: 1rem; letter-spacing: .08em; text-transform: uppercase; }
.ldal-pdp__facts dd { margin: .2rem 0 0; overflow-wrap: anywhere; font-size: var(--ldal-text-sm); font-weight: 500; line-height: 1.25rem; }
.ldal-pdp__section { margin-top: 3rem; }
.ldal-pdp__section h2, .ldal-pdp__others h2 { margin: 0 0 1.25rem; font-size: var(--ldal-text-2xl); font-weight: 600; line-height: 2rem; }
.ldal-pdp__features { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; margin: 0; padding: 0; list-style: none; }
.ldal-pdp__features li { display: flex; align-items: center; gap: .75rem; min-height: 58px; padding: 1rem; border: 1px solid color-mix(in oklab,var(--ldal-border) 60%,transparent); border-radius: 1.25rem; background: color-mix(in oklab,var(--ldal-card) 60%,transparent); font-size: var(--ldal-text-sm); line-height: 1.25rem; }
.ldal-pdp__features li span { display: grid; width: 24px; height: 24px; flex: 0 0 auto; place-items: center; border-radius: 50%; background: rgba(43,108,176,.1); color: var(--ldal-primary); }
.ldal-pdp__curriculum { display: grid; gap: .75rem; margin: 0; padding: 0; counter-reset: none; list-style: none; }
.ldal-pdp__curriculum li { display: flex; align-items: center; gap: 1rem; padding: 1rem; border: 1px solid color-mix(in oklab,var(--ldal-border) 60%,transparent); border-radius: 1.25rem; background: color-mix(in oklab,var(--ldal-card) 60%,transparent); }
.ldal-pdp__curriculum > li > span { display: grid; width: 38px; height: 38px; flex: 0 0 auto; place-items: center; border-radius: 50%; background: var(--ldal-primary); color: var(--ldal-primary-foreground); font-size: .8rem; font-weight: 700; }
.ldal-pdp__curriculum small { display: block; color: var(--ldal-accent); font-size: var(--ldal-text-xs); line-height: 1rem; letter-spacing: .06em; text-transform: uppercase; }
.ldal-pdp__curriculum strong { display: block; margin-top: .15rem; font-size: var(--ldal-text-sm); font-weight: 500; line-height: 1.25rem; }
.ldal-pdp__purchase { position: sticky; top: 105px; padding: 1.5rem; border: 0; border-radius: 1.25rem; background: var(--ldal-card); box-shadow: var(--ldal-shadow); transition: transform .2s ease, box-shadow .2s ease; }
.ldal-pdp__purchase:hover { transform: translateY(-4px); box-shadow: var(--ldal-shadow-elevated); }
.ldal-pdp__price { font-family: var(--ldal-font-display); font-size: var(--ldal-text-4xl); font-weight: 600; line-height: 2.5rem; }
.ldal-pdp__price .woocommerce-Price-currencySymbol { font-size: .7em; }
.ldal-pdp__purchase > p { margin: .45rem 0 1.5rem; color: var(--ldal-muted); font-size: var(--ldal-text-sm); line-height: 1.25rem; }
.ldal-pdp__purchase ul { display: grid; gap: .75rem; margin: 0 0 1.5rem; padding: 0; color: var(--ldal-muted); font-size: var(--ldal-text-sm); line-height: 1.25rem; list-style: none; }
.ldal-pdp__purchase li { display: flex; gap: .65rem; align-items: center; }
.ldal-pdp__purchase li span { color: var(--ldal-primary); }
.woocommerce .ldal-pdp__purchase form.cart { display: block; margin: 0 0 .65rem !important; }
.woocommerce .ldal-pdp__purchase .single_add_to_cart_button { width: 100%; min-height: 50px; }
.ldal-pdp__buy { width: 100%; min-height: 50px; }
.ldal-pdp__purchase > small { display: block; margin-top: 1rem; color: var(--ldal-muted); font-size: var(--ldal-text-xs); line-height: 1rem; text-align: center; }
.ldal-pdp__others { margin-top: 5rem; }
.ldal-pdp__others > div { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.ldal-pdp__others a { display: flex; flex-direction: column; min-height: 140px; padding: 1.25rem; border-radius: 1.25rem; background: var(--ldal-card); box-shadow: var(--ldal-shadow); text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.ldal-pdp__others a:hover { transform: translateY(-4px); box-shadow: var(--ldal-shadow-elevated); }
.ldal-pdp__others small { color: var(--ldal-accent); font-size: var(--ldal-text-xs); font-weight: 600; line-height: 1rem; letter-spacing: .05em; text-transform: uppercase; }
.ldal-pdp__others strong { margin-top: .35rem; font-family: var(--ldal-font-display); font-size: var(--ldal-text-lg); line-height: 1.75rem; }
.ldal-pdp__others span { margin-top: auto; color: var(--ldal-primary); font-size: var(--ldal-text-sm); font-weight: 600; line-height: 1.25rem; }

@media (max-width: 1023px) {
  .ldal-header__inner { gap: 1rem; }
  .ldal-brand__copy { display: none; }
  .ldal-nav { gap: 1.25rem; }
  .ldal-auth-shell { width: calc(100% - 2rem); min-height: 0; grid-template-columns: 1fr; gap: 1rem; margin: 2.5rem auto; }
  .ldal-auth-story { display: none; }
  .ldal-auth-card__inner { max-width: 28rem; height: auto; padding: 2rem; }
  .ldal-auth-card__mobile-brand { display: flex; flex-direction: column; align-items: center; margin-bottom: 1.5rem; font-family: var(--ldal-font-display); text-align: center; }
  .ldal-auth-card__mobile-brand > span { display: flex; align-items: center; gap: .75rem; }
  .ldal-auth-card__mobile-brand > span img { width: 40px; height: 40px; }
  .ldal-auth-card__mobile-brand .ldal-auth-card__mobile-image { width: 144px; height: 144px; margin-bottom: 1rem; border-radius: 1rem; object-fit: cover; object-position: center 43%; }
  .ldal-auth-view h2, .ldal-auth-lead { text-align: center; }
  .ldal-contact__layout { grid-template-columns: 1fr; }
  .ldal-teacher-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 767px) {
  .ldal-nav { display: none; }
  .ldal-actions { display: flex; align-items: center; gap: .75rem; }
  .ldal-actions .ldal-account-button { padding: .5rem .8rem; }
  .ldal-mobile-account-button__user { width: 1.1rem !important; height: 1.1rem !important; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
  .ldal-cart-icon { width: 1.5rem; height: 1.5rem; }
  .ldal-cart-label { display: none; }
  .ldal-hero__grid { grid-template-columns: 1fr; padding-block: 5rem; }
  .ldal-hero h1 { font-size: 3rem; line-height: 1.05; }
  .ldal-hero__image { max-width: 28rem; min-height: 520px; }
  .ldal-course-grid { grid-template-columns: 1fr; }
  .ldal-method__grid { grid-template-columns: 1fr; }
  .ldal-footer__grid { grid-template-columns: 1fr; }
  .ldal-pdp { padding: 2rem 0 4rem; }
  .ldal-pdp__layout { grid-template-columns: 1fr; }
  .ldal-pdp__hero { padding: 1.75rem; border-radius: 1.5rem; }
  .ldal-pdp__hero h1 { font-size: var(--ldal-text-4xl); line-height: 2.5rem; }
  .ldal-pdp__facts { grid-template-columns: repeat(2,1fr); }
  .ldal-pdp__features { grid-template-columns: 1fr; }
  .ldal-pdp__purchase { position: static; }
  .ldal-pdp__others > div { grid-template-columns: 1fr; }
  .ldal-method__principles,.ldal-method__lower { grid-template-columns: 1fr; }
  .ldal-editorial-cta { align-items: flex-start; flex-direction: column; }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .ldal-course-grid { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 620px) {
  .ldal-wrap { padding-inline: 1.5rem; }
  .ldal-brand__copy { display: none; }
  .ldal-actions .ldal-mobile-account-button { width: 2.5rem; height: 2.5rem; padding: 0; }
  .ldal-actions .ldal-mobile-account-button--guest { width: auto; height: 2.5rem; padding: .5rem .9rem; }
  .ldal-mobile-account-button > span,.ldal-mobile-account-button__chevron { display: none; }
  .ldal-hero__image { min-height: 440px; }
  .ldal-method__grid { gap: 32px; padding-block: 60px; }
  .ldal-contact__form-card { padding: 1.5rem; }
  .ldal-method-page { width: calc(100% - 2rem); padding: 2.5rem 0 4rem; }
  .ldal-method-page > header h1 { font-size: var(--ldal-text-4xl); line-height: 2.5rem; }
  .ldal-method__highlights { grid-template-columns: 1fr; padding: 2rem; }
  .ldal-method__lower li { grid-template-columns: 1fr; gap: .25rem; }
  .ldal-legal { width: calc(100% - 3rem); padding-block: 4rem; }
  .ldal-editorial > header h1,.ldal-legal > header h1 { font-size: var(--ldal-text-4xl); line-height: 2.5rem; }
  .ldal-teacher-grid { grid-template-columns: 1fr; }
  .ldal-fields { grid-template-columns: 1fr; }
  .ldal-legal__body { overflow-x: auto; }
}
@media screen and (max-width: 782px) {
  body.admin-bar .ldal-site-shell { min-height: calc(100vh - 46px); }
}
