/* PrepKiwi: maps WordPress, GeneratePress and WooCommerce markup onto the design tokens. */
body.pk-shell { background: var(--pk-color-bg); color: var(--pk-color-text); }
.pk-shell .site, .pk-shell .site-content, .pk-shell .inside-article, .pk-shell .separate-containers .inside-article { background: transparent; }
.pk-shell .site-content { display: block; }
.pk-shell .inside-article { padding: 0; }
/* Page titles line up with the narrow reading column of the text below (they were flush left at 0 px). */
.pk-shell .inside-article > .entry-header { max-width: var(--pk-container-narrow); margin-inline: auto; padding-inline: var(--pk-gutter); }
.pk-shell .grid-container, .pk-shell .site.grid-container { max-width: none; }
.pk-shell .entry-content > *:not(.alignfull):not(.pk-hero):not(.pk-section):not(.wp-block-group):not(.woocommerce-breadcrumb):not(.woocommerce-products-header):not(.pk-catalog) { max-width: var(--pk-container-narrow); margin-inline: auto; padding-inline: var(--pk-gutter); }
.pk-shell h1, .pk-shell h2, .pk-shell h3, .pk-shell h4 { font-family: var(--pk-font-heading); letter-spacing: var(--pk-tracking-heading); color: var(--pk-color-text); }
.pk-shell .screen-reader-text:focus { clip: auto; height: auto; width: auto; padding: 12px 16px; background: var(--pk-color-surface); z-index: 100; top: 8px; left: 8px; }
.pk-shell mark.pk-highlight { color: inherit; }

/* Header details-based language menu */
.pk-lang summary { list-style: none; }
.pk-lang summary::-webkit-details-marker { display: none; }
.pk-lang:not([open]) .pk-lang__menu { display: none; }
.pk-lang__menu a { text-decoration: none; color: inherit; }
.pk-drawer[hidden] { display: none; }

/* Block buttons using .pk-btn on the wrapper */
.wp-block-button.pk-btn { padding: 0; border: 0; background: none; min-height: 0; }
.wp-block-button.pk-btn .wp-block-button__link { display: inline-flex; align-items: center; min-height: 48px; padding: var(--pk-space-3) var(--pk-space-5); border-radius: var(--pk-radius-md); font-weight: var(--pk-weight-bold); font-family: var(--pk-font-body); }
.wp-block-button.pk-btn--lg .wp-block-button__link { min-height: 56px; font-size: var(--pk-text-md); }
.wp-block-button.pk-btn--primary .wp-block-button__link { background: var(--pk-color-primary); color: var(--pk-color-on-primary); }
.wp-block-button.pk-btn--ghost .wp-block-button__link { background: transparent; color: var(--pk-color-text); }
.wp-block-details.pk-accordion__item { border: 1px solid var(--pk-color-border); border-radius: var(--pk-radius-md); background: var(--pk-color-surface); padding: var(--pk-space-4) var(--pk-space-5); margin: 0 0 var(--pk-space-2); }
.wp-block-details.pk-accordion__item summary { font-weight: var(--pk-weight-bold); cursor: pointer; min-height: 24px; }

/* Forms (WooCommerce + core) */
.pk-shell input[type="text"], .pk-shell input[type="email"], .pk-shell input[type="password"], .pk-shell input[type="tel"], .pk-shell input[type="search"], .pk-shell input[type="number"], .pk-shell textarea, .pk-shell select {
	min-height: 48px; padding: var(--pk-space-3) var(--pk-space-4); border: 2px solid var(--pk-color-border-strong); border-radius: var(--pk-radius-md); background: var(--pk-color-surface); color: var(--pk-color-text); font: inherit; }
.pk-shell input:focus, .pk-shell textarea:focus, .pk-shell select:focus { outline: none; border-color: var(--pk-color-primary); box-shadow: 0 0 0 4px var(--pk-color-primary-soft); }
.pk-shell .woocommerce form .form-row label { font-weight: var(--pk-weight-semibold); font-size: var(--pk-text-sm); }
.pk-shell .woocommerce-invalid input { border-color: var(--pk-color-danger) !important; }

/* Buttons (WooCommerce) */
.pk-shell .woocommerce a.button, .pk-shell .woocommerce button.button, .pk-shell .woocommerce input.button, .pk-shell .wc-block-components-button:not(.is-link), .pk-shell button.single_add_to_cart_button {
	display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: var(--pk-space-3) var(--pk-space-5); border: 2px solid transparent; border-radius: var(--pk-radius-md); background: var(--pk-color-primary); color: var(--pk-color-on-primary); font: var(--pk-weight-bold) var(--pk-text-base)/1.2 var(--pk-font-body); }
.pk-shell .woocommerce a.button:hover, .pk-shell .woocommerce button.button:hover, .pk-shell .wc-block-components-button:not(.is-link):hover { background: var(--pk-color-primary-hover); color: var(--pk-color-on-primary); }
.pk-shell .woocommerce a.button.alt, .pk-shell .woocommerce button.button.alt { background: var(--pk-color-primary); }

/* Notices → alerts */
.pk-shell .woocommerce-message, .pk-shell .woocommerce-info, .pk-shell .woocommerce-error, .pk-shell .wc-block-components-notice-banner { border: 1px solid transparent; border-radius: var(--pk-radius-md); padding: var(--pk-space-4); font-size: var(--pk-text-sm); list-style: none; }
.pk-shell .woocommerce-message, .pk-shell .wc-block-components-notice-banner.is-success { background: var(--pk-color-success-bg); color: var(--pk-color-success-text); }
.pk-shell .woocommerce-info, .pk-shell .wc-block-components-notice-banner.is-info { background: var(--pk-color-info-bg); color: var(--pk-color-info-text); }
.pk-shell .woocommerce-error, .pk-shell .wc-block-components-notice-banner.is-error { background: var(--pk-color-danger-soft); color: var(--pk-color-danger-soft-text); border-color: var(--pk-color-danger); }
.pk-shell .woocommerce-message::before, .pk-shell .woocommerce-info::before, .pk-shell .woocommerce-error::before { display: none; }

/* The shop and category pages use the full site width (the 760px reading column is for text pages). */
.pk-shell .woocommerce-archive-wrapper .entry-content > .woocommerce-breadcrumb, .pk-shell .woocommerce-archive-wrapper .entry-content > .woocommerce-products-header, .pk-shell .woocommerce-archive-wrapper .entry-content > .pk-catalog { max-width: calc(var(--pk-container) + 2 * var(--pk-gutter)); margin-inline: auto; padding-inline: var(--pk-gutter); }
.pk-catalog--wide, .pk-catalog:has(> aside:empty) { display: block; }
.pk-catalog > aside:empty { display: none; }
.pk-catalog:has(> aside:empty) > .pk-stack { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--pk-space-5); }
.pk-catalog:has(> aside:empty) > .pk-stack > * { grid-column: 1 / -1; }
.pk-catalog:has(> aside:empty) > .pk-stack > .woocommerce-result-count { grid-column: 1; margin: 0; float: none; }
.pk-catalog:has(> aside:empty) > .pk-stack > .woocommerce-ordering { grid-column: 2; margin: 0; float: none; }
.pk-catalog--wide > .pk-stack { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--pk-space-5); }
.pk-catalog--wide > .pk-stack > * { grid-column: 1 / -1; }
.pk-catalog--wide > .pk-stack > .woocommerce-result-count { grid-column: 1; margin: 0; float: none; }
.pk-catalog--wide > .pk-stack > .woocommerce-ordering { grid-column: 2; margin: 0; float: none; }
@media (max-width: 600px) { .pk-catalog--wide > .pk-stack > .woocommerce-result-count, .pk-catalog--wide > .pk-stack > .woocommerce-ordering { grid-column: 1 / -1; } }

/* Shop loop: card grid */
.pk-shell ul.products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--pk-space-5); margin: 0; }
.pk-shell ul.products::before, .pk-shell ul.products::after { display: none; }
.pk-shell ul.products li.product { width: auto !important; margin: 0 !important; float: none !important; padding: 0; text-align: left; }
@container shell (max-width: 1023px) { .pk-shell ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container shell (max-width: 767px) { .pk-shell ul.products { grid-template-columns: minmax(0, 1fr); } }

/* Single product */
.pk-shell.single-product div.product { display: block; }
/* Product page: one readable column (900px), lined up with the left edge of the site container. */
.pk-shell.single-product .entry-content > .woocommerce-breadcrumb,
.pk-shell.single-product .entry-content > .woocommerce-notices-wrapper,
.pk-shell.single-product .entry-content > section.pk-stack { max-width: 900px !important; width: auto !important; margin-left: max(var(--pk-gutter), calc((100% - var(--pk-container)) / 2)) !important; margin-right: var(--pk-gutter) !important; padding-inline: 0 !important; }
.pk-shell.single-product .entry-content > div.product { max-width: var(--pk-container) !important; width: auto !important; margin-left: max(var(--pk-gutter), calc((100% - var(--pk-container)) / 2)) !important; margin-right: var(--pk-gutter) !important; padding-inline: 0 !important; }
.pk-shell.single-product .woocommerce-tabs { max-width: 100%; }
.pk-shell.single-product .woocommerce-tabs { margin-top: var(--pk-space-8); }
.pk-shell.single-product .woocommerce-Tabs-panel > * { margin-left: 0 !important; margin-right: 0 !important; padding-inline: 0 !important; }
.pk-shell.single-product div.product .pk-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 600px) { .pk-shell.single-product div.product .pk-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pk-shell.single-product div.product .summary { grid-column: 1 / -1; width: auto !important; float: none !important; margin: 0 !important; display: flex; flex-direction: column; gap: var(--pk-space-5); }
/* Buy box: price + Add to cart in one card. Wide: right column, sticky. Narrow: after the intro, before the key figures. */
.pk-shell.single-product .pk-buybox { background: var(--pk-color-surface); border: 1px solid var(--pk-color-border); border-radius: var(--pk-radius-lg); padding: var(--pk-space-6); display: flex; flex-direction: column; gap: var(--pk-space-4); order: 2; }
.pk-shell.single-product .pk-stats { order: 3; }
.pk-shell.single-product .pk-buybox .price { font-family: var(--pk-font-heading); font-size: var(--pk-text-3xl); font-weight: var(--pk-weight-heavy); color: var(--pk-color-text); margin: 0; }
.pk-shell.single-product .pk-buybox form.cart { margin: 0; }
.pk-shell.single-product .pk-buybox .single_add_to_cart_button { width: 100%; justify-content: center; min-height: 52px; font-size: var(--pk-text-lg); }
.pk-shell.single-product .pk-buybox__note { margin: 0; text-align: center; }
.pk-shell.single-product .pk-stats { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.pk-stat--langs .pk-stat__langs { display: flex; flex-wrap: wrap; gap: var(--pk-space-2); margin-top: 4px; }
@media (min-width: 900px) {
	.pk-shell.single-product div.product .summary { display: grid; grid-template-columns: minmax(0, 1fr) 360px; column-gap: var(--pk-space-12); row-gap: var(--pk-space-5); align-items: start; }
	.pk-shell.single-product div.product .summary > * { grid-column: 1; order: 0; }
	.pk-shell.single-product div.product .summary > .pk-buybox { grid-column: 2; grid-row: 1 / span 5; position: sticky; top: 96px; }
}
.pk-shell.single-product .product_title { font-size: var(--pk-text-3xl); font-weight: var(--pk-weight-heavy); line-height: var(--pk-leading-tight); }
.pk-shell .variations_form .variations { display: none; }
.pk-shell .woocommerce-variation-price .price { font-family: var(--pk-font-heading); font-size: var(--pk-text-2xl); font-weight: var(--pk-weight-heavy); }
@container shell (max-width: 1023px) { .pk-shell.single-product div.product { grid-template-columns: minmax(0, 1fr); } }

/* Cart / checkout (classic + blocks) */
.pk-shell table.shop_table { border: 0; border-collapse: collapse; border-radius: 0; font-size: var(--pk-text-sm); }
.pk-shell table.shop_table th { font-size: var(--pk-text-xs); text-transform: uppercase; letter-spacing: var(--pk-tracking-caps); color: var(--pk-color-text-muted); border-bottom: 2px solid var(--pk-color-border-strong); }
.pk-shell table.shop_table td { border-top: 1px solid var(--pk-color-border); padding: var(--pk-space-4); }
.pk-shell .cart_totals, .pk-shell #order_review, .pk-shell .wc-block-components-sidebar { background: var(--pk-color-surface); border: 1px solid var(--pk-color-border); border-radius: var(--pk-radius-lg); padding: var(--pk-space-6); }
.pk-shell .order-total, .pk-shell .wc-block-components-totals-footer-item { font-family: var(--pk-font-heading); font-size: var(--pk-text-xl); font-weight: var(--pk-weight-heavy); }
.pk-shell #payment, .pk-shell .wc-block-components-radio-control { background: transparent; }
.pk-shell #payment ul.payment_methods li, .pk-shell .wc-block-components-radio-control__option { border: 2px solid var(--pk-color-border); border-radius: var(--pk-radius-md); padding: var(--pk-space-4); margin-bottom: var(--pk-space-2); background: var(--pk-color-surface); }
.pk-shell .wc-block-components-radio-control__option-checked { border-color: var(--pk-color-primary); background: var(--pk-color-primary-soft); }

/* My account */
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: var(--pk-space-10); align-items: start; max-width: var(--pk-container); margin-inline: auto; padding: var(--pk-space-12) var(--pk-gutter); }
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { width: auto; float: none; }
@container shell (max-width: 1023px) {
	.woocommerce-account .woocommerce { grid-template-columns: minmax(0, 1fr); gap: var(--pk-space-6); }
}

/* Cookie banner plugins (Complianz / CookieYes) skinned to .pk-cookie */
.pk-shell .cmplz-cookiebanner, .pk-shell .cky-consent-container .cky-consent-bar { border-radius: var(--pk-radius-lg) !important; box-shadow: var(--pk-shadow-lg) !important; font-family: var(--pk-font-body) !important; background: var(--pk-color-surface) !important; color: var(--pk-color-text) !important; }
.pk-shell .cmplz-btn, .pk-shell .cky-btn { border-radius: var(--pk-radius-md) !important; min-height: 44px !important; font-weight: 700 !important; }
.pk-shell .cmplz-accept, .pk-shell .cky-btn-accept { background: var(--pk-color-primary) !important; color: var(--pk-color-on-primary) !important; border-color: var(--pk-color-primary) !important; }
.pk-shell .cmplz-deny, .pk-shell .cky-btn-reject { background: var(--pk-color-surface) !important; color: var(--pk-color-primary) !important; border: 2px solid var(--pk-color-primary) !important; }
.pk-shell .cmplz-cookiebanner .cmplz-title, .pk-shell .cmplz-cookiebanner .cmplz-category-title, .pk-shell .cmplz-cookiebanner .cmplz-message, .pk-shell .cmplz-cookiebanner .cmplz-description, .pk-shell .cmplz-cookiebanner .cmplz-label, .pk-shell .cmplz-cookiebanner .cmplz-category summary, .pk-shell .cmplz-cookiebanner .cmplz-category .cmplz-description, .pk-shell .cmplz-cookiebanner .cmplz-always-active, .pk-shell .cmplz-cookiebanner .cmplz-close { color: var(--pk-color-text) !important; }
.pk-shell .cmplz-cookiebanner .cmplz-link, .pk-shell .cmplz-cookiebanner a { color: var(--pk-color-primary) !important; }
.pk-shell .cmplz-cookiebanner .cmplz-view-preferences, .pk-shell .cmplz-cookiebanner .cmplz-save-preferences { background: var(--pk-color-surface) !important; color: var(--pk-color-text) !important; border: 2px solid var(--pk-color-border) !important; }
.pk-shell .cmplz-cookiebanner .cmplz-category { background: var(--pk-color-bg) !important; border-color: var(--pk-color-border) !important; }

/* Live filter box (shop and exam guides) */
.pk-filterbar { margin: 0; }
.entry-content > .pk-filterbar { margin: 0 0 var(--pk-space-5, 20px); }
.pk-filterbar__input { width: 100%; max-width: 480px; min-height: 44px; padding: 8px 14px; font: inherit; font-size: 16px; border: 1px solid var(--pk-color-border-strong, #bbb); border-radius: var(--pk-radius-md, 8px); background: var(--pk-color-surface, #fff); color: var(--pk-color-text, #111); }
.pk-filterbar__input:focus-visible { outline: 2px solid var(--pk-color-primary, #2b6); outline-offset: 2px; }
.pk-filterbar__none { margin-top: 8px; }
[hidden] { display: none !important; }

/* A single product tab needs no tab bar */
.woocommerce-tabs .wc-tabs:has(> li:only-child) { display: none; }
/* Product tabs: real folder tabs. The tab row and the panel form one bordered card, as wide as the text column
   (not the full page), the active tab is joined to the panel. */
.pk-shell.single-product .woocommerce-tabs { max-width: 100%; }
@media (min-width: 900px) { .pk-shell.single-product .woocommerce-tabs { max-width: calc(100% - 360px - var(--pk-space-12)); } }
.pk-shell.single-product .woocommerce-tabs ul.tabs { display: flex !important; gap: 6px; margin: 0 !important; padding: 0 !important; list-style: none; border: 0 !important; overflow-x: auto; white-space: nowrap; scrollbar-width: thin; }
.pk-shell.single-product .woocommerce-tabs ul.tabs::before, .pk-shell.single-product .woocommerce-tabs ul.tabs::after { display: none !important; }
.pk-shell.single-product .woocommerce-tabs ul.tabs li, .pk-shell.single-product .woocommerce-tabs ul.tabs li.active { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; border-radius: 0 !important; box-shadow: none !important; flex: 0 0 auto; position: static; display: block; }
.pk-shell.single-product .woocommerce-tabs ul.tabs li::before, .pk-shell.single-product .woocommerce-tabs ul.tabs li::after { display: none !important; }
.pk-shell.single-product .woocommerce-tabs ul.tabs li a { display: block !important; padding: 12px 22px !important; min-height: 48px; background: color-mix(in srgb, var(--pk-color-border) 55%, var(--pk-color-bg)); border: 1px solid var(--pk-color-border-strong, #c9c4b8) !important; border-bottom: 0 !important; border-radius: 12px 12px 0 0 !important; font-family: var(--pk-font-heading); font-size: var(--pk-text-base); font-weight: var(--pk-weight-bold); color: var(--pk-color-text-muted) !important; text-decoration: none; transition: background .15s, color .15s; }
.pk-shell.single-product .woocommerce-tabs ul.tabs li a:hover { background: color-mix(in srgb, var(--pk-color-border) 85%, var(--pk-color-bg)); color: var(--pk-color-text); }
.pk-shell.single-product .woocommerce-tabs ul.tabs li.active a { position: relative; z-index: 2; margin-bottom: -1px; padding-top: 14px !important; background: var(--pk-color-surface); border-top: 4px solid var(--pk-color-primary, #7e57c2) !important; color: var(--pk-color-text) !important; }
.pk-shell.single-product .woocommerce-tabs ul.tabs li a:focus-visible { outline: 2px solid var(--pk-color-primary, #7e57c2); outline-offset: -4px; }
.pk-shell.single-product .woocommerce-tabs .woocommerce-Tabs-panel { position: relative; z-index: 1; margin: 0 !important; padding: var(--pk-space-8) !important; background: var(--pk-color-surface) !important; border: 1px solid var(--pk-color-border-strong, #c9c4b8) !important; border-radius: 0 var(--pk-radius-lg, 16px) var(--pk-radius-lg, 16px) var(--pk-radius-lg, 16px); }
.pk-shell.single-product .woocommerce-tabs .woocommerce-Tabs-panel > * { max-width: none !important; }
.pk-shell.single-product .woocommerce-tabs .woocommerce-Tabs-panel > :last-child, .pk-shell.single-product .woocommerce-tabs .woocommerce-Tabs-panel .pk-stack > :last-child { margin-bottom: 0; }
@media (max-width: 600px) { .pk-shell.single-product .woocommerce-tabs .woocommerce-Tabs-panel { padding: var(--pk-space-5) !important; } .pk-shell.single-product .woocommerce-tabs ul.tabs li a { padding: 12px 16px !important; } }
/* Description: lead paragraph and real lists */
.pk-shell.single-product .woocommerce-Tabs-panel .pk-lead { font-size: var(--pk-text-lg); line-height: 1.6; color: var(--pk-color-text); }
.pk-shell.single-product .woocommerce-Tabs-panel p { line-height: 1.7; margin: 0 0 var(--pk-space-5); }
.pk-bullets { margin: 0 0 var(--pk-space-5); padding-left: 1.25em; display: grid; gap: var(--pk-space-3); line-height: 1.6; }
.pk-bullets li::marker { color: var(--pk-color-primary, #7e57c2); }

/* Checkout on narrow screens: billing and additional details stacked instead of two cramped columns. */
@media (max-width: 782px) {
  .woocommerce-checkout #customer_details .col-1,
  .woocommerce-checkout #customer_details .col-2 { float: none !important; width: 100% !important; max-width: 100% !important; }
  .woocommerce-checkout .col2-set .form-row-first,
  .woocommerce-checkout .col2-set .form-row-last { float: none; width: 100%; }
}
.pk-vat-note { font-weight: 400; opacity: .8; }

/* Checkout: the pay button full width with the trust lines below it, instead of squeezed next to each other. */
.woocommerce-checkout #payment .place-order { display: flex; flex-direction: column; align-items: stretch; gap: var(--pk-space-4); }
.woocommerce-checkout #payment #place_order { order: 1; width: 100%; float: none; }
.woocommerce-checkout #payment .pk-trust { order: 2; }

/* Cart: items on the left, totals on the right (stacked on narrow screens). */
.pk-shell.woocommerce-cart .entry-content > .woocommerce {
  max-width: calc(var(--pk-container) + 2 * var(--pk-gutter)) !important;
  margin-inline: auto; padding-inline: var(--pk-gutter) !important;
  display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: var(--pk-space-8); align-items: start;
}
.pk-shell.woocommerce-cart .woocommerce-notices-wrapper,
.pk-shell.woocommerce-cart .woocommerce-cart-form__empty,
.pk-shell.woocommerce-cart .cart-empty,
.pk-shell.woocommerce-cart .return-to-shop { grid-column: 1 / -1; }
.pk-shell.woocommerce-cart .woocommerce-cart-form { grid-column: 1; min-width: 0; }
.pk-shell.woocommerce-cart .cart-collaterals { grid-column: 2; grid-row: 2; width: 100%; float: none; position: sticky; top: var(--pk-space-6); }
.pk-shell.woocommerce-cart .cart-collaterals .cart_totals { width: 100% !important; float: none !important; }
@media (max-width: 900px) {
  .pk-shell.woocommerce-cart .entry-content > .woocommerce { grid-template-columns: minmax(0, 1fr); }
  .pk-shell.woocommerce-cart .woocommerce-cart-form, .pk-shell.woocommerce-cart .cart-collaterals { grid-column: 1; grid-row: auto; position: static; }
}
.pk-shell.woocommerce-cart .inside-article > .entry-header { max-width: var(--pk-container); }
.pk-shell.woocommerce-cart .coupon { display: flex; gap: var(--pk-space-2); align-items: center; }
.pk-shell.woocommerce-cart .coupon .input-text { width: 180px; min-width: 0; }
.pk-shell.woocommerce-cart .product-thumbnail:empty, .pk-shell.woocommerce-cart td.product-thumbnail { width: 1%; }
.pk-shell.woocommerce-cart .inside-article > .entry-header { padding-inline: 0; margin-inline: auto; }
.pk-shell.woocommerce-cart .coupon .input-text { width: 180px !important; }

/* My account: navigation left, content right, full container width (beats the 760px reading column). */
.pk-shell.woocommerce-account .entry-content > .woocommerce {
  max-width: calc(var(--pk-container) + 2 * var(--pk-gutter)) !important;
  margin-inline: auto; padding-inline: var(--pk-gutter) !important;
  display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: var(--pk-space-8) var(--pk-space-10); align-items: start;
}
.pk-shell.woocommerce-account .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.pk-shell.woocommerce-account .woocommerce-MyAccount-navigation { grid-column: 1; }
.pk-shell.woocommerce-account .woocommerce-MyAccount-content { grid-column: 2; min-width: 0; }
.pk-shell.woocommerce-account .inside-article > .entry-header { max-width: var(--pk-container); padding-inline: 0; margin-inline: auto; }
@media (max-width: 782px) {
  .pk-shell.woocommerce-account .entry-content > .woocommerce { grid-template-columns: minmax(0, 1fr); }
  .pk-shell.woocommerce-account .woocommerce-MyAccount-navigation, .pk-shell.woocommerce-account .woocommerce-MyAccount-content { grid-column: 1; }
  .pk-shell.woocommerce-account .inside-article > .entry-header { padding-inline: var(--pk-gutter); }
}
.pk-shell.woocommerce-account .entry-content > .woocommerce { padding-top: var(--pk-space-4) !important; }

/* My exams: one collapsed row per exam, tests appear on click. */
.pk-acc { background: var(--pk-color-surface); border: 1px solid var(--pk-color-border); border-radius: var(--pk-radius-lg); }
.pk-acc > summary { display: flex; align-items: center; gap: var(--pk-space-3); padding: var(--pk-space-4) var(--pk-space-5); cursor: pointer; list-style: none; min-height: 44px; }
.pk-acc > summary::-webkit-details-marker { display: none; }
.pk-acc > summary::before { content: ""; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); transition: transform .15s; flex: none; }
.pk-acc[open] > summary::before { transform: rotate(45deg); }
.pk-acc__title { font-weight: 600; flex: 1; min-width: 0; }
.pk-acc__meta { color: var(--pk-color-text-muted); font-size: .875rem; white-space: nowrap; }
.pk-acc__body { padding: 0 var(--pk-space-5) var(--pk-space-5); }

/* Result review: one question at a time with a numbered strip. */
.pk-rv-nav { display: flex; flex-wrap: wrap; gap: 6px; }
.pk-rv-nav__n { min-width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; border: 1px solid var(--pk-color-border); font-size: .8125rem; font-weight: 600; text-decoration: none; background: var(--pk-color-surface); color: inherit; }
.pk-rv-nav__n.is-ok { border-color: #1a7f4b; } .pk-rv-nav__n.is-wrong { border-color: #b3261e; }
.pk-rv-nav__n.is-current { background: #0f6b60; border-color: #0f6b60; color: #fff; }
.pk-rv-pager { justify-content: space-between; align-items: center; }
.pk-review__item { background-image: var(--pk-wm, none); background-repeat: repeat; }
.pkx-rating-card { margin-block: var(--pk-space-4); }

/* Checkout: details left, order summary right, full container width (stacked on narrow screens). */
.pk-shell.woocommerce-checkout .entry-content > .woocommerce {
  max-width: calc(var(--pk-container) + 2 * var(--pk-gutter)) !important;
  margin-inline: auto; padding-inline: var(--pk-gutter) !important;
}
.pk-shell.woocommerce-checkout .inside-article > .entry-header { max-width: var(--pk-container); padding-inline: 0; margin-inline: auto; }
@media (min-width: 901px) {
  .pk-shell.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 0 var(--pk-space-8); align-items: start; }
  .pk-shell.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; grid-row: 1; margin-bottom: var(--pk-space-4); }
  .pk-shell.woocommerce-checkout form.checkout #customer_details { grid-column: 1; grid-row: 2 / span 2; }
  .pk-shell.woocommerce-checkout form.checkout #order_review_heading { grid-column: 2; grid-row: 2; margin-top: 0; }
  .pk-shell.woocommerce-checkout form.checkout #order_review { grid-column: 2; grid-row: 3; }
  .pk-shell.woocommerce-checkout #customer_details .col-1, .pk-shell.woocommerce-checkout #customer_details .col-2 { float: none !important; width: 100% !important; max-width: 100% !important; }
}
.pk-shell.woocommerce-checkout #pk_vat_id_field .description { display: block !important; position: static !important; width: auto !important; background: none !important; color: inherit !important; padding: 0 !important; box-shadow: none !important; font-size: .875rem; opacity: .8; margin-top: 4px; }
.pk-shell.woocommerce-checkout #pk_vat_id_field .description::before { display: none !important; }
@media (max-width: 900px) { .pk-shell.woocommerce-checkout .inside-article > .entry-header, .pk-shell.woocommerce-cart .inside-article > .entry-header { padding-inline: var(--pk-gutter); } }
.pk-shell.woocommerce-checkout #pk_address_field .description { display: block !important; position: static !important; width: auto !important; background: none !important; color: inherit !important; padding: 0 !important; box-shadow: none !important; font-size: .875rem; opacity: .8; margin-top: 4px; }
.pk-shell.woocommerce-checkout #pk_address_field .description::before { display: none !important; }

/* Checkout: the two agreement checkboxes share one alignment (box on the left, text wraps under the text, not under the box). */
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper .form-row,
.woocommerce-checkout #payment #pk_instant_access_field { margin: 0 0 var(--pk-space-3); padding: 0; }
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper label.checkbox,
.woocommerce-checkout #payment #pk_instant_access_field label.checkbox { display: block; position: relative; margin: 0; padding: 0 0 0 30px; line-height: 1.5; font-weight: 600; }
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper label.checkbox input[type="checkbox"],
.woocommerce-checkout #payment #pk_instant_access_field label.checkbox input[type="checkbox"] { position: absolute; left: 0; top: 3px; margin: 0; width: 18px; height: 18px; }
.woocommerce-checkout #payment #pk_instant_access_field.pk-check { display: block; }
.woocommerce-checkout #payment #pk_instant_access_field .woocommerce-input-wrapper { display: block; }

/* Green result/thank-you panels: every text inside uses the dark success color (the heading turned light in dark mode). */
.pk-result--pass :is(h1, h2, h3, p, strong, span, .pk-h1, .pk-text, .pk-result__score) { color: var(--pk-color-success-text); }

/* Order details (thank-you and view-order): one rounded card, amounts right-aligned, total emphasized. */
.woocommerce-table--order-details { width: 100%; border-collapse: separate; border-spacing: 0; background: var(--pk-color-surface); border: 1px solid var(--pk-color-border) !important; border-radius: var(--pk-radius-lg); overflow: hidden; }
.woocommerce-table--order-details th, .woocommerce-table--order-details td { border: 0 !important; border-bottom: 1px solid var(--pk-color-border) !important; padding: 14px 20px !important; vertical-align: middle; background: transparent; }
.woocommerce-table--order-details thead th { background: var(--pk-color-bg-soft, rgba(0,0,0,.03)); font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; }
.woocommerce-table--order-details .product-total, .woocommerce-table--order-details thead th.product-total, .woocommerce-table--order-details tfoot td { text-align: right; }
.woocommerce-table--order-details tfoot th { text-align: left; font-weight: 500; font-size: .875rem; text-transform: none; letter-spacing: 0; }
.woocommerce-table--order-details tfoot tr:last-child th, .woocommerce-table--order-details tfoot tr:last-child td, .woocommerce-table--order-details tbody tr:last-child td { border-bottom: 0 !important; }
.woocommerce-table--order-details tfoot td { font-weight: 600; }
.woocommerce-table--order-details tfoot td .includes_tax { font-weight: 400; display: block; opacity: .8; }
.woocommerce-table--order-details tfoot tr:has(.includes_tax) th, .woocommerce-table--order-details tfoot tr:has(.includes_tax) td { font-size: 1.125rem; font-weight: 700; background: var(--pk-color-bg-soft, rgba(0,0,0,.03)); }
.woocommerce-table--order-details .order-actions--heading { display: none; }
.woocommerce-table--order-details .order-actions--heading + td { text-align: right; }
@media (max-width: 600px) { .woocommerce-table--order-details th, .woocommerce-table--order-details td { padding: 12px 14px !important; } }
.woocommerce-table--order-details tfoot td .includes_tax { white-space: nowrap; }
.woocommerce-EditAccountForm p:has(#account_display_name) { display: none; }

/* Account details: the password change is its own card, clearly apart from the details above it. */
.woocommerce-EditAccountForm fieldset, .woocommerce-EditAccountForm fieldset.pk-set { margin: var(--pk-space-10) 0 var(--pk-space-6); padding: var(--pk-space-6); border: 1px solid var(--pk-color-border); border-radius: var(--pk-radius-lg); background: var(--pk-color-surface); }
.woocommerce-EditAccountForm fieldset legend { padding: 0 var(--pk-space-3); font-weight: 700; font-size: 1.125rem; }
.woocommerce-EditAccountForm fieldset .form-row:last-child { margin-bottom: 0; }

.woocommerce-EditAccountForm fieldset.pk-set { margin-top: 0; }
.woocommerce-EditAccountForm fieldset.pk-set + fieldset.pk-set, .woocommerce-EditAccountForm fieldset.pk-set + fieldset { margin-top: var(--pk-space-6); }
.pk-set__hint { font-size: .875rem; opacity: .85; margin: 0 0 var(--pk-space-4); }
.woocommerce-EditAccountForm fieldset .form-row-first, .woocommerce-EditAccountForm fieldset .form-row-last { width: calc(50% - 12px); }
@media (max-width: 600px) { .woocommerce-EditAccountForm fieldset .form-row-first, .woocommerce-EditAccountForm fieldset .form-row-last { width: 100%; float: none; } }

/* My account dashboard */
.pk-dash-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: var(--pk-space-4); align-items: center; padding: 14px 20px; border-bottom: 1px solid var(--pk-color-border); text-decoration: none; color: inherit; }
.pk-dash-row:last-child { border-bottom: 0; }
.pk-dash-row:hover { background: rgba(0,0,0,.03); }
.pk-dash-row__main { display: flex; flex-direction: column; min-width: 0; }
.pk-dash-row__score { font-weight: 700; min-width: 3.5em; text-align: right; }
.pk-dash-bar { height: 8px; border-radius: 999px; background: var(--pk-color-border); overflow: hidden; margin-top: var(--pk-space-3); }
.pk-dash-bar > span { display: block; height: 100%; background: var(--pk-color-primary, #0e6b63); border-radius: 999px; }
.pk-dash-foot { margin: 0; }
@media (max-width: 600px) { .pk-dash-row { grid-template-columns: minmax(0, 1fr) auto; } .pk-dash-row__score { grid-column: 2; } .pk-dash-row .pk-badge { grid-column: 2; justify-self: end; } }
.pk-dash .pk-card__body > .pk-cluster { width: 100%; align-self: stretch; }
.pk-dash-row, .pk-dash-row * { text-decoration: none !important; }
.pk-dash-row strong { color: var(--pk-color-text); }

.pk-shell.woocommerce-checkout .pk-check.pk-missing, .pk-shell.woocommerce-checkout .form-row.pk-missing { outline: 2px solid var(--pk-color-danger, #b3261e); outline-offset: 4px; border-radius: 6px; }

/* Pages without the account navigation (login, lost password, set password; also when signed in): one readable column. */
body.pk-shell.woocommerce-account:not(.logged-in) .entry-content > .woocommerce,
body.pk-shell.woocommerce-lost-password .entry-content > .woocommerce { display: block; }
body.woocommerce-account:not(.logged-in) .entry-content > .woocommerce > form.lost_reset_password,
body.woocommerce-account:not(.logged-in) .entry-content > .woocommerce > form.woocommerce-form-login,
body.woocommerce-lost-password .entry-content > .woocommerce > form.lost_reset_password { max-width: 520px; width: 100%; }
body.woocommerce-account:not(.logged-in) form.lost_reset_password .form-row,
body.woocommerce-lost-password form.lost_reset_password .form-row { float: none; width: 100%; }

/* Breadcrumb: WooCommerce's grey (#767676) is below 4.5:1 on our backgrounds. */
.pk-shell .woocommerce-breadcrumb, .pk-shell .woocommerce-breadcrumb a { color: var(--pk-color-text-muted); }
/* Show-password button on the login and password forms: at least 44 px to touch. */
.pk-shell .show-password-input { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; top: 50% !important; transform: translateY(-50%); right: 0 !important; }

/* Headings in the coloured band take the band's text colour; wp.css sets heading colour with .pk-shell, so this needs the same weight and comes later. */
.pk-shell .pk-band h1, .pk-shell .pk-band h2, .pk-shell .pk-band h3 { color: inherit; }

/* Small print in the cart and checkout (VAT included) inherits WooCommerce's grey (#767676), too faint on dark. */
.pk-shell .woocommerce small, .pk-shell .woocommerce .includes_tax { color: var(--pk-color-text-muted); }


/* a11y round 3: small print in the cart, and answer explanations on coloured backgrounds */
.pk-shell small, .pk-shell small .amount, .pk-shell .includes_tax, .pk-shell .includes_tax .amount { color: var(--pk-color-text-muted) !important; }
.pk-shell .pk-answer--correct .pkx-optexpl, .pk-shell .pk-answer--missed .pkx-optexpl { color: var(--pk-color-success-text); opacity: 1; }
.pk-shell .pk-answer--wrong .pkx-optexpl { color: var(--pk-color-danger-text, var(--pk-color-text)); opacity: 1; }

/* Checkout payment options: WooCommerce paints the payment box lavender (#dcd7e2) with grey text, which clashes with the theme in dark mode (light text on a light box). Use theme colours so text and box always contrast. */
.pk-shell.woocommerce-checkout #payment div.payment_box { background: var(--pk-color-bg); color: var(--pk-color-text); border: 1px solid var(--pk-color-border-strong); border-radius: var(--pk-radius-md); }
.pk-shell.woocommerce-checkout #payment div.payment_box::before { display: none; }
.pk-shell.woocommerce-checkout #payment div.payment_box p, .pk-shell.woocommerce-checkout #payment div.payment_box label, .pk-shell.woocommerce-checkout #payment div.payment_box legend { color: var(--pk-color-text); }
.pk-shell.woocommerce-checkout #payment div.payment_box input.input-text { border-color: var(--pk-color-border-strong); }
.pk-shell.woocommerce-checkout #payment div.payment_box ::placeholder { color: var(--pk-color-text-muted); opacity: 1; }
.pk-shell.woocommerce-checkout #payment ul.payment_methods li > label { color: var(--pk-color-text); font-weight: var(--pk-weight-heavy, 700); }
