/* Vapovor shared UI. Loaded once after page/module CSS.
 * Contract: navy capsule = primary; gray = interaction; pale blue = information;
 * white controls inside information surfaces; no automatic restyling of text links.
 * New templates use the vvp-ui-* classes below. Existing components are adapters.
 * Layouts, content, icons, native states and form behaviour stay in their owners.
 * Module components (Skrupt modules, AV Ratings, Skrupt Support) are styled in each module's own
 * custom CSS since 19/10/2026; only page composition and theme elements stay here.
 */
/* Tokens (--vvp-ui-*, --vvp-confort-*): vapovor-tokens.css. */

/* Public primitives: visual roles, never inferred from an arbitrary div/button. */
body .vvp-ui-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--vvp-ui-control-gap); }
body .vvp-ui-panel { padding: var(--vvp-ui-panel-padding); border: 0; border-radius: var(--vvp-ds-radius-panel); background: var(--vvp-ui-panel-bg); }
body .vvp-ui-info { padding: var(--vvp-ui-card-padding); border: 1px solid var(--vvp-ui-info-line); border-radius: var(--vvp-ui-info-radius); background: var(--vvp-ui-info-bg); color: var(--vvp-ds-action); }
body .vvp-ui-heading { margin: 0 0 var(--vvp-ui-heading-gap); font-size: var(--vvp-ui-heading-size,clamp(22px,2vw,24px)); line-height: 1.25; font-weight: 600; text-wrap: balance; }
body .vvp-ui-button {
  box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; gap: var(--vvp-ui-control-gap);
  min-height: var(--vvp-ui-control-height); max-width: 100%; padding: 12px 20px; border: 0; border-radius: var(--vvp-ui-control-radius);
  background: var(--vvp-ui-action-bg); color: var(--vvp-ds-action); font: inherit; font-size: 15px; font-weight: var(--vvp-ui-control-weight); line-height: 22px; text-align: center; text-decoration: none; cursor: pointer;
}
body .vvp-ui-button--primary { background: var(--vvp-ds-action); color: #fff; border-radius: var(--vvp-ds-radius-action); }
body .vvp-ui-button--white, body .vvp-ui-info .vvp-ui-button:not(.vvp-ui-button--primary) { background: #fff; }
body .vvp-ui-button:hover { background: var(--vvp-ui-action-hover); color: var(--vvp-ds-action); }
body .vvp-ui-button--primary:hover { background: var(--vvp-ds-action-hover); color: #fff; }
body .vvp-ui-button--white:hover, body .vvp-ui-info .vvp-ui-button:not(.vvp-ui-button--primary):hover { background: #fff; box-shadow: inset 0 0 0 1px var(--vvp-ui-field-line); }
body .vvp-ui-button:is(:disabled,[aria-disabled="true"]) { opacity: .55; cursor: not-allowed; }
body .vvp-ui-button__icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 20px; width: 20px; height: 20px; padding: 0; border: 0; background: transparent; font-size: 22px; font-weight: 400; }
body :is(.vvp-ui-button,.vvp-ui-disclosure>summary,.vvp-ui-field):focus-visible { outline: 2px solid var(--vvp-ds-focus); outline-offset: 3px; }
body .vvp-ui-field { box-sizing: border-box; min-height: var(--vvp-ui-control-height); padding: 11px 16px; border: 1px solid var(--vvp-ui-field-line); border-radius: var(--vvp-ui-control-radius); background: #fff; color: var(--vvp-ds-ink); font: inherit; }
body .vvp-ui-field[aria-invalid="true"] { border-color: var(--vvp-ds-error); }
body .vvp-ui-field:disabled { background: var(--vvp-ds-disabled); color: var(--vvp-ds-muted); }
body .vvp-ui-disclosure { border: 0; background: #fff; }
body .vvp-ui-disclosure>summary { display: flex; align-items: center; gap: var(--vvp-ui-control-gap); min-height: var(--vvp-ui-control-height); padding: 12px 20px; border-radius: var(--vvp-ui-control-radius); background: var(--vvp-ui-action-bg); color: var(--vvp-ds-action); font-weight: var(--vvp-ui-control-weight); list-style: none; cursor: pointer; }
body .vvp-ui-disclosure>summary::-webkit-details-marker { display: none; }
body .vvp-ui-disclosure>summary::after { content: '+'; margin-left: auto; font-size: 22px; font-weight: 400; }
body .vvp-ui-disclosure[open]>summary::after { content: '−'; }
body .vvp-ui-disclosure>summary:hover { background: var(--vvp-ui-action-hover); }
body .vvp-ui-disclosure__body { padding: var(--vvp-ui-card-padding); }

/* Native/Skrupt adapters: new instances inherit these styles on every page. */
body #wrapper :is(.btn-primary,.vvp-home-help__link,.vvp-mobile-purchase-action):not(.btn-touchspin) {
  border-radius: var(--vvp-ds-radius-action); font-weight: var(--vvp-ui-control-weight);
}
body #wrapper #main :is(.btn-primary):not(.btn-touchspin) { border-radius: var(--vvp-ds-radius-action); font-weight: var(--vvp-ui-control-weight); }
body #wrapper :is(.btn-secondary,.btn-tertiary):not(.btn-touchspin):not(.quick-view):not(.close) { border-radius: var(--vvp-ui-control-radius); font-weight: var(--vvp-ui-control-weight); }
/* Form dimensions only: native invalid, disabled, readonly and joined-input styles win. */
body #wrapper #main :is(input.form-control,select.form-control,textarea.form-control):not([type="hidden"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]):not(.input-group *):not(.bootstrap-touchspin *):not([name="qty"]):not([id="quantity_wanted"]) { min-height: var(--vvp-ui-control-height); border-color: var(--vvp-color-field-border); border-radius: var(--vvp-ui-control-radius); }
body #wrapper #main :is(.customer-addresses-grid,.customer-orders-list) { gap: var(--vvp-ui-section-gap); }
body #wrapper #main .contact-fields { gap: 20px; }
body #main :is(.vvp-home-faq,.vvp-home-help,.customer-panel,.customer-form-card) { border-radius: var(--vvp-ds-radius-panel); }
body #main :is(.vvp-home-faq,.vvp-home-help) { padding: var(--vvp-ui-panel-padding); }
body #main :is(.vvp-home-assistance) { gap: var(--vvp-ui-section-gap); }
body #main :is(.vvp-home-assistance,.vvp-home-editorial) { margin-block: var(--vvp-ui-section-gap); }
/* Information stays blue; fully clickable headers stay gray. */
body #main :is(.vvp-home-faq__items) { display: grid; gap: var(--vvp-ui-control-gap); }
body #main :is(.vvp-home-faq details) { border: 0; margin-block: 0; }
body #main :is(.vvp-home-faq summary) {
  box-sizing: border-box; min-height: var(--vvp-ui-control-height); padding: 12px 44px 12px 20px; border: 0;
  border-radius: var(--vvp-ui-control-radius); background: var(--vvp-ui-action-bg); color: var(--vvp-ds-action); font-size: 15px; line-height: 22px; font-weight: var(--vvp-ui-control-weight);
}
body #main :is(.vvp-home-faq summary):hover { background: var(--vvp-ui-action-hover); }
body #main .vvp-home-faq summary::after { right: 20px; top: calc(50% - 5px); }
body #main :is(.vvp-home-faq summary):focus-visible { outline: 2px solid var(--vvp-ds-focus); outline-offset: 3px; }
body #main :is(.vvp-home-faq details)>:not(summary) { margin: var(--vvp-ui-content-gap) 20px; }
/* New pages can reuse these through shared markup rather than page-ID overrides. */
body #main :is(.vvp-description-details,.vvp-guide-details)>summary:hover { color: #172f56; background: #edf1f8; }
body #main :is(.vvp-description-details,.vvp-guide-details)>summary {
  box-sizing: border-box; width: fit-content; min-height: 44px; line-height: 20px; display: flex; align-items: center; gap: var(--vvp-ui-control-gap); padding: 9px 14px;
  border: 1px solid var(--vvp-confort-line); border-radius: 9px; background: #fff; color: var(--vvp-ds-action); cursor: pointer; font-size: 14px; font-weight: 600; list-style: none;
}
body #main :is(.vvp-description-details,.vvp-guide-details)>summary::-webkit-details-marker { display: none; }
body #main :is(.vvp-description-details,.vvp-guide-details)>summary::after { content: '+'; margin-left: auto; font-size: 18px; }
body #main :is(.vvp-description-details,.vvp-guide-details)[open]>summary::after { content: '−'; }
body #main :is(.vvp-description-details,.vvp-guide-details)>summary:focus-visible { outline: 2px solid var(--vvp-ds-action); outline-offset: 3px; }
body #main :is(.vvp-description-details,.vvp-guide-details)>summary {
  border-color: transparent; border-radius: 999px; background: var(--vvp-ds-subtle,var(--vvp-color-subtle));
}
body #main :is(.vvp-description-details,.vvp-guide-details)>summary:hover { background: var(--vvp-ds-action-soft,#e7ecf5); }
body #main .vvp-description-details { margin-top: var(--vvp-ui-action-space); }
body #main .vvp-description-details[open]>.product-description-long { margin-top: 20px; }
body #main .vvp-guide-details { grid-column: 1/-1; grid-row: 2; }
body #main .skd-document__actions a:not(:has(>span[aria-hidden="true"]))::after {
  content: ''; flex: 0 0 36px; width: 36px; height: 36px; border-radius: 50%;
  background: var(--vvp-ds-subtle,var(--vvp-color-subtle)) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23263b63' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v13m-5-5 5 5 5-5M5 20h14'/%3E%3C/svg%3E") center / 18px no-repeat;
}
body #main .skg-practical :is(.vvp-guide-details>summary) {
  box-sizing: border-box; display: inline-flex; align-items: center; gap: var(--vvp-ui-control-gap);
  width: fit-content; max-width: 100%; min-height: var(--vvp-ui-control-height); padding: 12px 20px;
  border: 0; border-radius: var(--vvp-ui-control-radius); background: #fff; color: var(--vvp-ds-action);
  font-size: 15px; line-height: 22px; font-weight: var(--vvp-ui-control-weight); text-decoration: none;
}
body #main .skg-practical .vvp-guide-details>summary::after {
  display: inline-flex; align-items: center; justify-content: center; flex: 0 0 20px;
  width: 20px; height: 20px; margin-left: auto; padding: 0; border: 0; border-radius: 0;
  background: transparent; font-size: 22px; line-height: 20px; font-weight: 400;
}
body #main .skg-practical :is(.vvp-guide-details>summary):hover { background: #fff; color: #172f56; box-shadow: inset 0 0 0 1px var(--vvp-color-field-line); }
body #main .skg-practical :is(.vvp-guide-details>summary):focus-visible { outline: 2px solid var(--vvp-ds-action); outline-offset: 3px; }
/* Shared purchase controls, including the panel opened from category cards. */
:is(body#product #main.vvp-accessory-product, body #main, .vvp-quick-purchase, [data-skrupt-atc-root]) .product-quantity .qty > .input-group.bootstrap-touchspin {
  border: 1px solid var(--vvp-color-field-border); border-radius: var(--vvp-purchase-control-radius,var(--vvp-radius-control)); overflow: hidden; background: #fff;
}
:is(body#product #main.vvp-accessory-product, body #main, .vvp-quick-purchase, [data-skrupt-atc-root]) .product-quantity .qty .bootstrap-touchspin .btn-touchspin { border-radius: 999px; color: var(--vvp-color-action); }
:is(body#product #main.vvp-accessory-product, body #main, .vvp-quick-purchase, [data-skrupt-atc-root]) .product-quantity .qty .bootstrap-touchspin :is(.btn-touchspin, #quantity_wanted):focus-visible {
  outline: 2px solid var(--vvp-color-action); outline-offset: -4px; box-shadow: none;
}
:is(body#product #main.vvp-accessory-product, body #main, .vvp-quick-purchase, [data-skrupt-atc-root]) .product-quantity .qty > .input-group.bootstrap-touchspin:focus-within { border-color: var(--vvp-color-action); box-shadow: var(--vvp-focus-ring); }
:is(body#product #main.vvp-accessory-product, body #main, .vvp-quick-purchase, [data-skrupt-atc-root]) .vvp-purchase-dock .product-actions .add-to-cart { border-radius: var(--vvp-purchase-control-radius,999px); }
:is(body#product #main.vvp-accessory-product, body #main, [data-skrupt-atc-root]) .vvp-mobile-purchase-bar[data-direct-purchase-bar] .vvp-bar-quantity[data-bar-quantity] {
  border-radius: 999px; overflow: hidden; background: #fff;
}
:is(body#product #main.vvp-accessory-product, body #main, [data-skrupt-atc-root]) .vvp-mobile-purchase-bar[data-direct-purchase-bar] .vvp-bar-quantity-step { border-radius: 999px; }
:is(body#product #main.vvp-accessory-product, body #main, [data-skrupt-atc-root]) .vvp-mobile-purchase-bar[data-direct-purchase-bar] :is(.vvp-bar-quantity-step,.vvp-bar-quantity-input):focus-visible {
  outline: 2px solid var(--vvp-color-action); outline-offset: -4px; box-shadow: none;
}

/* Complementary public patterns: clickable cards, small icon links and data tables. */
body .vvp-ui-card-link { display: block; padding: var(--vvp-ui-card-padding); border: 0; border-radius: var(--vvp-ds-radius-panel); background: var(--vvp-ui-action-bg); color: var(--vvp-ds-action); text-decoration: none; }
body .vvp-ui-card-link:hover { background: var(--vvp-ui-action-hover); }
body .vvp-ui-icon-link,
body.page-index .vvp-home-reference-grid [aria-hidden]:not(.vvp-home-reference-icon) { display: inline-flex; align-items: center; justify-content: center; width: var(--vvp-ui-icon-link-size,36px); height: var(--vvp-ui-icon-link-size,36px); border: 0; border-radius: 50%; background: var(--vvp-ui-action-bg); color: var(--vvp-ds-action); }
body .vvp-ui-table { width: 100%; border-collapse: collapse; background: #fff; }
body .vvp-ui-table :is(th,td) { padding: 16px 20px; border-bottom: 1px solid var(--vvp-ui-info-line); text-align: start; overflow-wrap: anywhere; }
body .vvp-ui-table th { color: var(--vvp-ds-muted); font-weight: 500; }
body :is(.vvp-ui-card-link,.vvp-ui-icon-link):focus-visible { outline: 2px solid var(--vvp-ds-focus); outline-offset: 3px; }
body #main .vvp-description-details>summary { min-height: var(--vvp-ui-control-height); padding: 12px 20px; border: 0; border-radius: var(--vvp-ui-control-radius); font-size: 15px; line-height: 22px; font-weight: var(--vvp-ui-control-weight); }
body #main .vvp-description-details>summary::after { font-size: 22px; font-weight: 400; }

/* Brand-family navigation shares the site's quiet editorial links and icon controls. */
body .vvp-ui-panel > .skbp { min-width: 0; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; }

/* Carousel controls share the catalogue's gray circular-button palette. */
body :is(.vvp-page-hero,#header,#footer) { --skrupt-pagination-bg-opacity: 25%; --skrupt-pagination-dot-color: var(--vvp-color-inverse); }
body .vvp-page-hero-surface { --skrupt-pagination-bg-opacity: 50%; --skrupt-pagination-dot-color: var(--vvp-ds-action); }

/* Catalogue miniatures inherit the same light frame in every Skrupt carousel. */
body #main .skrupt-carousel .skrupt-carousel-product>.product-miniature {
  box-sizing: border-box; width: 100%; height: 100%; margin: 0;
  border: 1px solid var(--vvp-ui-info-line); border-radius: var(--vvp-ui-info-radius); background: #fff; box-shadow: none;
}
body #main .skrupt-carousel .skrupt-carousel-product>.product-miniature>.thumbnail-container {
  width: 100%; height: 100%; align-self: stretch; border-radius: inherit;
}
body #main .skrupt-carousel .skrupt-carousel-product .product-card-footer { margin-top: auto; }

/* Homepage FAQ: native disclosures, open rows and a content-sized assistance card. */
body.page-index #wrapper #main .vvp-home-faq-slot .vvp-home-practical-faq { grid-template-columns: minmax(0,1.65fr) minmax(0,1fr); grid-template-rows: auto auto auto; gap: 0 32px; align-items: start; }
body.page-index #wrapper #main .vvp-home-faq-slot .vvp-home-faq-main { display: contents; }
body.page-index #wrapper #main .vvp-home-faq-slot .vvp-home-faq-main > .vvp-home-eyebrow { grid-column: 1; grid-row: 1; margin: 0 0 12px; }
body.page-index #wrapper #main .vvp-home-faq-slot .vvp-home-faq-main > h2 { grid-column: 1; grid-row: 2; margin: 0 0 20px; }
body.page-index #wrapper #main .vvp-home-faq-slot .vvp-home-faq-list { grid-column: 1; grid-row: 3; display: block; min-width: 0; margin: 0; }
body.page-index #wrapper #main .vvp-home-faq-slot .vvp-home-faq-list > details { margin: 0; padding: 0; border: 0; border-bottom: 1px solid var(--vvp-ui-info-line,var(--vvp-color-info-line)); border-radius: 0; background: transparent; }
body.page-index #wrapper #main .vvp-home-faq-slot .vvp-home-faq-list summary { display: flex; align-items: center; gap: 20px; box-sizing: border-box; min-height: 44px; height: auto; padding: 20px 0; border: 0; border-radius: 0; background: transparent; color: var(--vvp-ds-action,var(--vvp-color-action)); font-size: 15px; line-height: 1.5; overflow-wrap: anywhere; cursor: pointer; }
body.page-index #wrapper #main .vvp-home-faq-slot .vvp-home-faq-list summary::after { flex: 0 0 24px; width: 24px; margin-left: auto; text-align: center; line-height: 1; }
body.page-index #wrapper #main .vvp-home-faq-slot .vvp-home-faq-list summary:hover { background: rgba(38,59,99,.035); }
body.page-index #wrapper #main .vvp-home-faq-slot .vvp-home-faq-list summary:focus-visible { outline: 2px solid var(--vvp-ds-focus,#355d9e); outline-offset: 3px; }
body.page-index #wrapper #main .vvp-home-faq-slot .vvp-home-faq-list details[open] > summary { padding-bottom: 12px; }
body.page-index #wrapper #main .vvp-home-faq-slot .vvp-ui-disclosure__body { padding: 0 36px 20px 0; border: 0; background: transparent; overflow: visible; max-height: none; }
body.page-index #wrapper #main .vvp-home-faq-slot .vvp-home-service { grid-column: 2; grid-row: 3; align-self: start; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; min-width: 0; min-height: 0; height: auto; margin: 0; padding: 24px; border: 0; border-radius: 12px; background: #fff; box-shadow: none; }
body.page-index #wrapper #main .vvp-home-faq-slot .vvp-home-service-icon { margin: 0 0 12px; }
body.page-index #wrapper #main .vvp-home-faq-slot .vvp-home-service h3 { margin: 0 0 12px; }
body.page-index #wrapper #main .vvp-home-faq-slot .vvp-home-service p { margin: 0 0 12px; }
body.page-index #wrapper #main .vvp-home-faq-slot .vvp-home-service .vvp-home-service-hint { margin-bottom: 18px; }
body.page-index #wrapper #main .vvp-home-faq-slot .vvp-home-service > .vvp-ui-button { width: fit-content; max-width: 100%; background: var(--vvp-ds-action,var(--vvp-color-action)); border-color: transparent; color: #fff; box-shadow: none; }
body.page-index #wrapper #main .vvp-home-faq-slot .vvp-home-service > .vvp-ui-button:hover { background: var(--vvp-ds-action-hover,#1d2e50); color: #fff; box-shadow: none; }
@media(max-width:1100px) {
  body.page-index #wrapper #main .vvp-home-faq-slot .vvp-home-practical-faq { grid-template-columns: minmax(0,1fr); gap: 0; }
  body.page-index #wrapper #main .vvp-home-faq-slot .vvp-home-service { grid-column: 1; grid-row: 4; margin-top: 24px; }
}
@media(max-width:767.98px) {
  body.page-index #wrapper #main .vvp-home-faq-slot .vvp-home-faq-list summary { gap: 16px; }
  body.page-index #wrapper #main .vvp-home-faq-slot .vvp-ui-disclosure__body { padding-right: 0; }
}

/* Store reviews: approved joined navy/gray panels, scoped to the home module. */
body #wrapper #main .avsite__heading .vvp-ui-heading { color: var(--vvp-ds-action,var(--vvp-color-action)); font-family: inherit; font-size: clamp(28px,2.3vw,34px); font-weight: 500; line-height: 1.25; letter-spacing: -.025em; }
body #wrapper #main .avsite__heading .vvp-ui-button { min-height: 44px; padding: 8px 0; border: 0; border-radius: 0; background: transparent; color: var(--vvp-ds-action,var(--vvp-color-action)); font-size: 14px; font-weight: 400; text-decoration: none; box-shadow: none; }
body #wrapper #main .avsite__heading .vvp-ui-button:hover { color: var(--vvp-ds-accentText,var(--vvp-color-accent)); }
/* Native dialog keeps the original disclosure content available without JavaScript. */
@media(max-width:767.98px) {
    body #wrapper #main .avsite__heading .vvp-ui-button { width: auto; }
                    }

/* Local panels stay available for forms, navigation and individual cards. */
body #main :is(.contact-panel,.customer-panel,.customer-form-card,.account-dashboard__navigation) {
  border: 1px solid var(--vvp-ui-panel-line); border-radius: var(--vvp-ds-radius-panel);
  background: var(--vvp-ui-panel-bg); box-shadow: none;
}
body #wrapper #main .account-dashboard { display: block; }
body #wrapper #main :is(.account-dashboard__shortcuts,.account-dashboard__service-links) { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,280px),1fr)); gap: 20px; }
body #wrapper #main .account-dashboard__navigation { width: fit-content; max-width: 100%; margin-top: var(--vvp-ui-section-gap); padding: 0; border: 0; background: transparent; }
body #wrapper #main .account-dashboard__duplicate { display: none; }
/* The native support module keeps all fields, states and consent behaviour. */
body #main #content:has(>.vapochat-contact) { padding: 0; border: 0; background: transparent; box-shadow: none; }
@media(max-width:767.98px) {
  body #main #js-product-list-top.products-selection { padding: 14px 16px; }
  body #main .account-dashboard__navigation { padding: 8px; }
}

/* One breadcrumb: navigation parents stay muted, the current page stays legible. */
body #wrapper nav.vvp-breadcrumb { position: relative; z-index: 1; margin: 0; padding: 8px 0; border: 0; border-radius: 0; background: var(--vvp-hero-blue,var(--vvp-ds-action)); box-shadow: none; font-family: var(--vvp-font-ui,system-ui); }
body #wrapper nav.vvp-breadcrumb > .container-fluid { width: 100%; max-width: var(--vvp-ui-page-width); margin-inline: auto; padding: 0 var(--vvp-ui-page-gutter); }
body #wrapper nav.vvp-breadcrumb ol { display: flex; flex-wrap: nowrap; align-items: center; justify-content: safe center; gap: 8px; min-height: 28px; margin: 0; padding: 0; overflow-x: auto; overflow-y: hidden; scrollbar-width: thin; list-style: none; white-space: nowrap; }
body #wrapper nav.vvp-breadcrumb::after, body #wrapper nav.vvp-breadcrumb ol::after, body #wrapper nav.vvp-breadcrumb li::before { content: none; display: none; }
body #wrapper nav.vvp-breadcrumb li, body #wrapper nav.vvp-breadcrumb li:not(:first-child):not(:last-child) { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; min-width: 0; max-width: none; color: var(--vvp-hero-muted,var(--vvp-color-inverse-muted)); font-size: 12px; font-weight: 400; line-height: 20px; white-space: nowrap; }
body #wrapper nav.vvp-breadcrumb li a { display: inline-flex; align-items: center; min-width: 0; min-height: 28px; padding: 4px 0; color: inherit; font: inherit; text-decoration: none; overflow-wrap: normal; }
body #wrapper nav.vvp-breadcrumb li a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
body #wrapper nav.vvp-breadcrumb li a:focus-visible { color: #fff; outline: 2px solid currentColor; outline-offset: -2px; border-radius: 2px; }
body #wrapper nav.vvp-breadcrumb .vvp-breadcrumb__separator { display: block; flex: 0 0 5px; width: 5px; height: 5px; margin-right: 2px; border-top: 1px solid currentColor; border-right: 1px solid currentColor; color: inherit; font-size: 0; line-height: 0; opacity: .55; transform: rotate(45deg); }
body #wrapper nav.vvp-breadcrumb li.vvp-breadcrumb__current-item { flex: 0 0 auto; min-width: 0; }
body #wrapper nav.vvp-breadcrumb .vvp-breadcrumb__current { display: block; min-width: 0; padding: 4px 0; overflow: hidden; color: var(--vvp-color-inverse); font-weight: 500; text-overflow: ellipsis; white-space: nowrap; overflow-wrap: normal; }
body #wrapper nav.vvp-breadcrumb .vvp-breadcrumb__home a { width: 24px; justify-content: center; }
body #wrapper nav.vvp-breadcrumb .vvp-breadcrumb__home svg { width: 16px; height: 16px; }
/* A reader uses the same entrance, typography and page edges as the catalogue. */
body #wrapper:has(.skg-reader-page) > .container-fluid { width: 100%; max-width: var(--vvp-ui-page-width); margin-inline: auto; padding-inline: var(--vvp-ui-page-gutter); }
body #wrapper:has(.skg-reader-page) > .container-fluid > .row { margin-inline: 0; }
body #wrapper:has(.skg-reader-page) #content-wrapper { min-width: 0; padding-inline: 0; }


/* Quiet shortcut navigation, shared by the home and category heroes. */
.vvp-hero-shortcuts { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 28px; }
.vvp-hero-shortcuts { margin-top: var(--vvp-ui-content-gap); }
.vvp-category-intro > .vvp-hero-shortcuts { margin-top: 0; }
body #wrapper #main .vvp-hero-shortcuts a { display: inline-flex; align-items: center; gap: 8px; min-height: 32px; padding: 0; font-size: 13px; font-weight: 400; line-height: 1.5; color: var(--vvp-shortcut-color,var(--vvp-ds-action)); text-decoration: underline; text-underline-offset: 3px; }
body #wrapper #main .vvp-hero-shortcuts a:hover { color: var(--vvp-shortcut-hover,var(--vvp-ds-action)); }
body #wrapper #main .vvp-hero-shortcuts a:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; border-radius: 2px; }
:is(.vvp-page-hero,.vvp-home-entry) .vvp-hero-shortcuts { --vvp-shortcut-color: var(--vvp-color-inverse); --vvp-shortcut-hover: #fff; justify-content: center; }
.vvp-page-hero .vvp-hero-shortcuts { width: 100%; }
@media(max-width:767.98px) {
  .vvp-hero-shortcuts { gap: 0 18px; }
  body #wrapper #main .vvp-hero-shortcuts a { font-size: 11px; }
}

/* Page sections: gray after the blue entrance, with intentional white groups.
 * The content keeps its native width. Clipped paint extends to both screen edges
 * without a 100vw layout, extra wrappers or horizontal scroll.
 */
/* --vvp-ui-band-space and --vvp-ui-band-gray: vapovor-tokens.css. */
body #wrapper, body #layout-error { background-color: var(--vvp-ui-band-gray) !important; }
body #wrapper #main :is(.vvp-ui-band,.vvp-home-hub > :not(.vvp-home-entry):not(script):not(style):not([hidden]),.vvp-accessory-overview > :is(.vvp-purchase-slot,[data-purchase-reassurance]),.vvp-product-box-contents,.product-middle > :is(.product-legal,.vvp-product-technical,.vvp-product-related,.vvp-product-story,.product-reviews-hook,.vvp-product-use),.page-cms),
body #wrapper #main :is([data-skd-documents-slot]:has(.skd-documents)) {
  position: relative; isolation: isolate;
  margin-block: 0; padding: var(--vvp-band-padding,var(--vvp-ui-band-space) 0);
  border: 0; border-radius: 0; background: transparent; box-shadow: none;
}
body #wrapper #main :is(.vvp-ui-band,.vvp-home-hub > :not(.vvp-home-entry):not(script):not(style):not([hidden]),.vvp-accessory-overview > :is(.vvp-purchase-slot,[data-purchase-reassurance]),.vvp-product-box-contents,.product-middle > :is(.product-legal,.vvp-product-technical,.vvp-product-related,.vvp-product-story,.product-reviews-hook,.vvp-product-use),.page-cms)::before,
body #wrapper #main :is([data-skd-documents-slot]:has(.skd-documents))::before {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: var(--vvp-band-bg,var(--vvp-ui-band-gray)); box-shadow: 0 0 0 100vmax var(--vvp-band-bg,var(--vvp-ui-band-gray));
  clip-path: inset(0 -100vmax);
}
/* Category reading area: one white section, with the title beside readable copy. */
body#manufacturer #main > #manufacturer-description { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.8fr); gap: 20px clamp(32px,5vw,80px); align-items: start; }
body#manufacturer #main > #manufacturer-description > * { grid-column: 2; min-width: 0; max-width: 72ch; margin: 0; }
body#manufacturer #main > #manufacturer-description > h2:first-child { grid-column: 1; grid-row: 1 / span 2; max-width: 20ch; font-size: clamp(26px,2.1vw,32px); font-weight: 500; line-height: 1.25; letter-spacing: 0; text-transform: none; text-wrap: balance; color: var(--vvp-ds-action); }
body#manufacturer #main > #manufacturer-description .vvp-brand-description__content > p { font-size: 15px; line-height: 1.75; color: var(--vvp-ds-muted); }
body#manufacturer #main > #manufacturer-description .vvp-brand-description__content a { color: var(--vvp-ds-action); text-decoration: underline; text-underline-offset: 3px; }
body#manufacturer #main > #manufacturer-description .vvp-brand-description__content a:hover { color: var(--vvp-ds-accentText,var(--vvp-color-accent)); }
body#manufacturer #main > #manufacturer-description .vvp-brand-description__content a:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
@media(max-width:991.98px) {
  body#manufacturer #main > #manufacturer-description { display: block; }
  body#manufacturer #main > #manufacturer-description > h2:first-child { max-width: none; margin-bottom: 20px; }
  body#manufacturer #main > #manufacturer-description > * + * { margin-top: 16px; }
}
@media(max-width:767.98px) {
  body#manufacturer #main > #manufacturer-description .vvp-brand-description__content > p { font-size: 14px; }
}

/* A final editorial section meets the footer without outer listing spacing. */
body.page-category:has(#main > .scc-content:not(:empty):last-child) :is(#wrapper,#main),
body#manufacturer:has(#main > #manufacturer-description:last-child) :is(#wrapper,#main) { padding-bottom: 0; }
/* Gray is the shared canvas, including filters and their results. */
body #wrapper #main :is(.vvp-ui-band--gray,.vvp-home-faq-slot) { --vvp-band-bg: var(--vvp-ui-band-gray); }
/* White is reserved for complete groups, rather than every individual block. */
body #wrapper #main :is(.vvp-ui-band--white,.vvp-home-reference-group,.vvp-home-catalogue-slot,.vvp-home-company-slot),
body #wrapper #main :is(.vvp-home-hub > .skbp),
body #wrapper #main :is(.vvp-home-hub > .avsite) {
  --vvp-band-bg: var(--vvp-ui-panel-bg,#fff);
}
body #wrapper #main .vvp-ui-band--blue {
  --vvp-band-bg: var(--vvp-ds-action);
}
/* The home review block follows the same alignment as the adjacent editorial content. */
body.page-index #wrapper #main .vvp-home-hub > .avsite.vvp-ui-panel { padding: 32px 0 40px; border: 0; border-radius: 0; }
body.page-index #wrapper #main .vvp-home-hub > .avsite.vvp-ui-panel::before { background: var(--vvp-ui-panel-bg,#fff); border-radius: 0; }
/* Commands and results form one functional group on the gray canvas. */
body #wrapper #main :where(.skrupt-brands__control-panel,.skrupt-brands__alphabet,.skrupt-brands__entries,[id="js-product-list-top"],[id="js-product-list"] > .products) {
  min-width: 0; max-width: 100%; margin-block: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none;
}
body #wrapper #main :is(.skrupt-brands__control-panel,[id="js-product-list-top"]) { padding-top: var(--vvp-ui-group-space); }
body #wrapper #main :is(.skrupt-brands__alphabet) { padding-top: var(--vvp-ui-control-gap); }
body #wrapper #main :is(.skrupt-brands__entries,[id="js-product-list"] > .products) { padding-block: var(--vvp-ui-control-gap) var(--vvp-ui-band-space); }
body #wrapper #main :is(.skrupt-brands__hero) { margin-bottom: 0; }
body #wrapper #main .vvp-home-reassurance { --vvp-band-padding: var(--vvp-ui-group-space) 0; }
body #wrapper #main .vvp-accessory-overview > .vvp-purchase-slot { --vvp-band-padding: var(--vvp-ui-group-space) 0 var(--vvp-ui-space-6); }
body #wrapper #main .vvp-accessory-overview > [data-purchase-reassurance] { --vvp-band-padding: var(--vvp-ui-space-6) 0; }
body #wrapper #main .product-middle > .product-legal { --vvp-band-padding: var(--vvp-ui-content-gap) 0 var(--vvp-ui-section-gap); }
body #wrapper #main .product-middle > .vvp-product-section-nav + :is(.vvp-product-box-contents,.vvp-product-technical) { --vvp-band-padding: var(--vvp-ui-section-gap) 0 var(--vvp-ui-band-space); }
/* Product band colors and joins are owned by product-confort.css. */
body #wrapper #main .product-reviews-hook > .avreviews { padding: 0; border: 0; background: transparent; }
body #wrapper #main [data-skd-documents-slot] .skd-documents { padding: 0; border: 0; background: transparent; }

/* Hierarchy follows content roles, independent of page length or item count. */
body #wrapper #main .vvp-page-hero .vvp-category-intro { gap: var(--vvp-ui-content-gap); }
body #wrapper #main .vvp-page-hero .vvp-category-links { margin-top: var(--vvp-ui-section-gap); }
/* An editorial subtitle belongs to the section heading, before its body groups. */

body #wrapper #main .product-features-heading { margin-bottom: var(--vvp-ui-section-gap); }
body #wrapper #main .product-features-heading > :last-child { margin-bottom: 0; }
body #wrapper #main .product-features-main:has(.skf-details-brand) .product-features-heading { margin-bottom: var(--vvp-ui-space-2); }
body #wrapper #main .product-features-main .skf-details-brand { margin-bottom: var(--vvp-ui-section-gap); }
body #wrapper #main .account-dashboard__services { margin-top: var(--vvp-ui-reading-gap); }

/* Secondary context stays available without delaying the primary task. */
.vvp-hero-summary { max-width: 72ch; }
.vvp-hero-disclosure { max-width: 72ch; margin: 8px auto 0; text-align: left; }
.vvp-hero-disclosure > summary { width: fit-content; margin-inline: auto; padding: 6px 0; min-height: 32px; cursor: pointer; font-size: 13px; text-decoration: underline; text-underline-offset: 3px; }
.vvp-hero-disclosure > :not(summary) { margin-top: 16px; font-size: 14px; line-height: 1.7; }
.vvp-hero-disclosure > summary:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
body #wrapper #main .vvp-catalog-header h1 { margin-bottom: 8px; font-size: clamp(28px,2.6vw,42px); line-height: 1.15; }
body #wrapper #main .vvp-hero-summary { margin: 0; line-height: 1.7; }
body #wrapper #main .vvp-hero-disclosure { color: var(--vvp-hero-muted); line-height: 1.7; }
body #wrapper #main .vvp-hero-disclosure > summary { color: #fff; font-weight: 400; line-height: 1.4; }

.vvp-filter-search-row { display: flex; align-items: end; gap: 10px; min-width: 0; }
body #wrapper #main .vvp-filter-search-row > button { width: auto; flex: 0 0 auto; }
.vvp-refinements { min-width: 0; }
.vvp-refinements > summary { min-height: 44px; padding: 10px 0; color: var(--vvp-ds-action); cursor: pointer; font-size: 13px; }
.vvp-refinements > summary:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.vvp-refinements__fields { display: grid; grid-template-columns: repeat(auto-fit,minmax(150px,1fr)); gap: 12px; align-items: end; }
.vvp-refinements__apply { min-height: 48px; }
@media(min-width:768px) { .vvp-refinements > summary { display: none; } }
@media(max-width:767.98px) {
  /* vapovor-context.js closes the refinements on phones unless a filter is active. Until it runs,
     show them closed so the list below does not move up. */
  details[data-vvp-refinements][open]:not([data-vvp-refinements-ready]):not([data-vvp-refinements-active]) > :not(summary) { display: none; }
  .vvp-refinements__fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .vvp-refinements__apply { grid-column: 1 / -1; }
        }

/* Legacy article navigation and preamble keep their original nodes and links. */
.vvp-reader-outline { margin: 0 0 20px; }
.vvp-reader-outline > summary { min-height: 44px; padding: 10px 0; color: var(--vvp-ds-action); font-size: 20px; cursor: pointer; }
.vvp-reader-outline > div { padding: 8px 0 0; }
.vvp-reader-preface { padding: 16px 20px; margin: 0 0 28px; border-left: 2px solid var(--vvp-ui-field-line); background: #fff; font-size: inherit; line-height: 1.65; }
.vvp-reader-preface > div { margin-block: 0 12px; }
body #wrapper #main .vvp-reader-preface :is(p,blockquote) { margin: 0 0 12px; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; }
.vvp-reader-preface > :last-child { margin-bottom: 0; }

/* Reading fields stay close; headings alone separate new subjects. */
body #wrapper #main .page-cms { --vvp-band-padding: var(--vvp-ui-section-gap) 0 var(--vvp-ui-band-space); }
body #wrapper #main .page-cms p { margin-bottom: 12px; }
body #wrapper #main .page-cms h2 { margin-block: var(--vvp-ui-reading-gap) 16px; }
body #wrapper #main .page-cms h3 { margin-block: var(--vvp-ui-section-gap) 12px; }
body #wrapper #main .page-cms h4 { margin-block: 24px 8px; }
body #wrapper #main .page-cms > :is(h2,h3,h4):first-child { margin-top: 0; }
body #wrapper #main .page-cms p:has(> strong:only-child) { margin-top: 24px; margin-bottom: 10px; }
body #wrapper #main .page-cms > :first-child { margin-top: 0; }
/* Native CMS indexes are navigation groups, not one oversized card. */
body.page-cms #wrapper #main > .page-content:not(.page-cms) { padding: var(--vvp-ui-section-gap) 0; border: 0; border-radius: 0; box-shadow: none; background: transparent; }
body.page-cms #wrapper #main > .page-content:not(.page-cms) > p { margin: 0 0 12px; font-size: 22px; font-weight: 500; color: var(--vvp-ds-action); }
body.page-cms #wrapper #main > .page-content:not(.page-cms) > ul { margin: 0; display: grid; gap: 8px 32px; grid-template-columns: repeat(auto-fit,minmax(min(100%,280px),1fr)); }
body.page-cms #wrapper #main > .page-content:not(.page-cms) > ul + p { margin-top: var(--vvp-ui-section-gap); }
body #wrapper #main :is(.vvp-empty-state,.vvp-catalog-empty) { max-width: 680px; margin: 24px auto 40px; padding: 0; border: 0; background: transparent; box-shadow: none; text-align: center; }
body #wrapper #main :is(.vvp-empty-state,.vvp-catalog-empty) :is(h2,h3,p) { margin: 0 0 12px; }
/* The empty-state group already owns its lower margin; avoid three stacked gaps. */
body #wrapper:has(#main :is(.vvp-empty-state,.vvp-catalog-empty)),
body #wrapper:has(#main :is(.skg-directory__empty)),
body #wrapper:has(#main :is(.skd-library__empty)) { padding-bottom: var(--vvp-ui-section-gap); }
body #wrapper #main:has(:is(.vvp-empty-state,.vvp-catalog-empty)),
body #wrapper #main:has(:is(.skg-directory__empty)),
body #wrapper #main:has(:is(.skd-library__empty)) { padding-bottom: 0; }

/* A compact cart proxy always invokes the current native action and its guards. */
.vvp-cart-dock { display: none; }
.vvp-footer-utilities { display: flex; justify-content: center; padding: 8px 24px 16px; }
.vvp-footer-utilities button { min-height: 44px; padding: 8px 0; border: 0; background: transparent; color: inherit; font: inherit; font-size: 12px; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.vvp-footer-utilities button:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
@media(max-width:767.98px) {
  .vvp-cart-dock:not([hidden]) { position: fixed; inset: auto 0 0; z-index: 300; display: grid; grid-template-columns: minmax(0,1fr) minmax(135px,1fr); gap: 16px; align-items: center; padding: 12px 20px calc(12px + env(safe-area-inset-bottom)); border-top: 1px solid var(--vvp-ui-panel-line); background: #fff; box-shadow: 0 -4px 20px #172f3610; }
  .vvp-cart-dock > div { display: grid; grid-template-columns: 1fr; gap: 2px; }
  .vvp-cart-dock span,.vvp-cart-dock a { font-size: 11px; line-height: 1.4; color: var(--vvp-ds-muted); }
  .vvp-cart-dock strong { font-size: 21px; font-weight: 600; line-height: 1.3; color: var(--vvp-ds-ink); }
  .vvp-cart-dock__action { min-height: 48px; padding: 12px 16px; border: 0; border-radius: var(--vvp-ui-control-radius); color: #fff; background: var(--vvp-ds-accentText); font: inherit; font-size: 15px; font-weight: 500; cursor: pointer; }
  .vvp-cart-dock__action:disabled { opacity: .5; cursor: default; }
  .vvp-cart-dock__action:focus-visible { outline: 2px solid var(--vvp-ds-action); outline-offset: 3px; }
  body.vvp-has-cart-dock #footer { padding-bottom: calc(var(--vvp-cart-dock-height,92px) + env(safe-area-inset-bottom)); }
  body:is([data-vvp-action-visible],.vvp-cart-dock-active) :is(.vapochat-launcher):not([aria-expanded="true"]),
body:is([data-vvp-action-visible],.vvp-cart-dock-active) :is(#skrupt-consent-widget):not([aria-expanded="true"]) { visibility: hidden; pointer-events: none; }
}

/* Fullscreen search fills the viewport; modal and drawer keep their configured width. */

body #wrapper #main[data-vvp-page-purpose="catalogue"] [id="js-product-list-top"] { padding-top: 24px; }
body #wrapper #main[data-vvp-page-purpose="catalogue"] [id="js-product-list"] > .products { padding-top: 16px; }
body #wrapper #main:has(.vvp-catalog-empty) :is(.vvp-listing-actions,.vvp-listing-filter-group) { justify-content: center; }
body #wrapper #main:has(.vvp-catalog-empty) .total-products { padding: 0; background: transparent; }
body #wrapper #main .vvp-empty-state :is(h2,h3) { font-size: 24px; font-weight: 500; line-height: 1.3; text-transform: none; text-align: center; }
body #wrapper #main .vvp-empty-state :is(h2,h3)::after { display: none; }
body#pagenotfound #wrapper #main .page-not-found { padding-top: 20px; text-align: center; }
body#pagenotfound #wrapper #main .vvp-error-actions { justify-content: center; margin: 0 0 12px; }

/* One compact keyboard indicator, without the stacked focus shadows. */
body :is(a,button,input,select,textarea,summary,[role="button"],[tabindex]):focus-visible {
  outline: 2px solid currentColor !important; outline-offset: 2px !important; box-shadow: none !important;
}
body :is(button,[role="button"],.btn,.vvp-ui-button,.product-card-add):focus-visible { outline-offset: -3px !important; }
body :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea):focus-visible { outline-width: 1px !important; outline-offset: -1px !important; }
/* Standalone fields: blue border and a 3 px ring (lot 5). Composite fields (search pills, input groups,
 * quantity steppers) keep the rule above and are excluded here, as in the shared field rule. */
body #wrapper #main :is(input.form-control,select.form-control,textarea.form-control):not([type="hidden"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]):not(.input-group *):not(.bootstrap-touchspin *):not([name="qty"]):not([id="quantity_wanted"]):focus-visible { outline: none !important; border-color: var(--vvp-color-action); box-shadow: var(--vvp-focus-ring) !important; }
body :is(a,button,input,select,textarea,summary,[role="button"],[tabindex]):focus:not(:focus-visible) { outline: none !important; box-shadow: none !important; }
/* The visible search wrapper owns focus; its inner input must not draw a second ring. */
body #skruptsearch .vvp-search-prompt { margin: 0; padding: 24px 16px; border: 0; border-radius: 0; background: transparent; box-shadow: none; color: var(--vvp-ds-muted); font: 400 18px/1.5 var(--vvp-font-ui); text-align: center; }
body #skruptsearch[data-vvp-search-prompt-visible] .skrupt-min-chars { display: none; }
body #skruptsearch .vvp-search-prompt[hidden] { display: none; }
body #skruptsearch[data-vvp-search-prompt-visible] #skrupt-mobile-open-filters { display: none !important; }

/* Brand pages use the catalogue introduction and shared editorial columns. */
body#manufacturer #js-product-list-header > :is(#manufacturer-short_description,.vvp-hero-summary) { width: 100%; max-width: 760px; margin: 0 auto !important; font-size: 13px; line-height: 1.5; text-align: center; }
body#manufacturer #js-product-list-header > #manufacturer-short_description :is(p,li),
body#manufacturer #js-product-list-header .vvp-hero-summary { font-size: 13px; line-height: 1.5; }
body#manufacturer #js-product-list-header .vvp-hero-disclosure #manufacturer-short_description :is(p,li) { font-size: 14px; line-height: 1.7; }
body#manufacturer #js-product-list-header #manufacturer-short_description > :first-child { margin-top: 0; }
body#manufacturer #js-product-list-header #manufacturer-short_description > :last-child { margin-bottom: 0; }
body#manufacturer #js-product-list-header :is(#manufacturer-short_description,.vvp-hero-summary) :is(strong,b) { font-weight: 500; }
body#manufacturer #main > #manufacturer-description > h2:first-child { grid-row: 1; }
body#manufacturer #main > #manufacturer-description > h2::before { content: none; }
body#manufacturer #main > #manufacturer-description .vvp-brand-description__content > * { margin-top: 0; }
body#manufacturer #main > #manufacturer-description .vvp-brand-description__content > p { text-align: left; margin-bottom: 16px; }
body#manufacturer #main > #manufacturer-description .vvp-brand-description__content > :last-child { margin-bottom: 0; }

body#manufacturer #wrapper #main #js-product-list-header > :is(#manufacturer-short_description,.vvp-hero-summary),
body#manufacturer #wrapper #main #js-product-list-header > #manufacturer-short_description :is(p,div) { text-align: center !important; }
body#manufacturer #wrapper #main:has(> #manufacturer-description:last-child) { padding-bottom: 0 !important; }

/* A single unfiltered result needs no refinement controls. Applied filters
 * and error recovery retain every native way back to the full listing. */
body:has(#js-product-list-top[data-listing-total="1"]):has([data-skf-root][data-skf-selected-count="0"]):not(:has([data-skf-root] .skf-error)) :is(.vvp-catalog-tools,[data-skf-dock],[data-skf-open],#js-product-list-top .filter-button,#js-product-list-top .sort-by-row) { display: none !important; }
body:has(#js-product-list-top[data-listing-total="1"]):has([data-skf-root][data-skf-selected-count="0"]):not(:has([data-skf-root] .skf-error)) { --skf-dock-clearance: 0px; --skf-dock-height: 0px; --skf-dock-bottom: 8px; padding-bottom: 0; }

body:has(#js-product-list-top[data-listing-total="1"]):has([data-skf-root][data-skf-selected-count="0"]):not(:has([data-skf-root] .skf-error)) [data-skf-inline-toolbar] { min-height: 42px; }

body#manufacturer #wrapper #main #js-product-list-header > :is(#manufacturer-short_description,.vvp-hero-summary) { margin-top: 12px !important; }

/* The expanded brand introduction is a readable panel, not a wider hero. */
body#manufacturer #wrapper #main #js-product-list-header .vvp-hero-disclosure { width: 100%; max-width: 800px; margin: 10px auto 0; }
body#manufacturer #wrapper #main #js-product-list-header .vvp-hero-disclosure > summary { display: flex; align-items: center; justify-content: center; gap: 8px; width: fit-content; min-height: 40px; padding: 8px 10px; margin-inline: auto; list-style: none; text-decoration: none; border-radius: 8px; }
body#manufacturer #wrapper #main #js-product-list-header .vvp-hero-disclosure > summary::-webkit-details-marker { display: none; }
body#manufacturer #wrapper #main #js-product-list-header .vvp-hero-disclosure > summary > span { text-decoration: underline; text-underline-offset: 3px; }
body#manufacturer #wrapper #main #js-product-list-header .vvp-hero-disclosure > summary > svg { flex: 0 0 14px; }
body#manufacturer #wrapper #main #js-product-list-header .vvp-hero-disclosure .vvp-brand-disclosure__open { display: none; }
body#manufacturer #wrapper #main #js-product-list-header .vvp-hero-disclosure[open] .vvp-brand-disclosure__closed { display: none; }
body#manufacturer #wrapper #main #js-product-list-header .vvp-hero-disclosure[open] .vvp-brand-disclosure__open { display: inline; }
body#manufacturer #wrapper #main #js-product-list-header .vvp-hero-disclosure[open] > summary > svg { transform: rotate(180deg); }
body#manufacturer #wrapper #main #js-product-list-header .vvp-hero-disclosure #manufacturer-short_description { width: 100%; max-width: 100%; margin: 16px 0 0 !important; padding: 28px 32px; color: var(--vvp-ds-ink); text-align: left; background: var(--vvp-ui-panel-bg,#fff); border: 1px solid var(--vvp-ui-panel-line); border-radius: var(--vvp-ds-radius-panel); box-sizing: border-box; }
body#manufacturer #wrapper #main #js-product-list-header .vvp-hero-disclosure #manufacturer-short_description :is(p,li,span,strong,b,h2,h3,h4) { color: var(--vvp-ds-ink) !important; text-align: left !important; }
body#manufacturer #wrapper #main #js-product-list-header .vvp-hero-disclosure #manufacturer-short_description p { margin: 0 0 16px !important; font-size: 14px; line-height: 1.75; }
body#manufacturer #wrapper #main #js-product-list-header .vvp-hero-disclosure #manufacturer-short_description :is(strong,b) { font-weight: 600; }
body#manufacturer #wrapper #main #js-product-list-header .vvp-hero-disclosure #manufacturer-short_description a { color: var(--vvp-ds-action) !important; text-decoration: underline; text-underline-offset: 3px; }
body#manufacturer #wrapper #main #js-product-list-header .vvp-hero-disclosure #manufacturer-short_description > :last-child { margin-bottom: 0 !important; }
@media(max-width:767.98px) {
  body#manufacturer #wrapper #main #js-product-list-header .vvp-hero-disclosure #manufacturer-short_description { padding: 20px; border-radius: 16px; }
}

/* Do not reserve grid rows for an absent pager or the legacy float clearfix. */
body #wrapper #main #js-product-list > .products > .pagination:not(:has(.page-list)) { display: none; }
body #wrapper #main #js-product-list > .products.row::after { content: none; display: none; }
/* When a category ends with its catalogue, keep only the wrapper footer gap. */
body.page-category:has(#main > .vvp-category-layout:last-child) #wrapper #main { padding-bottom: 0 !important; }
body.page-category:has(#main > .vvp-category-layout:last-child) #wrapper #main #js-product-list > .products { padding-bottom: 0; }

/* Shared, opaque storefront notices remain readable on every page surface. */
/* Notice colours (--vvp-notice-*): vapovor-tokens.css. */
body :where(.alert,.ps-alert-error > .item,.ps-alert-success > .item) { --vvp-notice-bg: var(--vvp-notice-info-bg); --vvp-notice-line: var(--vvp-notice-info-line); --vvp-notice-text: var(--vvp-notice-info-text); }
body :is(.alert-success,.ps-alert-success > .item) { --vvp-notice-bg: var(--vvp-notice-success-bg); --vvp-notice-line: var(--vvp-notice-success-line); --vvp-notice-text: var(--vvp-notice-success-text); }
body :is(.alert-danger,.ps-alert-error > .item) { --vvp-notice-bg: var(--vvp-notice-error-bg); --vvp-notice-line: var(--vvp-notice-error-line); --vvp-notice-text: var(--vvp-notice-error-text); }
body :is(.alert-warning) { --vvp-notice-bg: var(--vvp-notice-warning-bg); --vvp-notice-line: var(--vvp-notice-warning-line); --vvp-notice-text: var(--vvp-notice-warning-text); }
body :is(.alert,.ps-alert-error > .item,.ps-alert-success > .item):not(:where(.help-block *,.form-errors *)) { color: var(--vvp-notice-text) !important; background: var(--vvp-notice-bg) !important; border: 1px solid var(--vvp-notice-line) !important; border-radius: var(--vvp-ui-info-radius,12px); padding: 16px 20px; box-shadow: none; font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
body :is(.alert) :is(p,li,small,strong,span) { color: inherit; }
body :is(.alert) a:not(.btn):not([role="button"]) { color: inherit !important; text-decoration: underline; text-underline-offset: 3px; }
body :is(.alert) > p { margin: 0; }
body :is(.alert) > p + p { margin-top: 8px; }
body .alert.alert-dismissible { padding-right: 48px; }
body :is(.help-block,.form-errors) .alert-danger { color: var(--vvp-notice-error-text); }
body #notifications { position: relative; z-index: 1; }
body #notifications:not(:has(.alert,[role="alert"],[role="status"])) { display: none; }
body #notifications.vvp-page-notifications { margin: 0 0 24px; }
body #notifications.vvp-page-notifications > .container { width: 100%; max-width: none; margin: 0; padding: 0; gap: 12px; }
body #wrapper #main .skrupt-rgpd > #notifications.vvp-page-notifications { margin: 0; }
body .skrupt-rgpd__notice[data-vvp-duplicate-notice] { display: none !important; }
@media(max-width:767.98px) {
  body :is(.alert,.ps-alert-error > .item,.ps-alert-success > .item):not(:where(.help-block *,.form-errors *)) { padding: 14px 16px; }
  body .alert.alert-dismissible { padding-right: 44px; }
}

/* Native password notices retain their messages and icons, with the shared palette. */
body :is(.ps-alert-error,.ps-alert-success) { padding: 0; margin: 0; list-style: none; }
body :is(.ps-alert-error,.ps-alert-success) > .item { gap: 12px; align-items: flex-start; }
body :is(.ps-alert-error,.ps-alert-success) > .item > i { flex: 0 0 24px; padding: 0; border: 0; background: transparent; }
body :is(.ps-alert-error,.ps-alert-success) > .item > i svg { width: 24px; height: 24px; background: transparent; }
body :is(.ps-alert-error,.ps-alert-success) > .item > i svg path { fill: currentColor; }
body :is(.ps-alert-error,.ps-alert-success) > .item > p { flex: 1; min-width: 0; margin: 0; padding: 0; color: inherit; background: transparent; }

/* Header and product-card icons are inline SVG drawn from Material Icons: same 1em box and colour as the font icon,
   but visible before the icon font arrives. */
svg.material-icons { width: 1em; height: 1em; fill: currentColor; }
