/* арлайт.com premium visual system. Functional behavior remains in store.js. */
:root {
  --ink: #17191a;
  --muted: #686b6d;
  --red: #d71932;
  --red-dark: #cf142b;
  --paper: #fff;
  --soft: #f4f1ec;
  --soft-2: #ebe7e0;
  --line: #ded9d1;
  --dark: #17191a;
  --dark-2: #242728;
  --warm: #c6a36d;
  --font-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", "Segoe UI", sans-serif;
  --font-text: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", "Segoe UI", sans-serif;
  --radius-sm: 12px;
  --radius-md: 18px;
  --radius-lg: 28px;
  --radius-xl: 40px;
  --shadow-soft: 0 20px 70px rgba(28, 29, 29, .08);
  --shadow-float: 0 28px 90px rgba(22, 23, 23, .14);
  --shell: 1540px;
}

html,
body {
  overflow-x: clip;
}
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }

html {
  background: var(--soft);
  color-scheme: light;
}

body {
  min-width: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--font-text) !important;
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body::selection { color: #fff; background: var(--red); }
.image-placeholder { color: #656b6e; }

h1, h2, h3, h4, h5, h6,
.product-price, .product-price-inline strong, .cart-total > strong {
  color: var(--ink);
  font-family: var(--font-display) !important;
  font-weight: 720;
  text-wrap: balance;
}

p { text-wrap: pretty; }
a, button, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button, a { transition: color .2s ease, border-color .2s ease, background-color .2s ease, opacity .2s ease, transform .2s ease, box-shadow .2s ease; }
button:active, .button:active { transform: scale(.98); }

.shell {
  width: min(calc(100% - clamp(32px, 6vw, 96px)), var(--shell));
}

.section { padding: clamp(82px, 9vw, 148px) 0; }
.section-soft { background: var(--soft); }

.button {
  min-height: 52px;
  padding: 0 24px;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -.01em;
}
.button.primary { box-shadow: 0 14px 35px rgba(239, 35, 60, .2); }
.button.primary:hover { transform: translateY(-2px); box-shadow: 0 18px 42px rgba(239, 35, 60, .3); }
.button.ghost { border-color: var(--line); background: rgba(255, 255, 255, .7); }
.button.ghost:hover { border-color: #aaa49c; background: #fff; }

/* Header */
.site-header {
  top: 0;
  z-index: 70;
  border-bottom: 1px solid rgba(222, 217, 209, .82);
  background: rgba(255, 255, 255, .9);
  box-shadow: 0 5px 28px rgba(30, 31, 31, .035);
  backdrop-filter: saturate(160%) blur(22px);
}
.utility-bar { color: #d6d3ce; background: #151718; font-size: 11px; letter-spacing: .02em; }
.utility-bar .shell { min-height: 32px; align-items: center; padding: 0; }
.utility-bar a { color: #fff; font-weight: 650; }
.header-main {
  grid-template-columns: auto auto minmax(320px, 1fr) auto;
  min-height: 78px;
  gap: clamp(14px, 2vw, 28px);
}
.logo {
  display: inline-flex;
  align-items: center;
  color: var(--ink);
  font-size: 17px;
  font-weight: 760;
  letter-spacing: -.055em;
}
.logo-dot { width: 9px; height: 9px; margin-right: 11px; box-shadow: 0 0 0 7px rgba(239, 35, 60, .1); }
.catalog-trigger {
  min-width: 132px;
  min-height: 46px;
  padding: 0 24px;
  border-radius: 999px;
  color: #fff;
  background: var(--red);
  font-size: 13px;
  font-weight: 700;
}
.catalog-trigger:hover { background: #cf1027; transform: translateY(-1px); }
.search-form {
  min-height: 48px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: #f3f1ed;
  box-shadow: inset 0 0 0 1px rgba(222, 217, 209, .5);
}
.search-form:focus-within { border-color: rgba(239, 35, 60, .45); background: #fff; box-shadow: 0 10px 30px rgba(24, 25, 25, .08); }
.search-form input { padding-inline: 20px; font-size: 14px; }
.search-form > button { padding: 0 20px; color: var(--ink); font-size: 13px; }
.quick-nav { gap: 4px; }
.quick-nav a {
  width: 42px;
  height: 42px;
  border: 1px solid transparent;
  font-size: 19px;
}
.quick-nav a:hover { border-color: var(--line); background: var(--soft); transform: translateY(-1px); }
.quick-nav b, .mobile-cart-link b { font-variant-numeric: tabular-nums; }

.search-suggestions {
  top: calc(100% + 12px);
  overflow: hidden;
  border-color: var(--line);
  border-radius: 22px;
  box-shadow: var(--shadow-float);
}
.search-suggestions a { min-height: 76px; padding: 12px 16px; }
.search-suggestions a:hover { background: var(--soft); }
.search-suggestions img { width: 52px; height: 52px; border-radius: 10px; background: #fff; }

/* Mega menu */
.mega-menu { background: rgba(249, 247, 243, .98); box-shadow: 0 36px 90px rgba(19, 20, 20, .16); backdrop-filter: blur(24px); }
.mega-menu.open { border-top-color: var(--line); }
.mega-shell { min-height: 520px; padding-block: 28px 36px; }
.mega-level-root { padding-right: 20px; border-right: 1px solid var(--line); }
.mega-root-link, .mega-second-link {
  min-height: 46px;
  padding: 10px 13px;
  border-radius: 12px;
  font-size: 14px;
}
.mega-root-link.active, .mega-root-link:hover, .mega-second-link.active, .mega-second-link:hover { color: var(--ink); background: #fff; box-shadow: 0 8px 24px rgba(25, 26, 26, .06); }
.mega-root-link.active { color: var(--red); }
.mega-content { padding-left: 26px; }
.mega-panel-head a { font-size: 22px; letter-spacing: -.04em; }
.mega-third-links { gap: 4px 24px; }
.mega-third-links a { padding: 8px 10px; border-radius: 9px; color: #4e5152; }
.mega-third-links a:hover { color: var(--red); background: #fff; }

/* Page headers and breadcrumbs */
.page-top {
  padding: clamp(46px, 6vw, 88px) 0 clamp(38px, 5vw, 68px);
  border-bottom: 1px solid var(--line);
  background:
    radial-gradient(circle at 82% 0, rgba(198, 163, 109, .14), transparent 30%),
    linear-gradient(145deg, #f8f6f2, #efebe4);
}
.page-top h1 {
  max-width: 1100px;
  margin: 18px 0 0;
  font-size: clamp(38px, 5.2vw, 78px);
  font-weight: 690;
  line-height: .98;
  letter-spacing: -.065em;
}
.page-top p { max-width: 680px; margin: 18px 0 0; color: var(--muted); font-size: 16px; }
.eyebrow, .home-label, .home-heading > span, .home-heading > div > span,
.home-engineering-intro > span, .home-final-card > div > span {
  color: var(--red);
  font-size: 11px;
  font-weight: 760;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.breadcrumbs { gap: 9px; margin-bottom: 0; color: #6d6f6c; font-size: 12px; }
.breadcrumbs a:hover { color: var(--red); }
.breadcrumbs span[aria-hidden] { color: #aaa69f; }

/* Home */
.home-hero {
  min-height: calc(100svh - 110px);
  padding: clamp(58px, 7vw, 106px) 0 clamp(70px, 8vw, 120px);
  background:
    radial-gradient(circle at 13% 8%, rgba(239, 35, 60, .09), transparent 29%),
    radial-gradient(circle at 72% 4%, rgba(205, 178, 130, .22), transparent 32%),
    linear-gradient(135deg, #f8f6f1 0%, #fff 53%, #eee9e1 100%);
}
.home-hero::before { opacity: .45; background-size: 72px 72px; }
.home-hero-grid { grid-template-columns: minmax(0, 1.06fr) minmax(480px, .82fr); gap: clamp(54px, 7vw, 120px); }
.home-hero-copy { align-self: center; }
.home-hero h1 {
  max-width: 900px;
  margin-top: 21px;
  font-size: clamp(58px, 6.1vw, 106px);
  font-weight: 690;
  line-height: .87;
  letter-spacing: -.075em;
}
.home-hero h1 em { display: inline-block; color: var(--red); }
.home-hero-lead { max-width: 690px; margin: 32px 0; color: #55595a; font-size: clamp(17px, 1.25vw, 20px); line-height: 1.62; }
.home-task-search {
  position: relative;
  max-width: 720px;
  padding: 8px;
  border-color: rgba(206, 199, 188, .8);
  border-radius: 22px;
  background: rgba(255, 255, 255, .86);
  box-shadow: 0 22px 70px rgba(34, 32, 29, .1);
}
.home-task-search .home-search-suggestions {
  position: absolute;
  inset: calc(100% + 10px) 0 auto;
  z-index: 30;
  max-height: min(440px, 55vh);
  overflow-y: auto;
  text-align: left;
}
.home-task-search > .home-search-suggestions:not([hidden]) { display: block; }
.home-task-search .home-search-suggestions a { display: flex; width: 100%; }
.home-task-search input { height: 56px; border-radius: 15px; background: #f5f2ed; }
.home-task-search button { min-width: 118px; border-radius: 15px; background: var(--ink); }
.home-hero-actions { margin-top: 24px; }
.home-button-dark { border-color: #ada79f; background: rgba(255, 255, 255, .45); }
.home-assurances { margin-top: 30px; color: #606263; }
.home-assurances i { background: #fff; box-shadow: 0 0 0 1px var(--line); }

.home-scene {
  min-height: 650px;
  padding: 32px;
  border-radius: var(--radius-xl);
  background: linear-gradient(155deg, #292d2d 0%, #0c0e0e 78%);
  box-shadow: 0 45px 110px rgba(20, 21, 21, .25);
}
.home-scene::after { border-color: rgba(255, 255, 255, .13); }
.home-scene-products { height: 420px; }
.home-scene-product { border-color: rgba(255, 255, 255, .2); box-shadow: 0 30px 80px rgba(0, 0, 0, .5); }
.home-scene-product-1 { top: 60px; left: 8%; width: 260px; height: 260px; }
.home-scene-product-2 { right: 1%; bottom: 18px; width: 190px; height: 190px; }
.home-scene-product-3 { top: 52px; right: 1%; width: 128px; height: 128px; }
.home-scene-switch { padding: 5px; border-radius: 999px; }
.home-scene-switch button { border-radius: 999px; }

.home-proof { background: #fff; }
.home-proof-grid > div { padding: 28px clamp(20px, 2.5vw, 40px); }
.home-proof-grid strong { font-size: 24px; font-weight: 690; }
.home-proof-grid span { margin-top: 3px; font-size: 12px; }

.home-heading { max-width: 960px; margin-bottom: 54px; }
.home-heading h2, .home-engineering h2, .home-final h2 {
  font-size: clamp(44px, 5.4vw, 86px);
  font-weight: 680;
  line-height: .94;
  letter-spacing: -.07em;
}
.home-heading > p { margin-top: 24px; font-size: 18px; line-height: 1.65; }
.home-arrow-link { padding-bottom: 10px; border-bottom-color: #aaa49b; }
.home-arrow-link:hover { color: var(--red); border-color: var(--red); }

.home-route-grid { gap: 18px; }
.home-route-card {
  min-height: 410px;
  padding: 34px;
  border-color: var(--line);
  border-radius: var(--radius-lg);
  box-shadow: 0 10px 40px rgba(26, 27, 27, .035);
}
.home-route-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-soft); }
.home-route-card h3 { font-size: clamp(26px, 2.1vw, 36px); }
.home-route-card-red { border-color: var(--red); background: linear-gradient(145deg, #f52a42, #df172e); box-shadow: 0 22px 60px rgba(239, 35, 60, .2); }
.home-route-card-dark { border-color: var(--dark); background: linear-gradient(145deg, #282b2c, #131515); }
.home-route-card-red h3, .home-route-card-dark h3 { color: #fff; }

.home-catalog { background: var(--soft); }
.home-category-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.home-category-card {
  min-height: 350px;
  padding: 26px;
  border-color: transparent;
  border-radius: var(--radius-lg);
  box-shadow: 0 0 0 1px var(--line);
}
.home-category-card:hover { transform: translateY(-7px); box-shadow: var(--shadow-soft); }
.home-category-card h3 { font-size: clamp(20px, 1.6vw, 28px); }
.home-category-card img { right: -9%; bottom: -3%; width: 74%; height: 69%; }
.home-category-card-3, .home-category-card-6 { background: linear-gradient(145deg, #fff, #f7ede9); }

.home-applications { background: #141617; }
.home-applications::before { background: radial-gradient(circle, rgba(239, 35, 60, .2), transparent 65%); }
.home-applications h2, .home-applications h3 { color: #fff; }
.home-application-grid { border-color: #393c3c; }
.home-application-grid a { min-height: 250px; padding: 30px; border-color: #393c3c; }
.home-application-grid a:hover { background: rgba(255, 255, 255, .045); }
.home-application-grid h3 { margin-top: 70px; font-size: 28px; }

.home-products { background: #fff; }
.home-new-more { display: grid; justify-items: center; gap: 8px; margin-top: 32px; text-align: center; }
.home-new-more p { min-height: 20px; margin: 0; color: var(--muted); font-size: 12px; }
.home-engineering { background: linear-gradient(180deg, #fff, #f7f4ef); }
.home-engineering-grid { gap: clamp(64px, 9vw, 150px); }
.home-steps li { min-height: 170px; padding: 32px 0; }
.home-steps h3 { font-size: 28px; }
.home-final { padding: 0 0 clamp(44px, 7vw, 110px); background: #f7f4ef; }
.home-final-card {
  padding: clamp(44px, 6vw, 90px);
  border-radius: var(--radius-xl);
  background:
    radial-gradient(circle at 85% 15%, rgba(255,255,255,.18), transparent 25%),
    linear-gradient(135deg, #f32640, #ca1027);
  box-shadow: 0 35px 100px rgba(207, 20, 43, .25);
}
.home-final-card h2 { color: #fff; }

/* Product cards */
.product-grid { gap: 18px; }
.product-card {
  min-width: 0;
  padding: 14px;
  border: 0;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 0 0 1px rgba(222, 217, 209, .95);
}
.product-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-soft); }
.product-image { height: clamp(210px, 18vw, 280px); margin-bottom: 15px; border-radius: 15px; background: #faf9f7; }
.product-image img { padding: 8px; mix-blend-mode: multiply; }
.product-meta { color: #626562; font-size: 11px; }
.product-meta .stock { margin-top: 0; font-size: inherit; }
.product-card h3 { min-height: 3.65em; margin: 9px 0; font-size: 14px; font-weight: 670; line-height: 1.22; letter-spacing: -.025em; }
.stock { font-size: 12px; }
.stock.available { color: #106e3d; }
.product-buy { gap: 12px; margin-top: 12px; }
.product-price-inline { gap: 7px; }
.product-price-inline strong { font-size: 19px; font-weight: 710; font-variant-numeric: tabular-nums; }
.product-price-inline small { font-size: 11px; }
.product-card-quick-actions { top: 22px; right: 22px; gap: 6px; }
.product-card-quick-actions .card-icon-button {
  width: 30px;
  height: 30px;
  border-color: rgba(210, 205, 197, .9);
  border-radius: 50%;
  background: rgba(255, 255, 255, .9);
  box-shadow: 0 7px 20px rgba(23, 25, 26, .09);
  backdrop-filter: blur(10px);
}
.product-buy .card-cart { width: min(100%, 176px); }
.card-cart > [data-card-add] { height: 42px; border-radius: 999px; font-size: 12px; }
.card-quantity { grid-template-columns: 40px minmax(0, 1fr) 40px; gap: 6px; }
.card-quantity button, .card-quantity input { height: 40px; border-radius: 999px; }
.card-quantity input { background: #faf9f7; }

/* Catalog */
.catalog-layout { grid-template-columns: 286px minmax(0, 1fr); gap: 34px; align-items: start; }
.filters {
  top: 128px;
  gap: 14px;
  max-height: calc(100vh - 154px);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-color: #bbb5ad transparent;
  scrollbar-width: thin;
  padding: 24px;
  border-color: var(--line);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 16px 60px rgba(26, 27, 27, .055);
}
.filters h2 { margin: 0 0 4px; font-size: 22px; }
.filters > label:not(.check) { gap: 8px; color: #56595a; font-size: 12px; }
.filters input, .filters select { min-height: 46px; border-color: var(--line); border-radius: 12px; background: #faf9f7; }
.filter-facet { padding: 15px 0; border-color: var(--line); }
.filter-facet legend { margin-bottom: 6px; font-size: 13px; }
.filter-option { min-height: 30px; font-size: 13px; }
.filter-option input { accent-color: var(--red); }
.filter-more summary { color: var(--red); }
.filters-toggle { margin-bottom: 18px; }
.catalog-navigation { padding-top: 16px; }
.catalog-navigation { display: grid; gap: 18px; }
.catalog-load-more { justify-items: center; order: -1; text-align: center; }
.catalog-load-more .button { min-width: 220px; }
.catalog-navigation-mode, .related-filter button { border-color: var(--line); border-radius: 999px; font-size: 12px; }
.pagination a, .pagination span { border-radius: 999px; }
.seo-content { color: #55595a; font-size: 16px; line-height: 1.7; }
.seo-content h2 { color: var(--ink); }

/* Product detail */
.product-page { grid-template-columns: minmax(0, 1.05fr) minmax(420px, .78fr); gap: clamp(46px, 7vw, 110px); margin-top: 34px; }
main > .section:has(.product-page) { padding-top: 68px; }
.product-gallery { align-content: start; border-radius: var(--radius-lg); background: #faf9f7; }
.gallery-stage { border-radius: var(--radius-lg); background: #faf9f7; }
.gallery-stage > img { height: min(680px, 48vw); padding: 28px; mix-blend-mode: multiply; }
.gallery-thumbs { gap: 10px; padding: 14px 4px 4px; background: #fff; }
.gallery-thumbs button { width: 72px; height: 72px; border-color: var(--line); border-radius: 13px; background: #faf9f7; }
.product-info { position: sticky; top: 130px; align-self: start; padding-top: 8px; }
.product-info h1 { margin: 14px 0 22px; font-size: clamp(29px, 3vw, 32px); font-weight: 690; line-height: 1.02; letter-spacing: -.055em; }
.product-info .stock { display: inline-flex; align-items: center; min-height: 30px; padding: 0 11px; border-radius: 999px; background: #edf7f0; }
.product-price { margin: 28px 0 5px; font-size: clamp(32px, 3vw, 46px); font-weight: 700; }
.product-price small { margin-top: 3px; }
.step-note { margin: 7px 0 0; font-size: 13px; }
.buy-form { display: grid; grid-template-columns: minmax(0, 1fr) 50px 50px; align-items: stretch; width: 100%; margin: 28px 0 0; gap: 10px; }
.buy-form > .button.primary { grid-column: 1; min-width: 0; }
.product-quantity { display: grid; grid-column: 1 / -1; grid-template-columns: 50px minmax(0, 1fr) 50px; align-items: center; gap: 10px; }
.product-quantity button, .product-quantity input, .icon-action { height: 50px; }
.product-quantity button { width: 50px; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: #fff; color: var(--ink); font-size: 20px; line-height: 1; cursor: pointer; transition: border-color .18s ease, background .18s ease, transform .18s ease; }
.product-quantity button:hover { border-color: #aaa49b; background: #faf9f7; transform: scale(1.04); }
.product-quantity input { width: 100%; max-width: none; padding: 0 14px; border: 1px solid var(--line); border-radius: 999px; background: #fff; text-align: center; font-weight: 700; appearance: textfield; -moz-appearance: textfield; }
.product-quantity input::-webkit-inner-spin-button, .product-quantity input::-webkit-outer-spin-button { margin: 0; appearance: none; -webkit-appearance: none; }
.icon-action { position: relative; width: 50px; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: #fff; color: var(--ink); cursor: pointer; font-size: 19px; line-height: 1; transition: border-color .18s ease, background .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease; }
.icon-action:hover { border-color: #aaa49b; background: #faf9f7; transform: translateY(-1px); }
.icon-action.active { border-color: var(--red); background: var(--red); color: #fff; box-shadow: 0 7px 20px rgba(239, 35, 60, .22); }
.product-card-quick-actions .card-icon-button.active { border-color: var(--red); background: var(--red); color: #fff; box-shadow: 0 5px 14px rgba(239, 35, 60, .2); }
.product-quantity button:focus-visible, .product-quantity input:focus-visible, .icon-action:focus-visible { outline: 3px solid rgba(239, 35, 60, .2); outline-offset: 2px; }
.product-discount-callout {
  margin-top: 24px;
  padding: 22px;
  border-radius: 20px;
  background: linear-gradient(145deg, #242727, #111313);
  box-shadow: 0 24px 60px rgba(19, 20, 20, .14);
}
.product-description, .product-specifications, .documents-section { max-width: 1180px; }
.product-description { margin-top: 110px; padding-top: 70px; }
.product-description h2, .product-specifications h2, .documents-section h2, .related-heading h2 {
  margin: 0 0 28px;
  font-size: clamp(34px, 4.2vw, 64px);
  line-height: 1;
  letter-spacing: -.055em;
}
.product-description p { color: #505455; font-size: 17px; line-height: 1.75; }
.spec-groups { column-gap: 22px; }
.spec-groups > section { padding: 24px; border: 1px solid var(--line); border-radius: 20px; background: #faf9f7; }
.spec-groups h3 { font-size: 17px; }
.spec-groups dt, .spec-groups dd { padding: 11px 0; font-size: 13px; }
.document-grid article { border-color: var(--line); border-radius: 18px; background: #faf9f7; }
.related-product-group { margin-top: 82px; }
.related-product-grid { gap: 14px; }
.related-product-grid .product-image { height: 170px; }
.related-product-grid .product-card h3 { font-size: 13px; }

/* Cart and checkout */
.cart-layout { grid-template-columns: minmax(0, 1fr) 390px; gap: 42px; }
.cart-list { align-self: start; padding: 0 26px; border: 1px solid var(--line); border-radius: 26px; background: #fff; }
.cart-row { grid-template-columns: 112px minmax(0, 1fr) 180px 34px; gap: 24px; padding: 24px 0; }
.cart-thumb { width: 112px; height: 112px; border-radius: 16px; background: #faf9f7; }
.cart-thumb img { max-height: 100px; mix-blend-mode: multiply; }
.cart-row h3 { max-width: 760px; font-size: 16px; line-height: 1.3; }
.cart-row p { margin-bottom: 0; }
.cart-controls { display: grid; justify-items: end; }
.cart-quantity { padding: 4px; border: 1px solid var(--line); border-radius: 999px; background: #faf9f7; }
.cart-quantity input { border: 0; background: transparent; }
.quantity-button { border: 0 !important; border-radius: 50% !important; background: #fff !important; }
.cart-line-total { font-size: 18px; }
.remove { border-color: var(--line); background: #fff; }
.remove:hover { color: #fff; border-color: var(--red); background: var(--red); }
.cart-total, .order-summary {
  top: 130px;
  padding: 30px;
  border-radius: 26px;
  background: linear-gradient(150deg, #282b2c, #111313);
  box-shadow: 0 28px 80px rgba(20, 21, 21, .18);
}
.cart-total > strong { margin: 11px 0; font-size: 38px; color: #fff; }
.cart-total .button { width: 100%; }
.cart-back { color: #fff; background: transparent !important; border-color: #505353 !important; }

.checkout-layout { grid-template-columns: minmax(0, 760px) 390px; gap: 42px; }
.checkout-form { padding: clamp(28px, 4vw, 48px); border-color: var(--line); border-radius: 28px; box-shadow: 0 18px 70px rgba(24, 25, 25, .06); }
.field { gap: 9px; font-size: 13px; }
.checkout-form .field > input, .checkout-form .field > textarea,
.modal-form input, .modal-form textarea { min-height: 52px; border-color: var(--line); border-radius: 14px; background: #faf9f7; }
.company-details { padding: 20px; border-color: var(--line); border-radius: 16px; background: #faf9f7; }
.checkout-form > .button { min-height: 56px; }
.order-summary h2 { color: #fff; }
.checkout-summary-total strong { color: #fff; font-size: 34px; }

/* Personal lists, comparison and states */
.empty-state { padding: clamp(36px, 6vw, 72px); border: 1px solid var(--line); border-radius: 26px; background: #faf9f7; }
.compare-scroll { border: 1px solid var(--line); border-radius: 22px; background: #fff; }
.compare-table thead { top: 110px; }
.compare-table th, .compare-table td { border-color: var(--line); }
.success-page { background: linear-gradient(145deg, #f8f6f2, #eee9e1); }

/* Modal and footer */
.modal-backdrop { background: rgba(11, 12, 12, .72); backdrop-filter: blur(8px); }
.modal-card { border-radius: 28px; box-shadow: 0 40px 120px rgba(0,0,0,.3); }
.modal-card h2 { font-size: clamp(34px, 4vw, 54px); letter-spacing: -.055em; }
.toast { border-radius: 16px; background: var(--dark); box-shadow: var(--shadow-float); }

.site-footer { padding: 86px 0 26px; background: #121414; }
.footer-grid { grid-template-columns: 1.45fr .75fr .9fr; gap: clamp(40px, 8vw, 130px); }
.footer-grid > div { gap: 13px; }
.footer-grid .logo { font-size: 21px; }
.footer-grid p { max-width: 430px; line-height: 1.7; }
.footer-request { margin-top: 16px; color: #fff; border-bottom: 1px solid #666; }
.footer-request:hover { color: #ff5266; border-color: #ff5266; }
.footer-bottom { margin-top: 70px; padding-top: 23px; border-color: #333636; }

/* Never leave large blank areas while waiting for observer callbacks. */
html.reveal-ready [data-home-reveal] { opacity: 1; transform: none; }
html.reveal-ready [data-home-reveal].is-visible { animation: premium-reveal .65s cubic-bezier(.2,.8,.2,1) both; }
@keyframes premium-reveal { from { opacity: .45; transform: translateY(14px); } }

@media (max-width: 1180px) {
  .header-main { grid-template-columns: auto auto minmax(260px, 1fr) auto; }
  .home-hero-grid { grid-template-columns: minmax(0, 1fr) 440px; gap: 46px; }
  .home-hero h1 { font-size: clamp(54px, 7vw, 80px); }
  .home-scene { min-height: 590px; }
  .home-category-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .related-product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .product-page { grid-template-columns: minmax(0, 1fr) minmax(390px, .85fr); gap: 46px; }
}

@media (max-width: 980px) {
  .quick-nav { display: none; }
  .header-main { grid-template-columns: auto auto minmax(220px, 1fr); }
  .home-hero-grid, .product-page, .home-engineering-grid { grid-template-columns: 1fr; }
  .home-scene { min-height: 590px; }
  .home-route-grid { grid-template-columns: 1fr; }
  .home-route-card { min-height: 300px; }
  .home-application-grid { grid-template-columns: repeat(2, 1fr); }
  .home-engineering-intro, .product-info { position: static; }
  .catalog-layout { grid-template-columns: 235px minmax(0, 1fr); gap: 24px; }
  .cart-layout, .checkout-layout { grid-template-columns: 1fr; }
  .cart-total, .order-summary { position: static; order: -1; }
  .cart-total { order: 0; }
}

@media (max-width: 760px) {
  body { font-size: 15px; }
  .shell { width: min(calc(100% - 28px), var(--shell)); }
  .section { padding: 68px 0; }
  .utility-bar, .catalog-trigger, .header-main > .search-form, .quick-nav { display: none; }
  .site-header { backdrop-filter: saturate(150%) blur(18px); }
  .header-main { grid-template-columns: minmax(0, 1fr) 42px 42px 42px; min-height: 66px; gap: 7px; }
  .logo { font-size: 16px; }
  .logo-dot { width: 8px; height: 8px; margin-right: 9px; box-shadow: 0 0 0 6px rgba(239,35,60,.1); }
  .mobile-search-toggle, .mobile-cart-link, .mobile-menu { width: 42px; height: 42px; border-color: var(--line); border-radius: 50%; background: #fff; }
  .mobile-search-toggle svg, .mobile-cart-link svg { width: 20px; height: 20px; }
  .search-form.mobile-open { top: 66px; padding: 10px 14px 14px; background: rgba(255,255,255,.97); }
  .search-form.mobile-open input { height: 48px; background: var(--soft); }
  .search-suggestions { top: 122px; border-radius: 18px; }

  .mega-menu { top: 66px; background: #f7f4ef; }
  .mega-menu.open { z-index: 68; height: calc(100svh - 66px); max-height: calc(100svh - 66px); overflow: hidden; }
  .mega-shell { min-height: calc(100svh - 66px); padding: 10px 0 28px; }
  .mega-root-link, .mega-second-link { min-height: 52px; border-radius: 13px; background: rgba(255,255,255,.66); }
  .mega-root-link.active, .mega-second-link.active { background: #fff; }
  .mega-content { padding-left: 0; }

  .page-top { padding: 28px 0 36px; }
  .page-top h1 { margin-top: 15px; font-size: clamp(34px, 11vw, 50px); line-height: .98; }
  .page-top p { margin-top: 13px; font-size: 14px; }
  .breadcrumbs { gap: 8px; padding-bottom: 2px; }

  .home-hero { min-height: auto; padding: 44px 0 58px; }
  .home-hero-grid { gap: 42px; }
  .home-hero h1 { margin-top: 15px; font-size: clamp(46px, 14vw, 67px); line-height: .88; }
  .home-hero-lead { margin: 24px 0; font-size: 16px; }
  .home-task-search { padding: 6px; border-radius: 17px; }
  .home-task-search label { padding: 3px 7px 6px; }
  .home-task-search input { height: 48px; padding-inline: 12px; }
  .home-task-search button { min-width: 76px; border-radius: 12px; }
  .home-task-search .home-search-suggestions {
    position: absolute;
    inset: calc(100% + 8px) 0 auto;
    max-height: 46vh;
    border-radius: 16px;
  }
  .home-assurances { gap: 10px; }
  .home-scene { min-height: 500px; padding: 21px; border-radius: 28px; }
  .home-scene-products { height: 300px; }
  .home-scene-product-1 { top: 48px; left: 1%; width: 190px; height: 190px; }
  .home-scene-product-2 { right: 0; bottom: 10px; width: 132px; height: 132px; }
  .home-scene-product-3 { top: 45px; right: 0; width: 88px; height: 88px; }
  .home-scene > p { margin-bottom: 14px; font-size: 13px; }
  .home-scene-switch button { min-height: 40px; font-size: 12px; }

  .home-proof-grid { grid-template-columns: repeat(2, 1fr); }
  .home-proof-grid > div { min-height: 92px; padding: 18px 14px; border-bottom: 1px solid var(--line); }
  .home-proof-grid > div:first-child { padding-left: 14px; }
  .home-proof-grid > div:nth-child(2) { border-right: 0; }
  .home-proof-grid > div:nth-last-child(-n+2) { border-bottom: 0; }
  .home-proof-grid strong { font-size: 19px; }

  .home-heading { margin-bottom: 32px; }
  .home-heading h2, .home-engineering h2, .home-final h2 { font-size: clamp(38px, 11.5vw, 54px); }
  .home-heading > p { margin-top: 17px; font-size: 15px; }
  .home-heading-row { gap: 20px; }
  .home-route-card { min-height: 270px; padding: 25px; border-radius: 22px; }
  .home-route-card h3 { font-size: 27px; }
  .home-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .home-category-card { min-height: 235px; padding: 16px; border-radius: 19px; }
  .home-category-card h3 { max-width: 100%; font-size: 17px; }
  .home-category-card img { width: 78%; height: 60%; }
  .home-application-grid { grid-template-columns: 1fr; }
  .home-application-grid a { min-height: 170px; padding: 20px; }
  .home-application-grid h3 { margin-top: 42px; font-size: 22px; }
  .home-products .product-grid { grid-auto-columns: 78%; gap: 12px; padding: 4px 1px 18px; scroll-padding-left: 1px; }
  .home-steps li { min-height: 130px; padding: 24px 0; }
  .home-steps h3 { font-size: 21px; }
  .home-final-card { padding: 30px 24px; border-radius: 24px; }

  .catalog-layout { display: block; }
  .filters-toggle { position: sticky; top: 76px; z-index: 12; width: 100%; margin: 0 0 18px; background: rgba(255,255,255,.94); backdrop-filter: blur(14px); }
  .filters { position: static; display: none; margin-bottom: 22px; padding: 20px; border-radius: 20px; box-shadow: none; }
  .filters.open { display: grid; max-height: none; overflow: visible; animation: filter-open .25s ease both; }
  @keyframes filter-open { from { opacity: 0; transform: translateY(-8px); } }
  .product-grid, .catalog-layout .product-grid { grid-auto-flow: row; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; overflow: visible; }
  .product-card { padding: 10px; border-radius: 18px; }
  .product-image { height: 165px; margin-bottom: 11px; border-radius: 12px; }
  .product-image img { padding: 4px; }
  .product-card-quick-actions { top: 16px; right: 16px; gap: 4px; }
  .product-card-quick-actions .card-icon-button { width: 28px; height: 28px; }
  .product-meta { font-size: 10px; }
  .product-card h3 { min-height: 3.55em; font-size: 13px; line-height: 1.18; }
  .product-price-inline strong { font-size: 17px; }
  .product-buy .card-cart { width: 100%; }
  .card-cart > [data-card-add] { width: 100%; }
  .card-quantity { grid-template-columns: 38px minmax(0, 1fr) 38px; }
  .catalog-navigation-modes, .related-filter { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }

  .product-page { gap: 24px; margin-top: 20px; }
  main > .section:has(.product-page) { padding-top: 28px; }
  .gallery-stage > img { height: min(92vw, 430px); padding: 12px; }
  .gallery-thumbs { margin-inline: -2px; }
  .product-info h1 { margin: 12px 0 18px; font-size: clamp(20px, 2.4vw, 26px); }
  .product-price { font-size: 34px; }
  .buy-form { grid-template-columns: minmax(0, 1fr) 48px 48px; gap: 8px; }
  .product-quantity { grid-template-columns: 48px minmax(0, 1fr) 48px; gap: 8px; }
  .product-quantity button, .icon-action { width: 48px; height: 48px; }
  .product-quantity input { height: 48px; }
  .buy-form > .button.primary { grid-column: 1; min-width: 0; padding-inline: 12px; }
  .product-description { margin-top: 70px; padding-top: 42px; }
  .product-description h2, .product-specifications h2, .documents-section h2, .related-heading h2 { font-size: 36px; }
  .product-description p { font-size: 15px; }
  .spec-groups { columns: 1; }
  .spec-groups > section { padding: 18px; }
  .document-grid { grid-template-columns: 1fr; }
  .related-product-group { margin-top: 58px; }
  .related-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .related-product-grid .product-image { height: 145px; }

  .cart-list { padding: 0 16px; border-radius: 20px; }
  .cart-row { grid-template-columns: 82px minmax(0, 1fr) 30px; gap: 12px; padding: 18px 0; }
  .cart-thumb { width: 82px; height: 82px; }
  .cart-row > div:nth-child(2) { min-width: 0; }
  .cart-row h3 { font-size: 14px; overflow-wrap: anywhere; }
  .cart-row .cart-controls { grid-column: 2 / -1; justify-items: stretch; }
  .cart-row > form { grid-column: 3; grid-row: 1; }
  .cart-quantity { display: grid; grid-template-columns: 38px minmax(0, 1fr) 38px; }
  .cart-quantity input { width: 100%; }
  .cart-line-total { justify-self: end; }
  .cart-total, .order-summary { padding: 24px; border-radius: 22px; }
  .checkout-form { padding: 22px 16px; border-radius: 22px; box-shadow: none; }
  .checkout-form { grid-template-columns: 1fr; }
  .checkout-form > * { grid-column: 1 !important; }
  .company-details[open] { grid-template-columns: 1fr; }
  .company-details[open] summary { grid-column: 1; }

  .footer-grid { grid-template-columns: 1fr; gap: 36px; }
  .footer-grid > div:first-child { grid-column: auto; }
  .site-footer { padding-top: 60px; }
  .footer-bottom { display: grid; margin-top: 44px; }
  .modal { padding: 10px; }
  .modal-card { max-height: calc(100svh - 20px); overflow-y: auto; padding: 28px 20px; border-radius: 23px; }
}

/* Header, catalog controls, and product-detail responsive refinements */
.mobile-phone-link,
.filters-drag-handle,
.specifications-toggle,
.specifications-fade {
  display: none;
}

@media (min-width: 761px) {
  .header-main {
    grid-template-columns: auto auto minmax(260px, 620px) auto auto;
    justify-content: space-between;
  }

  .search-form {
    width: min(100%, 620px);
    justify-self: center;
  }

  .header-phone {
    display: grid;
    justify-items: end;
    min-width: max-content;
    line-height: 1.12;
  }

  .header-phone span {
    color: var(--muted);
    font-size: 10px;
  }

  .header-phone strong {
    font-size: 14px;
    letter-spacing: -.02em;
  }
}

.product-image,
.related-product-grid .product-image {
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
}

.product-image img,
.related-product-grid .product-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.gallery-stage {
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
}

.gallery-stage > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: contain;
}

.spec-groups dl {
  display: block;
  margin: 0;
}

.spec-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.spec-row dt,
.spec-row dd {
  margin: 0;
}

@media (max-width: 1120px) and (min-width: 761px) {
  .header-main {
    grid-template-columns: auto auto minmax(220px, 1fr) auto;
  }

  .header-phone {
    display: none;
  }
}

@media (max-width: 760px) {
  body {
    padding-top: 66px;
  }

  .site-header {
    position: fixed;
    inset: 0 0 auto;
    width: 100%;
  }

  .header-main {
    grid-template-columns: minmax(0, 1fr) repeat(4, 40px);
    min-height: 66px;
    gap: 5px;
  }

  .mobile-phone-link {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: #fff;
  }

  .mobile-phone-link svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.65;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .mobile-search-toggle,
  .mobile-cart-link,
  .mobile-menu {
    width: 40px;
    height: 40px;
  }

  .filters {
    --filter-drag-y: 0px;
    position: fixed;
    inset: auto 0 0;
    z-index: 91;
    display: flex;
    width: 100%;
    height: min(88dvh, 760px);
    max-height: 88dvh !important;
    margin: 0;
    padding: 0;
    overflow: hidden !important;
    border: 0;
    border-radius: 24px 24px 0 0;
    background: #fff;
    box-shadow: 0 -28px 70px rgba(15,16,17,.22);
    visibility: hidden;
    transform: translateY(calc(105% + var(--filter-drag-y)));
    transition: visibility 0s linear .34s, transform .34s cubic-bezier(.22,.8,.26,1);
  }

  .filters.open {
    display: flex;
    visibility: visible;
    transform: translateY(var(--filter-drag-y));
    transition-delay: 0s;
  }

  .filters.is-dragging {
    transition: none;
  }

  .filters-drag-handle {
    display: grid;
    place-items: center;
    flex: 0 0 24px;
    width: 100%;
    height: 24px;
    padding: 0;
    border: 0;
    background: transparent;
    touch-action: none;
    cursor: grab;
  }

  .filters-drag-handle span {
    width: 42px;
    height: 4px;
    border-radius: 99px;
    background: #cbc7c1;
  }

  .filters-header {
    min-height: 60px;
    padding-top: 7px;
  }

  .filters-scroll {
    min-height: 0;
    padding-top: 8px;
  }

  .filter-option {
    min-height: 38px;
  }

  .product-page {
    gap: 16px;
    margin-top: 10px;
  }

  main > .section:has(.product-page) {
    padding-top: 20px;
  }

  .gallery-stage,
  .gallery-stage > img {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
  }

  .gallery-stage > img {
    padding: 10px;
  }

  .product-info h1 {
    margin: 9px 0 12px;
    font-size: clamp(20px, 2.4vw, 26px);
    line-height: 1.14;
  }

  .product-price {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 7px;
    margin: 17px 0 3px;
    font-size: clamp(27px, 8vw, 34px);
    line-height: 1;
  }

  .product-price small {
    display: inline;
    margin: 0;
    font-size: 12px;
    white-space: nowrap;
  }

  .step-note {
    margin-top: 6px;
    font-size: 12px;
  }

  .product-image,
  .related-product-grid .product-image {
    height: auto;
    aspect-ratio: 1 / 1;
  }

  .product-specifications {
    position: relative;
    margin-top: 46px;
  }

  .product-specifications h2 {
    font-size: clamp(29px, 9vw, 36px);
  }

  .spec-groups > section {
    padding: 15px;
  }

  .spec-row {
    gap: 12px;
  }

  .product-specifications.is-collapsible:not(.is-expanded) .mobile-spec-hidden,
  .product-specifications.is-collapsible:not(.is-expanded) .mobile-spec-group-hidden {
    display: none;
  }

  .product-specifications.is-collapsible:not(.is-expanded) .specifications-fade {
    position: absolute;
    right: 0;
    bottom: 48px;
    left: 0;
    display: block;
    height: 74px;
    background: linear-gradient(to bottom, rgba(255,255,255,0), #fff 76%);
    pointer-events: none;
  }

  .specifications-toggle:not([hidden]) {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 46px;
    margin-top: 10px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fff;
    color: var(--ink);
    font-size: 13px;
    font-weight: 700;
  }
}

@media (max-width: 390px) {
  .header-main {
    grid-template-columns: minmax(0, 1fr) repeat(4, 36px);
    gap: 4px;
  }

  .mobile-phone-link,
  .mobile-search-toggle,
  .mobile-cart-link,
  .mobile-menu {
    width: 36px;
    height: 36px;
  }

  .logo {
    font-size: 14px;
  }
}

/* Faceted catalog navigation */
main:has(.catalog-layout) > .page-top { padding-top: 44px; padding-bottom: 42px; }
main:has(.catalog-layout) > .page-top h1 { font-size: clamp(38px, 4.4vw, 66px); }
main > .section:has(.catalog-layout) { padding-top: 56px; }
.catalog-toolbar { display: grid; gap: 12px; }
.filters-toggle { display: none; }
.filters-backdrop { display: none; }
.catalog-layout { grid-template-columns: 292px minmax(0, 1fr); gap: 32px; }
.filters {
  position: sticky;
  top: 116px;
  display: flex;
  max-height: calc(100vh - 140px);
  padding: 0;
  gap: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 18px 58px rgba(23, 25, 26, .07);
  flex-direction: column;
}
.filters-header { display: flex; align-items: center; justify-content: space-between; padding: 22px 22px 16px; }
.filters-header h2 { margin: 0; font-size: 21px; line-height: 1.1; letter-spacing: -.025em; }
.filters-header p { margin: 5px 0 0; color: var(--muted); font-size: 11px; }
.filters-close { display: none; }
.filters-scroll { min-height: 0; padding: 0 22px 8px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #c9c3bb transparent; }
.filter-sort { display: grid; gap: 7px; padding: 0 0 17px; color: var(--muted); font-size: 12px; font-weight: 650; }
.filters .filter-sort select { width: 100%; height: 44px; min-height: 44px; padding: 0 36px 0 13px; border: 1px solid var(--line); border-radius: 12px; background-color: #faf9f7; color: var(--ink); font-size: 13px; cursor: pointer; }
.filter-facet { display: block; margin: 0; padding: 0; border: 0; border-top: 1px solid var(--line); }
.filter-facet > summary { display: grid; grid-template-columns: minmax(0, 1fr) 16px; align-items: center; min-height: 52px; padding: 0; list-style: none; cursor: pointer; font-size: 13px; font-weight: 700; }
.filter-facet > summary::-webkit-details-marker, .filter-more > summary::-webkit-details-marker { display: none; }
.filter-facet > summary i { position: relative; width: 12px; height: 12px; }
.filter-facet > summary i::before, .filter-facet > summary i::after { position: absolute; top: 5px; left: 1px; width: 10px; height: 1px; background: var(--ink); content: ""; transition: transform .2s ease; }
.filter-facet:not([open]) > summary i::after { transform: rotate(90deg); }
.filter-values { display: grid; gap: 2px; padding: 0 0 14px; }
.filter-option { position: relative; display: grid !important; grid-template-columns: 18px minmax(0, 1fr) auto; align-items: center; min-height: 30px; padding: 2px 0; gap: 8px; color: #3d4143; font-size: 12.5px; font-weight: 450 !important; line-height: 1.2; cursor: pointer; }
.filter-option input { position: absolute; width: 1px !important; height: 1px; opacity: 0; pointer-events: none; }
.filter-option > i { display: grid; place-items: center; width: 18px; height: 18px; border: 1px solid #c8c4bd; border-radius: 5px; background: #fff; transition: border-color .15s ease, background .15s ease; }
.filter-option > i::after { width: 8px; height: 4px; border-bottom: 2px solid #fff; border-left: 2px solid #fff; content: ""; opacity: 0; transform: translateY(-1px) rotate(-45deg); }
.filter-option:has(input:checked) > i { border-color: var(--red); background: var(--red); }
.filter-option:has(input:checked) > i::after { opacity: 1; }
.filter-option:has(input:focus-visible) > i { outline: 3px solid rgba(239, 35, 60, .18); outline-offset: 2px; }
.filter-option small { min-width: 27px; padding: 2px 6px; border-radius: 999px; background: #f4f1ec; color: #62605c; text-align: center; font-size: 10px; }
.filter-option.unavailable { color: #aaa7a2; opacity: .62; cursor: not-allowed; }
.filter-more { margin-top: 3px; }
.filter-more > summary { min-height: 34px; color: var(--red); list-style: none; font-size: 12px; font-weight: 650; cursor: pointer; }
.filter-more[open] > summary { margin-bottom: 4px; }
.filter-price { padding: 15px 0 18px; }
.filter-price legend { margin-bottom: 10px; padding: 0; font-size: 13px; font-weight: 700; }
.filter-price-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.filter-price-grid label { position: relative; display: block; }
.filter-price-grid label > span { position: absolute; z-index: 1; top: 50%; left: 12px; color: #66635f; font-size: 12px; transform: translateY(-50%); pointer-events: none; }
.filters .filter-price-grid input { width: 100%; height: 42px; min-height: 42px; padding: 0 8px 0 31px; border: 1px solid var(--line); border-radius: 11px; background: #faf9f7; font-size: 13px; }
.filter-switch { display: grid !important; grid-template-columns: minmax(0, 1fr) 38px; align-items: center; min-height: 54px; margin: 0; border-top: 1px solid var(--line); color: var(--ink) !important; font-size: 13px !important; font-weight: 650 !important; cursor: pointer; }
.filter-switch input { position: absolute; width: 1px !important; height: 1px; opacity: 0; }
.filter-switch i { position: relative; width: 38px; height: 22px; border-radius: 99px; background: #dedbd6; transition: background .18s ease; }
.filter-switch i::after { position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 2px 5px rgba(23,25,26,.18); content: ""; transition: transform .18s ease; }
.filter-switch:has(input:checked) i { background: var(--red); }
.filter-switch:has(input:checked) i::after { transform: translateX(16px); }
.filters-footer { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; padding: 14px 18px 18px; border-top: 1px solid var(--line); background: #fff; }
.filter-reset, .filter-show { min-height: 44px; border-radius: 12px; font-size: 12px; font-weight: 700; cursor: pointer; }
.filter-reset { padding: 0 12px; border: 1px solid var(--line); background: #fff; }
.filter-show { border: 0; background: var(--red); color: #fff; }
.filter-show:hover { background: var(--red-dark); }
.active-filters { display: flex; gap: 7px; margin-bottom: 18px; overflow-x: auto; scrollbar-width: none; }
.active-filters:empty { display: none; }
.active-filter-chip { flex: 0 0 auto; min-height: 34px; padding: 0 12px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: #4b4e50; font-size: 12px; cursor: pointer; }

@media (max-width: 760px) {
  body.filters-open { overflow: hidden; }
  main > .section:has(.catalog-layout) { padding-top: 28px; }
  .catalog-toolbar { position: sticky; top: 72px; z-index: 13; padding-top: 8px; background: rgba(255,255,255,.94); backdrop-filter: blur(14px); }
  .filters-toggle { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; width: 100%; min-height: 50px; margin: 0; padding: 0 15px; border: 1px solid var(--line); border-radius: 14px; background: #fff; font-size: 14px; font-weight: 700; text-align: left; box-shadow: 0 8px 25px rgba(23,25,26,.06); cursor: pointer; }
  .filters-toggle-icon { display: grid; gap: 3px; width: 17px; }
  .filters-toggle-icon i { display: block; height: 1px; background: var(--ink); }
  .filters-toggle-icon i:nth-child(1) { width: 17px; }
  .filters-toggle-icon i:nth-child(2) { width: 12px; }
  .filters-toggle-icon i:nth-child(3) { width: 7px; }
  .filters-active-count { display: grid; place-items: center; min-width: 23px; height: 23px; padding: 0 6px; border-radius: 999px; background: var(--red); color: #fff; font-size: 11px; }
  .filters-active-count[hidden] { display: none; }
  .active-filters { margin: 0 -14px; padding: 0 14px 10px; }
  .catalog-layout { display: block; }
  .filters-backdrop { position: fixed; inset: 0; z-index: 90; display: block; border: 0; background: rgba(15,16,17,.42); opacity: 0; pointer-events: none; transition: opacity .25s ease; }
  body.filters-open .filters-backdrop { opacity: 1; pointer-events: auto; }
  .filters { position: fixed; z-index: 91; inset: 0 0 0 auto; display: flex; align-self: stretch; width: min(100%, 430px); height: 100dvh; max-height: 100dvh !important; margin: 0; overflow: hidden !important; border: 0; border-radius: 0; box-shadow: -25px 0 70px rgba(15,16,17,.2); opacity: 1; visibility: hidden; transform: translateX(102%); transition: visibility 0s linear .28s, transform .28s cubic-bezier(.22,.8,.26,1); }
  .filters.open { display: flex; visibility: visible; transform: translateX(0); transition-delay: 0s; animation: none; }
  .filters-header { min-height: 76px; padding: 17px 18px 13px; border-bottom: 1px solid var(--line); }
  .filters-header h2 { font-size: 20px; }
  .filters-close { display: grid; place-items: center; width: 42px; height: 42px; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: #fff; color: var(--ink); font-size: 25px; line-height: 1; cursor: pointer; }
  .filters-scroll { flex: 1 1 auto; padding: 14px 18px 20px; }
  .filter-option { min-height: 44px; font-size: 14px; }
  .filter-option > i { width: 20px; height: 20px; }
  .filter-facet > summary { min-height: 56px; font-size: 14px; }
  .filters-footer { padding: 12px 14px max(14px, env(safe-area-inset-bottom)); box-shadow: 0 -12px 32px rgba(23,25,26,.08); }
  .filter-reset, .filter-show { min-height: 50px; }
}

@media (max-width: 350px) {
  .header-main { grid-template-columns: minmax(0, 1fr) 38px 38px 38px; gap: 5px; }
  .mobile-search-toggle, .mobile-cart-link, .mobile-menu { width: 38px; height: 38px; }
  .logo { font-size: 14px; }
  .product-grid, .catalog-layout .product-grid, .related-product-grid { grid-template-columns: 1fr; }
  .product-image, .related-product-grid .product-image { height: 230px; }
}

@media (prefers-reduced-motion: reduce) {
  html.reveal-ready [data-home-reveal].is-visible { animation: none; }
}

/* Cart collaboration tools */
.cart-section { padding-top: 54px; }
.cart-tools { margin-bottom: 34px; padding: clamp(22px, 3vw, 34px); border: 1px solid var(--line); border-radius: 28px; background: linear-gradient(145deg, #fff, #faf8f4); box-shadow: 0 18px 65px rgba(23,25,26,.055); }
.cart-tools > header { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 22px; }
.cart-tools > header > span { color: var(--red); font-size: 11px; font-weight: 750; letter-spacing: .11em; text-transform: uppercase; }
.cart-tools h2 { max-width: 670px; margin: 0; font-size: clamp(24px, 2.8vw, 38px); line-height: 1.05; letter-spacing: -.045em; }
.cart-tools-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.cart-tool { display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; align-items: center; min-height: 94px; padding: 15px 17px; gap: 13px; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.9); color: var(--ink); text-align: left; cursor: pointer; transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease; }
.cart-tool:hover { border-color: #c8c1b7; transform: translateY(-2px); box-shadow: 0 13px 30px rgba(23,25,26,.07); }
.cart-tool > i { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; background: var(--soft); color: var(--ink); }
.cart-tool svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.cart-tool > span { display: grid; gap: 4px; min-width: 0; }
.cart-tool strong { font-size: 14px; }
.cart-tool small { color: var(--muted); font-size: 11px; line-height: 1.35; }
.cart-tool > b { color: var(--red); font-size: 18px; font-weight: 500; }
.cart-share-result, .cart-email-panel { margin-top: 16px; padding: 18px; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.cart-share-result > label, .cart-email-panel label { display: block; margin-bottom: 7px; font-size: 12px; font-weight: 700; }
.cart-share-result > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.cart-share-result input, .cart-email-panel input[type="email"] { width: 100%; min-height: 48px; padding: 0 14px; border: 1px solid var(--line); border-radius: 12px; background: #faf9f7; }
.cart-share-result button { min-height: 48px; padding: 0 17px; border: 0; border-radius: 12px; background: var(--dark); color: #fff; font-weight: 700; cursor: pointer; }
.cart-share-result > small { display: block; margin-top: 8px; color: var(--muted); font-size: 11px; }
.cart-email-panel { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(260px, auto) auto; align-items: end; gap: 14px; }
.cart-email-panel[hidden], .cart-share-result[hidden] { display: none; }
.cart-email-consent { display: flex !important; align-items: center; min-height: 48px; margin: 0 !important; gap: 8px; color: var(--muted); font-size: 11px !important; font-weight: 500 !important; }
.cart-email-consent input { width: 18px; height: 18px; accent-color: var(--red); }
.cart-email-panel .button { min-height: 48px; }
.form-error { display: block; margin-top: 5px; color: var(--red); font-size: 11px; }
.cart-tool-status { min-height: 0; margin: 8px 0 0; color: var(--muted); font-size: 12px; }
.cart-tool-status:empty { display: none; }

/* Shared cart */
.shared-cart-page { background: linear-gradient(145deg, #f8f6f2, #efeae2); }
.shared-cart-header { max-width: 900px; margin-bottom: 42px; }
.shared-cart-header h1, .shared-cart-page .empty-state h1 { max-width: 850px; margin: 12px 0 18px; font-size: clamp(42px, 6vw, 78px); line-height: .98; letter-spacing: -.065em; }
.shared-cart-header p { color: var(--muted); font-size: 17px; }
.shared-cart-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; align-items: start; gap: 34px; }
.shared-cart-list { padding: 0 24px; border: 1px solid var(--line); border-radius: 24px; background: #fff; }
.shared-cart-list article { display: grid; grid-template-columns: 88px minmax(0, 1fr) auto; align-items: center; gap: 18px; min-height: 126px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.shared-cart-list article:last-child { border: 0; }
.shared-cart-list .cart-thumb { width: 88px; height: 88px; }
.shared-cart-list h2 { margin: 5px 0; font-size: 15px; line-height: 1.3; }
.shared-cart-list small, .shared-cart-list p { color: var(--muted); font-size: 11px; }
.shared-cart-list article > strong { white-space: nowrap; font-size: 17px; }
.shared-cart-summary { position: sticky; top: 125px; padding: 27px; border-radius: 24px; background: var(--dark); color: #fff; }
.shared-cart-summary > strong { display: block; margin: 9px 0; color: #fff; font-size: 34px; }
.shared-cart-summary p, .shared-cart-summary small { color: #bfc2c3; font-size: 12px; }
.shared-cart-summary .button { width: 100%; margin: 14px 0; }

/* Footer */
.site-footer { position: relative; padding: 0 0 26px; overflow: hidden; background: #111313; color: #fff; }
.site-footer::before { position: absolute; top: -360px; left: 58%; width: 720px; height: 720px; border-radius: 50%; background: radial-gradient(circle, rgba(239,35,60,.14), transparent 68%); content: ""; pointer-events: none; }
.footer-cta { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 40px; padding-top: clamp(66px, 8vw, 110px); padding-bottom: clamp(60px, 7vw, 92px); border-bottom: 1px solid #343737; }
.footer-cta span { color: #ff5266; font-size: 11px; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.footer-cta h2 { max-width: 920px; margin: 13px 0 0; color: #fff; font-size: clamp(38px, 5vw, 70px); font-weight: 650; line-height: .98; letter-spacing: -.06em; }
.footer-cta .button { min-width: 210px; gap: 32px; }
.footer-cta .button i { color: var(--red); font-style: normal; }
.footer-main-grid { position: relative; display: grid; grid-template-columns: 1.35fr .72fr .9fr .82fr 1fr; gap: clamp(24px, 3vw, 54px); padding-top: 58px; padding-bottom: 52px; }
.footer-brand, .footer-nav, .footer-contacts { display: grid; align-content: start; justify-items: start; gap: 11px; }
.footer-brand .logo { margin-bottom: 10px; color: #fff; font-size: 22px; }
.footer-brand p { max-width: 390px; margin: 0; color: #aeb3b4; font-size: 13px; line-height: 1.65; }
.footer-main-grid strong { margin-bottom: 8px; color: #fff; font-size: 13px; }
.footer-nav a, .footer-nav button, .footer-contacts a, .footer-contacts span, .footer-contacts address { margin: 0; padding: 0; border: 0; background: none; color: #aeb3b4; font: inherit; font-size: 12px; font-style: normal; line-height: 1.55; text-align: left; cursor: pointer; }
.footer-nav a:hover, .footer-nav button:hover, .footer-contacts a:hover { color: #fff; }
.footer-contacts .footer-phone { color: #fff; font-size: 18px; font-weight: 650; letter-spacing: -.02em; }
.footer-contact-request { margin-top: 6px; padding: 0 0 3px; border: 0; border-bottom: 1px solid #626666; background: none; color: #fff; font: inherit; font-size: 12px; cursor: pointer; }
.footer-contact-request:hover { color: #ff5266; border-color: #ff5266; }
.footer-socials { display: flex; gap: 8px; margin-top: 12px; }
.footer-socials a { padding: 7px 11px; border: 1px solid #3d4040; border-radius: 999px; color: #d5d8d8; font-size: 11px; }
.footer-benefits { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); padding: 22px 0; border-top: 1px solid #2d3030; border-bottom: 1px solid #2d3030; }
.footer-benefits span { display: flex; align-items: center; gap: 10px; color: #c3c7c7; font-size: 11px; }
.footer-benefits i { width: 7px; height: 7px; border-radius: 50%; background: var(--red); box-shadow: 0 0 0 5px rgba(239,35,60,.1); }
.footer-bottom { position: relative; display: flex; justify-content: space-between; margin-top: 0; padding-top: 24px; border: 0; color: #727777; font-size: 10px; }

@media (max-width: 980px) {
  .cart-tools-grid { grid-template-columns: 1fr; }
  .cart-tool { min-height: 82px; }
  .cart-email-panel { grid-template-columns: 1fr; align-items: stretch; }
  .shared-cart-layout { grid-template-columns: 1fr; }
  .shared-cart-summary { position: static; }
  .footer-main-grid { grid-template-columns: 1.2fr 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
}

/* Trust and service information pages */
.footer-bottom a:hover { color: #fff; }
.information-hero { position: relative; padding: clamp(70px, 9vw, 132px) 0 clamp(62px, 8vw, 112px); overflow: hidden; background: #f2f1ee; }
.information-hero::after { position: absolute; top: -34%; right: -8%; width: min(58vw, 820px); aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,.96) 0 7%, rgba(255,217,158,.3) 23%, rgba(239,35,60,.08) 42%, transparent 68%); content: ""; pointer-events: none; }
.information-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, .55fr); align-items: end; gap: clamp(50px, 8vw, 130px); }
.information-hero h1 { max-width: 930px; margin: 20px 0 25px; font-size: clamp(48px, 7vw, 104px); font-weight: 650; line-height: .94; letter-spacing: -.07em; }
.information-hero p { max-width: 760px; margin: 0; color: #666a69; font-size: clamp(17px, 1.5vw, 23px); line-height: 1.5; }
.information-assurance { display: grid; grid-template-columns: 30px 1fr; align-items: center; gap: 18px 13px; padding: 25px 0 3px; border-top: 1px solid #cecac2; }
.information-assurance span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #fff; color: var(--red); font-size: 9px; font-weight: 800; }
.information-assurance strong { font-size: 13px; font-weight: 650; }
.information-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 390px); align-items: start; gap: clamp(60px, 10vw, 170px); }
.information-content { max-width: 880px; }
.information-content h2 { margin: 58px 0 18px; font-size: clamp(28px, 3.3vw, 48px); font-weight: 650; line-height: 1.02; letter-spacing: -.045em; }
.information-content h2:first-child { margin-top: 0; }
.information-content h3 { margin: 35px 0 12px; font-size: 20px; }
.information-content p, .information-content li { color: #575b5a; font-size: 16px; line-height: 1.75; }
.information-content ul, .information-content ol { display: grid; gap: 10px; padding-left: 22px; }
.information-content a { color: var(--red); text-decoration: underline; text-underline-offset: 3px; }
.information-contact { position: sticky; top: 112px; padding: 30px; border-radius: 24px; background: #171a1a; color: #fff; }
.information-contact .eyebrow { color: #ff7182; }
.information-contact h2 { margin: 9px 0 15px; font-size: 30px; line-height: 1.05; letter-spacing: -.04em; }
.information-contact p { color: #afb4b3; font-size: 13px; }
.information-phone { display: block; margin: 25px 0 17px; font-size: 22px; font-weight: 700; }
.information-contact .button { width: 100%; }

@media (max-width: 1100px) {
  .footer-main-grid { grid-template-columns: 1.2fr 1fr 1fr; }
  .information-hero-grid { grid-template-columns: 1fr minmax(240px, .45fr); gap: 50px; }
}

@media (max-width: 760px) {
  .information-hero { padding: 38px 0 52px; }
  .information-hero-grid, .information-layout { grid-template-columns: 1fr; gap: 34px; }
  .information-hero h1 { margin: 15px 0 18px; font-size: clamp(38px, 13vw, 58px); }
  .information-hero p { font-size: 15px; }
  .information-assurance { padding-top: 20px; }
  .information-section { padding-top: 54px; }
  .information-content h2 { margin-top: 42px; font-size: 31px; }
  .information-content p, .information-content li { font-size: 14px; line-height: 1.65; }
  .information-contact { position: static; padding: 24px; }
}

@media (max-width: 760px) {
  .cart-section { padding-top: 30px; }
  .cart-tools { margin-bottom: 22px; padding: 18px 14px; border-radius: 21px; }
  .cart-tools > header { display: grid; gap: 8px; }
  .cart-tools h2 { font-size: 25px; }
  .cart-tools-grid { gap: 8px; }
  .cart-tool { grid-template-columns: 42px minmax(0, 1fr) auto; min-height: 76px; padding: 11px; border-radius: 15px; }
  .cart-tool > i { width: 42px; height: 42px; border-radius: 12px; }
  .cart-share-result, .cart-email-panel { padding: 13px; border-radius: 15px; }
  .cart-share-result > div { grid-template-columns: 1fr; }
  .shared-cart-page { padding-top: 44px; }
  .shared-cart-header { margin-bottom: 26px; }
  .shared-cart-header h1, .shared-cart-page .empty-state h1 { font-size: 40px; }
  .shared-cart-list { padding: 0 13px; border-radius: 19px; }
  .shared-cart-list article { grid-template-columns: 68px minmax(0, 1fr); gap: 12px; padding: 14px 0; }
  .shared-cart-list .cart-thumb { width: 68px; height: 68px; }
  .shared-cart-list article > strong { grid-column: 2; }
  .footer-cta { grid-template-columns: 1fr; align-items: start; gap: 26px; padding-top: 58px; padding-bottom: 54px; }
  .footer-cta h2 { font-size: 40px; }
  .footer-cta .button { width: 100%; }
  .footer-main-grid { grid-template-columns: 1fr 1fr; gap: 36px 20px; padding-top: 42px; padding-bottom: 38px; }
  .footer-brand, .footer-contacts { grid-column: 1 / -1; }
  .footer-benefits { grid-template-columns: 1fr; gap: 14px; }
  .footer-bottom { display: grid; gap: 8px; }
}

/* Final mobile overrides: kept last to win over legacy responsive rules. */
@media (max-width: 760px) {
  body { padding-top: 66px; }
  .site-header { position: fixed; inset: 0 0 auto; width: 100%; }
  .header-main { grid-template-columns: minmax(0, 1fr) repeat(4, 40px); min-height: 66px; gap: 5px; }
  .header-main:not(:has(.mobile-phone-link)) { grid-template-columns: minmax(0, 1fr) repeat(3, 40px); }
  .mobile-phone-link { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--line); border-radius: 50%; background: #fff; }
  .mobile-phone-link svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
  .mobile-search-toggle, .mobile-cart-link, .mobile-menu { width: 40px; height: 40px; }

  .filters { --filter-drag-y: 0px; position: fixed; inset: auto 0 0; z-index: 91; display: flex; width: 100%; height: min(88dvh, 760px); max-height: 88dvh !important; margin: 0; padding: 0; overflow: hidden !important; border: 0; border-radius: 24px 24px 0 0; background: #fff; box-shadow: 0 -28px 70px rgba(15,16,17,.22); visibility: hidden; transform: translateY(calc(105% + var(--filter-drag-y))); transition: visibility 0s linear .34s, transform .34s cubic-bezier(.22,.8,.26,1); }
  .filters.open { display: flex; visibility: visible; transform: translateY(var(--filter-drag-y)); transition-delay: 0s; animation: none; }
  .filters.is-dragging { transition: none; }
  .filters-drag-handle { display: grid; place-items: center; flex: 0 0 24px; width: 100%; height: 24px; padding: 0; border: 0; background: transparent; touch-action: none; cursor: grab; }
  .filters-drag-handle span { width: 42px; height: 4px; border-radius: 99px; background: #cbc7c1; }
  .filters-header { min-height: 60px; padding-top: 7px; }
  .filters-scroll { min-height: 0; padding-top: 8px; }
  .filter-option { min-height: 38px; }

  .product-image, .related-product-grid .product-image { width: 100%; height: auto; aspect-ratio: 1 / 1; }
  .product-page { gap: 16px; margin-top: 10px; }
  main > .section:has(.product-page) { padding-top: 20px; }
  .gallery-stage, .gallery-stage > img { width: 100%; height: auto; aspect-ratio: 1 / 1; }
  .gallery-stage > img { padding: 10px; }
  .product-info h1 { margin: 9px 0 12px; font-size: clamp(20px, 2.4vw, 26px); line-height: 1.14; }
  .product-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 7px; margin: 17px 0 3px; font-size: clamp(27px, 8vw, 34px); line-height: 1; }
  .product-price small { display: inline; margin: 0; font-size: 12px; white-space: nowrap; }
  .step-note { margin-top: 6px; font-size: 12px; }
  .product-specifications { position: relative; margin-top: 46px; }
  .product-specifications h2 { font-size: clamp(29px, 9vw, 36px); }
  .spec-groups > section { padding: 15px; }
  .spec-row { gap: 12px; }
  .product-specifications.is-collapsible:not(.is-expanded) .mobile-spec-hidden,
  .product-specifications.is-collapsible:not(.is-expanded) .mobile-spec-group-hidden { display: none; }
  .product-specifications.is-collapsible:not(.is-expanded) .specifications-fade { position: absolute; right: 0; bottom: 48px; left: 0; display: block; height: 74px; background: linear-gradient(to bottom, rgba(255,255,255,0), #fff 76%); pointer-events: none; }
  .specifications-toggle:not([hidden]) { position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; width: 100%; min-height: 46px; margin-top: 10px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--ink); font-size: 13px; font-weight: 700; }
}

@media (max-width: 390px) {
  .header-main { grid-template-columns: minmax(0, 1fr) repeat(4, 36px); gap: 4px; }
  .header-main:not(:has(.mobile-phone-link)) { grid-template-columns: minmax(0, 1fr) repeat(3, 36px); }
  .mobile-phone-link, .mobile-search-toggle, .mobile-cart-link, .mobile-menu { width: 36px; height: 36px; }
  .logo { font-size: 14px; }
}

/* Product variants and generated SEO landing pages */
.product-variant-selectors {
  display: grid;
  gap: 14px;
  margin: 18px 0 8px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: linear-gradient(145deg, #fff 0%, #faf9f7 100%);
}
.product-variant-selectors section { display: grid; gap: 9px; }
.variant-selector-title { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.variant-selector-title strong { font-size: 13px; }
.variant-selector-title span { overflow: hidden; color: var(--muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.variant-option-list { display: flex; flex-wrap: wrap; gap: 7px; }
.variant-option {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 6px 11px;
  border: 1px solid #d9d6d1;
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  font-size: 11px;
  font-weight: 650;
  line-height: 1.2;
  transition: border-color .18s ease, background .18s ease, color .18s ease;
}
.variant-option:hover { border-color: var(--ink); }
.variant-option.active { border-color: var(--ink); background: var(--ink); color: #fff; }
.variant-option.order-only { color: var(--muted); }
.show-variants-button {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  width: 100%;
  min-height: 54px;
  margin: 14px 0 18px;
  padding: 0 18px;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: #fff;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
  transition: border-color .2s ease, background .2s ease, transform .2s ease;
}
.show-variants-button:hover { border-color: #bdb7af; background: #faf9f7; transform: translateY(-1px); }
.show-variants-button span { font-size: 13px; font-weight: 750; }
.show-variants-button small { color: var(--muted); font-size: 11px; }
.show-variants-button i { color: var(--red); font-style: normal; }
.variants-backdrop, .variants-sheet { display: none; }
.spec-landing-link { color: var(--ink); text-decoration: underline; text-decoration-color: rgba(239,35,60,.42); text-underline-offset: 3px; }
.spec-landing-link:hover { color: var(--red); text-decoration-color: var(--red); }
.seo-landing-parent { margin-bottom: 10px !important; color: var(--red) !important; font-size: 12px !important; font-weight: 700; }
.seo-landing-products { padding-top: 58px; }
.seo-landing-content { margin-top: 72px; }

@media (max-width: 760px) {
  body.variants-open { overflow: hidden; }
  .show-variants-button { margin: 12px 0 14px; min-height: 50px; padding-inline: 15px; }
  .product-variant-selectors { margin-top: 14px; padding: 14px; border-radius: 15px; }
  .variant-option-list { flex-wrap: nowrap; margin-inline: -14px; padding-inline: 14px; overflow-x: auto; scrollbar-width: none; }
  .variant-option-list::-webkit-scrollbar { display: none; }
  .variant-option { flex: 0 0 auto; min-height: 32px; padding: 5px 10px; }
  .show-variants-button small { display: none; }
  .variants-backdrop { position: fixed; inset: 0; z-index: 92; display: block; border: 0; background: rgba(15,16,17,.48); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .28s ease, visibility 0s linear .32s; }
  body.variants-open .variants-backdrop { opacity: 1; visibility: visible; pointer-events: auto; transition-delay: 0s; }
  .variants-sheet { --variants-drag-y: 0px; position: fixed; inset: auto 0 0; z-index: 93; display: flex; flex-direction: column; width: 100%; height: min(82dvh, 720px); max-height: 82dvh; overflow: hidden; border-radius: 24px 24px 0 0; background: #fff; box-shadow: 0 -28px 70px rgba(15,16,17,.25); visibility: hidden; transform: translateY(calc(105% + var(--variants-drag-y))); transition: visibility 0s linear .34s, transform .34s cubic-bezier(.22,.8,.26,1); }
  .variants-sheet.open { visibility: visible; transform: translateY(var(--variants-drag-y)); transition-delay: 0s; }
  .variants-sheet.is-dragging { transition: none; }
  .variants-drag-handle { display: grid; place-items: center; flex: 0 0 25px; width: 100%; height: 25px; padding: 0; border: 0; background: transparent; touch-action: none; cursor: grab; }
  .variants-drag-handle span { width: 42px; height: 4px; border-radius: 99px; background: #cbc7c1; }
  .variants-sheet > header { display: flex; align-items: center; justify-content: space-between; min-height: 64px; padding: 6px 16px 13px; border-bottom: 1px solid var(--line); }
  .variants-sheet > header > div { display: grid; gap: 2px; }
  .variants-sheet > header strong { font-size: 18px; }
  .variants-sheet > header small { color: var(--muted); font-size: 11px; }
  .variants-sheet > header > button { display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: #fff; font-size: 23px; }
  .variants-list { flex: 1 1 auto; min-height: 0; padding: 6px 14px max(18px, env(safe-area-inset-bottom)); overflow-y: auto; overscroll-behavior: contain; }
  .variants-list > a { display: grid; grid-template-columns: 62px minmax(0, 1fr) auto; align-items: center; min-height: 82px; padding: 9px 0; gap: 11px; border-bottom: 1px solid var(--line); }
  .variants-list img, .variants-placeholder { display: grid; place-items: center; width: 62px; height: 62px; border-radius: 11px; background: #faf9f7; object-fit: contain; }
  .variants-placeholder { color: #b7b9ba; font-weight: 700; }
  .variants-list > a > span:not(.variants-placeholder) { display: grid; gap: 4px; min-width: 0; }
  .variants-list strong { display: -webkit-box; overflow: hidden; font-size: 12px; line-height: 1.25; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  .variants-list small { color: var(--muted); font-size: 10px; }
  .variants-list b { white-space: nowrap; font-size: 13px; }
  .seo-landing-hero h1 { font-size: clamp(31px, 10vw, 46px); }
  .seo-landing-products { padding-top: 34px; }
  .seo-landing-content { margin-top: 48px; }
}

/* Category wayfinding and the mobile search sheet. */
.mobile-search-head,
.mobile-search-backdrop { display: none; }

.child-category-strip {
  display: flex;
  gap: 9px;
  max-width: 100%;
  margin-top: 22px;
  padding: 2px 0 7px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
  scroll-snap-type: inline proximity;
}
.child-category-strip a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  flex: 0 0 auto;
  min-width: 150px;
  max-width: 250px;
  min-height: 48px;
  padding: 10px 13px;
  gap: 14px;
  border: 1px solid rgba(218, 214, 207, .9);
  border-radius: 15px;
  background: rgba(255, 255, 255, .82);
  box-shadow: 0 8px 24px rgba(24, 25, 25, .035);
  scroll-snap-align: start;
  transition: border-color .2s ease, background .2s ease, transform .2s ease;
}
.child-category-strip a:hover { border-color: #bcb7af; background: #fff; transform: translateY(-2px); }
.child-category-strip span { overflow: hidden; font-size: 12px; font-weight: 700; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.child-category-strip i { color: var(--red); font-size: 13px; font-style: normal; }

@media (min-width: 761px) {
  .child-category-strip {
    display: block;
    columns: 220px;
    column-gap: 10px;
    overflow: visible;
    scroll-snap-type: none;
  }
  .child-category-strip a {
    display: inline-grid;
    width: 100%;
    min-width: 0;
    max-width: none;
    box-sizing: border-box;
    margin-bottom: 10px;
    break-inside: avoid;
    vertical-align: top;
  }
  .child-category-strip span {
    overflow: visible;
    white-space: normal;
    overflow-wrap: anywhere;
    text-overflow: clip;
    line-height: 1.4;
  }
  .child-category-strip a:focus-visible {
    outline: 2px solid var(--red);
    outline-offset: 2px;
  }
}

@media (max-width: 760px) {
  body.search-open { overflow: hidden; }
  .mobile-search-backdrop {
    position: fixed;
    inset: 66px 0 0;
    z-index: 69;
    display: block;
    padding: 0;
    border: 0;
    background: rgba(16, 17, 18, .46);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .3s ease, visibility 0s linear .34s;
  }
  body.search-open .mobile-search-backdrop { opacity: 1; visibility: visible; pointer-events: auto; transition-delay: 0s; }
  .header-main > .search-form {
    position: fixed;
    inset: 66px 0 auto;
    z-index: 4;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 0;
    padding: 13px 14px 16px;
    gap: 10px 8px;
    overflow: visible;
    border: 0;
    border-radius: 0 0 24px 24px;
    background: rgba(255, 255, 255, .985);
    box-shadow: 0 26px 70px rgba(17, 18, 19, .18);
    opacity: 0;
    visibility: hidden;
    transform: translateY(calc(-100% - 70px));
    transition: opacity .22s ease, visibility 0s linear .36s, transform .36s cubic-bezier(.22,.8,.26,1);
  }
  .header-main > .search-form.mobile-open { display: grid; opacity: 1; visibility: visible; transform: translateY(0); transition-delay: 0s; }
  .mobile-search-head {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 43px;
  }
  .mobile-search-head > span { display: grid; gap: 1px; }
  .mobile-search-head strong { font-size: 17px; letter-spacing: -.025em; }
  .mobile-search-head small { color: var(--muted); font-size: 10px; }
  .mobile-search-head button {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: #fff;
    font-size: 22px;
    font-weight: 400;
  }
  .header-main > .search-form input {
    min-width: 0;
    height: 48px;
    padding-inline: 15px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #f5f3ef;
  }
  .header-main > .search-form > button[type="submit"] {
    min-width: 75px;
    padding: 0 15px;
    border: 1px solid var(--red);
    border-radius: 14px;
    color: #fff;
    background: var(--red);
  }
  .header-main > .search-form .search-suggestions {
    position: static;
    grid-column: 1 / -1;
    width: 100%;
    max-height: min(55dvh, 440px);
    margin-top: 1px;
    overflow-y: auto;
    border-radius: 16px;
    box-shadow: none;
  }
  .header-main > .search-form .search-suggestions a { min-height: 66px; padding: 9px 10px; }
  .header-main > .search-form .search-suggestions img { width: 46px; height: 46px; }

  .child-category-strip {
    width: calc(100% + 14px);
    margin-top: 17px;
    padding: 1px 14px 6px 0;
    gap: 7px;
    scrollbar-width: none;
  }
  .child-category-strip::-webkit-scrollbar { display: none; }
  .child-category-strip a { min-width: 128px; max-width: 205px; min-height: 42px; padding: 8px 11px; border-radius: 13px; }
  .child-category-strip span { font-size: 11px; }

  .cart-page-top { padding: 20px 0 24px; }
  .cart-page-top .eyebrow { margin-bottom: 9px; }
  .cart-page-top h1 { margin-top: 0; font-size: 34px; }
  .cart-page-top p { margin: 8px 0 0; font-size: 12px; }
  .cart-section { padding-top: 20px; }
  .cart-tools { margin-bottom: 14px; padding: 13px 10px; }
  .cart-tools > header { margin-bottom: 12px; }
  .cart-tools > header > span { display: none; }
  .cart-tools h2 { font-size: 19px; }
  .cart-tools-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
  .cart-tool { display: grid; grid-template-columns: 1fr; justify-items: center; min-height: 72px; padding: 8px 4px; gap: 5px; text-align: center; }
  .cart-tool > i { width: 32px; height: 32px; border-radius: 10px; }
  .cart-tool svg { width: 17px; height: 17px; }
  .cart-tool > span { display: block; }
  .cart-tool strong { display: block; font-size: 10px; line-height: 1.12; }
  .cart-tool small, .cart-tool > b { display: none; }
  .cart-list { padding: 0 10px; border-radius: 17px; }
  .cart-row {
    grid-template-columns: 62px minmax(0, 1fr) 27px;
    align-items: start;
    gap: 8px 10px;
    min-height: 0;
    padding: 11px 0;
  }
  .cart-thumb { grid-row: 1 / span 2; width: 62px; height: 62px; border-radius: 11px; }
  .cart-thumb img { width: 100%; height: 100%; max-height: none; object-fit: contain; }
  .cart-row > div:nth-child(2) { padding-top: 1px; }
  .cart-row > div:nth-child(2) > .muted { font-size: 9px; }
  .cart-row h3 { display: -webkit-box; margin: 3px 0 2px; overflow: hidden; font-size: 11px; line-height: 1.2; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  .cart-row > div:nth-child(2) > p { font-size: 9px; line-height: 1.2; }
  .cart-row > form { grid-column: 3; grid-row: 1; }
  .cart-row .remove { width: 27px; height: 27px; padding: 0; border-radius: 50%; font-size: 17px; }
  .cart-row .cart-controls { grid-column: 2 / -1; display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; }
  .cart-quantity { display: grid; grid-template-columns: 30px 52px 30px; flex: 0 0 auto; gap: 2px; padding: 2px; }
  .cart-quantity .quantity-button { width: 30px; height: 30px; font-size: 17px; }
  .cart-quantity input { width: 52px; min-width: 0; height: 30px; padding: 3px; font-size: 11px; text-align: center; }
  .cart-line-total { justify-self: auto; margin: 0; white-space: nowrap; font-size: 14px; }
  .cart-total { padding: 19px; }
  .cart-total > strong { font-size: 29px; }
}
