/**
 * Sixten B2B — child theme of lnwks (Hummingbird base), structure taken from the mefiat theme.
 * DA: white, black, #F7F7F7 and #DADADA greys; brand red #E4032E (primary buttons, badges, accents).
 * Montserrat everywhere; titles in caps, slanted (skewX -10deg); buttons in Montserrat caps.
 * Header (left column from 1200px, top bar below) on black, white logo.
 *
 * lnwks' theme.css is written in cascade layers (@layer ...), so every rule
 * in this unlayered file wins over it whatever the selector specificity.
 */

/* ---------- Fonts (self-hosted, latin subset, variable) ---------- */
@font-face{font-family:"Montserrat";font-style:normal;font-weight:100 900;font-display:swap;src:url("../fonts/montserrat-latin.woff2") format("woff2")}
@font-face{font-family:"Montserrat";font-style:italic;font-weight:100 900;font-display:swap;src:url("../fonts/montserrat-latin-italic.woff2") format("woff2")}

/* ---------- Brand tokens ---------- */
:root{
  /* Primary actions (buttons, checkboxes, active states): Sixten red, black on hover (white text on red: 4.8:1) */
  --rg-brand:#e4032e;        --rg-brand-rgb:228,3,46;
  --rg-brand-hover:#000;
  /* Sixten red: badges, selection, accents */
  --sx-red:#e4032e;          --sx-red-rgb:228,3,46;
  --sx-red-dark:#b80225;
  /* Montserrat everywhere: titles (caps, slanted), running text, labels, buttons, menu, prices */
  --rg-font:"Montserrat",Arial,sans-serif;
  --rg-text-font:"Montserrat",Arial,sans-serif;
  --rg-caps:"Montserrat",Arial,sans-serif;
  --rg-radius:0;
  --rg-pill:0;
}

/*
 * Two color schemes, chosen by data-bs-theme (layouts/layout-both-columns.tpl):
 * - light : everything (pages, header, top bar, footer), on white;
 * - dark  : only the black bands of some lnwkspages blocks (and pages listed in $rgDarkPages).
 * Every rule below uses these tokens, so a nested data-bs-theme (top bar, footer) gets its own scheme.
 */
:root,[data-bs-theme=light]{
  color-scheme:light;
  --rg-bg:#ffffff;           --rg-bg-rgb:255,255,255;
  --rg-surface:#f7f7f7;      --rg-surface-rgb:247,247,247;
  --rg-surface-2:#ebebeb;    --rg-surface-2-rgb:235,235,235;
  --rg-surface-3:#dadada;
  --rg-text:#000000;         --rg-text-rgb:0,0,0;
  --rg-text-2:#4d4d4d;       --rg-text-2-rgb:77,77,77;
  --rg-text-3:#707070;       --rg-text-3-rgb:112,112,112;
  --rg-text-soft:#262626;
  --rg-emphasis:#000;
  --rg-border:#dadada;
  --rg-border-strong:rgba(0,0,0,.35);
  --rg-overlay:rgba(0,0,0,.04);
  --rg-stripe:rgba(0,0,0,.025);
  /* Accent text and links: black on white */
  --rg-brand-2:#000000;      --rg-brand-2-rgb:0,0,0;
  --rg-danger:#c0392b;       --rg-danger-rgb:192,57,43;
}
/* The black bands of the lnwkspages blocks (tones "brand" and "black", cta_banner "brand") take the dark tokens too */
[data-bs-theme=dark],.lnwks-rich-text--tone-brand,.lnwks-rich-text--tone-black,.lnwks-features--tone-brand,.lnwks-features--tone-black,.lnwks-cta--brand{
  color-scheme:dark;
  --rg-bg:#000000;           --rg-bg-rgb:0,0,0;
  --rg-surface:#111111;      --rg-surface-rgb:17,17,17;
  --rg-surface-2:#1c1c1c;    --rg-surface-2-rgb:28,28,28;
  --rg-surface-3:#262626;
  --rg-text:#ffffff;         --rg-text-rgb:255,255,255;
  --rg-text-2:#b3b3b3;       --rg-text-2-rgb:179,179,179;
  --rg-text-3:#8c8c8c;       --rg-text-3-rgb:140,140,140;
  --rg-text-soft:#e0e0e0;
  --rg-emphasis:#fff;
  --rg-border:rgba(255,255,255,.14);
  --rg-border-strong:rgba(255,255,255,.35);
  --rg-overlay:rgba(255,255,255,.06);
  --rg-stripe:rgba(255,255,255,.03);
  /* On black: accents and links in white (the red is too dark for text on black) */
  --rg-brand-2:#ffffff;      --rg-brand-2-rgb:255,255,255;
  --rg-danger:#ff8a7a;       --rg-danger-rgb:255,138,122;
}

/* ---------- Bootstrap tokens, from the scheme tokens ---------- */
:root,[data-bs-theme=dark],.lnwks-rich-text--tone-brand,.lnwks-rich-text--tone-black,.lnwks-features--tone-brand,.lnwks-features--tone-black,.lnwks-cta--brand,[data-bs-theme=light]{
  --bs-primary:var(--rg-brand);
  --bs-primary-rgb:var(--rg-brand-rgb);
  --bs-success:var(--rg-brand-2);
  --bs-success-rgb:var(--rg-brand-2-rgb);
  --bs-danger:var(--rg-danger);
  --bs-danger-rgb:var(--rg-danger-rgb);
  --bs-dark:#000;
  --bs-dark-rgb:0,0,0;
  --bs-primary-text-emphasis:var(--rg-brand-2);
  --bs-primary-bg-subtle:var(--rg-surface);
  --bs-primary-border-subtle:var(--rg-border-strong);
  --bs-success-text-emphasis:var(--rg-brand-2);
  --bs-success-bg-subtle:var(--rg-surface);
  --bs-success-border-subtle:var(--rg-border-strong);
  --bs-danger-text-emphasis:var(--rg-danger);
  --bs-danger-bg-subtle:rgba(var(--rg-danger-rgb),.08);
  --bs-danger-border-subtle:rgba(var(--rg-danger-rgb),.4);

  --bs-body-font-family:var(--rg-text-font);
  --bs-body-font-weight:500;
  --bs-body-font-size:1rem;
  --bs-body-line-height:1.65;
  --bs-body-color:var(--rg-text);
  --bs-body-color-rgb:var(--rg-text-rgb);
  --bs-body-bg:var(--rg-bg);
  --bs-body-bg-rgb:var(--rg-bg-rgb);
  --bs-emphasis-color:var(--rg-emphasis);
  --bs-secondary-color:var(--rg-text-2);
  --bs-secondary-color-rgb:var(--rg-text-2-rgb);
  --bs-secondary-bg:var(--rg-surface-2);
  --bs-secondary-bg-rgb:var(--rg-surface-2-rgb);
  --bs-tertiary-color:var(--rg-text-3);
  --bs-tertiary-color-rgb:var(--rg-text-3-rgb);
  --bs-tertiary-bg:var(--rg-surface);
  --bs-tertiary-bg-rgb:var(--rg-surface-rgb);
  --bs-heading-color:var(--rg-text);
  --bs-link-color:var(--rg-brand-2);
  --bs-link-color-rgb:var(--rg-brand-2-rgb);
  --bs-link-hover-color:var(--rg-text);
  --bs-link-hover-color-rgb:var(--rg-text-rgb);
  --bs-border-color:var(--rg-border);
  --bs-border-color-translucent:var(--rg-border);
  --bs-border-radius:var(--rg-radius);
  --bs-border-radius-sm:0;
  --bs-border-radius-lg:0;
  --bs-focus-ring-color:rgba(var(--rg-brand-2-rgb),.4);
  --bs-form-valid-color:var(--rg-brand-2);
  --bs-form-valid-border-color:var(--rg-brand-2);
  --bs-form-invalid-color:var(--rg-danger);
  --bs-form-invalid-border-color:var(--rg-danger);
}

::selection{background:var(--sx-red);color:#fff}

body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}

/* ---------- Typography ---------- */
h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{
  font-family:var(--rg-font);font-weight:800;text-transform:uppercase;letter-spacing:0;line-height:1.1;
  /* Sixten: slanted caps titles */
  display:inline-block;transform:skewX(-10deg)
}
/* Real headings are blocks, so that two headings in a row (h2 then h3 in a CMS page) or a heading and the next
   sentence never share a line. skewX only shifts along x by the distance to the vertical centre, so the slant looks
   the same on a full-width block and text-align still centres it; .h1-.h6 on inline elements stay inline-block */
h1,h2,h3,h4,h5,h6{display:block}
/* No italic accent in a title: an accent in a title is the same caps */
h1 em,h2 em,h3 em,.h1 em,.h2 em{font-style:normal;color:inherit}
.page-title,.page-content h1{font-size:clamp(2rem,4vw,3rem)}

/* Small caps labels, like the landing page eyebrows */
.rg-eyebrow,
.footer-block__title,
.breadcrumb,
.badge,
.product-flags .badge,
.nav-tabs .nav-link,
.form-label,
.main-menu .menu__link,
.header-top a,
.header-block__title{
  font-family:var(--rg-caps);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:600
}
.rg-eyebrow{font-size:.75rem;letter-spacing:.05em;color:var(--rg-text-2);line-height:1.4;margin:0}
.breadcrumb,.form-label{font-size:.75rem}
.badge{letter-spacing:.06em;font-weight:600}

a{text-underline-offset:.2em}

/* ---------- Buttons: square, black, small caps ---------- */
.btn{
  --bs-btn-font-family:var(--rg-caps);
  --bs-btn-font-weight:700;
  --bs-btn-font-size:.8125rem;
  --bs-btn-padding-x:1.625rem;
  --bs-btn-padding-y:.875rem;
  --bs-btn-border-radius:var(--rg-pill);
  --bs-btn-focus-box-shadow:0 0 0 .2rem rgba(var(--sx-red-rgb),.6);
  letter-spacing:.08em;
  text-transform:uppercase;
  line-height:1.4
}
.btn-sm{--bs-btn-padding-x:1.125rem;--bs-btn-padding-y:.5rem;--bs-btn-font-size:.75rem}
.btn-lg{--bs-btn-padding-x:2rem;--bs-btn-padding-y:1rem;--bs-btn-font-size:.8125rem}
.btn-primary{
  --bs-btn-color:#fff;--bs-btn-bg:var(--rg-brand);--bs-btn-border-color:var(--rg-brand);
  --bs-btn-hover-color:#fff;--bs-btn-hover-bg:var(--rg-brand-hover);--bs-btn-hover-border-color:var(--rg-brand-hover);
  --bs-btn-active-color:#fff;--bs-btn-active-bg:var(--rg-brand-hover);--bs-btn-active-border-color:var(--rg-brand-hover);
  --bs-btn-disabled-color:var(--rg-text-3);--bs-btn-disabled-bg:var(--rg-surface-3);--bs-btn-disabled-border-color:var(--rg-surface-3);--bs-btn-disabled-opacity:1
}
[data-bs-theme=dark] .btn-primary,.lnwks-cta--brand .btn-primary,.lnwks-rich-text--tone-brand .btn-primary,.lnwks-features--tone-brand .btn-primary{
  --bs-btn-color:#000;--bs-btn-bg:#fff;--bs-btn-border-color:#fff;
  --bs-btn-hover-color:#fff;--bs-btn-hover-bg:var(--sx-red);--bs-btn-hover-border-color:var(--sx-red);
  --bs-btn-active-color:#fff;--bs-btn-active-bg:var(--sx-red);--bs-btn-active-border-color:var(--sx-red)
}
.btn-outline-primary,
.btn-outline-secondary,
.btn-outline-dark,
.btn-outline-light{
  --bs-btn-color:var(--rg-text);--bs-btn-border-color:var(--rg-border-strong);
  --bs-btn-hover-color:var(--rg-text);--bs-btn-hover-bg:transparent;--bs-btn-hover-border-color:var(--rg-text);
  --bs-btn-active-color:var(--rg-text);--bs-btn-active-bg:var(--rg-overlay);--bs-btn-active-border-color:var(--rg-text);
  --bs-btn-disabled-color:var(--rg-text-3);--bs-btn-disabled-border-color:var(--rg-border)
}
.btn-secondary,.btn-dark{
  --bs-btn-color:var(--rg-text);--bs-btn-bg:var(--rg-surface-2);--bs-btn-border-color:var(--rg-surface-2);
  --bs-btn-hover-color:var(--rg-text);--bs-btn-hover-bg:var(--rg-surface-3);--bs-btn-hover-border-color:var(--rg-surface-3);
  --bs-btn-active-color:var(--rg-text);--bs-btn-active-bg:var(--rg-surface-3);--bs-btn-active-border-color:var(--rg-surface-3)
}
.btn-link{--bs-btn-color:var(--rg-brand-2);--bs-btn-hover-color:var(--rg-text);text-transform:none;letter-spacing:0;font-family:var(--rg-text-font);font-size:1rem}
[data-bs-theme=dark] .btn-close{filter:invert(1) grayscale(100%) brightness(200%)}

/* ---------- Forms ---------- */
/* Every single-line field the same height (48px): text, email, password (with its show button), select, date */
.form-control:not(textarea):not([type=file]),.form-select{height:3rem;padding-block:0;line-height:3rem}
.form-control[type=file]{height:3rem;line-height:2rem}
.input-group>.btn{height:3rem}
.form-control::placeholder{color:var(--rg-text-3);opacity:1}
.form-control,.form-select{
  background-color:transparent;border-color:var(--rg-border-strong);color:var(--rg-text);border-radius:var(--rg-radius)
}
.form-control::placeholder{color:var(--rg-text-3)}
.form-control:focus,.form-select:focus,.form-check-input:focus{
  background-color:transparent;border-color:var(--rg-brand);box-shadow:0 0 0 .2rem rgba(var(--rg-brand-rgb),.25);color:var(--rg-text)
}
.form-select option{background:var(--rg-surface);color:var(--rg-text)}
.form-check-input{background-color:transparent;border-color:var(--rg-border-strong)}
.form-check-input:checked,
.form-check-input[type=checkbox]:indeterminate{background-color:var(--rg-brand);border-color:var(--rg-brand)}
.form-range::-webkit-slider-thumb{background-color:var(--rg-brand-2)}
.form-range::-moz-range-thumb{background-color:var(--rg-brand-2)}
.input-group-text{background:var(--rg-surface);border-color:var(--rg-border-strong);color:var(--rg-text-2)}
/* Input groups: the rounded .form-control above (unlayered) beats Bootstrap's joined corners (layered), restore them:
   only the outer corners are rounded, with the field radius (no pill button glued to a rounded field) */
.input-group>.form-control:not(:last-child),.input-group>.form-select:not(:last-child),.input-group>.btn:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}
.input-group>.form-control:not(:first-child),.input-group>.form-select:not(:first-child),.input-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}
.input-group>.btn:first-child{border-top-left-radius:var(--rg-radius);border-bottom-left-radius:var(--rg-radius)}
.input-group>.btn:last-child{border-top-right-radius:var(--rg-radius);border-bottom-right-radius:var(--rg-radius)}
.input-group>.btn{--bs-btn-padding-x:1.125rem}
/* Show / hide password: part of the field (same border, transparent), not a green button */
.password-field>[data-ps-action=toggle-password]{--bs-btn-bg:transparent;--bs-btn-border-color:var(--rg-border-strong);--bs-btn-color:var(--rg-text-2);--bs-btn-hover-bg:transparent;--bs-btn-hover-border-color:var(--rg-border-strong);--bs-btn-hover-color:var(--rg-text);--bs-btn-active-bg:transparent;--bs-btn-active-border-color:var(--rg-border-strong);--bs-btn-active-color:var(--rg-text);--bs-btn-padding-x:.875rem;border-left:0}
.password-field>.form-control:not(:last-child){border-right:0}
.password-field>.form-control:focus{box-shadow:none}
.password-field>.form-control:focus~[data-ps-action=toggle-password]{border-color:var(--rg-brand)}
.password-field [data-ps-action=toggle-password] .material-icons{font-size:1.25rem}
/* Browser autofill paints the field light blue (and not the button next to it): keep the page background and text */
.form-control:-webkit-autofill,.form-control:-webkit-autofill:hover,.form-control:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 1000px var(--rg-bg) inset;box-shadow:0 0 0 1000px var(--rg-bg) inset;-webkit-text-fill-color:var(--rg-text);caret-color:var(--rg-text);transition:background-color 9999s ease-out}
.nav-link:focus-visible,.btn:focus-visible,a:focus-visible{outline:2px solid var(--rg-brand-2);outline-offset:3px;box-shadow:none}

/* ---------- Bootstrap components (blue values compiled into theme.css) ---------- */
.nav-pills{--bs-nav-pills-link-active-bg:var(--rg-brand)}
.nav-tabs{--bs-nav-tabs-link-active-color:var(--rg-text);--bs-nav-tabs-link-active-bg:transparent;--bs-nav-tabs-link-active-border-color:var(--rg-border) var(--rg-border) var(--rg-bg)}
.nav-tabs .nav-link{font-size:.75rem;color:var(--rg-text-2)}
.dropdown-menu{
  --bs-dropdown-bg:var(--rg-surface);--bs-dropdown-border-color:var(--rg-border);
  --bs-dropdown-link-color:var(--rg-text);--bs-dropdown-link-hover-color:var(--rg-text);--bs-dropdown-link-hover-bg:var(--rg-surface-2);
  --bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:var(--rg-brand)
}
.list-group{--bs-list-group-bg:transparent;--bs-list-group-active-bg:var(--rg-brand);--bs-list-group-active-border-color:var(--rg-brand)}
.pagination{
  --bs-pagination-color:var(--rg-text-2);--bs-pagination-hover-color:var(--rg-text);--bs-pagination-hover-bg:var(--rg-surface-2);
  --bs-pagination-focus-color:var(--rg-text);--bs-pagination-focus-box-shadow:0 0 0 .2rem rgba(var(--rg-brand-rgb),.35);
  --bs-pagination-active-bg:var(--rg-brand);--bs-pagination-active-border-color:var(--rg-brand);
  font-family:var(--rg-caps);font-size:.8125rem
}
.accordion{
  --bs-accordion-bg:transparent;--bs-accordion-border-color:var(--rg-border);
  --bs-accordion-active-color:var(--rg-text);--bs-accordion-active-bg:var(--rg-surface);
  --bs-accordion-btn-focus-box-shadow:0 0 0 .2rem rgba(var(--rg-brand-rgb),.3)
}
.progress,.progress-stacked{--bs-progress-bg:var(--rg-surface-2);--bs-progress-bar-bg:var(--rg-brand-2)}
.card{--bs-card-bg:var(--rg-surface);--bs-card-border-color:var(--rg-border);--bs-card-cap-bg:transparent}
.modal{--bs-modal-bg:var(--rg-bg);--bs-modal-border-color:var(--rg-border);--bs-modal-header-border-color:var(--rg-border);--bs-modal-footer-border-color:var(--rg-border)}
.offcanvas,.offcanvas-lg,.offcanvas-md,.offcanvas-sm{--bs-offcanvas-bg:var(--rg-bg);--bs-offcanvas-border-color:var(--rg-border)}
.toast{--bs-toast-bg:var(--rg-surface);--bs-toast-border-color:var(--rg-border)}
.alert{--bs-alert-border-radius:var(--rg-radius)}
.table{--bs-table-bg:transparent;--bs-table-border-color:var(--rg-border);--bs-table-striped-bg:var(--rg-stripe)}
.carousel-indicators [data-bs-target]{background-color:var(--rg-text)}
.carousel-control-next-icon,.carousel-control-prev-icon{background-color:rgba(11,11,11,.7);color:var(--rg-text)}
.noui-tooltip{background:var(--rg-surface);border-color:var(--rg-border);color:var(--rg-text)}
.noUi-connect{background:var(--rg-brand-2)}
.material-icons{color:inherit}

/* ---------- Full width ---------- */
/* Every container spans the whole screen with a proportional side margin (5% of the width, 16px minimum on
   mobile): header, sections and footer, no centered max-width */
.container,.container-sm,.container-md,.container-lg,.container-xl,.container-xxl,.container-fluid{max-width:none;padding-inline:max(1rem,5vw)}
/* Module product blocks (featured products, cross-selling…) open their own container (components/module-products.tpl):
   inside a page container (cart, order confirmation) it doubled the side margin */
.container .module-products.container,.row .module-products.container{padding-inline:0}

/* ---------- Page transitions (View Transitions API, cross-document) ---------- */
/* A short cross-fade between two pages of the shop, CSS only (no JS, nothing hidden at load: no PageSpeed cost).
   The header has its own name so it stays in place instead of fading with the page. Browsers without support
   (Firefox for now) navigate as usual; none with reduced motion */
@view-transition{navigation:auto}
#header{view-transition-name:rg-header}
::view-transition-old(root),::view-transition-new(root){animation-duration:.25s}
::view-transition-group(rg-header){animation-duration:.25s}
@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}

/* ---------- Header ---------- */
/* The translucent background is on ::before: a backdrop-filter on .header itself would make it the containing
   block of the fixed mobile menu (offcanvas), which then shows only inside the header height */
.header{background:transparent}
/* Only the header-bottom row sticks: the header stays sticky but its top is offset by the top bar height (30px,
   shown from md), so the top bar scrolls away with the page */
@media (max-width:767.98px){.header-top{display:none}}
@media (min-width:768px){.header{top:-34px}}
.header::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(var(--rg-bg-rgb),.96);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:opacity .3s}
/* Every header text follows the header scheme (dark: white on black) */
.header,.header a,.header .header-block__action-btn,.header .header-block__title,.header .menu-toggle,.header .btn-close{color:var(--rg-text)}
/* Top bar: opaque, darker than the header row */
.header-top{position:relative;background:var(--rg-bg);border-bottom:1px solid var(--rg-border);font-size:.75rem;padding:0;max-height:34px}
.header-top>.container-md,.header-top .row,.header-top__left,.header-top__right{height:33px}
.header-top .row>*{display:flex;align-items:center}
.header-top .header-block__action-btn,.header-top .dropdown-toggle,.header-top .form-select{padding-block:0;line-height:1}
.header-top .header-block__icon{font-size:1rem}
.header-top .header-block__badge{height:1.125rem;min-width:1.125rem;font-size:.6875rem}
.header-top a,.header-top .dropdown-toggle{color:var(--rg-text);font-size:.75rem;letter-spacing:.1em}
.header-top a:hover{color:var(--rg-brand-2)}
/* Top bar links (EN, EUR, Sign in): muted, light on hover */
.header-top a.header-block__action-btn,.header-top .dropdown-toggle{color:var(--rg-text-2);transition:color .2s}
.header-top .header-block__action-btn:hover,.header-top .header-block__action-btn:focus-visible,.header-top .header-block__action-btn[aria-expanded=true]{color:var(--rg-text)}
/* Sign in: the block and its link are flex items centered in the 29px bar */
.header-top__right>*,.header-top .header-block,.header-top .header-block__action-btn{display:flex;align-items:center}
.header-top .header-block__action-btn{gap:.375rem;height:100%}
.header-top .header-block__title{line-height:1;color:inherit}
/* No person icon once the label shows ("Sign in", or the customer's initials then name), from 768px */
@media (min-width:768px){.header-top .header-block__action-btn .header-block__icon{display:none}}
/* Header-bottom row: 64px on mobile; from 768px 80px (logo 44px high), 60px once stuck at the top (logo 36px).
   The header shrinks inside the page flow: its margin-bottom grows by the same 20px at the same pace, so the content
   below never jumps. --rg-header-h = full header height (top bar 30px + row), used to overlap the hero */
:root{--rg-header-h:64px;--rg-header-shrink:0px}
@media (min-width:768px){:root{--rg-header-h:114px}.rg-header-stuck{--rg-header-shrink:20px}}
.header{margin-bottom:var(--rg-header-shrink);transition:margin-bottom .3s ease}
.header-bottom{height:64px;padding:0;border-bottom:1px solid var(--rg-border);transition:height .3s ease}
@media (min-width:768px){.header-bottom{height:calc(80px - var(--rg-header-shrink))}}
.header-bottom__container,.header-bottom__row{height:100%}
.header-bottom__logo picture{display:block}
.header-bottom .logo{display:block;width:auto;height:2.75rem;max-height:2.75rem;max-width:none;transition:height .3s ease,max-height .3s ease}
@media (min-width:768px){.rg-header-stuck .header-bottom .logo{height:2.25rem;max-height:2.25rem}}
.header-block__action-btn{color:var(--rg-text)}
.header-block__action-btn:hover{color:var(--rg-brand-2)}
.header-block__icon{color:inherit}
.header-block__badge{background:var(--sx-red);color:#fff;font-family:var(--rg-caps);font-weight:600}
/* Main menu (desktop and mobile): Montserrat caps */
.ps-mainmenu__tree-link,.ps-mainmenu--mobile .menu__link{font-family:var(--rg-caps);font-size:.9375rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;text-decoration:none}
.ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree>li .ps-mainmenu__tree-link,.ps-mainmenu--mobile .menu__link{color:var(--rg-text)}
/* Hover: same color, underlined */
.ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree>li .ps-mainmenu__tree-link:hover,.ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree>li .ps-mainmenu__tree-link:active,.ps-mainmenu--mobile .menu__link:hover{color:var(--rg-text);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.5em}
.ps-mainmenu--mobile .menu__link{font-size:1rem;padding:.875rem 1.5rem}
/* No focus frame on click (Hummingbird outlines :focus in the link color); keyboard focus keeps a discreet
   underline-style ring for accessibility */
.header a:focus,.header button:focus,.ps-mainmenu--mobile a:focus,.ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree>li .ps-mainmenu__tree-link:focus,.ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree>li .ps-mainmenu__tree-dropdown-toggle:focus{outline:none;box-shadow:none}
.header a:focus-visible,.header button:focus-visible,.ps-mainmenu--mobile a:focus-visible,.ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree>li .ps-mainmenu__tree-link:focus-visible{outline:1px solid rgba(var(--rg-text-rgb),.5);outline-offset:4px;border-radius:2px}
/* Language and currency switchers (top bar, in place of "Contact us"): compact dropdowns, current ISO code + chevron */
.header-top__left{gap:1.5rem}
.header-top,.header-top .row,.header-top__left{overflow:visible}
.rg-switch__toggle{display:inline-flex;align-items:center;gap:.125rem;padding:0;border:0;background:none;color:var(--rg-text-2);font-family:var(--rg-caps);font-size:.75rem;font-weight:600;letter-spacing:.1em;line-height:1;cursor:pointer;transition:color .2s}
.rg-switch__toggle:hover,.rg-switch__toggle[aria-expanded=true]{color:var(--rg-text)}
.rg-switch__toggle:hover .rg-switch__current,.rg-switch__toggle[aria-expanded=true] .rg-switch__current{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.4em}
.rg-switch__chevron{font-size:1rem;transition:transform .2s}
.rg-switch__toggle[aria-expanded=true] .rg-switch__chevron{transform:rotate(180deg)}
.rg-switch__toggle:focus{outline:none}
.rg-switch__toggle:focus-visible{outline:1px solid rgba(var(--rg-text-rgb),.5);outline-offset:4px;border-radius:2px}
.rg-switch__menu{--bs-dropdown-min-width:11rem;--bs-dropdown-padding-y:.375rem;--bs-dropdown-item-padding-y:.5rem;--bs-dropdown-item-padding-x:1rem;--bs-dropdown-font-size:.875rem;--bs-dropdown-border-radius:var(--rg-radius);margin-top:.5rem!important;box-shadow:0 12px 32px rgba(0,0,0,.12)}
/* ".header-top a" (caps, letter-spaced) must not reach the menu items */
.rg-switch__item,.header-top a.rg-switch__item{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;font-family:var(--rg-text-font);font-size:.875rem;letter-spacing:0;text-transform:none;color:var(--rg-text);text-decoration:none}
.header-top a.rg-switch__item:hover{color:var(--rg-text)}
.rg-switch__code{font-family:var(--rg-caps);font-size:.75rem;letter-spacing:.06em;color:var(--rg-text-3)}
.rg-switch__item.is-current{color:var(--rg-text);background:transparent;cursor:default}
.rg-switch__item.is-current .rg-switch__name{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.35em}
.rg-switch__item.is-current .rg-switch__code{color:var(--rg-brand-2)}
/* Every top bar dropdown (language, currency, account): compact, caps like the bar, one type size */
.header-top .dropdown-menu{--bs-dropdown-min-width:9rem;--bs-dropdown-padding-y:.25rem;--bs-dropdown-item-padding-y:.375rem;--bs-dropdown-item-padding-x:.875rem;--bs-dropdown-font-size:.75rem}
.header-top .dropdown-menu .dropdown-item{gap:1rem;font-family:var(--rg-caps);font-size:.75rem;font-weight:600;letter-spacing:.06em;line-height:1.3;text-transform:uppercase}
.header-top .dropdown-menu .rg-switch__code{font-size:inherit;letter-spacing:inherit}
.header-top .dropdown-menu .dropdown-item .material-icons{font-size:1rem;vertical-align:-.25em}
.header-top .dropdown-menu .dropdown-divider{margin-block:.25rem}
/* In the mobile menu (blocks moved into #_mobile_ps_languageselector / #_mobile_ps_currencyselector): plain lists */
.ps-mainmenu__selects{flex-direction:column;gap:1.5rem!important;width:100%;padding:1rem 1.5rem}
.ps-mainmenu__selects .rg-switch__toggle{display:none}
.ps-mainmenu__selects .rg-switch__menu{position:static!important;display:block;transform:none!important;margin:0!important;padding:0;min-width:0;border:0;background:transparent;box-shadow:none}
.ps-mainmenu__selects .rg-switch__item{padding-inline:0}
/* Sixten: logo on the left | account, cart and burger on the right (below 1200px; from 1200px see the left column below) */
.header-bottom__row{position:relative;flex-wrap:nowrap}
.header-bottom__logo{order:-1;margin:0 auto 0 0!important;padding:0;width:auto}
.header-bottom__row>.ps-mainmenu--desktop{order:10}
.header-bottom__cart{margin-left:0}
.header-bottom__cart .header-block__title{font-family:var(--rg-caps);font-size:.875rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}

/* Header over the hero (body.rg-header-over: home, The Method, Custom Putting Surface): the header overlaps the hero,
   the header-bottom row is transparent until the page is scrolled (assets/js/custom.js); the top bar stays opaque */
/* Still sticky (top bar scrolls away), pulled over the hero by its own height (--rg-header-h) */
.rg-header-over .header{margin-bottom:calc(var(--rg-header-shrink) - var(--rg-header-h))}
.rg-header-over .header::before{opacity:0}
.rg-header-over .header-bottom{border-bottom-color:transparent;transition:border-color .3s}
.rg-header-over.rg-header-scrolled .header::before{opacity:1}
.rg-header-over.rg-header-scrolled .header-bottom{border-bottom-color:var(--rg-border)}
.rg-header-over .breadcrumb__wrapper{display:none}
/* The hero starts at the top of the page under the fixed header: its eyebrow is at 40% of the viewport height,
   and never under the header (top bar 30px + row about 92px) */
/* (the hero itself keeps its text clear of the header: hero.css, padding-top from --rg-header-h) */

/* ---------- Header as a narrow left column (from 1200px) ---------- */
/* After the Ohio demo 29: the header is a fixed 100px column on the left, full height: logo turned a quarter
   anticlockwise at the top, burger in the middle, account and cart at the bottom. The burger opens the offcanvas beside the
   column: accordion menu, then account and contact (modules/ps_mainmenu/ps_mainmenu.tpl).
   The header markup is the mobile/tablet one (templates/_partials/header.tpl): its header-bottom wrappers become
   display:contents so that every block is a flex item of the column; the top bar is hidden (its links are in the
   burger). The page beside it (wrapper, footer) is pushed right by the column width. The top bar and shrinking row
   mechanics above (top:-34px, --rg-header-shrink, header over the hero) do not apply */
:root{--rg-side-w:100px}
/* Blocks reached by a scroll (hero scroll cue) stop under the stuck header bar: 64px on mobile, 60px from 768px, none
   beside the left column */
.lnwks-block{scroll-margin-top:64px}
@media (min-width:768px){.lnwks-block{scroll-margin-top:60px}}
@media (min-width:1200px){.lnwks-block{scroll-margin-top:0}}
@media (min-width:1200px){
  :root,.rg-header-stuck{--rg-header-h:0px;--rg-header-shrink:0px}
  /* Above the offcanvas backdrop (1040): the column stays visible and its burger closes the menu; the offcanvases are
     inside the header, so they share its stacking level */
  .header{position:fixed;top:0;bottom:0;left:0;z-index:1050;width:var(--rg-side-w);max-width:none;margin:0!important;display:flex;flex-direction:column;align-items:center;padding:2.5rem 0;overflow-y:auto;overscroll-behavior:contain;background:var(--rg-bg);border-right:1px solid var(--rg-border)}
  .header::before{display:none}
  .header~.wrapper,.header~.footer{margin-left:var(--rg-side-w)}
  /* Top bar: only its sign-in block is kept, as an icon above the cart (Contact us is in the burger) */
  .header .header-top,.header .header-top>.container-md,.header .header-top .row,.header .header-top .row>.header-top__right{display:contents}
  .header .header-top .row>.header-top__left{display:none}
  .header-bottom,.header-bottom__container,.header-bottom__row{display:contents!important}
  /* Logo: the shop logo (templates/_partials/header.tpl), 4rem wide */
  .header-bottom__logo{order:1;position:static;transform:none;justify-content:center;width:auto;padding:0;margin:0!important}
  /* Ratio set here: some browsers (Safari) ignore the width / height of the <source> and keep the horizontal ratio of
     the <img> (1000 x 519), which squeezed the vertical logo */
  /* "S" logo (sixten-wh.svg, 1169 x 1210): ratio set here, Safari keeps the <img> ratio (the horizontal logo) otherwise */
  .header-bottom .logo,.rg-header-stuck .header-bottom .logo{width:3.5rem;height:auto;max-height:none;aspect-ratio:1169/1210;object-fit:contain}
  /* Burger, in the middle of the column height */
  /* Burger in the middle of the column height, its top rounded down to a whole pixel (an odd window height would put
     it, and its lines, on half a pixel: blurred on standard screens); no translateY(-50%) for the same reason */
  .header-bottom__row>.ps-mainmenu--desktop{position:absolute;top:calc(50% - 1.75rem);top:round(down,50% - 1.75rem,1px);left:0;right:0;height:3.5rem;display:flex;justify-content:center;width:auto;max-width:none;padding:0}
  .ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__mobile-toggle{display:flex}
  /* On a disc of the text colour at 15% (#262626 on the black header), lighter on hover (28%), sinks on press, sends a ripple on click; the two lines cross while the menu is
     open (classes set by assets/js/custom.js). No scale at rest or on hover: the 2px lines stay on whole pixels */
  .ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__mobile-toggle .menu-toggle{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;width:3.5rem;height:3.5rem;padding:0;border:0;border-radius:50%;background:rgba(var(--rg-text-rgb),.15);color:var(--rg-text);transition:transform .35s cubic-bezier(.34,1.56,.64,1),background-color .2s}
  .ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__mobile-toggle .menu-toggle:hover{background:rgba(var(--rg-text-rgb),.22)}
  .ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__mobile-toggle .menu-toggle:active{transform:scale(.92);transition-duration:.1s}
  .menu-toggle::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:50%;background:rgba(var(--rg-text-rgb),.15);opacity:0}
  .menu-toggle.rg-ripple::before{animation:rg-burger-ripple .6s cubic-bezier(.2,.7,.3,1)}
  .ps-mainmenu__mobile-toggle .menu-toggle .material-icons{display:none}
  /* Two 2px lines 6px apart, in px so that both land on whole pixels; they meet at 4px and turn into a cross */
  .rg-burger{position:relative;display:block;width:22px;height:10px}
  .rg-burger>span{position:absolute;top:0;left:0;width:100%;height:2px;background:currentColor;transition:top .3s ease,transform .3s ease}
  .rg-burger>span:last-child{top:8px}
  .menu-toggle.is-open .rg-burger>span{top:4px}
  .menu-toggle.is-open .rg-burger>span:first-child{transform:rotate(45deg)}
  .menu-toggle.is-open .rg-burger>span:last-child{transform:rotate(-45deg)}
  /* Cart, at the bottom: the counterpart of the burger. Same 56px disc, in black (the main action) where the burger's
     is light grey; a line bag drawn with the weight of the burger lines; same press. The count sits in the pink badge
     on the disc edge, hidden when the cart is empty, with a short pop when it changes (assets/js/custom.js). The
     column has the same 2.5rem above the logo and below the cart */
  /* Account, just above the cart (modules/ps_customersignin/ps_customersignin.tpl): a line person icon, no background,
     in a 56px box lined up with the discs */
  #_desktop_ps_customersignin{order:3;margin-top:auto}
  #_desktop_ps_customersignin .header-block__action-btn{display:flex;align-items:center;justify-content:center;width:3.5rem;height:3.5rem;padding:0;border-radius:50%;background:none;color:var(--rg-text)}
  #_desktop_ps_customersignin .header-block__action-btn:hover{background:none;color:var(--rg-text)}
  #_desktop_ps_customersignin .material-icons{display:none}
  .header-bottom__cart{order:4;width:auto;margin:.5rem 0 0;padding:0}
  .header .header-bottom__cart .header-block__action-btn{position:relative;display:flex;align-items:center;justify-content:center;width:3.5rem;height:3.5rem;padding:0!important;border-radius:50%;background:var(--sx-red);color:#fff;transition:transform .35s cubic-bezier(.34,1.56,.64,1),background-color .2s}
  .header .header-bottom__cart .header-block__action-btn:hover{background:var(--sx-red-dark);color:#fff}
  /* The count on the red disc: white badge */
  .header-bottom__cart .header-block__badge{background:#fff;color:#000}
  .header .header-bottom__cart .header-block__action-btn:active{transform:scale(.92);transition-duration:.1s}
  .header-bottom__cart .material-icons{display:none}
  #_desktop_ps_currencyselector{order:5;margin-top:1rem;display:flex;justify-content:center}
  .rg-sidenav__langs{margin:1.5rem 3rem 0}
  .rg-cart-icon{display:block;stroke-linejoin:miter}
  .header-bottom__cart .header-block__badge{position:absolute;top:-.125rem;right:-.125rem;height:1.375rem;min-width:1.375rem;padding:0 .3125rem;border:2px solid var(--rg-bg);font-size:.6875rem;line-height:1}
  .header-bottom__cart .inactive .header-block__badge{display:none}
  .header-bottom__cart .header-block__badge.rg-pop{animation:rg-badge-pop .45s cubic-bezier(.34,1.56,.64,1)}
  /* Burger offcanvas: opens beside the column (fades in and slides a little, so that it never passes over it) */
  .ps-mainmenu--mobile.offcanvas-start{left:var(--rg-side-w);width:26rem;border-right:1px solid var(--rg-border);opacity:0;transform:translateX(-1.5rem);transition:transform .3s ease,opacity .3s ease,visibility .3s}
  .ps-mainmenu--mobile.offcanvas-start.showing,.ps-mainmenu--mobile.offcanvas-start.show:not(.hiding){opacity:1;transform:none}
  /* Bootstrap puts the backdrop next to the offcanvas, inside the header: it starts after the column */
  .header .offcanvas-backdrop{left:var(--rg-side-w)}
  .ps-mainmenu--mobile .offcanvas-header{justify-content:flex-end;padding:1.25rem 1.25rem 0}
  .ps-mainmenu--mobile .rg-sidenav{margin-top:auto;padding:0 3rem}
  .ps-mainmenu--mobile .rg-sidenav__list .rg-sidenav__list{padding-left:1rem}
  .rg-sidenav__list--depth-1>.rg-sidenav__item>.rg-sidenav__row .rg-sidenav__link{padding:.5rem 0;font-size:1.75rem;letter-spacing:.04em}
  .rg-sidenav__links{margin:2.5rem 3rem auto;padding:1.5rem 0 0;border-top:1px solid var(--rg-border);list-style:none;display:grid;gap:.625rem}
  .rg-sidenav__links a{font-family:var(--rg-caps);font-size:.8125rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;color:var(--rg-text-2)}
  .rg-sidenav__links a:hover{color:var(--rg-text)}
  .ps-mainmenu--mobile .ps-mainmenu__additionnals{flex-grow:0;padding:0}
  /* Sticky blocks (product details, cart summary): no header bar above them any more */
  :root{--rg-sticky-top:2rem}
  /* Full-bleed breakout: the viewport minus the column */
  .rg-product-story{margin-inline:calc(50% - 50vw + var(--rg-side-w) / 2)}
}
/* Accordion menu: Montserrat caps at the first level, Montserrat below; + turns into × when open */
.rg-sidenav__list{margin:0;padding:0;list-style:none}
.rg-sidenav__row{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.rg-sidenav__link{display:block;padding:.375rem 0;font-family:var(--rg-caps);font-size:1.125rem;font-weight:600;letter-spacing:.06em;line-height:1.3;text-transform:uppercase;text-decoration:none;color:var(--rg-text)}
.rg-sidenav__link:hover,.rg-sidenav__link[aria-current=page]{color:var(--rg-text);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.3em}
.rg-sidenav__toggle{display:flex;flex:none;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;border:0;background:none;color:var(--rg-text);cursor:pointer}
.rg-sidenav__toggle .material-icons{font-size:1.25rem;transition:transform .25s ease}
.rg-sidenav__toggle:not(.collapsed) .material-icons{transform:rotate(45deg)}
.rg-sidenav__list .rg-sidenav__list{padding:.125rem 0 .75rem .875rem}
.rg-sidenav__list .rg-sidenav__list .rg-sidenav__link{padding:.25rem 0;font-family:var(--rg-text-font);font-size:.9375rem;letter-spacing:0;text-transform:none;color:var(--rg-text-2)}
.rg-sidenav__list .rg-sidenav__list .rg-sidenav__link:hover,.rg-sidenav__list .rg-sidenav__list .rg-sidenav__link[aria-current=page]{color:var(--rg-text)}
@media (max-width:1199.98px){.rg-burger,.rg-cart-icon,.rg-account-icon{display:none}}
/* (shown again below 768px in the mobile header: see "Sixten: mobile header") */
@keyframes rg-badge-pop{0%{transform:scale(.4)}100%{transform:scale(1)}}
@keyframes rg-burger-ripple{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.6)}}
@media (prefers-reduced-motion:reduce){.rg-sidenav__toggle .material-icons,.ps-mainmenu--mobile.offcanvas-start,.menu-toggle,.rg-burger>span{transition:none!important}.menu-toggle.rg-ripple::before,.header-bottom__cart .header-block__badge.rg-pop{animation:none}}

/* ---------- Form pages (sign in, create an account, forgotten password, guest order tracking, contact): one centered 640px column ---------- */
.rg-narrow{max-width:640px;margin-inline:auto;padding-block:clamp(2rem,5vw,4rem)}
/* The form in a hairline frame on the white page */
.rg-narrow>.page-content{padding:clamp(1.5rem,4vw,2.5rem);background:var(--rg-bg);border:1px solid var(--rg-border);border-radius:var(--rg-radius)}
/* Intro sentence under the title, above the card: the title keeps .75rem below it, the sentence the header's 2rem */
.rg-narrow>.page-header:has(+.rg-page-intro){margin-bottom:.75rem}
.rg-page-intro{margin:0 0 2rem;color:var(--rg-text-2);font-size:1rem;line-height:1.6}
/* Forgotten password: its sentence is the intro under the title (customer/password-email.tpl), not repeated in the card */
.forgotten-password>header{display:none}
/* Guest order tracking: its "To track your order…" sentence is replaced by the intro (customer/guest-login.tpl) */
#guestOrderTrackingForm>p:first-of-type{display:none}

/* ---------- Product page: images 7/12, details 5/12; images stacked in one column on desktop (the details stay in
   view beside them), carousel on mobile ----------
   Scoped to .product__container (the product page itself): the quickview modal is also .page-product but keeps the
   carousel */
.page-product .product__container{grid-template-columns:minmax(0,1fr);gap:2rem}
.rg-gallery{display:none;margin:0;padding:0;list-style:none}
/* Product name: smaller than the page titles (it sits in the 5/12 column) */
/* Short description bullets, also in the quickview */
/* Short description: dashes instead of bullets, no rules between the items (product page and quickview) */
.product__description-short{color:var(--rg-text-2);font-size:1rem;line-height:1.65}
.product__description-short p{margin-bottom:1rem}
.product__description-short strong{color:var(--rg-text);font-weight:600}
.product__description-short ul{list-style:none;padding:0;margin:0 0 1.25rem}
.product__description-short li{position:relative;padding:.375rem 0 .375rem 1.5rem}
/* Dash centred on the first line: top padding + half the line height (1.65em / 2) */
.product__description-short li::before{content:"";position:absolute;left:0;top:calc(.375rem + .825em);width:.75rem;height:1px;background:var(--rg-text)}
/* Product details, sober and high-end (same language as the category page) */
.rg-product-eyebrow{margin:0 0 .75rem;font-family:var(--rg-caps);font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--rg-text-3)}
.page-product h1.product__name{margin-bottom:.75rem;font-family:var(--rg-font);font-size:clamp(1.75rem,2.4vw,2.5rem);font-weight:800;line-height:1.1;letter-spacing:.02em}
.page-product .product__prices{margin-bottom:1.75rem;padding-bottom:1.75rem;border-bottom:1px solid var(--rg-border)}
.page-product .product__price{font-family:var(--rg-text-font);font-size:1.125rem;font-weight:500;letter-spacing:0;color:var(--rg-text)}
.page-product .product__prices .product__tax-label,.page-product .product__prices-block>:not(.product__prices-inline){font-family:var(--rg-caps);font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;color:var(--rg-text-3)}
.page-product .product__actions{margin-top:1.75rem;padding-top:1.75rem;border-top:1px solid var(--rg-border)}
.page-product .product__actions-qty-add{display:flex;gap:.75rem;align-items:stretch}
.page-product .product__quantity .input-group{height:100%;border:1px solid var(--rg-border-strong);border-radius:var(--rg-pill);overflow:hidden}
.page-product .product__quantity .btn,.page-product .product__quantity .form-control{border:0;border-radius:0;background:transparent}
.page-product .product__quantity .form-control{width:3rem;text-align:center;font-family:var(--rg-caps);font-size:.8125rem}
.page-product .product__add-to-cart{flex:1 1 auto}
/* Add to cart in black */
.page-product .product__add-to-cart-button{width:100%;min-height:3.25rem;--bs-btn-bg:var(--rg-brand);--bs-btn-border-color:var(--rg-brand);--bs-btn-color:#fff;--bs-btn-hover-bg:var(--rg-brand-hover);--bs-btn-hover-border-color:var(--rg-brand-hover);--bs-btn-hover-color:#fff;--bs-btn-active-bg:var(--rg-brand-hover);--bs-btn-active-border-color:var(--rg-brand-hover);--bs-btn-active-color:#fff;--bs-btn-disabled-bg:var(--rg-text-3);--bs-btn-disabled-border-color:var(--rg-text-3)}
/* Size choice (combinations): sober outlined pills, black when selected */
.page-product .product__variants{margin-bottom:1.5rem}
.page-product .product-variant__legend{float:none;display:block;width:100%;margin-bottom:.625rem;font-family:var(--rg-caps);font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--rg-text-2)}
.page-product .product-variant__selected{display:none}
.page-product .product-variant__radios{display:flex;flex-wrap:wrap;gap:.5rem}
.page-product .product-variant__radio .btn{--bs-btn-color:var(--rg-text);--bs-btn-border-color:var(--rg-border-strong);--bs-btn-bg:transparent;--bs-btn-hover-color:var(--rg-text);--bs-btn-hover-bg:transparent;--bs-btn-hover-border-color:var(--rg-text);--bs-btn-active-color:var(--rg-bg);--bs-btn-active-bg:var(--rg-text);--bs-btn-active-border-color:var(--rg-text);--bs-btn-padding-x:1.25rem;--bs-btn-padding-y:.75rem;--bs-btn-font-size:.75rem;letter-spacing:.06em;text-transform:none}
.page-product .product-variant__radio .btn-check:checked+.btn{color:var(--rg-bg);background:var(--rg-text);border-color:var(--rg-text)}
.page-product .product__actions-qty-add{flex-wrap:nowrap}
.page-product .product__quantity{flex:0 0 auto;width:auto}
.page-product .product__quantity .input-group{flex-wrap:nowrap;width:auto}
.page-product .product__add-to-cart-button{white-space:nowrap}
@media (max-width:575.98px){
  .page-product .product__quantity .btn{padding-inline:.625rem}
  .page-product .product__quantity .form-control{width:2rem;padding-inline:0}
  .page-product .product__add-to-cart-button{--bs-btn-padding-x:1rem;--bs-btn-font-size:.75rem;letter-spacing:.06em}
  .page-product .product__add-to-cart-button .material-icons{display:none}
}
/* Carousel (below 992px, and the quickview): square image, nearly square corners, discreet controls */
.page-product .product__carousel{border-radius:0;background:var(--rg-surface)}
.page-product .product__carousel .carousel-item img{aspect-ratio:1/1;object-fit:cover}
.page-product .product__carousel .carousel-control-prev,.page-product .product__carousel .carousel-control-next{width:3rem;opacity:1}
.page-product .product__carousel .carousel-control-prev-icon,.page-product .product__carousel .carousel-control-next-icon{width:2.25rem;height:2.25rem;border-radius:50%;background-color:rgba(20,20,20,.45);background-size:40%;transition:background-color .2s}
.page-product .product__carousel .carousel-control-prev:hover .carousel-control-prev-icon,.page-product .product__carousel .carousel-control-next:hover .carousel-control-next-icon{background-color:rgba(20,20,20,.75)}
.page-product .product__zoom{width:2.5rem;height:2.5rem;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.9);box-shadow:none;color:var(--rg-text)}
.page-product .product__availability{font-family:var(--rg-caps);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--rg-text-2)}

/* Hummingbird's second part (accordion removed in product.tpl, reassurance): hidden while the reassurance hook is empty */
.product__container~.product__bottom:not(:has(.product__bottom-right *)){display:none}
/* Hummingbird's .page:not(body) padding-bottom (2rem) left a light band under the dark story: none when the story ends the page */
.page-product .page:has(.rg-product-story){padding-bottom:0}
/* Same for the home page and the lnwkspages pages, made of full-width blocks down to the footer */
#index .page:not(body),#module-lnwkspages-page .page:not(body){padding-bottom:0}
/* Bottom of the product page: the marketing story (lnwkspages blocks, displayFooterProduct), full width, dark */
.rg-product-story{margin-top:clamp(4rem,8vw,7rem);margin-inline:calc(50% - 50vw);background:var(--rg-bg);color:var(--rg-text)}
@media (min-width:992px){
  .page-product .product__container{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,4vw,4.5rem);align-items:start}
  /* The details stay in view while the images scroll by (under the 60px stuck header) */
  .page-product .product__container>.product__right{position:sticky;top:var(--rg-sticky-top,5rem)}
  .product__container .product__carousel{display:none}
  .product__container .product__images .product__flags{position:absolute;z-index:2}
  .product__container .product__images{position:relative}
  .product__container .rg-gallery{display:grid;grid-template-columns:minmax(0,1fr);gap:.5rem}
}
.rg-gallery__button{display:block;width:100%;padding:0;border:0;border-radius:0;overflow:hidden;background:var(--rg-surface);cursor:zoom-in}
.rg-gallery__image{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover}
/* No zoom on hover: the zoom is PhotoSwipe, on click */
.rg-gallery__button:focus{outline:none}
.rg-gallery__button:focus-visible{outline:2px solid var(--rg-brand-2);outline-offset:2px}
/* PhotoSwipe (assets/vendor/photoswipe/photoswipe.css, loaded after this file: hence ".pswp.pswp") */
.pswp.pswp{--pswp-bg:#fff;--pswp-placeholder-bg:#f4f4f4;--pswp-icon-color:#000;--pswp-icon-color-secondary:#fff;--pswp-icon-stroke-color:#fff;--pswp-error-text-color:#000;--pswp-bg-opacity:1;font-family:var(--rg-caps)}
.pswp .pswp__counter{font-size:.75rem;letter-spacing:.08em;opacity:.8}
/* Buttons: the left column's burger discs (56px, #EBEBEB, darker on hover, sink on press), drawn with its 2px lines:
   a cross for close, chevrons for the arrows, "+" for the zoom (the vertical line turns flat once zoomed in: "−") */
.pswp.pswp .pswp__top-bar{height:auto;padding:1.5rem;gap:.75rem;align-items:center}
.pswp.pswp .pswp__button--close,.pswp.pswp .pswp__button--zoom,.pswp.pswp .pswp__button--arrow{width:3.5rem;height:3.5rem;margin:0;border-radius:50%;background:var(--rg-surface-2);color:var(--rg-text);opacity:1;transition:transform .35s cubic-bezier(.34,1.56,.64,1),background-color .2s}
.pswp.pswp .pswp__button--close:hover,.pswp.pswp .pswp__button--zoom:hover,.pswp.pswp .pswp__button--arrow:hover{background:var(--rg-surface-3)}
.pswp.pswp .pswp__button--close:active,.pswp.pswp .pswp__button--zoom:active,.pswp.pswp .pswp__button--arrow:active{transform:scale(.92);transition-duration:.1s}
/* Close stands apart from the zoom "+": black disc, white cross (like the cart disc of the left column, in black) */
.pswp.pswp .pswp__button--close{background:#000;color:#fff}
.pswp.pswp .pswp__button--close:hover{background:#333}
.pswp.pswp .pswp__button:focus{outline:none}
.pswp.pswp .pswp__button:focus-visible{outline:1px solid rgba(var(--rg-text-rgb),.5);outline-offset:4px}
.pswp.pswp .pswp__button--close .pswp__icn,.pswp.pswp .pswp__button--arrow .pswp__icn,.pswp.pswp .pswp__button--zoom .pswp__icn{display:none}
.pswp.pswp .pswp__button--zoom::before,.pswp.pswp .pswp__button--zoom::after{content:"";position:absolute;top:calc(50% - 1px);left:calc(50% - 9px);width:18px;height:2px;background:currentColor;transition:transform .3s ease}
.pswp.pswp .pswp__button--zoom::after{transform:rotate(90deg)}
.pswp--zoomed-in.pswp .pswp__button--zoom::after{transform:rotate(180deg)}
.pswp.pswp .pswp__button--close::before,.pswp.pswp .pswp__button--close::after{content:"";position:absolute;top:calc(50% - 1px);left:calc(50% - 11px);width:22px;height:2px;background:currentColor;transform:rotate(45deg)}
.pswp.pswp .pswp__button--close::after{transform:rotate(-45deg)}
.pswp.pswp .pswp__button--arrow{top:50%;margin-top:-1.75rem}
.pswp.pswp .pswp__button--arrow--prev{left:1.5rem}
.pswp.pswp .pswp__button--arrow--next{right:1.5rem}
.pswp.pswp .pswp__button--arrow::before{content:"";position:absolute;top:calc(50% - 6px);left:calc(50% - 6px);width:12px;height:12px;border:solid currentColor;border-width:2px 2px 0 0}
.pswp.pswp .pswp__button--arrow--next::before{transform:translateX(-2px) rotate(45deg)}
.pswp.pswp .pswp__button--arrow--prev::before{transform:translateX(2px) rotate(-135deg)}
@media (max-width:767.98px){.pswp.pswp .pswp__top-bar{padding:1rem}.pswp.pswp .pswp__button--close,.pswp.pswp .pswp__button--zoom{width:2.75rem;height:2.75rem}}
@media (prefers-reduced-motion:reduce){.pswp.pswp .pswp__button,.pswp.pswp .pswp__button::before,.pswp.pswp .pswp__button::after{transition:none}}
.page-product .js-product-carousel .carousel-item img{cursor:zoom-in}

/* ---------- Product images: never rounded, anywhere (listings, product page, cart, cart modal, order pages) ---------- */
img[class*="product"],.product-line__image img,.product-miniature__image-link,.product-miniature__top,.product__carousel,.product__images,.rg-gallery__button,.blockcart img,.cart-summary img{border-radius:0!important}

/* ---------- Quantity selector (cart lines, cart modal, product page): one thin pill, the number centred ---------- */
.quantity-button{width:auto;max-width:none}
.quantity-button__group{flex-wrap:nowrap;width:max-content;height:2.75rem;border:1px solid var(--rg-border-strong);border-radius:var(--rg-pill);overflow:hidden;background:transparent}
.quantity-button__group>.btn{width:2.5rem;min-width:2.5rem;height:100%;padding:0;margin:0!important;border:0;border-radius:0!important;background:transparent;color:var(--rg-text);display:inline-flex;align-items:center;justify-content:center}
.quantity-button__group>.btn .material-icons{font-size:1.125rem}
.quantity-button__group>.btn:hover{background:var(--rg-overlay,rgba(0,0,0,.04))}
.quantity-button__group>.form-control{flex:0 0 2.5rem;width:2.5rem;min-width:2.5rem;height:100%;padding:0;margin:0!important;border:0;border-radius:0!important;background:transparent;text-align:center;font-family:var(--rg-caps);font-size:.8125rem;letter-spacing:.04em;-moz-appearance:textfield;appearance:textfield}
.quantity-button__group>.form-control::-webkit-outer-spin-button,.quantity-button__group>.form-control::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.quantity-button__group>.form-control:focus{box-shadow:none}
.page-product .product__quantity .quantity-button__group{height:3.25rem}

/* ---------- Cart and order (checkout) pages: more air between the content and the summary; the summary on a plain
   surface, in view while scrolling ---------- */
@media (min-width:992px){
  .cart-grid,.checkout-grid{--bs-gutter-x:clamp(4rem,7vw,7rem)}
  .cart-grid__aside-wrapper,.checkout-grid__aside-wrapper{position:sticky;top:var(--rg-sticky-top,5rem)}
}
.cart-grid .page-title-section{margin-bottom:2rem}
.cart-grid .product-line{padding-block:1.5rem}
.cart-grid__aside-wrapper,.checkout-grid__aside-wrapper{padding:2rem;background:var(--rg-surface)}
/* One page checkout: sections separated by a hairline, generous spacing */
.page-order .checkout-grid{padding-block:clamp(1.5rem,3vw,2.5rem)}
.one-page-checkout__section{padding-block:2.5rem;border-top:1px solid var(--rg-border)}
.one-page-checkout>:first-child .one-page-checkout__section,.one-page-checkout>.one-page-checkout__section:first-child{padding-top:0;border-top:0}
.one-page-checkout__title{margin-bottom:1.5rem;font-family:var(--rg-font);font-size:clamp(1.25rem,1.6vw,1.5rem);font-weight:800;letter-spacing:.02em;text-transform:uppercase}
.one-page-checkout__field{margin-bottom:1rem}
/* ps_onepagecheckout adds 2em on the right of the form only (not of the payment section): same width for every section */
.page-order .one-page-checkout{padding-right:0}
/* Information messages (checkout, account…): plain surface and hairline instead of the Bootstrap light blue */
.alert-info{--bs-alert-bg:var(--rg-surface);--bs-alert-border-color:var(--rg-border);--bs-alert-color:var(--rg-text-2);--bs-alert-link-color:var(--rg-text)}
.checkout-grid__aside .one-page-checkout__section{padding-block:1.5rem 0;border-top:1px solid var(--rg-border)}
.checkout-grid__aside .one-page-checkout__title{font-size:1.25rem}

/* ---------- Breadcrumb ---------- */
.breadcrumb__wrapper{background:transparent;border-bottom:1px solid var(--rg-border)}
.breadcrumb{--bs-breadcrumb-divider-color:var(--rg-text-3);--bs-breadcrumb-item-active-color:var(--rg-text-2)}
.breadcrumb a{color:var(--rg-text-2);text-decoration:none}
.breadcrumb a:hover{color:var(--rg-text)}

/* ---------- Product miniatures ---------- */
/* Sober miniatures, like rapha.cc: square image (1:1) on a light grey surface, no border, no shadow, no zoom;
   name and price right under the image; no add to cart (product.tpl) */
.product-miniature__inner,.product-miniature__inner:hover{background:transparent;box-shadow:none}
.product-miniature__top,.product-miniature__inner:hover .product-miniature__top{background:var(--rg-surface);border:0;border-radius:0;overflow:hidden}
.product-miniature__image-container{aspect-ratio:1/1}
/* The link and the picture fill the 3:4 frame (Hummingbird sizes them square) */
.product-miniature__image-link,.product-miniature__image-container picture{display:block;width:100%;height:100%;aspect-ratio:auto}
.product-miniature__image,.product-miniature__inner:hover .product-miniature__image{display:block;width:100%;height:100%;object-fit:cover;transform:none;transition:none}
.product-miniature__bottom{gap:.25rem;padding:1rem 0 0}
.product-miniature__infos{gap:.25rem}
.product-miniature__title,.product-miniature__title a{font-family:var(--rg-caps);font-size:.9375rem;font-weight:600;line-height:1.3;letter-spacing:.04em;text-transform:uppercase;color:var(--rg-text);text-decoration:none}
.product-miniature__title:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.25em}
.product-miniature__prices{margin:0}
.product-miniature__price{font-family:var(--rg-text-font);font-size:.9375rem;font-weight:500;letter-spacing:0;color:var(--rg-text-2)}
.product-miniature__regular-price{font-family:var(--rg-text-font);font-size:.8125rem;letter-spacing:0;color:var(--rg-text-3)}
.product-flags{padding:.75rem}
.product-flags .badge,.product-flags .badge:not(.discount),.product-flags .badge.discount{padding:.25rem .5rem;border:0;border-radius:0;background:var(--rg-text);color:var(--rg-bg);font-family:var(--rg-caps);font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
/* Listing grid: 3 wide columns with generous spacing; 2 on tablets and phones (from 360px); 1 below */
.layout-full-width .products{grid-template-columns:minmax(0,1fr);gap:2.5rem .75rem}
@media (min-width:360px){.layout-full-width .products{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:576px){.layout-full-width .products{gap:3rem 1.5rem}}
@media (max-width:575.98px){
  .product-miniature__bottom{padding-top:.75rem}
  .product-miniature__title,.product-miniature__title a{font-size:.8125rem}
  .product-miniature__price{font-size:.8125rem}
  .product-flags{padding:.5rem}
  .page-category .category__header{padding-block:2rem 1.5rem;margin-bottom:1.5rem}
}
@media (min-width:992px){.layout-full-width .products{grid-template-columns:repeat(3,minmax(0,1fr));gap:4rem 2rem}}
/* Cross-selling ("Clients also bought", same category): 4 columns on desktop, clear of the product gallery */
.page-product :is(.ps-crossselling,.ps-categoryproducts){margin-top:clamp(4rem,8vw,7rem)}
@media (min-width:992px){:is(.ps-crossselling,.ps-categoryproducts) .products{grid-template-columns:repeat(4,minmax(0,1fr));gap:3rem 1.5rem}}
/* Category header: large title, quiet description, a hairline before the products */
.page-category .category__header{display:grid;gap:1rem;padding-block:clamp(2.5rem,6vw,5rem) clamp(2rem,4vw,3rem);margin-bottom:clamp(2rem,4vw,3rem);border-bottom:1px solid var(--rg-border)}
.page-category .category__header .page-title-section{margin:0;font-family:var(--rg-font);font-size:clamp(2rem,4vw,3rem);font-weight:800;line-height:1.05;letter-spacing:.02em}
.page-category .category__description{max-width:44rem;color:var(--rg-text-2);font-size:1.125rem}
#js-product-list-top:empty{display:none}
.product-miniature__quickview-button{background:rgba(255,255,255,.94);color:#000;font-family:var(--rg-caps);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}
.product-flags .badge{background:#000;color:#fff;border:0}
.product-flags .badge.discount{background:var(--sx-red);border:0;color:#fff}

/* Product page */
.product__name,.product__title{font-size:clamp(2rem,4vw,3.25rem)}
.product__current-price,.product__price,.current-price{font-family:var(--rg-text-font);font-weight:500;color:var(--rg-text);letter-spacing:0}
/* Sticky add-to-cart (module lnwksstickyatc): white like the header, black square button */
.lnwks-sticky-atc{
  --lnwks-satc-bg:#fff;--lnwks-satc-text:#000;
  --lnwks-satc-accent:#000;--lnwks-satc-accent-text:#fff;
  --lnwks-satc-unavailable-bg:rgba(0,0,0,.04);--lnwks-satc-unavailable-text:#c0392b;
  --lnwks-satc-toggle-border:rgba(0,0,0,.35);
  --lnwks-satc-panel-bg:#fff;--lnwks-satc-panel-text:#000;--lnwks-satc-panel-border:rgba(0,0,0,.35);
  --lnwks-satc-btn-radius:var(--rg-pill);--lnwks-satc-option-radius:var(--rg-pill);
  --lnwks-satc-btn-font:var(--rg-caps);
  border-top-color:rgba(0,0,0,.12)
}
.lnwks-sticky-atc__name{font-family:var(--rg-font);font-size:.9375rem;font-weight:600}
.lnwks-sticky-atc__price{font-family:var(--rg-caps);font-size:.875rem;font-weight:600;letter-spacing:.04em}
.lnwks-sticky-atc__btn{padding:.875rem 1.5rem;font-size:.75rem;font-weight:600;letter-spacing:.08em}
.lnwks-sticky-atc__btn:hover,.lnwks-sticky-atc__btn:focus{opacity:1;background:var(--rg-brand-hover)}
#lnwksStickyAtcVariantPanel{padding:1rem max(1rem,5vw)}
#lnwksStickyAtcVariantPanel .control-label{font-family:var(--rg-caps);letter-spacing:.08em}
#lnwksStickyAtcVariantPanel .radio-label{height:2.25rem;padding:0 1rem;font-family:var(--rg-caps);letter-spacing:.08em}
#lnwksStickyAtcVariantPanel .input-container input:checked+.radio-label{background:#000;border-color:#000;color:#fff}
/* Card layout of the module (LNWKSSTICKYATC_LAYOUT = card, also on desktop: bottom right once the add to cart of the
   page is out of view): square corners, hairline, soft shadow, square 1:1 thumbnail, name in Montserrat caps */
.lnwks-sticky-atc--card{
  --lnwks-satc-card-gap:12px;--lnwks-satc-card-width:440px;
  --lnwks-satc-card-radius:0;--lnwks-satc-thumb-radius:0;
  --lnwks-satc-card-border:rgba(0,0,0,.12);--lnwks-satc-card-shadow:0 12px 32px rgba(0,0,0,.12);
  --lnwks-satc-thumb-bg:var(--rg-surface)
}
@media (min-width:992px){.lnwks-sticky-atc--card{--lnwks-satc-card-gap:24px}}
.lnwks-sticky-atc--card .lnwks-sticky-atc__thumb{width:56px;height:56px}
.lnwks-sticky-atc--card .lnwks-sticky-atc__name{font-family:var(--rg-font);font-size:.875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.lnwks-sticky-atc--card .lnwks-sticky-atc__price{font-family:var(--rg-text-font);font-size:.8125rem;font-weight:500;letter-spacing:0}

/* ---------- Section titles from modules (featured products, etc.) ---------- */
.section-title,.products-section-title{
  font-family:var(--rg-font);font-weight:800;font-size:clamp(1.5rem,2.6vw,2rem);letter-spacing:.02em;text-transform:uppercase
}

/* ---------- Footer ---------- */
.footer__before{background:var(--rg-bg);border-top:1px solid var(--rg-border)}
/* Newsletter band (modules/ps_emailsubscription/.../ps_emailsubscription.tpl): landing page style */
.rg-newsletter{padding-block:clamp(3.5rem,7vw,5.5rem);background:var(--rg-bg);color:var(--rg-text)}
.rg-newsletter__grid{display:grid;gap:2.5rem;align-items:center}
@media (min-width:992px){.rg-newsletter__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(3rem,6vw,6rem)}}
.rg-newsletter__intro{display:grid;gap:1.25rem}
.rg-newsletter__eyebrow{margin:0;font-family:var(--rg-caps);font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--rg-text-2)}
.rg-newsletter__title{margin:0;font-family:var(--rg-font);font-weight:800;font-size:clamp(1.75rem,3.4vw,2.5rem);line-height:1.1;letter-spacing:.02em;text-transform:uppercase;color:var(--rg-text)}
.rg-newsletter__title em{font-style:normal;color:inherit}
.rg-newsletter__text{margin:0;max-width:30rem;color:var(--rg-text-2);font-size:1.125rem}
.rg-newsletter__form{display:grid;gap:1rem;max-width:36rem;width:100%}
@media (min-width:992px){.rg-newsletter__form{justify-self:end}}
/* One pill: transparent field, the button inside on the right */
.rg-newsletter__field{display:flex;align-items:center;gap:.5rem;padding:.375rem .375rem .375rem 1.5rem;border:1px solid var(--rg-border-strong);border-radius:var(--rg-pill);background:var(--rg-surface);transition:border-color .2s}
.rg-newsletter__field:focus-within{border-color:var(--rg-brand-2)}
.rg-newsletter__input{flex:1 1 auto;min-width:0;padding:.625rem 0;border:0;background:transparent;color:var(--rg-text);font-family:var(--rg-text-font);font-size:1rem;outline:none}
.rg-newsletter__input::placeholder{color:var(--rg-text-3)}
.rg-newsletter__input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px var(--rg-surface) inset;-webkit-text-fill-color:var(--rg-text)}
.rg-newsletter__submit{flex:0 0 auto}
.rg-newsletter__conditions,.rg-newsletter__consent{margin:0;padding-inline:1.5rem;font-size:.8125rem;color:var(--rg-text-3)}
.rg-newsletter__consent a,.rg-newsletter__conditions a{color:var(--rg-text-2)}
.rg-newsletter .alert{margin:0}
@media (max-width:575.98px){
  .rg-newsletter__field{flex-direction:column;align-items:stretch;padding:.375rem;border-radius:var(--rg-radius)}
  .rg-newsletter__input{padding:.75rem 1rem}
}
#footer{background:var(--rg-bg);border-top:1px solid var(--rg-border)}
#footer .footer__before{background:transparent}
.footer__main{background:transparent;color:var(--rg-text-3);padding-block:0}
/* Minimal footer, one line under the hairline (templates/_partials/copyright.tpl): copyright and signature on the
   left, legal links on the right, small grey Montserrat caps; stacked on mobile */
.rg-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 2.5rem;padding-block:1.75rem}
.rg-footer__brand{margin:0}
.rg-footer__links{display:flex;flex-wrap:wrap;gap:.5rem 1.75rem;margin:0;padding:0;list-style:none}
.rg-footer__brand,.rg-footer__links a{font-family:var(--rg-caps);font-size:.6875rem;font-weight:600;letter-spacing:.12em;line-height:1.4;text-transform:uppercase;color:var(--rg-text-3)}
.rg-footer__brand a,.rg-footer__links a{color:var(--rg-text-3);text-decoration:none;transition:color .2s}
.rg-footer__brand a:hover,.rg-footer__links a:hover{color:var(--rg-text)}
@media (max-width:575.98px){.rg-footer{flex-direction:column;align-items:flex-start;padding-block:1.5rem 2rem}.rg-footer__links{gap:.5rem 1.25rem}}

/* Home hero: lnwkspages block, see assets/css/lnwkspages/hero.css */

/* ---------- CMS pages (La Marque…): full width, like the rest of the pages ---------- */
#cms .page-content p{margin-bottom:1.25rem;font-size:1.0625rem;line-height:1.75}
/* Legal notice and terms of sale (CMS pages 2 and 3): lead sentence, identity cards on grey, contact box on a hairline */
#cms .rg-legal__lead{max-width:48rem;margin-bottom:2.5rem;font-size:1.125rem;line-height:1.65;color:var(--rg-text)}
.page-content--cms h2{margin-top:2.5rem;margin-bottom:1rem}
.page-content--cms h3{margin-top:1.75rem;margin-bottom:.75rem}
.page-content--cms>h2:first-child{margin-top:0}
.rg-legal__card{margin-bottom:1.5rem;padding:clamp(1.25rem,3vw,2rem);background:var(--rg-surface)}
#cms .rg-legal__card p:last-child{margin-bottom:0}
.rg-legal__contact{margin-top:3.5rem;padding:clamp(1.5rem,4vw,2.5rem);border:1px solid var(--rg-border)}
.rg-legal__contact h2{margin-top:0}
#cms .rg-legal__contact p:last-child{margin-bottom:0}
.page-content--cms a:not(.btn){color:var(--rg-text);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}
/* Secure payment (CMS page 5): lead sentence, the two methods side by side on grey cards, card brands as small tags,
   the contact box on a hairline frame */
#cms .rg-pay__lead{max-width:48rem;margin-bottom:2.5rem;font-size:1.25rem;line-height:1.6;color:var(--rg-text)}
.rg-pay__methods{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:1.5rem;margin-bottom:3.5rem}
.rg-pay__method{padding:clamp(1.5rem,4vw,2.5rem);background:var(--rg-surface)}
.rg-pay__method h2{margin-top:0}
#cms .rg-pay__eyebrow{margin-bottom:.5rem;font-family:var(--rg-caps);font-size:.75rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--sx-red)}
.page-content--cms .rg-pay__brands{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1.25rem;padding:0;list-style:none}
.page-content--cms .rg-pay__brands li{margin:0;padding:.25rem .625rem;border:1px solid var(--rg-border-strong);font-family:var(--rg-caps);font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.page-content--cms .rg-pay__brands li::before{content:none}
.rg-pay__contact{margin-top:3.5rem;padding:clamp(1.5rem,4vw,2.5rem);border:1px solid var(--rg-border)}
.rg-pay__contact h2{margin-top:0}
#cms .rg-pay__contact p:last-child{margin-bottom:0}
.rg-pay__contact a{color:var(--rg-text);text-decoration:underline;text-underline-offset:.2em}

/* ---------- Product page accordion (description, details…), right column under the add to cart ----------
   Sober, like rapha.cc: hairlines between the items, Montserrat caps titles, a thin + / − instead of the chevron */
.page-product .product__accordion{margin-top:2rem;border-top:1px solid var(--rg-border)}
.product__accordion{--bs-accordion-bg:transparent;--bs-accordion-border-width:0;--bs-accordion-btn-padding-x:0;--bs-accordion-btn-padding-y:1.125rem;--bs-accordion-body-padding-x:0;--bs-accordion-body-padding-y:0;--bs-accordion-active-bg:transparent;--bs-accordion-active-color:var(--rg-text);--bs-accordion-btn-focus-box-shadow:none}
.product__accordion .accordion-item{border:0;border-bottom:1px solid var(--rg-border);background:transparent}
.product__accordion .accordion-header{margin:0}
.product__accordion .accordion-button{font-family:var(--rg-caps);font-size:.875rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--rg-text);background:transparent;box-shadow:none}
.product__accordion .accordion-button:focus-visible{outline:1px solid var(--rg-text);outline-offset:2px}
.product__accordion .accordion-button::after{content:"+";width:auto;height:auto;background:none;transform:none;font-family:var(--rg-caps);font-size:1.25rem;font-weight:300;line-height:1;transition:none}
.product__accordion .accordion-button:not(.collapsed)::after{content:"−";background:none;transform:none}
.product__accordion .accordion-body{padding-bottom:1.5rem;font-size:.9375rem;line-height:1.7;color:var(--rg-text-2)}
.product__accordion .accordion-body p:last-child{margin-bottom:0}
.product__accordion .details__list{margin:0;padding:0;list-style:none}
.product__accordion .details__item{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--rg-border)}
.product__accordion .details__item:last-child{border-bottom:0}
.product__accordion .details__title{font-family:var(--rg-caps);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--rg-text)}

/* ---------- Checkout steps: on white, a hairline below (Hummingbird puts them on a grey band) ---------- */
.checkout-steps{background:var(--rg-bg);border-bottom:1px solid var(--rg-border)}

/* ---------- Product thumbnails in the cart modal and the cart lines: the 3:4 image fills its box ---------- */
.blockcart-modal img,.product-line__image img,.cart-summary-product img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;background:var(--rg-surface)}

/* ---------- 404 / 410: the "contact us" link in the sentence is underlined, so it reads as a link ---------- */
#pagenotfound .page-content p a,.page-not-found p a{color:var(--rg-text);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}

/* ---------- Sixten: languages in the menu ---------- */
/* The header language selector (top bar, left column, its mobile copy) is replaced by the list in the burger menu
   (modules/ps_mainmenu/ps_mainmenu.tpl) */
#_desktop_ps_languageselector,#_mobile_ps_languageselector{display:none!important}
.rg-sidenav__langs{display:flex;gap:1.25rem;margin:1.5rem 1.5rem 0;padding:0;list-style:none}
.rg-sidenav__langs a{font-family:var(--rg-caps);font-size:.8125rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;color:var(--rg-text-2);padding-bottom:.25rem;border-bottom:2px solid transparent}
.rg-sidenav__langs a:hover{color:var(--rg-text)}
.rg-sidenav__langs a.is-current{color:var(--rg-text);border-bottom-color:var(--sx-red)}

/* ---------- Sixten: language links on the B2B access pages (lnwksb2b split-screen layout) ---------- */
/* lnwksb2b 1.0.7 panel header (logo on the left, FR · EN on the right): base styles in the module, the caps font here */
.auth-minimal-langs a{font-family:var(--rg-caps)}

/* ---------- Sixten: weights ---------- */
/* Titles 800 (h1-h6), small titles (caps labels, eyebrows, menu, tabs, product names) 600, buttons 700, text 500 */
body{font-weight:500}

/* ---------- Sixten: sticky offset beside the left header column ---------- */
/* Hummingbird's theme.js sets --scroll-padding-top (inline, on <html>) to the header height + 16px; from 1200px the
   header is the full-height left column, so it became ~100vh: the account menu (max-height:calc(100vh - var(...)))
   collapsed to 0 and anchors scrolled too far. Nothing sits above the content there: a small offset is enough */
@media (min-width:1200px){html{--scroll-padding-top:1.5rem!important}}

/* ---------- Sixten: mobile header (below 768px), the icons of the left column ---------- */
/* Logo on the left, then burger, account, cart. Same drawings as the left column, on 40px discs: line person icon
   and burger lines on the same grey disc (crossed while the menu is open, custom.js), line bag on the red
   disc with the white count badge (hidden when the cart is empty) */
@media (max-width:767.98px){
  .header-bottom__row{align-items:center!important;column-gap:.25rem}
  .header-bottom__row>.header-bottom__logo{order:0}
  .header-bottom__row>.ps-mainmenu--desktop{order:1;padding:0}
  .header-bottom__row>#_mobile_ps_customersignin{order:2}
  .header-bottom__row>#_mobile_ps_shoppingcart{order:3}
  #_mobile_ps_customersignin .material-icons,#_mobile_ps_shoppingcart .material-icons,.ps-mainmenu__mobile-toggle .menu-toggle .material-icons{display:none}
  #_mobile_ps_customersignin .rg-account-icon,#_mobile_ps_shoppingcart .rg-cart-icon,.ps-mainmenu__mobile-toggle .rg-burger{display:block}
  #_mobile_ps_customersignin .header-block__action-btn,.ps-mainmenu__mobile-toggle .menu-toggle,#_mobile_ps_shoppingcart .header-block__action-btn{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;padding:0!important;border:0;border-radius:50%;color:var(--rg-text);transition:transform .35s cubic-bezier(.34,1.56,.64,1),background-color .2s}
  /* Account and burger discs: the text colour at 15% (#262626 on the black header), so that they show on the header.
     The account colour is a background-image: the signed-in button carries .bg-transparent, a layered !important
     background-color that beats any unlayered !important */
  #_mobile_ps_customersignin .header-block__action-btn{background-image:linear-gradient(rgba(var(--rg-text-rgb),.15),rgba(var(--rg-text-rgb),.15))!important}
  #_mobile_ps_customersignin .dropdown-toggle::after,#_mobile_ps_customersignin .header-block__title{display:none!important}
  .ps-mainmenu__mobile-toggle .menu-toggle,.ps-mainmenu__mobile-toggle .menu-toggle:hover{background:rgba(var(--rg-text-rgb),.15)}
  #_mobile_ps_shoppingcart .header-block__action-btn{background:var(--sx-red);color:#fff}
  #_mobile_ps_customersignin .header-block__action-btn:active,.ps-mainmenu__mobile-toggle .menu-toggle:active,#_mobile_ps_shoppingcart .header-block__action-btn:active{transform:scale(.92);transition-duration:.1s}
  .ps-mainmenu__mobile-toggle .menu-toggle::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:50%;background:rgba(var(--rg-text-rgb),.15);opacity:0}
  .ps-mainmenu__mobile-toggle .menu-toggle.rg-ripple::before{animation:rg-burger-ripple .6s cubic-bezier(.2,.7,.3,1)}
  .ps-mainmenu__mobile-toggle .rg-burger{position:relative;width:20px;height:10px}
  .ps-mainmenu__mobile-toggle .rg-burger>span{position:absolute;top:0;left:0;width:100%;height:2px;background:currentColor;transition:top .3s ease,transform .3s ease}
  .ps-mainmenu__mobile-toggle .rg-burger>span:last-child{top:8px}
  .ps-mainmenu__mobile-toggle .menu-toggle.is-open .rg-burger>span{top:4px}
  .ps-mainmenu__mobile-toggle .menu-toggle.is-open .rg-burger>span:first-child{transform:rotate(45deg)}
  .ps-mainmenu__mobile-toggle .menu-toggle.is-open .rg-burger>span:last-child{transform:rotate(-45deg)}
  #_mobile_ps_shoppingcart .rg-cart-icon{width:20px;height:20px}
  #_mobile_ps_shoppingcart .header-block__badge{position:absolute;top:-.25rem;right:-.25rem;height:1.25rem;min-width:1.25rem;padding:0 .25rem;border:2px solid var(--rg-bg);background:#fff;color:#000;font-size:.625rem;line-height:1}
  #_mobile_ps_shoppingcart .inactive .header-block__badge{display:none}
}

/* ---------- Sixten: horizontal logo below 1200px ---------- */
/* sixten_full-wh.svg (2946 x 827): 2rem high on mobile, 2.5rem from 768px, 2rem once the bar is stuck */
@media (max-width:1199.98px){
  .header-bottom .logo{height:2rem;max-height:2rem;width:auto;aspect-ratio:2946/827}
}
@media (min-width:768px) and (max-width:1199.98px){
  .header-bottom .logo{height:2.5rem;max-height:2.5rem}
  .rg-header-stuck .header-bottom .logo{height:2rem;max-height:2rem}
}

/* ---------- Sixten: an_productfields file field as a drop zone ---------- */
/* modules/an_productfields/views/templates/front/field-file.tpl (override) + assets/js/custom.js; placed just above the
   quantity / add to cart block (module setting "classfieldsposition" = .js-product-add-to-cart) */
/* The module wraps the fields in .row > .col-sm-12: no gutter, flush with the rest of the column */
.js-an-pf-fields-wrap{margin:0 0 1.5rem;--bs-gutter-x:0}
.js-an-pf-fields-wrap>[class*="col-"]{padding-inline:0}
.an-pf-file-upload{position:relative}
.an-pf-file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.an-pf-file-dropzone{position:relative}
.an-pf-file-dropzone-trigger{display:flex;align-items:center;gap:1rem;margin:0;padding:1.25rem 1.25rem;border:1px dashed var(--rg-border-strong);border-radius:0;background:var(--rg-surface);cursor:pointer;transition:border-color .15s ease,background-color .15s ease}
.an-pf-file-dropzone-trigger:hover,.an-pf-file-dropzone.an-pf-file-dragover .an-pf-file-dropzone-trigger{border-color:var(--rg-text);background:var(--rg-bg)}
.an-pf-file-input:focus-visible+.an-pf-file-dropzone .an-pf-file-dropzone-trigger{outline:2px solid var(--sx-red);outline-offset:2px}
.an-pf-file-dropzone.an-pf-file-has-file .an-pf-file-dropzone-trigger{border-style:solid;border-color:var(--rg-text);background:var(--rg-bg)}
.an-pf-file-dropzone-icon{flex:0 0 auto;color:var(--rg-text-3)}
.an-pf-file-dropzone-trigger:hover .an-pf-file-dropzone-icon,.an-pf-file-dropzone.an-pf-file-has-file .an-pf-file-dropzone-icon{color:var(--sx-red)}
.an-pf-file-dropzone-text{display:flex;flex-direction:column;min-width:0;line-height:1.35}
.an-pf-file-dropzone-text strong{overflow:hidden;color:var(--rg-text);font-family:var(--rg-caps);font-size:.8125rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;text-overflow:ellipsis;white-space:nowrap}
.an-pf-file-dropzone-subtext,.an-pf-file-help{color:var(--rg-text-3);font-size:.8125rem}
.an-pf-file-dropzone-clear{position:absolute;top:.5rem;right:.5rem;width:1.75rem;height:1.75rem;padding:0;border:0;border-radius:50%;background:var(--rg-text);color:var(--rg-bg);font-size:1rem;line-height:1.75rem;text-align:center;cursor:pointer}
.an-pf-file-dropzone-clear:hover,.an-pf-file-dropzone-clear:focus-visible{background:var(--sx-red);color:#fff}
.an-pf-file-help{margin:.5rem 0 0}

/* ---------- Sixten: product accordion headers ---------- */
/* The headers are h2: not the slanted inline-block titles, full width so that the + / − sits on the right */
.product__accordion .accordion-header{display:block;transform:none;font-weight:inherit}
.product__accordion .accordion-button{display:flex;align-items:center;justify-content:space-between;width:100%;gap:1rem}
.product__accordion .accordion-button::after{margin-left:auto;flex-shrink:0}

/* ---------- Sixten: a single 1px line at the top of the footer ---------- */
/* #footer and its .footer__before band (the footer-cta banner) both carried a top border: 2px; the footer keeps its own */
#footer>.footer__before{border-top:0}

/* ---------- Sixten: product short description ---------- */
/* Smaller text, tighter bullets */
.product__description-short{font-size:.875rem;line-height:1.6}
.product__description-short li{padding:.25rem 0 .25rem 1.5rem}
.product__description-short li::before{top:calc(.25rem + .8em)}
/* Template download link (a.btn in the short description, e.g. "Téléchargez gabarit PDF"): a full-width black button
   with a download icon, red on hover; second to the red add to cart button below */
.product__description-short a.btn{
  display:flex;align-items:center;justify-content:center;gap:.625rem;width:100%;margin-top:.5rem;
  --bs-btn-padding-y:.875rem;--bs-btn-font-size:.8125rem;--bs-btn-font-weight:700;
  --bs-btn-color:#fff;--bs-btn-bg:#000;--bs-btn-border-color:#000;
  --bs-btn-hover-color:#fff;--bs-btn-hover-bg:var(--sx-red);--bs-btn-hover-border-color:var(--sx-red);
  --bs-btn-active-color:#fff;--bs-btn-active-bg:var(--sx-red);--bs-btn-active-border-color:var(--sx-red);
  text-decoration:none
}
.product__description-short a.btn::before{
  content:"";flex:0 0 auto;width:1.125rem;height:1.125rem;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 3h2v9.17l3.59-3.58L18 10l-6 6-6-6 1.41-1.41L11 12.17V3zM5 19h14v2H5z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 3h2v9.17l3.59-3.58L18 10l-6 6-6-6 1.41-1.41L11 12.17V3zM5 19h14v2H5z'/%3E%3C/svg%3E") center/contain no-repeat
}
.product__description-short p:has(>a.btn:only-child){margin-bottom:0}

/* ---------- Sixten: B2B access pages (lnwksb2b split-screen layout), black ---------- */
/* The module's dark variant (modules/lnwksb2b/views/css/auth-minimal.css, loaded before this file): black form panel,
   white type. Here: the theme's white SIXTEN logo (no CSS filter), caps labels like the site, red primary button with
   white text (white on hover), white outline secondary button. The visual panel is unchanged. */
.auth-minimal-page{--auth-accent:var(--sx-red);--auth-font:"Montserrat",Arial,sans-serif}
/* height (not max-height): sixten_full-wh.svg has no intrinsic size (width/height 100%), so with max-height alone the <img> collapses to 0 x 0 in the flex header */
.auth-minimal-page .auth-minimal-logo img{height:2rem;max-height:none;width:auto;filter:none}
.auth-minimal-page .auth-minimal-langs a{color:#fff}
.auth-minimal-page .auth-minimal-heading,.auth-minimal-page .auth-minimal-card .page_heading{font-weight:800;color:#fff}
.auth-minimal-page .auth-minimal-card .form-control-label,.auth-minimal-page .auth-minimal-card .form-section-title{font-family:var(--rg-caps);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#fff}
.auth-minimal-page .auth-minimal-card .form-control:focus{box-shadow:0 0 0 3px rgba(var(--sx-red-rgb),.25)}
.auth-minimal-page .auth-minimal-card .btn{font-family:var(--rg-caps);font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.auth-minimal-page .auth-minimal-card .btn-primary{background-color:var(--sx-red);border-color:var(--sx-red);color:#fff;opacity:1}
.auth-minimal-page .auth-minimal-card .btn-primary:hover,.auth-minimal-page .auth-minimal-card .btn-primary:focus-visible{background-color:#fff;border-color:#fff;color:#000;opacity:1}
.auth-minimal-page .auth-minimal-card .btn-default{border-color:#fff;color:#fff}
.auth-minimal-page .auth-minimal-card .btn-default:hover,.auth-minimal-page .auth-minimal-card .btn-default:focus-visible{background-color:#fff;border-color:#fff;color:#000}
.auth-minimal-page .auth-minimal-card a:not(.btn){color:#fff;text-underline-offset:.2em}
.auth-minimal-page .auth-minimal-steps,.auth-minimal-page .auth-minimal-modal-title{font-family:var(--rg-caps)}
.auth-minimal-page .auth-minimal-card a:not(.btn):hover{color:var(--sx-red)}

/* ---------- Sixten: desktop menu items like the site titles ---------- */
/* First level of the burger accordion (from 1200px): Montserrat 800 caps, slanted like h1-h6 */
.rg-sidenav__list--depth-1>.rg-sidenav__item>.rg-sidenav__row>.rg-sidenav__link,
.rg-sidenav__link{font-family:var(--rg-font);font-size:1.375rem;font-weight:800;letter-spacing:0;line-height:1.15;text-transform:uppercase;display:inline-block;transform:skewX(-10deg)}

/* ---------- Sixten: account dashboard (templates/customer/my-account.tpl) ---------- */
.sx-account{padding-block:clamp(1rem,3vw,2.5rem) clamp(2rem,5vw,4rem)}
.sx-account__head{display:grid;justify-items:start;gap:.625rem;padding-bottom:clamp(1.5rem,3vw,2.5rem);margin-bottom:clamp(1.5rem,3vw,2.5rem);border-bottom:1px solid var(--rg-border)}
.sx-account__title{margin:0;font-size:clamp(2rem,4vw,3rem)}
.sx-account__meta{margin:0;color:var(--rg-text-2);font-size:.875rem}
.sx-account__meta strong{color:var(--rg-text);font-weight:700}
.sx-account__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.75rem}
.sx-account__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem}
@media (min-width:576px){.sx-account__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1200px){.sx-account__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* Cards, and the module links (displayCustomerAccount: a.account-menu__link > i.account-menu__icon) in the same shape */
.sx-account__card,.sx-account__grid>.account-menu__link{
  position:relative;display:flex;align-items:center;gap:1rem;min-height:6.5rem;padding:1.25rem 1.5rem;
  border:1px solid var(--rg-border);border-radius:0;background:var(--rg-bg);color:var(--rg-text);
  font-family:var(--rg-caps);font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;
  transition:border-color .2s,box-shadow .2s
}
.sx-account__card:hover,.sx-account__card:focus-visible,.sx-account__grid>.account-menu__link:hover,.sx-account__grid>.account-menu__link:focus-visible{border-color:var(--rg-text);box-shadow:0 8px 24px rgba(0,0,0,.06);color:var(--rg-text)}
.sx-account__icon,.sx-account__grid>.account-menu__link .account-menu__icon{
  flex:0 0 auto;display:grid;place-items:center;width:3rem;height:3rem;background:#000;color:#fff;font-size:1.5rem;transition:background-color .2s
}
.sx-account__card:hover .sx-account__icon,.sx-account__grid>.account-menu__link:hover .account-menu__icon{background:var(--sx-red)}
.sx-account__text{display:grid;gap:.25rem;min-width:0;flex:1 1 auto}
.sx-account__label{font-size:.8125rem;font-weight:700;letter-spacing:.06em;line-height:1.3}
.sx-account__desc{font-family:var(--rg-text-font);font-size:.8125rem;font-weight:500;letter-spacing:0;line-height:1.45;text-transform:none;color:var(--rg-text-2)}
.sx-account__arrow{flex:0 0 auto;font-size:1.125rem;transition:transform .2s}
.sx-account__card:hover .sx-account__arrow{transform:translateX(.25rem);color:var(--sx-red)}
.sx-account__signout{display:inline-flex;align-items:center;gap:.5rem;margin-top:2rem;font-family:var(--rg-caps);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--rg-text-2);text-decoration:none}
.sx-account__signout .material-icons{font-size:1.125rem}
.sx-account__signout:hover{color:var(--sx-red)}
/* Account sub-pages: the sidebar's active link marked in red */
.account-menu--sidebar .account-menu__link--active{background:var(--rg-surface);box-shadow:inset 3px 0 0 var(--sx-red);color:var(--rg-text)}
.sx-account__grid>.account-menu__link::after{content:"\2192";margin-left:auto;font-family:var(--rg-text-font);font-size:1.125rem;font-weight:400;transition:transform .2s}
.sx-account__grid>.account-menu__link:hover::after{transform:translateX(.25rem);color:var(--sx-red)}

/* ---------- Sixten: order history (templates/customer/history.tpl), same language as the account dashboard ---------- */
.sx-account__back{display:inline-flex;align-items:center;gap:.5rem;margin-bottom:1.25rem;font-family:var(--rg-caps);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--rg-text-2);text-decoration:none}
.sx-account__back:hover{color:var(--sx-red)}
.sx-orders__list{display:grid;gap:1rem}
.sx-order{display:grid;gap:1rem;padding:1.25rem 1.5rem;border:1px solid var(--rg-border);background:var(--rg-bg);transition:border-color .2s,box-shadow .2s}
.sx-order:hover{border-color:var(--rg-text);box-shadow:0 8px 24px rgba(0,0,0,.06)}
.sx-order__id{display:grid;gap:.25rem}
.sx-order__ref{font-family:var(--rg-caps);font-size:.9375rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.sx-order__date{font-size:.8125rem;color:var(--rg-text-2)}
.sx-order__status{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--rg-caps);font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.sx-order__dot{flex:0 0 auto;width:.625rem;height:.625rem;border-radius:50%}
.sx-order__facts{display:flex;flex-wrap:wrap;gap:1.5rem;margin:0}
.sx-order__facts dt{margin:0 0 .125rem;font-family:var(--rg-caps);font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--rg-text-3)}
.sx-order__facts dd{margin:0;font-size:.875rem}
.sx-order__total{font-weight:700}
.sx-order__actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.sx-order__invoice{display:grid;place-items:center;width:2.375rem;height:2.375rem;border:1px solid var(--rg-border);color:var(--rg-text);text-decoration:none}
.sx-order__invoice:hover{border-color:var(--rg-text);color:var(--sx-red)}
@media (min-width:992px){
  .sx-order{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1.4fr) auto;align-items:center;gap:1.5rem}
  .sx-order__actions{justify-content:flex-end}
}
/* Empty state */
.sx-empty{display:grid;justify-items:start;gap:.75rem;padding:clamp(1.5rem,4vw,3rem);background:var(--rg-surface)}
.sx-empty__title{margin:.5rem 0 0;font-size:clamp(1.375rem,2.4vw,1.75rem)}
.sx-empty__text{margin:0;max-width:40rem;font-size:.9375rem;color:var(--rg-text-2)}

/* ---------- Sixten: account pages content (templates/customer/page.tpl and its children) ---------- */
/* Intro line and forms: readable width */
.sx-account--page .sx-account__content>p:first-child{max-width:44rem;color:var(--rg-text-2)}
.sx-account--page .sx-account__content form{max-width:44rem}
/* Empty messages (no credit slip, no alert…): an airy light grey box, like the empty order history */
.sx-account--page .sx-account__content .alert-info,.sx-account--page .sx-account__content .alert-warning{padding:1.5rem;border:0;border-radius:0;background:var(--rg-surface);color:var(--rg-text)}
/* Addresses: cards like the dashboard ones */
.sx-account--page .addresses__list{gap:1rem}
.sx-account--page .address-card{height:100%;padding:1.5rem;border:1px solid var(--rg-border);border-radius:0;background:var(--rg-bg);box-shadow:none;transition:border-color .2s,box-shadow .2s}
.sx-account--page .address-card:hover{border-color:var(--rg-text);box-shadow:0 8px 24px rgba(0,0,0,.06)}
.sx-account--page .address-card__alias{font-family:var(--rg-caps);font-size:.875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.sx-account--page .address-card__content{font-size:.875rem;line-height:1.6;color:var(--rg-text-2)}
.sx-account--page .address-card__actions{display:flex;gap:1.25rem;margin-top:1rem}
.sx-account--page .address-card__actions a{font-family:var(--rg-caps);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--rg-text)}
.sx-account--page .address-card__actions a:hover{color:var(--sx-red)}
.sx-account--page .address-card__actions .address-card__delete{color:var(--sx-red)}
.sx-account--page .address-card--add-address{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;border-style:dashed;border-color:var(--rg-border-strong);background:var(--rg-surface);color:var(--rg-text);text-decoration:none}
.sx-account--page .address-card__add-text{font-family:var(--rg-caps);font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.sx-account--page .address-card__add-icon{display:grid;place-items:center;width:3rem;height:3rem;padding:0;border:0;border-radius:0;background:#000;color:#fff;font-size:1.5rem}
.sx-account--page .address-card--add-address:hover .address-card__add-icon{background:var(--sx-red)}

/* ---------- Sixten: cart (templates/checkout/cart.tpl, _partials/cart-detailed.tpl) ---------- */
.sx-cart{padding-block:clamp(1rem,3vw,2.5rem) clamp(2rem,5vw,4rem)}
.sx-cart .cart-grid{--bs-gutter-x:clamp(2rem,4vw,4rem)}
/* Product lines: cards like the account ones */
.sx-cart .cart__list{display:grid;gap:1rem}
.sx-cart .cart__item{border:1px solid var(--rg-border);background:var(--rg-bg);transition:border-color .2s,box-shadow .2s}
.sx-cart .cart__item:hover{border-color:var(--rg-text);box-shadow:0 8px 24px rgba(0,0,0,.06)}
.sx-cart .product-line{padding:1.25rem;gap:1.25rem;border:0}
.sx-cart .product-line__image{flex:0 0 auto;width:6.5rem;background:var(--rg-surface)}
.sx-cart a.product-line__title:not(.product-line__item){display:inline-block;margin-bottom:.5rem;font-family:var(--rg-font);font-size:1.125rem;font-weight:800;letter-spacing:0;text-transform:uppercase;text-decoration:none;color:var(--rg-text);transform:skewX(-10deg)}
.sx-cart .product-line__item--info{display:flex;gap:.375rem;font-size:.8125rem;line-height:1.6}
.sx-cart .product-line__item-label{font-family:var(--rg-caps);font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--rg-text-3)}
.sx-cart .product-line__item-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--rg-text)}
.sx-cart .product-line__item--prices{margin-top:.5rem;font-size:.8125rem;color:var(--rg-text-2)}
.sx-cart .product-line__price{font-size:1.125rem;font-weight:800}
.sx-cart .product-line__actions{margin-top:.75rem}
.sx-cart .product-line__actions .js-remove-from-cart{font-family:var(--rg-caps);font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--rg-text-3);text-decoration:none}
.sx-cart .product-line__actions .js-remove-from-cart:hover{color:var(--sx-red)}
.sx-cart .cart__continue-shopping{margin-top:1.5rem}
/* Summary: light grey panel, slanted title, totals, red checkout button */
.sx-cart .cart-grid__aside-wrapper{padding:clamp(1.5rem,3vw,2rem);background:var(--rg-surface)}
.sx-cart__summary-title{margin:0 0 1.25rem;font-size:1.375rem}
.sx-cart .cart-summary__line{display:flex;justify-content:space-between;gap:1rem;padding-block:.5rem;font-size:.875rem}
.sx-cart .cart-summary__label{color:var(--rg-text-2)}
.sx-cart .cart-summary__value{font-weight:600}
.sx-cart .cart-summary__total{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--rg-border)}
.sx-cart .cart-summary__total .cart-summary__line{border:0;margin:0;padding-block:.375rem}
/* B2B: the total excluding tax first and stronger */
.sx-cart .cart-summary__total .cart-summary__line:first-child{font-size:1.0625rem}
.sx-cart .cart-summary__total .cart-summary__line:first-child .cart-summary__label{color:var(--rg-text);font-weight:700}
.sx-cart .cart-summary__total .cart-summary__line:first-child .cart-summary__value{font-weight:800}
.sx-cart .cart-summary .btn-primary{width:100%;margin-top:1.25rem;--bs-btn-padding-y:1rem}

/* ---------- Sixten: an_productfields file value in the cart, modal and order summaries ---------- */
.sx-file-ok{display:inline-flex;align-items:center;gap:.3125rem;font-weight:600;color:var(--rg-text);white-space:nowrap}
.sx-file-ok .material-icons{font-size:1rem;color:#1e8e3e}
/* Long attribute values never overflow (modal, cart lines, summaries) */
.blockcart-modal__property,.product-line__item--info,.cart-summary-product__attribute,[class*="__product-attribute"]{overflow-wrap:anywhere;min-width:0}

/* ---------- Sixten: checkout (templates/checkout/checkout.tpl and the lnwks step templates) ---------- */
.sx-checkout__intro{padding-top:clamp(1rem,3vw,2.5rem)}
.sx-checkout__head{margin-bottom:1.5rem;padding-bottom:1.5rem}
/* Step bar: square numbers, grey to do, red current, black done; thin grey / black lines */
.checkout-steps{margin-bottom:2rem;padding:0;background:transparent;border:0}
.checkout-steps__number{position:relative;z-index:1;display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:0;background:var(--rg-surface-3);color:var(--rg-text);font-family:var(--rg-caps);font-size:.8125rem;font-weight:800}
.checkout-steps__step:after,.checkout-steps__step:before{top:.9375rem;height:1px;background:var(--rg-border)}
.checkout-steps__step--current .checkout-steps__number{background:var(--sx-red);color:#fff}
.checkout-steps__step--success .checkout-steps__number{background:#000;color:#fff}
.checkout-steps__step--current:before,.checkout-steps__step--success:after,.checkout-steps__step--success:before{background:#000}
.checkout-steps__btn{display:block;margin:.5rem auto 0;padding:0;font-family:var(--rg-caps);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--rg-text-3);text-decoration:none}
.checkout-steps__step--current .checkout-steps__btn,.checkout-steps__step--success .checkout-steps__btn{color:var(--rg-text)}
/* Steps as cards */
.checkout-grid{--bs-gutter-x:clamp(2rem,4vw,4rem)}
.checkout-grid .step:not(.d-none){margin-bottom:1rem;padding:clamp(1.25rem,2.5vw,2rem);border:1px solid var(--rg-border);background:var(--rg-bg)}
.checkout-grid .step--current{border-color:#000}
.checkout-grid .step__title hr{display:none}
.checkout-grid .step__title{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.checkout-grid .step__title .page-title-section{margin:0;font-family:var(--rg-font);font-size:clamp(1.125rem,1.8vw,1.375rem);font-weight:800;letter-spacing:0;text-transform:uppercase;display:inline-block;transform:skewX(-10deg)}
.checkout-grid .step--current .step__content{margin-top:1.5rem}
.checkout-grid .step--complete .step__title .page-title-section::before{content:"\2713";display:inline-block;margin-right:.5rem;color:#1e8e3e;transform:skewX(10deg)}
/* Selectable cards: addresses, carriers, payment options; the chosen one gets a black border and a red line */
.checkout-grid .address-card,.checkout-grid .delivery-option__item,.checkout-grid .payment-option{border:1px solid var(--rg-border);border-radius:0;background:var(--rg-bg);transition:border-color .2s,box-shadow .2s}
.checkout-grid .address-card{padding:1.25rem}
.checkout-grid .delivery-option__item,.checkout-grid .payment-option{margin-bottom:.75rem;padding:1rem 1.25rem}
.checkout-grid .address-card:hover,.checkout-grid .delivery-option__item:hover,.checkout-grid .payment-option:hover{border-color:var(--rg-text)}
.checkout-grid .address-card:has(input:checked),.checkout-grid .delivery-option__item:has(input:checked),.checkout-grid .payment-option:has(input:checked){border-color:#000;box-shadow:inset 3px 0 0 var(--sx-red)}
.checkout-grid .address-card__alias,.checkout-grid .delivery-option__carrier-name,.checkout-grid .payment-option__label{font-family:var(--rg-caps);font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.checkout-grid .address-card__content{font-size:.875rem;line-height:1.6;color:var(--rg-text-2)}
.checkout-grid .address-card__actions a{font-family:var(--rg-caps);font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--rg-text)}
.checkout-grid .address-card__actions a:hover{color:var(--sx-red)}
.checkout-grid .delivery-option__price{font-weight:700}
.checkout-grid .form-check-input:checked{background-color:#000;border-color:#000}
/* Step buttons: red main action, black outline back */
.checkout-grid .step .btn-primary{--bs-btn-padding-x:2rem;--bs-btn-padding-y:.9375rem}
/* Summary panel like the cart one */
.checkout-grid__aside-wrapper{padding:clamp(1.5rem,3vw,2rem);background:var(--rg-surface)}
.checkout__summary-accordion,.checkout__summary-accordion-item{border:0;background:transparent}
.checkout__summary-accordion-header .accordion-button{padding:0 0 1rem;background:transparent;box-shadow:none;font-family:var(--rg-font);font-size:1.375rem;font-weight:800;letter-spacing:0;text-transform:uppercase;color:var(--rg-text)}
/* Products detail toggle inside the summary ("Show details"): small caps, not a title */
.checkout-grid .cart-summary__products-accordion .accordion-button{padding:.75rem 0;background:transparent;box-shadow:none;font-family:var(--rg-caps);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--rg-text)}
.checkout-grid .cart-summary__products-accordion,.checkout-grid .cart-summary__products-accordion .accordion-item{border:0;background:transparent}
.checkout-grid .cart-summary__line{display:flex;justify-content:space-between;gap:1rem;padding-block:.375rem;font-size:.875rem}
.checkout-grid .cart-summary__label{color:var(--rg-text-2)}
.checkout-grid .cart-summary__total{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--rg-border)}
.checkout-grid .cart-summary__total .cart-summary__line:first-child{font-size:1.0625rem}
.checkout-grid .cart-summary__total .cart-summary__line:first-child .cart-summary__label{color:var(--rg-text);font-weight:700}
.checkout-grid .cart-summary__total .cart-summary__line:first-child .cart-summary__value{font-weight:800}
.checkout-grid .cart-summary-product__link{font-family:var(--rg-caps);font-size:.8125rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;color:var(--rg-text)}
.checkout-grid .cart-summary-product__attribute{font-size:.75rem;color:var(--rg-text-2)}

/* ---------- Product page: unit price + total for the quantity wanted (templates/catalog/_partials/product-prices.tpl) ---------- */
.page-product .sx-price-lines{display:grid;gap:.375rem;margin:0}
.page-product .sx-price-line{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:0}
.page-product .sx-price-line dt{margin:0;font-family:var(--rg-caps);font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--rg-text-3)}
.page-product .sx-price-line dd{margin:0;text-align:right}
.page-product .sx-price-qty{font-weight:500;letter-spacing:.04em}
.page-product .sx-price-per{margin-left:.25rem;font-family:var(--rg-caps);font-size:.6875rem;letter-spacing:.06em;color:var(--rg-text-3)}
.page-product .sx-price-line--total{padding-top:.5rem;border-top:1px solid var(--rg-border)}
.page-product .sx-price-line--total dt{color:var(--rg-text-2)}
.page-product .sx-total-price{font-family:var(--rg-text-font);font-size:1.5rem;font-weight:700;letter-spacing:0;color:var(--rg-text)}
.page-product .sx-price-default{margin-right:.5rem;font-size:.9375rem;font-weight:400;color:var(--rg-text-3)}

/* ---------- Product page: quantity tier grid (templates/catalog/_partials/product-discounts.tpl) ---------- */
.page-product .sx-tiers{width:100%;margin-bottom:.5rem;font-size:.875rem;--bs-table-bg:transparent}
.page-product .sx-tiers th{font-family:var(--rg-caps);font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--rg-text-3);white-space:nowrap}
.page-product .sx-tiers td{font-variant-numeric:tabular-nums}
.page-product .sx-tiers .sx-tiers__price{font-weight:700;color:var(--rg-text)}
.page-product .sx-tiers .sx-tiers__saving{color:var(--sx-red);font-weight:600}
.page-product .sx-tiers .sx-tiers__none{color:var(--rg-text-3)}
.page-product .sx-tiers__row--current>*{background:var(--rg-overlay);box-shadow:inset 0 0 0 0 transparent}
.page-product .sx-tiers__row--current>td:first-child{box-shadow:inset 3px 0 0 var(--sx-red);font-weight:700}
.page-product .sx-tiers__note{margin:0 0 1.5rem;font-size:.6875rem;color:var(--rg-text-3)}
@media (max-width:575.98px){.page-product .sx-tiers{font-size:.75rem}.page-product .sx-tiers th{letter-spacing:.04em;white-space:normal}.page-product .sx-tiers th,.page-product .sx-tiers td{padding-inline:.375rem}}

/* =====================================================================================================================
   Product page, UX pass (2026-10): gallery = one image or a carousel; the details scroll, the gallery stays in view;
   the configuration is a 3-step flow (1 size, 2 design, 3 quantity and tiers) ending with a recap, the quantity and the
   add to cart. Overrides the earlier "Product page" rules above (same specificity, later in the file).
   ===================================================================================================================== */

/* ----- Layout: gallery (7/12) sticky on the left, details (5/12) scrolling on the right ----- */
@media (min-width:992px){
  .page-product .product__container{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(2rem,4vw,4.5rem)}
  .page-product .product__container>.product__left{position:sticky;top:var(--rg-sticky-top,5rem)}
  .page-product .product__container>.product__right{position:static}
  .page-product .product__container .product__carousel{display:block}
  .page-product .product__container .rg-gallery{display:none}
}

/* ----- Gallery ----- */
.page-product .product__images{position:relative}
.page-product .product__carousel{background:var(--rg-surface)}
.page-product .product__carousel .carousel-item img{width:100%;height:auto;aspect-ratio:1/1;max-height:calc(100vh - 9rem);object-fit:contain;background:var(--rg-surface)}
.page-product .product__zoom{position:absolute;top:1rem;right:1rem;z-index:2}
.page-product .product__flags{position:absolute;top:1rem;left:1rem;z-index:2}
/* Thumbnails (only rendered when there are several images) */
.page-product .product__thumbnails{margin-top:.5rem}
.page-product .product__thumbnails-list{display:flex;gap:.5rem;margin:0;padding:0;list-style:none;overflow-x:auto;scrollbar-width:thin}
.page-product .product__thumbnails-item{flex:0 0 auto}
.page-product .product__thumbnail{display:block;width:4.5rem;aspect-ratio:1/1;padding:0;border:1px solid transparent;border-radius:0;background:var(--rg-surface);opacity:.6;transition:opacity .15s ease,border-color .15s ease}
.page-product .product__thumbnail:hover{opacity:1}
.page-product .product__thumbnail.active{border-color:var(--rg-text);opacity:1}
.page-product .product__thumbnail img{display:block;width:100%;height:100%;object-fit:cover;border:0!important}

/* ----- Right column: header ----- */
.page-product .product__right{display:flex;flex-direction:column;gap:0;min-width:0}
.page-product h1.product__name{margin-bottom:1rem}
.page-product .product__prices{margin:0 0 1.5rem;padding:1.25rem 0;border-block:1px solid var(--rg-border)}
.page-product .product__prices .sx-price-lines{gap:.5rem}
.page-product .sx-price-line--unit .product__price{font-size:1.5rem;font-weight:700}
.page-product .sx-price-line--total{padding-top:.75rem}
.page-product .sx-total-price{font-size:1.25rem}
.page-product .product__prices .product__tax-infos{margin-top:.5rem}
.page-product .product__description-short{margin-bottom:2rem;font-size:.9375rem}
.page-product .product__description-short ul{margin-bottom:1rem}
.page-product .product__description-short li{padding-block:.25rem}
.page-product .product__description-short li::before{top:calc(.25rem + .825em)}
/* The gabarit link is a secondary action (the primary one is "Ajouter au panier") */
.page-product .product__description-short .btn{display:inline-flex;align-items:center;gap:.5rem;width:auto;min-height:2.5rem;padding:.5rem 1.25rem;border:1px solid var(--rg-text);border-radius:var(--rg-pill);background:transparent;color:var(--rg-text);font-family:var(--rg-caps);font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;text-decoration:none}
.page-product .product__description-short .btn:hover{background:var(--rg-text);color:var(--rg-bg)}

/* ----- Configuration: numbered steps, in this visual order whatever the DOM order (the module puts its field after the tiers) ----- */
.page-product .product__actions{margin:0;padding:0;border:0}
.page-product #add-to-cart-or-refresh{display:flex;flex-direction:column;gap:2rem}
.page-product #add-to-cart-or-refresh>.product__variants{order:1}
.page-product #add-to-cart-or-refresh>.product__pack{order:1}
.page-product #add-to-cart-or-refresh>.js-an-pf-fields-wrap{order:2}
.page-product #add-to-cart-or-refresh>.js-product-discounts{order:3}
.page-product #add-to-cart-or-refresh>.js-product-add-to-cart{order:4}
.page-product #add-to-cart-or-refresh>.js-product-additional-info{order:5}
.page-product .product__variants,.page-product .js-an-pf-fields-wrap,.page-product .product__discounts{margin:0}

/* Step titles: a numbered disc + small caps (size legend, module field label, tiers heading) */
.page-product .product-variant__legend,.page-product .js-an-pf-fields-wrap .control-label,.page-product .sx-step__title{display:flex;align-items:center;gap:.625rem;margin:0 0 .875rem;font-family:var(--rg-caps);font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--rg-text)}
.page-product .product-variant__legend::before,.page-product .js-an-pf-fields-wrap .control-label::before,.page-product .sx-step__title::before{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--rg-text);color:var(--rg-bg);font-family:var(--rg-caps);font-size:.6875rem;font-weight:700;letter-spacing:0}
.page-product .product-variant__legend::before{content:"1"}
.page-product .js-an-pf-fields-wrap .control-label::before{content:"2"}
.page-product .sx-step__title::before{content:"3"}
.page-product .product-variant__legend::after{content:"(cm)";font-weight:500;letter-spacing:.04em;color:var(--rg-text-3)}
/* The module's required mark follows the label */
.page-product .js-an-pf-fields-wrap .an-pf-field-red{order:2;margin-left:.125rem;color:var(--sx-red)}
.page-product .js-an-pf-fields-wrap .an-pf-field-label-title{order:1}
/* Selected size next to the legend */
.page-product .product-variant__selected{display:none}

/* Sizes: an even grid instead of ragged rows of pills */
.page-product .product-variant__radios{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.25rem,1fr));gap:.5rem}
.page-product .product-variant__radio{min-width:0}
.page-product .product-variant__radio .btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:2.75rem;padding:.5rem;border-radius:0;font-family:var(--rg-caps);font-size:.75rem;font-weight:600;letter-spacing:.04em}

/* Step 2: the design drop zone */
.page-product .an-pf-file-dropzone-trigger{padding:1rem 1.25rem}
.page-product .an-pf-file-help{margin-top:.5rem}

/* Step 3: tiers table (heading above, table flush) */
.page-product .sx-tiers{margin-bottom:.5rem}
.page-product .sx-tiers__note{margin:0}

.page-product .product__availability{margin-bottom:1rem}

/* ----- Accordion under the flow ----- */
.page-product .product__accordion{margin-top:2.5rem}

/* ----- Mobile: single column, the gallery first, compact paddings ----- */
@media (max-width:991.98px){
  .page-product .product__container{gap:1.5rem}
  .page-product .product__carousel .carousel-item img{max-height:none}
  .page-product h1.product__name{margin-bottom:.75rem}
  .page-product #add-to-cart-or-refresh{gap:1.75rem}
}
/* Tiers heading: an h3 (slanted inline-block title by default) set like the other step titles */
.page-product .sx-step__title{transform:none;font-style:normal;display:flex}
.page-product .js-an-pf-fields-wrap .an-pf-field-red{margin-left:-.375rem}
.page-product .product__zoom{border:1px solid var(--rg-border);background:#fff}
@media (max-width:575.98px){.page-product .sx-tiers td:first-child{white-space:nowrap}}

/* ----- The unit price / total block now sits in the form, right above the quantity / add to cart ----- */
.page-product #add-to-cart-or-refresh>.js-product-prices{order:4;margin:0 0 -1rem;padding:1.5rem 0 0;border:0;border-top:1px solid var(--rg-border)}
.page-product #add-to-cart-or-refresh>.js-product-add-to-cart{order:5}
.page-product #add-to-cart-or-refresh>.js-product-additional-info{order:6}
.page-product .js-product-prices .sx-price-lines{gap:.375rem}
.page-product .js-product-prices .sx-price-line--unit .product__price{font-size:1.125rem;font-weight:600}
.page-product .js-product-prices .sx-price-line--total{padding-top:.5rem}
.page-product .js-product-prices .sx-price-line--total dt{font-weight:700;color:var(--rg-text)}
.page-product .js-product-prices .sx-total-price{font-size:1.75rem;font-weight:800;line-height:1.1}
.page-product .js-product-prices .product__tax-infos{margin-top:.25rem;text-align:right}

/* ----- Condensed: tiers table and short description ----- */
.page-product .sx-tiers{font-size:.8125rem;margin-bottom:.25rem}
.page-product .sx-tiers>:not(caption)>*>*{padding:.25rem .5rem}
.page-product .sx-tiers th{font-size:.625rem;letter-spacing:.06em;padding-top:0}
.page-product .sx-tiers .sx-tiers__unit{font-weight:500;letter-spacing:.02em;text-transform:none}
.page-product .sx-tiers__note{font-size:.625rem}
.page-product .product__description-short{margin-bottom:1.5rem;font-size:.8125rem;line-height:1.4}
.page-product .product__description-short ul{margin-bottom:.75rem}
.page-product .product__description-short li{padding-block:.125rem;padding-left:1.25rem}
.page-product .product__description-short li::before{top:calc(.125rem + .7em);width:.625rem}
.page-product .product__description-short p{margin-bottom:.75rem}

/* ----- Image block: smaller, white background, a hairline between it and the details ----- */
.page-product .product__carousel,.page-product .product__carousel .carousel-item,.page-product .product__carousel .carousel-item img,.page-product .product__thumbnail{background:#fff}
.page-product .product__carousel .carousel-item img{max-height:calc(100vh - 12rem)}
@media (min-width:992px){
  .page-product .product__container{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:0}
  .page-product .product__container>.product__left{padding-right:clamp(1.5rem,3vw,3rem)}
  .page-product .product__container>.product__right{padding-left:clamp(1.5rem,3vw,3rem);border-left:1px solid var(--rg-border)}
}

/* ---------- Contact page: B2B quote form (lnwkscontactfields, theme config contact-fields.json) ---------- */
.rg-narrow--contact{max-width:860px}
.rg-narrow--contact .row{--bs-gutter-x:1rem;--bs-gutter-y:1rem}
.cf-groups{margin-bottom:1rem}
.cf-intro{margin:0 0 1.5rem;padding:1rem 1.25rem;border-left:3px solid var(--sx-red);background:var(--rg-surface);color:var(--rg-text-2);font-size:.875rem;line-height:1.5}
.cf-heading{margin:1.25rem 0 0;padding-bottom:.5rem;border-bottom:1px solid var(--rg-border);font-family:var(--rg-caps);font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--rg-text)}
.cf-group .form-text,.cf-note{font-size:.75rem;color:var(--rg-text-3)}
.cf-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));gap:.5rem .75rem;margin-top:.25rem}
.cf-checks .form-check{margin:0;padding-left:1.75rem}
.cf-checks .form-check-label{font-size:.8125rem}
.cf-more{border:1px solid var(--rg-border);padding:.75rem 1rem}
.cf-more>summary{cursor:pointer;font-family:var(--rg-caps);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.cf-note{margin:0 0 1rem;padding:.875rem 1rem;border:1px solid var(--rg-border);background:var(--rg-surface);color:var(--rg-text-2);line-height:1.5}
.cf-note:not([hidden])::before{content:"i";display:inline-flex;align-items:center;justify-content:center;width:1.125rem;height:1.125rem;margin-right:.5rem;border-radius:50%;background:var(--rg-text);color:var(--rg-bg);font-size:.6875rem;font-weight:700;vertical-align:.0625rem}
.cf-hp{position:absolute!important;left:-10000px!important}

/* ---------- lnwkspages route pages (Custom Surface): a shorter hero, the image anchored at the bottom centre ---------- */
body#module-lnwkspages-page .lnwks-hero{min-height:50svh;padding-block:6rem 2.5rem}
body#module-lnwkspages-page .lnwks-hero__image{object-position:center bottom}

/* ---------- Contact page: the form beside a full-height image flush with the right edge (templates/contact.tpl) ---------- */
.rg-contact-split{display:grid;grid-template-columns:minmax(0,1fr)}
.rg-narrow.rg-narrow--form{max-width:none;margin:0}
.rg-contact-split__media{display:none;margin:0}
@media (min-width:992px){
  /* The container pads its sides by max(1rem, 5vw): the image cancels the right padding to reach the window edge */
  .rg-contact-split{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:stretch;margin-right:calc(-1 * max(1rem, 5vw));margin-bottom:-2rem;min-height:calc(100svh - 7rem)}
  .rg-narrow.rg-narrow--form{padding-right:clamp(2rem,4vw,4rem);padding-bottom:calc(clamp(2rem,5vw,4rem) + 2rem)}
  /* The image touches the breadcrumb: its 40px margin moves into the form column */
  body#contact .breadcrumb__wrapper{margin-bottom:0}
  .rg-narrow.rg-narrow--form{padding-top:calc(clamp(2rem,5vw,4rem) + 2.5rem)}
  .rg-contact-split__media{display:block;position:relative;overflow:hidden;background:var(--rg-surface)}
  .rg-contact-split__media img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center 40%}
}
/* Route pages: the hero sits right under the breadcrumb (no gap) */
body#module-lnwkspages-page .breadcrumb__wrapper{margin-bottom:0}
/* Route pages (Custom Surface): a stronger black overlay on the hero image (30% elsewhere) */
body#module-lnwkspages-page .lnwks-hero__media::after{background:rgba(0,0,0,.55)}
/* Embedded quote form (Custom Surface): side gutter on narrow screens */
.rg-surface-form .rg-narrow{padding-inline:1rem}
/* Two columns from 992px: the intro on the left (sticky), the form card on the right */
.rg-surface-form__inner{display:grid;grid-template-columns:minmax(0,1fr);gap:0;padding-inline:max(1rem,5vw)}
.rg-surface-form__aside{display:grid;gap:1.25rem;align-content:start;padding:clamp(2rem,5vw,4rem) 1rem 0}
.rg-surface-form__eyebrow{margin:0;font-family:var(--rg-caps);font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;line-height:1.4;color:var(--rg-text-2)}
.rg-surface-form__heading{margin:0;font-family:var(--rg-font);font-weight:800;font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.08;letter-spacing:.02em}
.rg-surface-form__text{margin:0;color:var(--rg-text-2);font-size:.9375rem;line-height:1.5}
.rg-surface-form__cards{margin-top:.5rem}
.rg-surface-form__list{display:grid;gap:1px;margin:0;padding:0;list-style:none;background:var(--rg-border);border:1px solid var(--rg-border);border-radius:var(--rg-radius);overflow:hidden}
.rg-surface-form__card{display:grid;gap:.25rem;align-content:start;padding:1rem 1.25rem;background:#fff}
.rg-surface-form__card-label{font-family:var(--rg-caps);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--rg-brand-2)}
.rg-surface-form__card-title{margin:0;font-family:var(--rg-font);font-weight:800;font-size:1rem;line-height:1.2}
.rg-surface-form__card-text{margin:0;color:var(--rg-text-2);font-size:.875rem;line-height:1.45}
@media (min-width:992px){
  .rg-surface-form__inner{grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(2rem,5vw,5rem)}
  .rg-surface-form__aside{align-self:start;margin-block:clamp(2rem,5vw,4rem);padding:0}
  .rg-surface-form .rg-narrow.rg-surface-form__main{max-width:none;margin:0;padding-inline:0}
}
@media (min-width:992px) and (min-height:760px){
  .rg-surface-form__aside{position:sticky;top:1.5rem}
}
/* Custom Surface page: the quote block on the same grey band as the footer banner; the white card stays white */
.rg-surface-form{background:#f2f2f2;border-bottom:1px solid var(--rg-border)}
.rg-surface-form .rg-narrow>.page-content{background:#fff}

/* Route pages: the breadcrumb is moved under the hero by custom.js (.rg-bc-ready); out of the flow and hidden until then */
body#module-lnwkspages-page .breadcrumb__wrapper:not(.rg-bc-ready),body#contact .breadcrumb__wrapper:not(.rg-bc-ready){position:absolute;visibility:hidden}
body#module-lnwkspages-page .lnwks-hero + .breadcrumb__wrapper{border-top:0;margin-bottom:0}

/* Contact page: the breadcrumb tops the form column (custom.js); the image beside it starts at the top of the window */
.rg-narrow--form>.breadcrumb__wrapper{margin:0 0 1.5rem;padding:0;border:0;background:transparent}
.rg-narrow--form>.breadcrumb__wrapper>.container{padding-inline:0;max-width:none}
@media (min-width:992px){
  body#contact .rg-narrow.rg-narrow--form{padding-top:1.25rem}
}
