/* =========================================================
   NR Brandschutzakademie — Design System V1.1
   Theme integration for WordPress + WooCommerce
   ========================================================= */

:root{
  color-scheme:light;

  /* Official brand tokens — Light */
  --color-brand:#0A343F;
  --color-brand-hover:#155264;
  --color-accent:#C8312B;
  --color-accent-hover:#A3261F;
  --color-signifier:#4D9BAE;
  --color-bg:#F6F5F2;
  --color-surface:#FFFFFF;
  --color-border:#B7BFC1;
  --color-text:#26302F;
  --color-text-subtle:#5A6366;

  /* Semantic helpers derived only from official tokens */
  --color-text-inverse:#FFFFFF;
  --color-brand-contrast:#FFFFFF;
  --color-focus:var(--color-signifier);
  --color-danger:var(--color-accent);
  --color-success:var(--color-signifier);
  --color-overlay:rgba(7,38,47,.72);

  /* Type */
  --font-heading:"Bitter",Georgia,"Times New Roman",serif;
  --font-ui:"Inter",Arial,Helvetica,sans-serif;
  --font-display:3.6rem;
  --font-h1:2.7rem;
  --font-h2:2.1rem;
  --font-h3:1.5rem;
  --font-body-lg:1.05rem;
  --font-body:1rem;
  --font-small:.875rem;
  --font-label:.75rem;
  --font-caption:.6875rem;

  /* Official spacing scale */
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-6:24px;
  --space-8:32px;
  --space-12:48px;
  --space-16:64px;
  --space-24:96px;

  /* Brandboard is deliberately angular; badge is the exception */
  --radius-control:2px;
  --radius-card:2px;
  --radius-badge:999px;

  --container-max:1180px;
  --transition-fast:160ms ease;

  /* Backwards-compatible aliases used by existing theme/plugin markup */
  --red:var(--color-brand);
  --red-dark:var(--color-brand-hover);
  --ink:var(--color-text);
  --muted:var(--color-text-subtle);
  --line:var(--color-border);
  --soft:var(--color-bg);
  --surface:var(--color-surface);
  --footer:var(--color-brand);
  --radius:var(--radius-control);
  --radius-xs:var(--radius-control);
  --radius-sm:var(--radius-card);
  --radius-md:var(--radius-card);
  --radius-round:var(--radius-badge);
  --shadow:none;
  --shadow-sm:none;
  --shadow-md:none;
}

:root[data-theme="dark"]{
  color-scheme:dark;
  --color-brand:#155264;
  --color-brand-hover:#1D6A80;
  --color-accent:#D94B44;
  --color-accent-hover:#C8312B;
  --color-signifier:#4D9BAE;
  --color-bg:#07262F;
  --color-surface:#113848;
  --color-border:#235F72;
  --color-text:#E8E4E0;
  --color-text-subtle:#8FAAB0;
  --color-text-inverse:#07262F;
  --color-brand-contrast:#FFFFFF;
  --color-overlay:rgba(7,38,47,.84);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--color-bg)}
body{
  margin:0;
  background:var(--color-bg);
  color:var(--color-text);
  font-family:var(--font-ui);
  font-size:var(--font-body);
  font-weight:300;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{outline-offset:3px}
:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}
::selection{background:var(--color-signifier);color:#fff}
svg{display:block}

h1,h2,h3,h4,h5,h6{
  margin:0 0 var(--space-4);
  color:var(--color-text);
  font-family:var(--font-heading);
  font-weight:400;
  line-height:1.14;
}
h1{font-size:clamp(2.2rem,5vw,var(--font-h1))}
h2{font-size:clamp(1.8rem,4vw,var(--font-h2))}
h3{font-size:clamp(1.35rem,3vw,var(--font-h3))}
p{margin:0 0 var(--space-4)}
small{font-size:var(--font-caption)}

.shell{width:min(var(--container-max),calc(100% - 64px));margin-inline:auto}
.content-narrow{max-width:820px}
.section{padding-block:var(--space-24)}
.section-soft{background:var(--color-surface);border-block:1px solid var(--color-border)}
.section-head{margin-bottom:var(--space-8)}
.section-head.centered{text-align:center}
.section-head>span,.panel>h3,.eyebrow,.hero-motto{
  display:block;
  margin:0 0 var(--space-3);
  color:var(--color-text-subtle);
  font-family:var(--font-ui);
  font-size:var(--font-label);
  font-weight:400;
  letter-spacing:.12em;
  line-height:1.3;
  text-transform:uppercase;
}
.section-head h2{margin:0}
.wide{width:100%}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.skip-link{position:absolute;left:-9999px;top:var(--space-4);z-index:10000;background:var(--color-surface);color:var(--color-text);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border)}
.skip-link:focus{left:var(--space-4)}

/* ---------------------------------------------------------
   Header
   --------------------------------------------------------- */
.site-header{position:relative;z-index:30;background:var(--color-surface);border-bottom:1px solid var(--color-border)}
.topbar{background:var(--color-bg);color:var(--color-text-subtle);border-bottom:1px solid var(--color-border);font-size:var(--font-caption)}
.topbar-inner{min-height:36px;display:flex;align-items:center;gap:var(--space-6)}
.topbar-item,.topbar-actions a,.header-cart,.footer-grid p{display:flex;align-items:center;gap:var(--space-2)}
.topbar-actions{margin-left:auto}
.topbar a:hover{color:var(--color-brand-hover)}
.topbar svg,.footer-grid p svg{width:15px;height:15px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.topbar-item svg,.topbar-actions svg{color:var(--color-signifier)}

.nav-row{min-height:84px;display:flex;align-items:center;gap:var(--space-6)}
.brand{display:flex;align-items:center;flex:0 0 auto;min-width:190px}
.brand-logo-frame{position:relative;display:flex;align-items:center;justify-content:flex-start;width:190px;height:62px;overflow:visible;flex:0 0 190px}
.site-header .brand-logo{display:block;width:100%!important;height:100%!important;max-width:100%!important;object-fit:contain;object-position:left center;flex:0 0 auto}
.site-header .brand-logo-dark{display:none}
:root[data-theme="dark"] .site-header .brand-logo-light{display:none}
:root[data-theme="dark"] .site-header .brand-logo-dark{display:block}
.primary-nav{flex:1;min-width:0}
.menu{display:flex;justify-content:flex-end;gap:clamp(12px,1.4vw,24px);list-style:none;margin:0;padding:0}
.menu>li>a{
  position:relative;
  display:flex;
  align-items:center;
  min-height:84px;
  color:var(--color-text);
  font-size:var(--font-caption);
  font-weight:500;
  letter-spacing:.08em;
  text-transform:uppercase;
  white-space:nowrap;
  transition:color var(--transition-fast);
}
.menu>li>a::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--color-brand-hover);transform:scaleX(0);transform-origin:left;transition:transform var(--transition-fast)}
.menu>li>a:hover,.menu>li>a:focus-visible,.current-menu-item>a,.current_page_item>a{color:var(--color-brand-hover)}
.menu>li>a:hover::after,.menu>li>a:focus-visible::after,.current-menu-item>a::after,.current_page_item>a::after{transform:scaleX(1)}
.header-actions{display:flex;align-items:center;gap:var(--space-2);flex:0 0 auto}
.header-cart{position:relative;min-height:42px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-control);background:transparent;color:var(--color-text);font-size:var(--font-caption);font-weight:500;letter-spacing:.04em;white-space:nowrap;transition:border-color var(--transition-fast),color var(--transition-fast),background var(--transition-fast)}
.header-cart:hover,.header-cart:focus-visible{border-color:var(--color-brand-hover);color:var(--color-brand-hover)}
.header-cart-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.header-cart-count{display:grid;place-items:center;min-width:20px;height:20px;padding-inline:5px;border-radius:var(--radius-badge);background:var(--color-accent);color:#fff;font-size:10px;font-weight:600}
.icon-button{width:42px;height:42px;display:inline-grid;place-items:center;border:1px solid var(--color-border);border-radius:var(--radius-control);background:transparent;color:var(--color-text);cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast),background var(--transition-fast)}
.icon-button:hover{border-color:var(--color-brand-hover);color:var(--color-brand-hover)}
.icon-button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nav-toggle{display:none}
.theme-icon{display:none}
:root:not([data-theme="dark"]) .theme-icon-sun{display:block}
:root[data-theme="dark"] .theme-icon-moon{display:block}

.academy-motto{position:relative;z-index:20;background:var(--color-brand);color:#fff;border-bottom:1px solid var(--color-brand-hover)}
.academy-motto-inner{min-height:40px;display:flex;align-items:center;justify-content:center;gap:var(--space-4);text-align:center}
.academy-motto strong{font-size:var(--font-caption);font-weight:500;letter-spacing:.14em;text-transform:uppercase}
.academy-motto-line{width:clamp(32px,7vw,96px);height:1px;background:currentColor;opacity:.55}

/* ---------------------------------------------------------
   Buttons / links
   --------------------------------------------------------- */
.btn,.woocommerce button.button,.woocommerce a.button,.woocommerce input.button,.woocommerce #respond input#submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:var(--space-2);
  min-height:44px;
  padding:var(--space-3) var(--space-6);
  border:1px solid transparent;
  border-radius:var(--radius-control)!important;
  font-family:var(--font-ui);
  font-size:var(--font-small);
  font-weight:400!important;
  letter-spacing:.02em;
  line-height:1.2;
  cursor:pointer;
  transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);
}
.btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.btn-primary,.woocommerce button.button.alt,.woocommerce a.button.alt,.woocommerce input.button.alt{background:var(--color-accent)!important;border-color:var(--color-accent)!important;color:#fff!important}
.btn-primary:hover,.btn-primary:focus-visible,.woocommerce button.button:hover,.woocommerce a.button:hover,.woocommerce input.button:hover,.woocommerce button.button.alt:hover,.woocommerce a.button.alt:hover,.woocommerce input.button.alt:hover{background:var(--color-accent-hover)!important;border-color:var(--color-accent-hover)!important;color:#fff!important}
.btn-outline{background:transparent;color:var(--color-brand);border-color:var(--color-brand)}
.btn-outline:hover,.btn-outline:focus-visible{background:var(--color-brand);border-color:var(--color-brand);color:#fff}
.btn-light{background:var(--color-surface);color:var(--color-brand);border-color:var(--color-border)}
.btn-light:hover,.btn-light:focus-visible{background:var(--color-brand);border-color:var(--color-brand);color:#fff}

/* ---------------------------------------------------------
   Homepage hero
   --------------------------------------------------------- */
.hero-home{background:var(--color-brand);color:#fff;border-bottom:1px solid var(--color-brand-hover)}
.hero-home-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);min-height:520px}
.hero-copy{display:flex;flex-direction:column;justify-content:center;padding:var(--space-16) var(--space-16) var(--space-16) 0;min-width:0}
.hero-motto{align-self:flex-start;color:#fff;margin-bottom:var(--space-4);padding:0;border:0;background:transparent}
.hero-copy h1{max-width:12ch;margin:0 0 var(--space-6);color:#fff;font-family:var(--font-heading);font-size:clamp(2.7rem,5vw,var(--font-display));font-weight:400;line-height:1.02;letter-spacing:-.02em}
.hero-copy h1 span{color:#fff}
.hero-copy p{max-width:600px;margin:0 0 var(--space-8);color:#fff;font-size:var(--font-body-lg);font-weight:300;line-height:1.65}
.hero-buttons{display:flex;gap:var(--space-3);flex-wrap:wrap}
.hero-home .btn-outline{border-color:rgba(255,255,255,.7);color:#fff}
.hero-home .btn-outline:hover,.hero-home .btn-outline:focus-visible{background:#fff;border-color:#fff;color:#0A343F}
.hero-visual{position:relative;overflow:hidden;background:var(--color-surface);border-left:1px solid var(--color-border);margin-block:var(--space-12)}
.hero-fire-card{position:absolute;left:var(--space-8);top:var(--space-8);width:min(62%,360px);padding:var(--space-6);background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-brand);z-index:2}
.hero-fire-card strong{font-family:var(--font-heading);font-size:var(--font-h3);font-weight:400}
.hero-fire-card ul{list-style:none;margin:var(--space-4) 0 0;padding:0;color:var(--color-text);font-size:var(--font-small)}
.hero-fire-card li{padding-block:var(--space-2);border-bottom:1px solid var(--color-border)}
.hero-fire-card li:last-child{border-bottom:0}
.hero-fire-card li::before{content:"—";color:var(--color-signifier);margin-right:var(--space-2)}
.flame{position:absolute;right:var(--space-4);bottom:var(--space-4);color:var(--color-accent)}
.flame svg{width:58px;height:58px;fill:none;stroke:currentColor;stroke-width:1.25}
.trainer-silhouette{position:absolute;right:0;bottom:0;width:58%;height:72%;display:flex;align-items:flex-end;justify-content:center;padding:var(--space-8);background:var(--color-brand-hover);color:#fff;clip-path:polygon(28% 0,72% 0,100% 100%,0 100%)}
.trainer-silhouette::before{content:"";position:absolute;top:-12%;left:38%;width:24%;aspect-ratio:1;border:1px solid rgba(255,255,255,.7);border-radius:50%;background:var(--color-surface)}
.trainer-silhouette span{position:relative;font-family:var(--font-heading);font-size:var(--font-h3);font-weight:400;letter-spacing:.06em;text-align:center}

/* Trust / signifier row */
.trustbar{background:var(--color-bg);border-bottom:1px solid var(--color-border)}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.trust-grid>div{min-height:88px;display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-4);border-right:1px solid var(--color-border);color:var(--color-signifier)}
.trust-grid>div:last-child{border-right:0}
.trust-grid>div>svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.trust-grid span{color:var(--color-text);font-size:var(--font-small);font-weight:400;line-height:1.35}

/* ---------------------------------------------------------
   Cards / panels
   --------------------------------------------------------- */
.course-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-6)}
.course-card,.panel,.course-list-item,.booking-summary,.filter-bar,.fsa-account-welcome,.woocommerce-account .woocommerce-form-login,.woocommerce-account .woocommerce-form-register{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:none}
.course-card{display:flex;flex-direction:column;min-width:0}
.course-thumb{height:176px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--color-brand);color:#fff}
.course-thumb img{width:100%;height:100%;object-fit:cover}
.course-thumb .placeholder svg{width:54px;height:54px;fill:none;stroke:currentColor;stroke-width:1.25}
.course-card-body{display:flex;flex:1;flex-direction:column;min-width:0;padding:var(--space-6);text-align:left}
.course-card h3{min-width:0;margin:0 0 var(--space-3);font-size:var(--font-h3);white-space:normal;overflow-wrap:anywhere;word-break:normal;hyphens:auto}
.course-card p{margin:0 0 var(--space-4);color:var(--color-text-subtle);font-size:var(--font-small);font-weight:300}
.course-meta{display:flex;gap:var(--space-4);margin-top:auto;padding-top:var(--space-4);color:var(--color-text-subtle);font-size:var(--font-caption);font-weight:400}
.course-card .btn{margin-top:var(--space-6)}
.course-card,.course-list-item{transition:border-color var(--transition-fast)}
.course-card:hover,.course-list-item:hover{border-color:var(--color-brand-hover)}
.two-panels{display:grid;grid-template-columns:1.25fr 1fr;gap:var(--space-6)}
.panel{padding:var(--space-8);min-width:0}
.panel>h3{margin-bottom:var(--space-4)}
.check-list{list-style:none;margin:0 0 var(--space-6);padding:0}
.check-list li{position:relative;margin:0;padding:var(--space-3) 0 var(--space-3) var(--space-6);border-bottom:1px solid var(--color-border)}
.check-list li:first-child{border-top:1px solid var(--color-border)}
.check-list li::before{content:"✓";position:absolute;left:0;color:var(--color-signifier);font-weight:500}

/* Seminar rows — based on the Style Guide V1.1 seminar-entry pattern */
#termine{scroll-margin-top:110px}
#termine .panel{display:flex;flex-direction:column}
#termine .panel>.wide{margin-top:var(--space-6)}
#termine .panel:first-child>h3{margin-bottom:var(--space-6)}
.session-list{display:flex;flex-direction:column;border-top:1px solid var(--color-border)}
.session-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;border-bottom:1px solid var(--color-border);background:var(--color-surface);transition:background-color var(--transition-fast),border-color var(--transition-fast)}
.session-entry:hover,.session-entry:focus-within{background:color-mix(in srgb,var(--color-surface) 88%,var(--color-brand-hover) 12%);border-color:var(--color-brand-hover)}
.session-entry-main{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;min-width:0;padding:var(--space-6) var(--space-4) var(--space-6) 0;color:var(--color-text)}
.session-entry-main:focus-visible,.session-action:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}
.session-date-block{align-self:stretch;display:grid;grid-template-columns:38px minmax(0,1fr);grid-template-rows:auto 1fr;align-items:center;padding:var(--space-2) var(--space-4) var(--space-2) 0;border-right:1px solid var(--color-border);font-style:normal}
.session-weekday{align-self:start;padding-top:3px;font-family:var(--font-ui);font-size:var(--font-caption);font-weight:500;letter-spacing:.14em;color:var(--color-text-subtle)}
.session-day{grid-row:1 / span 2;grid-column:2;font-family:var(--font-heading);font-size:3rem;line-height:.9;font-weight:400;letter-spacing:-.04em;color:var(--color-brand)}
.session-month{grid-column:1 / -1;align-self:end;margin-top:var(--space-2);font-family:var(--font-ui);font-size:var(--font-caption);font-weight:400;color:var(--color-text-subtle)}
.session-content{min-width:0;padding-left:var(--space-6)}
.session-title{margin:0 0 var(--space-3);font-family:var(--font-heading);font-size:1.25rem;line-height:1.25;font-weight:400;color:var(--color-text);overflow-wrap:anywhere}
.session-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);font-family:var(--font-ui);font-size:var(--font-caption);font-weight:400;color:var(--color-text-subtle)}
.session-meta>span{display:inline-flex;align-items:center;gap:var(--space-1)}
.session-location svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.5}
.session-seats{padding:4px 9px;border:1px solid var(--color-signifier);border-radius:var(--radius-badge);color:var(--color-signifier);line-height:1.2;background:transparent;white-space:nowrap}
.session-seats.is-low,.session-seats.is-full{border-color:var(--color-accent);color:var(--color-accent)}
.session-action{min-width:118px;display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-4);border-left:1px solid var(--color-border);font-family:var(--font-ui);font-size:var(--font-label);font-weight:500;letter-spacing:.08em;color:var(--color-brand);transition:background-color var(--transition-fast),color var(--transition-fast)}
.session-action:hover,.session-action:focus-visible{background:var(--color-brand);color:#fff}
.session-action.is-disabled{color:var(--color-accent);cursor:default;pointer-events:none}
:root[data-theme="dark"] .session-day{color:var(--color-text)}
:root[data-theme="dark"] .session-entry:hover,:root[data-theme="dark"] .session-entry:focus-within{background:var(--color-brand)}
:root[data-theme="dark"] .session-action{color:var(--color-text)}
:root[data-theme="dark"] .session-action:hover,:root[data-theme="dark"] .session-action:focus-visible{background:var(--color-brand-hover);color:#fff}

/* ---------------------------------------------------------
   Archive / filters
   --------------------------------------------------------- */
.shop-hero,.product-hero,.account-hero{background:var(--color-bg);padding:var(--space-12) 0 var(--space-8);border-bottom:1px solid var(--color-border)}
.shop-hero h1,.product-hero h1,.account-hero h1,.page-content h1{margin:var(--space-3) 0 var(--space-2);font-size:clamp(2.2rem,5vw,var(--font-h1))}
.shop-hero p,.product-hero p,.account-hero p{margin:0;color:var(--color-text-subtle);font-size:var(--font-body-lg)}
.breadcrumbs{color:var(--color-text-subtle);font-size:var(--font-caption);font-weight:400;letter-spacing:.04em}
.breadcrumbs span{margin-inline:var(--space-2)}
.filter-bar{display:grid;grid-template-columns:repeat(4,1fr) auto;gap:var(--space-4);align-items:end;padding:var(--space-6);margin-bottom:var(--space-8)}
.field label,.woocommerce form .form-row label,.fsa-booking-box label,.fsa-participant label{display:block;margin-bottom:var(--space-2);color:var(--color-text-subtle);font-size:var(--font-label);font-weight:400;letter-spacing:.1em;text-transform:uppercase}
.field select,.field input,.fsa-booking-box select,.fsa-booking-box input,.fsa-booking-box textarea,.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select,.select2-container--default .select2-selection--single{
  width:100%;
  min-height:44px;
  padding:var(--space-2) 0 var(--space-3);
  border:0;
  border-bottom:1px solid var(--color-border);
  border-radius:0!important;
  background:transparent;
  color:var(--color-text);
  font-size:var(--font-body);
  font-weight:300;
}
.field select:focus,.field input:focus,.fsa-booking-box select:focus,.fsa-booking-box input:focus,.fsa-booking-box textarea:focus,.woocommerce form .form-row input.input-text:focus,.woocommerce form .form-row textarea:focus,.woocommerce form .form-row select:focus{border-bottom-color:var(--color-brand-hover);outline:2px solid transparent;box-shadow:0 2px 0 var(--color-brand-hover)}

.course-list{display:flex;flex-direction:column;gap:var(--space-3)}
.course-list-item{display:grid;grid-template-columns:180px minmax(0,1fr) auto;gap:var(--space-6);align-items:center;padding:var(--space-4)}
.course-list-thumb{height:120px;overflow:hidden;background:var(--color-brand);color:#fff}
.course-list-thumb img{width:100%;height:100%;object-fit:cover}
.course-list-thumb .placeholder{height:100%;display:grid;place-items:center}
.course-list-thumb .placeholder svg{width:42px;height:42px;fill:none;stroke:currentColor;stroke-width:1.25}
.course-list-info h2{margin:0 0 var(--space-3);font-size:var(--font-h3)}
.course-list-info p{display:flex;align-items:center;gap:var(--space-2);margin:var(--space-2) 0 0;color:var(--color-text-subtle);font-size:var(--font-small)}
.course-list-info p svg,.course-list-meta svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5}
.course-list-meta{display:flex;gap:var(--space-4);color:var(--color-text-subtle);font-size:var(--font-small)}
.course-list-meta span{display:flex;align-items:center;gap:var(--space-2)}
.course-list-action{display:flex;justify-content:flex-end;align-items:center}

/* ---------------------------------------------------------
   Product page
   --------------------------------------------------------- */
.product-top-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.5fr);gap:var(--space-8);align-items:start}
.product-image-card,.fallback-course-image{width:100%;height:clamp(280px,28vw,360px)!important;min-height:0!important;max-height:360px!important;background:var(--color-brand);color:#fff;border:1px solid var(--color-border);overflow:hidden}
.product-image-card img{display:block;width:100%!important;height:100%!important;min-height:0!important;max-height:360px!important;object-fit:cover!important;object-position:center top}
.fallback-course-image{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-8);text-align:center}
.fallback-icon svg{width:64px;height:64px;fill:none;stroke:currentColor;stroke-width:1.25}
.fallback-course-image strong{font-family:var(--font-heading);font-size:var(--font-h3);font-weight:400;letter-spacing:.06em}
.booking-summary{padding:var(--space-8)}
.summary-row{display:flex;align-items:center;gap:var(--space-4);padding-block:var(--space-4);border-bottom:1px solid var(--color-border)}
.summary-row:first-child{padding-top:0}
.summary-row svg{width:22px;height:22px;flex:0 0 auto;fill:none;stroke:var(--color-signifier);stroke-width:1.5}
.summary-row small{display:block;color:var(--color-text-subtle);font-size:var(--font-caption);letter-spacing:.08em;text-transform:uppercase}
.summary-row strong{display:block;font-family:var(--font-heading);font-size:1.125rem;font-weight:400}
.booking-summary>.btn{margin-top:var(--space-6)}
.product-content{border-top:1px solid var(--color-border)}
.product-content-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.6fr);gap:var(--space-12);align-items:start}
.product-description,.curriculum{margin-bottom:var(--space-12)}
.product-description h2,.curriculum h2{margin-bottom:var(--space-6)}
.course-detail-price{display:grid;gap:var(--space-2);margin-top:var(--space-8);padding:var(--space-6) 0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}
.course-detail-price span{color:var(--color-text-subtle);font-size:var(--font-label);font-weight:400;letter-spacing:.12em;text-transform:uppercase}
.course-detail-price strong{font-family:var(--font-heading);font-size:var(--font-h2);font-weight:400}
.course-detail-price small{color:var(--color-text-subtle)}
.upcoming-box{padding:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border)}
.upcoming-box h3{margin-bottom:var(--space-4)}
.upcoming-item{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:var(--space-3);align-items:center;padding:var(--space-4) 0;border-bottom:1px solid var(--color-border)}
.upcoming-item svg{width:18px;height:18px;fill:none;stroke:var(--color-brand);stroke-width:1.5}
.upcoming-item small{display:block;color:var(--color-text-subtle)}
.upcoming-item em{padding:4px 8px;border:1px solid var(--color-signifier);border-radius:var(--radius-badge);color:var(--color-signifier);font-size:var(--font-caption);font-style:normal;white-space:nowrap}
.upcoming-box>.btn{margin-top:var(--space-6)}
.suitable{background:var(--color-brand);color:#fff;border-block:1px solid var(--color-brand-hover)}
.suitable-inner{display:flex;align-items:center;gap:var(--space-6);padding-block:var(--space-8)}
.suitable h3{margin-bottom:var(--space-2);color:#fff}
.suitable p{margin:0;color:#fff}
.suitable-icon{width:52px;height:52px;display:grid;place-items:center;flex:0 0 auto;border:1px solid rgba(255,255,255,.55)}
.suitable-icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.5}
.booking-section{background:var(--color-bg)}
.contact-strip{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:var(--space-6);align-items:center}
.contact-strip h3{margin-bottom:var(--space-2)}
.contact-strip p{margin:0;color:var(--color-text-subtle)}
.contact-strip>strong{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-small);font-weight:400}
.contact-strip svg{width:18px;height:18px;fill:none;stroke:var(--color-signifier);stroke-width:1.5}

/* ---------------------------------------------------------
   Booking plugin / forms
   --------------------------------------------------------- */
.fsa-booking-box{padding:var(--space-8);background:var(--color-surface);border:1px solid var(--color-border)}
.fsa-booking-box h3{margin-top:0}
.fsa-booking-box>p{margin-bottom:var(--space-6)}
.fsa-hint{margin:var(--space-4) 0 0;color:var(--color-text-subtle);font-size:var(--font-caption)}
.fsa-participant{margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--color-border)}
.fsa-participant h4{margin:0 0 var(--space-6);font-family:var(--font-heading);font-size:1.2rem;font-weight:400}
.fsa-participant-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4) var(--space-6)}
.fsa-participant-grid p{margin:0}
.fsa-participant textarea{min-height:100px;resize:vertical}
.booking-section form.cart{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:flex-end}
.booking-section form.cart>.fsa-booking-box{width:100%}
.booking-section form.cart .quantity .qty{min-height:44px;width:84px;padding:var(--space-2);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}
.booking-section .single_add_to_cart_button{min-height:44px}

/* ---------------------------------------------------------
   WooCommerce account/cart/checkout
   --------------------------------------------------------- */
.fsa-wc-shell{max-width:var(--container-max)}
.woocommerce-notices-wrapper{margin-bottom:var(--space-6)}
.woocommerce-message,.woocommerce-info,.woocommerce-error{margin:0 0 var(--space-6)!important;padding:var(--space-4) var(--space-6)!important;background:var(--color-surface)!important;color:var(--color-text)!important;border:1px solid var(--color-border)!important;border-left:3px solid var(--color-signifier)!important;border-radius:0!important}
.woocommerce-error{border-left-color:var(--color-accent)!important;list-style:none!important}
.woocommerce table.shop_table{border-collapse:collapse!important;border:1px solid var(--color-border)!important;border-radius:0!important;background:var(--color-surface)}
.woocommerce table.shop_table th,.woocommerce table.shop_table td{padding:var(--space-4)!important;border-color:var(--color-border)!important}
.woocommerce-cart table.cart .product-thumbnail{width:156px}
.woocommerce-cart table.cart .product-thumbnail a{display:block;width:132px}
.woocommerce-cart table.cart .product-thumbnail img,
.woocommerce-cart table.cart .product-thumbnail .fsa-fallback-course-photo-cart{display:block;width:132px!important;height:92px!important;max-width:none!important;object-fit:cover;object-position:center;border:0;border-radius:var(--radius-card)}
.woocommerce .quantity .qty{min-height:42px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}
.woocommerce-cart .cart-collaterals .cart_totals{float:none;width:100%;max-width:520px;margin-left:auto;padding:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border)}
.checkout.woocommerce-checkout{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:var(--space-8);align-items:start}
.checkout #customer_details{display:grid;grid-template-columns:1fr;gap:var(--space-6)}
.checkout #order_review_heading,.checkout #order_review{grid-column:2}
.checkout #order_review_heading{margin:0 0 calc(var(--space-6) * -1)}
.checkout #order_review{padding:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border)}
.woocommerce-checkout-payment{background:var(--color-surface)!important}
.woocommerce-checkout-payment .payment_box{background:var(--color-bg)!important}
.woocommerce-checkout-payment .payment_box::before{border-bottom-color:var(--color-bg)!important}
.woocommerce-MyAccount-navigation{float:left;width:250px;padding:0;background:var(--color-brand)}
.woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0}
.woocommerce-MyAccount-navigation li{margin:0}
.woocommerce-MyAccount-navigation a{display:block;padding:var(--space-4) var(--space-6);border-left:2px solid transparent;color:#fff;font-size:var(--font-small);font-weight:400}
.woocommerce-MyAccount-navigation li.is-active a,.woocommerce-MyAccount-navigation a:hover{background:var(--color-brand-hover);border-left-color:var(--color-signifier);color:#fff}
.woocommerce-MyAccount-content{float:right;width:calc(100% - 282px);min-height:380px}
.woocommerce-account .woocommerce::after{content:"";display:table;clear:both}
.fsa-account-welcome{padding:var(--space-8);margin-bottom:var(--space-6)}
.fsa-account-welcome .eyebrow{margin-bottom:var(--space-2);color:var(--color-text-subtle)}
.fsa-account-welcome h2{margin-bottom:var(--space-3)}
.fsa-account-welcome p{max-width:700px}
.fsa-account-actions{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-6)}
.woocommerce-account .woocommerce-form-login,.woocommerce-account .woocommerce-form-register{padding:var(--space-6)}
.woocommerce-account .u-columns{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8)}
.woocommerce-MyAccount-content .woocommerce-orders-table{font-size:var(--font-small)}
.woocommerce-MyAccount-content mark{padding:2px 5px;background:transparent;color:var(--color-signifier);border:1px solid var(--color-signifier);border-radius:var(--radius-badge)}
.fsa-order-participants{margin-top:var(--space-3);padding:var(--space-3);background:var(--color-bg);border:1px solid var(--color-border);font-size:var(--font-small)}
.fsa-order-participants ul{margin:var(--space-2) 0 0;padding-left:var(--space-6)}
.fsa-order-participants span{color:var(--color-text-subtle)}
.fsa-cart-success{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}
.fsa-cart-success span{flex:1}
.fsa-cart-success .button{margin-left:auto!important}

/* ---------------------------------------------------------
   Footer
   --------------------------------------------------------- */
.site-footer{background:var(--color-brand);color:#fff;padding-top:var(--space-16);border-top:1px solid var(--color-brand-hover)}
.footer-grid{display:grid;grid-template-columns:1.2fr repeat(3,1fr);gap:var(--space-12)}
.brand-footer{min-width:0}
.brand-logo-frame-footer{width:190px;height:48px;flex-basis:190px}
.brand-footer .brand-logo{display:block;width:100%!important;height:100%!important;max-width:100%!important;object-fit:contain;object-position:left center;background:transparent;padding:0}
.footer-grid h3{margin:0 0 var(--space-4);color:#fff;font-family:var(--font-ui);font-size:var(--font-label);font-weight:500;letter-spacing:.12em;text-transform:uppercase}
.footer-grid a,.footer-grid p{color:#fff;font-size:var(--font-small);font-weight:300}
.footer-column{min-width:0}
.footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2)}
.footer-links a{display:block;margin:0;line-height:1.5}
.footer-contact{display:flex;flex-direction:column;align-items:flex-start}
.footer-contact p{width:100%;margin:0 0 var(--space-2);align-items:flex-start;line-height:1.5}
.footer-contact p span{white-space:pre-line}
.footer-contact .footer-company{display:block;margin-bottom:var(--space-3);font-weight:500}
.footer-contact p a{margin:0}
.footer-legal-links{display:flex;flex-wrap:wrap;gap:var(--space-6)}
.footer-grid a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
.socials{display:flex;gap:var(--space-4);margin-top:var(--space-6)}
.socials a{display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(255,255,255,.45)}
.socials svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5}
.footer-bottom{display:flex;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-12);padding:var(--space-4) 0;border-top:1px solid rgba(255,255,255,.35);color:#fff;font-size:var(--font-caption)}
.footer-bottom a{margin-left:0}

/* ---------------------------------------------------------
   Generic page content
   --------------------------------------------------------- */
.page-content{padding-block:var(--space-4)}
.page-content>*+*{margin-top:var(--space-4)}
.page-content h2,.page-content h3{margin-top:var(--space-8)}
.page-content a:not(.btn){color:var(--color-brand-hover);text-decoration:underline;text-underline-offset:3px}



/* ---------------------------------------------------------
   Dark mode text normalization
   Keep all third-party / WooCommerce defaults readable on
   the official dark surfaces. Primary text uses the branded
   light tone #E8E4E0; secondary/meta text stays #8FAAB0.
   --------------------------------------------------------- */
:root[data-theme="dark"] body,
:root[data-theme="dark"] .site-main,
:root[data-theme="dark"] .section,
:root[data-theme="dark"] .section-soft,
:root[data-theme="dark"] .page-content,
:root[data-theme="dark"] .course-card,
:root[data-theme="dark"] .panel,
:root[data-theme="dark"] .course-list-item,
:root[data-theme="dark"] .booking-summary,
:root[data-theme="dark"] .filter-bar,
:root[data-theme="dark"] .fsa-booking-box,
:root[data-theme="dark"] .fsa-account-welcome,
:root[data-theme="dark"] .woocommerce,
:root[data-theme="dark"] .woocommerce-page,
:root[data-theme="dark"] .woocommerce-cart-form,
:root[data-theme="dark"] .cart_totals,
:root[data-theme="dark"] .woocommerce-checkout,
:root[data-theme="dark"] .woocommerce-MyAccount-content,
:root[data-theme="dark"] .woocommerce-form-login,
:root[data-theme="dark"] .woocommerce-form-register {
  color:var(--color-text);
}

:root[data-theme="dark"] h1,
:root[data-theme="dark"] h2,
:root[data-theme="dark"] h3,
:root[data-theme="dark"] h4,
:root[data-theme="dark"] h5,
:root[data-theme="dark"] h6,
:root[data-theme="dark"] .page-content h1,
:root[data-theme="dark"] .page-content h2,
:root[data-theme="dark"] .page-content h3,
:root[data-theme="dark"] .course-card h3,
:root[data-theme="dark"] .course-list-info h2,
:root[data-theme="dark"] .course-list-info h3,
:root[data-theme="dark"] .product-summary h1,
:root[data-theme="dark"] .woocommerce h1,
:root[data-theme="dark"] .woocommerce h2,
:root[data-theme="dark"] .woocommerce h3,
:root[data-theme="dark"] .woocommerce h4,
:root[data-theme="dark"] .woocommerce strong,
:root[data-theme="dark"] .woocommerce b,
:root[data-theme="dark"] .woocommerce table.shop_table th,
:root[data-theme="dark"] .woocommerce table.shop_table td,
:root[data-theme="dark"] .woocommerce table.shop_table td a,
:root[data-theme="dark"] .woocommerce table.shop_table td strong,
:root[data-theme="dark"] .woocommerce-order-details,
:root[data-theme="dark"] .woocommerce-customer-details,
:root[data-theme="dark"] .woocommerce-Addresses,
:root[data-theme="dark"] .woocommerce-address-fields,
:root[data-theme="dark"] .woocommerce-account-fields,
:root[data-theme="dark"] .woocommerce-billing-fields,
:root[data-theme="dark"] .woocommerce-shipping-fields,
:root[data-theme="dark"] #order_review,
:root[data-theme="dark"] #order_review_heading,
:root[data-theme="dark"] .woocommerce-checkout-review-order-table,
:root[data-theme="dark"] .woocommerce-checkout-payment,
:root[data-theme="dark"] .woocommerce-checkout-payment label,
:root[data-theme="dark"] .woocommerce-checkout-payment p {
  color:var(--color-text)!important;
}

/* WooCommerce ships several hard-coded grey/green text colors. */
:root[data-theme="dark"] .woocommerce div.product p.price,
:root[data-theme="dark"] .woocommerce div.product span.price,
:root[data-theme="dark"] .woocommerce ul.products li.product .price,
:root[data-theme="dark"] .woocommerce-Price-amount,
:root[data-theme="dark"] .woocommerce-Price-currencySymbol,
:root[data-theme="dark"] .product-price,
:root[data-theme="dark"] .product-subtotal,
:root[data-theme="dark"] .cart-subtotal,
:root[data-theme="dark"] .order-total,
:root[data-theme="dark"] .order-total strong {
  color:var(--color-text)!important;
}

/* Secondary information deliberately remains the official Rauch tone. */
:root[data-theme="dark"] .breadcrumbs,
:root[data-theme="dark"] .woocommerce-breadcrumb,
:root[data-theme="dark"] .woocommerce-result-count,
:root[data-theme="dark"] .woocommerce-product-details__short-description,
:root[data-theme="dark"] .woocommerce .woocommerce-ordering,
:root[data-theme="dark"] .woocommerce form .form-row label,
:root[data-theme="dark"] .field label,
:root[data-theme="dark"] .fsa-booking-box label,
:root[data-theme="dark"] .fsa-participant label,
:root[data-theme="dark"] .course-card p,
:root[data-theme="dark"] .course-meta,
:root[data-theme="dark"] .course-list-info p,
:root[data-theme="dark"] .course-list-meta,
:root[data-theme="dark"] .session-location,
:root[data-theme="dark"] .fsa-hint,
:root[data-theme="dark"] .course-detail-price span,
:root[data-theme="dark"] .course-detail-price small,
:root[data-theme="dark"] .upcoming-item small,
:root[data-theme="dark"] .contact-strip p {
  color:var(--color-text-subtle)!important;
}

/* Inputs/selects: prevent native and Select2 light-theme text from leaking in. */
:root[data-theme="dark"] input:not([type="submit"]):not([type="button"]):not([type="reset"]),
:root[data-theme="dark"] textarea,
:root[data-theme="dark"] select,
:root[data-theme="dark"] .select2-container--default .select2-selection--single,
:root[data-theme="dark"] .select2-container--default .select2-selection--single .select2-selection__rendered,
:root[data-theme="dark"] .select2-container--default .select2-selection--multiple,
:root[data-theme="dark"] .select2-container--default .select2-search--dropdown .select2-search__field {
  color:var(--color-text)!important;
  background-color:transparent;
}
:root[data-theme="dark"] select option {
  background:var(--color-surface);
  color:var(--color-text);
}
:root[data-theme="dark"] input::placeholder,
:root[data-theme="dark"] textarea::placeholder {
  color:var(--color-text-subtle)!important;
  opacity:1;
}
:root[data-theme="dark"] .select2-dropdown,
:root[data-theme="dark"] .select2-results,
:root[data-theme="dark"] .select2-results__option {
  background:var(--color-surface);
  color:var(--color-text);
  border-color:var(--color-border);
}
:root[data-theme="dark"] .select2-container--default .select2-results__option--highlighted[aria-selected],
:root[data-theme="dark"] .select2-container--default .select2-results__option--highlighted[data-selected] {
  background:var(--color-brand-hover);
  color:#fff;
}

/* Notices, checkout and account links often receive colors from WooCommerce. */
:root[data-theme="dark"] .woocommerce-message a:not(.button),
:root[data-theme="dark"] .woocommerce-info a:not(.button),
:root[data-theme="dark"] .woocommerce-error a:not(.button),
:root[data-theme="dark"] .woocommerce-MyAccount-content a:not(.button),
:root[data-theme="dark"] .woocommerce-checkout a:not(.button),
:root[data-theme="dark"] .woocommerce-cart-form a:not(.button) {
  color:var(--color-text)!important;
  text-decoration-color:var(--color-signifier);
}

/* Gutenberg / WordPress content can carry default dark text colors. */
:root[data-theme="dark"] .entry-content,
:root[data-theme="dark"] .entry-content p,
:root[data-theme="dark"] .entry-content li,
:root[data-theme="dark"] .entry-content dt,
:root[data-theme="dark"] .entry-content dd,
:root[data-theme="dark"] .wp-block-group,
:root[data-theme="dark"] .wp-block-columns,
:root[data-theme="dark"] .wp-block-column,
:root[data-theme="dark"] .wp-block-table,
:root[data-theme="dark"] .wp-block-table th,
:root[data-theme="dark"] .wp-block-table td {
  color:var(--color-text);
}

/* Preserve intentionally white text on branded petrol surfaces. */
:root[data-theme="dark"] .hero-home,
:root[data-theme="dark"] .hero-home h1,
:root[data-theme="dark"] .hero-home p,
:root[data-theme="dark"] .academy-motto,
:root[data-theme="dark"] .suitable,
:root[data-theme="dark"] .suitable h3,
:root[data-theme="dark"] .suitable p,
:root[data-theme="dark"] .site-footer,
:root[data-theme="dark"] .site-footer h1,
:root[data-theme="dark"] .site-footer h2,
:root[data-theme="dark"] .site-footer h3,
:root[data-theme="dark"] .site-footer p,
:root[data-theme="dark"] .site-footer a,
:root[data-theme="dark"] .woocommerce-MyAccount-navigation a {
  color:#fff!important;
}

/* Dark theme: light/secondary course CTAs must remain readable on petrol surfaces. */
:root[data-theme="dark"] .btn-light,
:root[data-theme="dark"] .course-card .btn-light {
  color:#fff !important;
}

:root[data-theme="dark"] .btn-light:hover,
:root[data-theme="dark"] .btn-light:focus-visible,
:root[data-theme="dark"] .course-card .btn-light:hover,
:root[data-theme="dark"] .course-card .btn-light:focus-visible {
  color:#fff !important;
}

/* ---------------------------------------------------------
   Responsive
   --------------------------------------------------------- */
@media(max-width:1120px){
  .menu{gap:var(--space-3)}
  .menu>li>a{font-size:10px}
  .course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .contact-strip{grid-template-columns:1fr 1fr}
  .checkout.woocommerce-checkout{grid-template-columns:minmax(0,1fr) 360px}
}

@media(max-width:980px){
  .shell{width:min(var(--container-max),calc(100% - 48px))}
  .section{padding-block:var(--space-16)}
  .topbar-item:nth-child(3){display:none}
  .nav-row{min-height:72px;gap:var(--space-3)}
  .brand{min-width:168px}
  .brand-logo-frame{width:168px;height:54px;flex-basis:168px}
  .theme-toggle{order:1;margin-left:auto}
  .header-actions{order:2}
  .nav-toggle{display:inline-grid;order:3;margin-left:0}
  .brand{order:0}
  .primary-nav{order:4}
  .primary-nav{position:absolute;left:0;right:0;top:100%;display:none;padding:0 24px 24px;background:var(--color-surface);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}
  .primary-nav.open{display:block}
  .primary-nav .menu{display:flex;flex-direction:column;gap:0}
  .menu>li>a{min-height:48px;border-bottom:1px solid var(--color-border);font-size:var(--font-small)}
  .menu>li>a::after{display:none}
  .hero-home-grid{grid-template-columns:1fr;min-height:auto}
  .hero-copy{padding:var(--space-16) 0}
  .hero-visual{min-height:380px;margin:0 0 var(--space-12);border:1px solid var(--color-border)}
  .trust-grid{grid-template-columns:repeat(2,1fr)}
  .trust-grid>div:nth-child(2){border-right:0}
  .trust-grid>div:nth-child(-n+2){border-bottom:1px solid var(--color-border)}
  .two-panels,.product-top-grid,.product-content-grid{grid-template-columns:1fr}
  .filter-bar{grid-template-columns:repeat(2,1fr)}
  .filter-bar .btn{grid-column:1/-1}
  .checkout.woocommerce-checkout{display:block}
  .checkout #order_review_heading{margin-top:var(--space-8)}
  .woocommerce-MyAccount-navigation{float:none;width:100%;margin-bottom:var(--space-6)}
  .woocommerce-MyAccount-navigation ul{display:flex;overflow-x:auto}
  .woocommerce-MyAccount-navigation li{flex:0 0 auto}
  .woocommerce-MyAccount-navigation a{border-left:0;border-bottom:2px solid transparent;white-space:nowrap}
  .woocommerce-MyAccount-navigation li.is-active a{border-left:0;border-bottom-color:var(--color-signifier)}
  .woocommerce-MyAccount-content{float:none;width:100%}
}

@media(max-width:650px){
  .shell{width:min(var(--container-max),calc(100% - 32px))}
  .section{padding-block:var(--space-12)}
  .topbar-inner{min-height:34px;gap:var(--space-3)}
  .topbar-item:nth-child(2){display:none}
  .nav-row{min-height:64px;gap:var(--space-2)}
  .brand{min-width:142px}
  .brand-logo-frame{width:142px;height:48px;flex-basis:142px}
  .header-cart{border:0;padding:var(--space-2)}
  .header-cart-label{display:none}
  .academy-motto-inner{min-height:36px;gap:var(--space-2)}
  .academy-motto strong{font-size:10px;letter-spacing:.1em}
  .academy-motto-line{width:24px}
  .hero-copy{padding:var(--space-12) 0}
  .hero-copy h1{font-size:clamp(2.35rem,12vw,3rem)}
  .hero-buttons{display:grid;grid-template-columns:1fr}
  .hero-buttons .btn{width:100%}
  .hero-visual{min-height:310px;margin-bottom:var(--space-8)}
  .hero-fire-card{left:var(--space-4);top:var(--space-4);width:68%;padding:var(--space-4)}
  .trainer-silhouette{width:58%;height:66%;padding:var(--space-4)}
  .trust-grid{grid-template-columns:1fr}
  .trust-grid>div{min-height:70px;justify-content:flex-start;border-right:0;border-bottom:1px solid var(--color-border)}
  .trust-grid>div:last-child{border-bottom:0}
  .course-grid{grid-template-columns:1fr}
  .panel{padding:var(--space-6)}
  .filter-bar{grid-template-columns:1fr;padding:var(--space-4)}
  .filter-bar .btn{grid-column:auto}
  .course-list-item{grid-template-columns:1fr;padding:var(--space-4);gap:var(--space-4)}
  .course-list-thumb{height:190px}
  .course-list-action{justify-content:stretch}
  .course-list-action .btn{width:100%}
  .fsa-participant-grid{grid-template-columns:1fr}
  .contact-strip{grid-template-columns:1fr}
  .contact-strip .btn{width:100%}
  .suitable-inner{align-items:flex-start}
  .footer-grid{grid-template-columns:1fr;gap:var(--space-8)}
  .footer-bottom{flex-direction:column}
  .footer-legal-links{gap:var(--space-4)}
  .footer-bottom a{margin-left:0;margin-right:0}
  .woocommerce-account .u-columns{grid-template-columns:1fr}
  .woocommerce table.shop_table_responsive tr,.woocommerce-page table.shop_table_responsive tr{display:block;padding:var(--space-3);border-bottom:1px solid var(--color-border)}
  .woocommerce table.shop_table_responsive tr td,.woocommerce-page table.shop_table_responsive tr td{display:block;text-align:right!important;padding:var(--space-2) 0!important;border:0!important}
  .woocommerce-cart-form table.cart .product-thumbnail{display:block!important;text-align:left!important}
  .woocommerce-cart-form table.cart .product-thumbnail{width:100%!important}
  .woocommerce-cart-form table.cart .product-thumbnail a{width:120px}
  .woocommerce-cart-form table.cart .product-thumbnail img,.woocommerce-cart-form table.cart .product-thumbnail .fsa-fallback-course-photo-cart{width:120px!important;height:84px!important}
  .woocommerce-cart-form table.cart .product-thumbnail::before{display:none}
  .woocommerce-cart-form table.cart td.actions .coupon{display:grid!important;grid-template-columns:1fr;gap:var(--space-2);width:100%}
  .woocommerce-cart-form table.cart td.actions .coupon .input-text,.woocommerce-cart-form table.cart td.actions .button,.woocommerce-cart-form table.cart td.actions>.button{width:100%!important}
}

@media(max-width:390px){
  .shell{width:calc(100% - 24px)}
  .section{padding-block:var(--space-12)}
  .header-actions{gap:var(--space-1)}
  .icon-button{width:38px;height:38px}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}

/* ---------------------------------------------------------
   v14.2.7 – Curated brand photography / no dummy imagery
   --------------------------------------------------------- */
.hero-photo{
  position:relative;
  min-height:420px;
  margin-block:var(--space-12);
  background:#07262F;
  border-left:1px solid var(--color-border);
}
.hero-photo>img{
  width:100%;
  height:100%;
  min-height:420px;
  display:block;
  object-fit:cover;
  object-position:center;
}
.hero-photo::after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:44%;
  background:linear-gradient(to top,rgba(7,38,47,.82),rgba(7,38,47,0));
  pointer-events:none;
}
.hero-photo figcaption{
  position:absolute;
  left:var(--space-6);
  right:var(--space-6);
  bottom:var(--space-6);
  z-index:2;
  display:grid;
  gap:var(--space-2);
  color:#fff;
}
.hero-photo figcaption span{
  font-family:var(--font-ui);
  font-size:var(--font-caption);
  font-weight:500;
  letter-spacing:.12em;
}
.hero-photo figcaption strong{
  font-family:var(--font-heading);
  font-size:var(--font-h3);
  font-weight:400;
}

.fsa-fallback-course-photo{display:block;width:100%;height:100%;object-fit:cover}
.course-thumb .fsa-fallback-course-photo-card{height:176px}
.course-list-thumb .fsa-fallback-course-photo-list{height:120px}
.product-image-card .fsa-fallback-course-photo-product{display:block;width:100%!important;height:100%!important;min-height:0!important;max-height:360px!important;object-fit:cover!important;object-position:center top}

.home-brand-story{border-block:1px solid var(--color-border);background:var(--color-brand);color:#fff}
.brand-story-grid{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:var(--space-12);align-items:center}
.brand-story-copy{padding-block:var(--space-8)}
.brand-story-copy .eyebrow{display:inline-block;margin-bottom:var(--space-4);color:#fff;opacity:.75}
.brand-story-copy h2{max-width:13ch;margin:0 0 var(--space-6);color:#fff}
.brand-story-copy h2 em{color:#fff;font-style:italic;font-weight:400}
.brand-story-copy p{max-width:48ch;margin:0 0 var(--space-6);color:#fff;font-size:var(--font-body-lg);line-height:1.65}
.text-cta{display:inline-flex;align-items:center;gap:var(--space-2);padding-bottom:var(--space-2);border-bottom:1px solid currentColor;color:inherit;font-size:var(--font-label);font-weight:500;letter-spacing:.1em}
.text-cta:hover,.text-cta:focus-visible{color:var(--color-signifier)}
.brand-story-media{margin:0;overflow:hidden;border-left:1px solid rgba(255,255,255,.22)}
.brand-story-media img{display:block;width:100%;aspect-ratio:2.4/1;object-fit:cover}

.panel-academy-media{margin:calc(var(--space-8) * -1) calc(var(--space-8) * -1) var(--space-6);overflow:hidden;border-bottom:1px solid var(--color-border)}
.panel-academy-media img{display:block;width:100%;height:190px;object-fit:cover;object-position:center}

@media(max-width:980px){
  .hero-photo{min-height:380px;margin:0 0 var(--space-12);border:1px solid var(--color-border)}
  .hero-photo>img{min-height:380px}
  .brand-story-grid{grid-template-columns:1fr;gap:var(--space-6)}
  .brand-story-copy{padding-bottom:0}
  .brand-story-media{border-left:0;border-top:1px solid rgba(255,255,255,.22)}
}

@media(max-width:650px){
  .hero-photo{min-height:310px;margin-bottom:var(--space-8)}
  .hero-photo>img{min-height:310px}
  .hero-photo figcaption{left:var(--space-4);right:var(--space-4);bottom:var(--space-4)}
  .brand-story-grid{gap:var(--space-4)}
  .brand-story-media img{aspect-ratio:4/3}
  .panel-academy-media{margin:calc(var(--space-6) * -1) calc(var(--space-6) * -1) var(--space-6)}
  .panel-academy-media img{height:180px}
  .course-list-thumb .fsa-fallback-course-photo-list{height:190px}
}

/* Seminar-entry responsive layout */
@media (max-width:980px){
  .session-entry-main{grid-template-columns:96px minmax(0,1fr);padding-right:var(--space-3)}
  .session-date-block{grid-template-columns:32px minmax(0,1fr);padding-right:var(--space-3)}
  .session-day{font-size:2.5rem}
  .session-content{padding-left:var(--space-4)}
  .session-action{min-width:104px}
}
@media (max-width:650px){
  #termine .panel:first-child{padding-left:var(--space-4);padding-right:var(--space-4)}
  .session-entry{grid-template-columns:1fr}
  .session-entry-main{grid-template-columns:78px minmax(0,1fr);padding:var(--space-4) 0}
  .session-date-block{grid-template-columns:24px minmax(0,1fr);padding:var(--space-1) var(--space-3) var(--space-1) 0}
  .session-weekday{font-size:.625rem}
  .session-day{font-size:2rem}
  .session-month{font-size:.625rem}
  .session-content{padding-left:var(--space-4)}
  .session-title{font-size:1.1rem;margin-bottom:var(--space-2)}
  .session-meta{gap:var(--space-2);font-size:.6875rem}
  .session-action{min-width:0;justify-content:space-between;padding:var(--space-3) 0;border-left:0;border-top:1px solid var(--color-border)}
  .session-action:hover,.session-action:focus-visible{padding-left:var(--space-3);padding-right:var(--space-3)}
}


/* Homepage expertise section — editable via the private WordPress page
   "Startseite – Fachexpertise". The typography follows the brand system while
   the information architecture is optimized for search and answer engines. */
.home-expertise{
  position:relative;
  overflow:hidden;
  background:var(--color-surface);
  border-bottom:1px solid var(--color-border);
}
.home-expertise::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:4px;
  background:var(--color-accent);
}
.home-expertise-inner{
  max-width:1120px;
  margin-inline:auto;
}
.home-expertise-title{
  max-width:22ch;
  margin:0 0 var(--space-6);
  color:var(--color-brand);
  font-family:var(--font-heading);
  font-size:clamp(2rem,4vw,var(--font-h1));
  font-weight:400;
  line-height:1.12;
}
.home-expertise-lead{
  max-width:76ch;
  margin:0 0 var(--space-12);
  color:var(--color-text);
  font-family:var(--font-ui);
  font-size:var(--font-body-lg);
  font-weight:300;
  line-height:1.75;
}
.home-expertise-lead strong,
.home-expertise-lead em{
  font-weight:500;
}
.home-expertise-columns{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--space-12);
  margin:0 0 var(--space-12);
}
.home-expertise-card{
  min-width:0;
  padding-top:var(--space-6);
  border-top:1px solid var(--color-border);
}
.home-expertise-card h3{
  margin:0 0 var(--space-4);
  color:var(--color-brand);
  font-family:var(--font-heading);
  font-size:var(--font-h3);
  font-weight:400;
}
.home-expertise-card p{
  margin:0;
  color:var(--color-text);
  font-size:var(--font-body);
  line-height:1.75;
}
.home-expertise-closing{
  margin:0;
  padding:var(--space-6) var(--space-8);
  background:var(--color-brand);
  color:#fff;
  font-family:var(--font-heading);
  font-size:clamp(1.25rem,2.5vw,var(--font-h3));
  font-weight:400;
  line-height:1.4;
}
.home-expertise-closing strong{font-weight:400}
:root[data-theme="dark"] .home-expertise-title,
:root[data-theme="dark"] .home-expertise-card h3{
  color:var(--color-text);
}
:root[data-theme="dark"] .home-expertise-closing{
  background:var(--color-brand-hover);
  color:#fff;
}
@media (max-width:760px){
  .home-expertise-columns{
    grid-template-columns:1fr;
    gap:var(--space-8);
    margin-bottom:var(--space-8);
  }
  .home-expertise-lead{margin-bottom:var(--space-8)}
  .home-expertise-closing{padding:var(--space-6)}
}


/* Product image safety cap v14.3.4 */
@media (max-width: 700px){
  .product-image-card,.fallback-course-image{height:280px!important;max-height:280px!important}
  .product-image-card img,.product-image-card .fsa-fallback-course-photo-product{height:100%!important;max-height:280px!important}
}


/* Product media hard cap: protects the detail page from oversized uploads. */
@media (max-width:480px){
  .product-image-card,.fallback-course-image{height:240px!important;max-height:240px!important}
  .product-image-card img,.product-image-card .fsa-fallback-course-photo-product{height:100%!important;max-height:240px!important;object-fit:cover!important}
}


/* Product media focal point v14.3.6 */
.product-image-card img,
.product-image-card .fsa-fallback-course-photo-product{object-position:50% 0!important}

/* =========================================================
   Rich course content editor output — v14.3.7
   ========================================================= */
.course-main-content{min-width:0}
.course-qualification{display:grid;gap:var(--space-2);margin:0 0 var(--space-8);padding:var(--space-6);background:var(--color-surface);border-left:4px solid var(--color-signifier);border-top:1px solid var(--color-border);border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}
.course-qualification span{color:var(--color-text-subtle);font-family:var(--font-ui);font-size:var(--font-label);font-weight:400;letter-spacing:.12em;text-transform:uppercase}
.course-qualification strong{color:var(--color-text);font-family:var(--font-heading);font-size:var(--font-h3);font-weight:400;line-height:1.35}
.course-rich-content{min-width:0}
.course-rich-content>*+*{margin-top:var(--space-4)}
.course-rich-content h2{margin:0 0 var(--space-6)}
.course-rich-content h3{margin-top:var(--space-8);margin-bottom:var(--space-3);font-size:var(--font-h3)}
.course-rich-content h4{margin-top:var(--space-6);margin-bottom:var(--space-2);font-family:var(--font-heading);font-size:1.25rem;font-weight:400}
.course-rich-content p,.course-rich-content li{line-height:1.72}
.course-rich-content ul,.course-rich-content ol{margin:var(--space-4) 0;padding-left:var(--space-6)}
.course-rich-content li+li{margin-top:var(--space-2)}
.course-rich-content strong{font-weight:600}
.course-rich-content em{font-style:italic}
.course-rich-content img{display:block;width:auto;max-width:100%;height:auto;margin:var(--space-6) 0}
.course-rich-content a{color:var(--color-accent);text-decoration:underline;text-underline-offset:3px}
.course-implementation{margin-top:var(--space-12);padding-top:var(--space-8);border-top:1px solid var(--color-border)}
.curriculum+.course-implementation{margin-top:var(--space-12)}
.course-price-note{margin:0;color:var(--color-text);font-size:var(--font-body);font-weight:500;line-height:1.55}
:root[data-theme="dark"] .course-qualification{background:var(--color-surface)}
:root[data-theme="dark"] .course-qualification strong,
:root[data-theme="dark"] .course-rich-content,
:root[data-theme="dark"] .course-rich-content p,
:root[data-theme="dark"] .course-rich-content li,
:root[data-theme="dark"] .course-rich-content h2,
:root[data-theme="dark"] .course-rich-content h3,
:root[data-theme="dark"] .course-rich-content h4,
:root[data-theme="dark"] .course-price-note{color:var(--color-text)}
@media (max-width:700px){
 .course-qualification{padding:var(--space-4)}
 .course-implementation{margin-top:var(--space-8);padding-top:var(--space-6)}
 .course-rich-content h3{margin-top:var(--space-6)}
}

/* v14.3.8 — module summary on course pages */
.upcoming-modules{display:grid;gap:12px}
.upcoming-module{padding:12px 0;border-bottom:1px solid var(--color-border)}
.upcoming-module:last-child{border-bottom:0}
.upcoming-module span{display:block;font-size:.6875rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-signifier)}
.upcoming-module strong{display:block;margin-top:4px;font-family:var(--font-heading);font-weight:400;color:var(--color-text)}
.upcoming-module small{display:block;margin-top:4px;color:var(--color-text-subtle)}
