/*
Theme Name: REXON Industrial
Theme URI: https://example.com/rexon-industrial
Author: REXON
Description: One-page, mobile-first REXON showcase with space-grey styling and horizontally moving product rails.
Version: 4.0.0
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: rexon-industrial
*/

:root {
  --rx-bg: #34373c;
  --rx-bg-soft: #3a3d42;
  --rx-panel: #404349;
  --rx-panel-2: #494d53;
  --rx-line: rgba(255,255,255,.12);
  --rx-line-strong: rgba(255,255,255,.22);
  --rx-text: #f7f7f4;
  --rx-muted: #c4c6c9;
  --rx-red: #e31b23;
  --rx-red-deep: #b91118;
  --rx-yellow: #f5c400;
  --rx-radius: 24px;
  --rx-radius-sm: 16px;
  --rx-max: 1180px;
  --rx-shadow: 0 24px 70px rgba(0,0,0,.38);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--rx-bg); }
body {
  margin: 0;
  background:
    radial-gradient(circle at 20% -10%, rgba(227,27,35,.06), transparent 28rem),
    var(--rx-bg);
  color: var(--rx-text);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, Helvetica, sans-serif;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
::selection { background: var(--rx-red); color: white; }

.rx-container { width: min(100% - 28px, var(--rx-max)); margin-inline: auto; }
.rx-section { padding: 68px 0; position: relative; }
.rx-eyebrow {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--rx-red);
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-size: .72rem;
}
.eyebrow-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 5px rgba(227,27,35,.12); }
.rx-title {
  margin: 8px 0 0;
  font-size: clamp(2.55rem, 13vw, 5.3rem);
  line-height: .86;
  letter-spacing: -.065em;
  text-transform: uppercase;
  font-weight: 1000;
}
.rx-title-small { font-size: clamp(2.35rem, 10.5vw, 4.2rem); }
.rx-subtitle { color: var(--rx-muted); font-size: .98rem; max-width: 650px; margin: 0; }
.rx-rule { width: 58px; height: 3px; background: var(--rx-red); margin: 18px 0 22px; }
.section-heading { display: grid; gap: 18px; margin-bottom: 28px; }

.rx-btn {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 26px;
  min-height: 56px;
  padding: 0 18px 0 20px;
  background: var(--rx-red);
  border: 1px solid var(--rx-red);
  color: #fff;
  text-transform: uppercase;
  font-weight: 950;
  letter-spacing: .025em;
  border-radius: 999px;
  transition: transform .25s ease, background .25s ease, box-shadow .25s ease;
  box-shadow: 0 10px 26px rgba(227,27,35,.16);
}
.rx-btn span { font-size: 1.12rem; transition: transform .25s ease; }
.rx-btn:hover { background: var(--rx-red-deep); transform: translateY(-2px); box-shadow: 0 16px 32px rgba(227,27,35,.24); }
.rx-btn:hover span { transform: translate(2px,-2px); }
.rx-btn--ghost { background: transparent; border-color: var(--rx-line-strong); box-shadow: none; }
.rx-btn--ghost:hover { border-color: var(--rx-red); }
.text-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #fff;
  font-size: .8rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.text-link span { color: var(--rx-red); font-size: 1rem; transition: transform .25s ease; }
.text-link:hover span { transform: translate(2px,-2px); }

/* Brand */
.rx-logo { display: inline-flex; align-items: center; font-weight: 1000; font-style: italic; letter-spacing: -.08em; font-size: 2rem; line-height: 1; }
.rx-logo .rex { color: var(--rx-red); }
.rx-logo .on { color: var(--rx-yellow); }
.custom-logo-link img { max-height: 42px; width: auto; }

/* Header */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 60;
  background: linear-gradient(180deg, rgba(5,5,5,.92), rgba(5,5,5,.68));
  backdrop-filter: blur(16px) saturate(130%);
  -webkit-backdrop-filter: blur(16px) saturate(130%);
  border-bottom: 1px solid rgba(255,255,255,.06);
  transition: background .25s ease, border-color .25s ease, transform .25s ease;
}
.site-header.scrolled { background: rgba(5,5,5,.94); border-bottom-color: var(--rx-line); }
.scroll-progress { position: absolute; inset: auto 0 0; height: 2px; background: transparent; overflow: hidden; }
.scroll-progress span { display: block; width: 0; height: 100%; background: linear-gradient(90deg, var(--rx-red), var(--rx-yellow)); }
.header-inner { min-height: 70px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.menu-toggle {
  width: 52px;
  height: 44px;
  border: 1px solid rgba(255,255,255,.13);
  background: rgba(255,255,255,.035);
  color: white;
  border-radius: 999px;
  display: inline-flex;
  flex-direction: column;
  gap: 4px;
  align-items: center;
  justify-content: center;
  position: relative;
  padding: 0;
}
.menu-toggle span { width: 18px; height: 1.5px; background: currentColor; display: block; transition: transform .25s ease, opacity .2s ease; }
.menu-toggle em { display: none; }
.menu-toggle.active span:nth-child(1) { transform: translateY(5.5px) rotate(45deg); }
.menu-toggle.active span:nth-child(2) { opacity: 0; }
.menu-toggle.active span:nth-child(3) { transform: translateY(-5.5px) rotate(-45deg); }
.site-nav {
  position: fixed;
  inset: 70px 0 0;
  background:
    radial-gradient(circle at 80% 15%, rgba(227,27,35,.14), transparent 18rem),
    rgba(7,7,7,.985);
  padding: 38px 22px 70px;
  transform: translateX(100%);
  transition: transform .35s cubic-bezier(.2,.8,.2,1);
  overflow-y: auto;
}
.site-nav.open { transform: translateX(0); }
.site-nav ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; counter-reset: nav; }
.site-nav li { counter-increment: nav; }
.site-nav a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 78px;
  border-bottom: 1px solid var(--rx-line);
  text-transform: uppercase;
  font-weight: 1000;
  letter-spacing: -.035em;
  font-size: clamp(1.7rem, 8vw, 2.5rem);
}
.site-nav a::after { content: '0' counter(nav); color: #555; font-size: .68rem; letter-spacing: .08em; }
.site-nav a:hover, .site-nav .current-menu-item > a { color: var(--rx-red); }

/* Hero */
.rx-hero {
  --hero-shift: 0px;
  min-height: 100svh;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: end;
  background:
    radial-gradient(circle at 78% 30%, rgba(227,27,35,.13), transparent 34%),
    linear-gradient(145deg, #141414 0%, #090909 45%, #020202 100%);
  border-bottom: 1px solid var(--rx-line);
}
.rx-hero.has-photo {
  background-image:
    linear-gradient(180deg, rgba(0,0,0,.16) 0%, rgba(0,0,0,.28) 28%, rgba(0,0,0,.88) 78%, #070707 100%),
    linear-gradient(90deg, rgba(0,0,0,.58), rgba(0,0,0,.05)),
    var(--hero-image);
  background-size: cover;
  background-position: center calc(50% + var(--hero-shift));
}
.rx-hero::after {
  content: 'REXON';
  position: absolute;
  right: -10vw;
  top: 13%;
  font-size: clamp(6rem, 32vw, 19rem);
  line-height: 1;
  font-weight: 1000;
  font-style: italic;
  letter-spacing: -.10em;
  color: rgba(255,255,255,.025);
  pointer-events: none;
}
.rx-hero.has-photo::after { color: rgba(255,255,255,.045); }
.hero-grain {
  position: absolute;
  inset: 0;
  opacity: .12;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
  pointer-events: none;
  mix-blend-mode: soft-light;
}
.hero-inner { position: relative; z-index: 2; width: 100%; padding: 128px 0 46px; }
.hero-copy { max-width: 760px; }
.hero-title { margin: 14px 0 22px; display: grid; gap: 2px; }
.hero-line {
  display: block;
  font-size: clamp(3.5rem, 17vw, 8rem);
  line-height: .82;
  letter-spacing: -.072em;
  text-transform: uppercase;
  font-weight: 1000;
  text-wrap: balance;
}
.hero-line.accent { color: var(--rx-red); }
.hero-copy > p { color: #d4d4d0; max-width: 510px; font-size: 1rem; margin: 0 0 26px; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; }
.hero-stamp { color: #d8d8d4; text-transform: uppercase; letter-spacing: .10em; font-size: .64rem; font-weight: 850; }
.hero-stamp b { color: var(--rx-yellow); padding: 0 4px; }
.hero-scroll { margin-top: 40px; display: flex; align-items: center; gap: 10px; color: #777; font-size: .62rem; text-transform: uppercase; letter-spacing: .13em; }
.hero-scroll span { width: 34px; height: 1px; background: #555; position: relative; overflow: hidden; }
.hero-scroll span::after { content:''; position:absolute; inset:0; background:#fff; transform:translateX(-100%); animation: scan 1.8s ease-in-out infinite; }

/* Product categories */
.rx-products-intro { padding-top: 74px; }
.category-grid { display: grid; grid-template-columns: 1fr; gap: 18px; }
.category-card {
  min-height: 74svh;
  max-height: 700px;
  border: 1px solid var(--rx-line);
  border-radius: var(--rx-radius);
  position: relative;
  overflow: hidden;
  background: #101010;
  box-shadow: var(--rx-shadow);
  isolation: isolate;
}
.category-media { position: absolute; inset: 0; display: grid; place-items: center; background: radial-gradient(circle at 60% 40%, #202020, #090909 70%); overflow: hidden; }
.category-media img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.015); transition: transform .65s cubic-bezier(.2,.8,.2,1), filter .4s ease; }
.category-media.has-image::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.02),rgba(0,0,0,.15) 52%,rgba(0,0,0,.88)); }
.media-placeholder { display: grid; place-items: center; gap: 6px; text-align: center; padding: 24px; color: #7e7e7b; text-transform: uppercase; letter-spacing: .06em; font-size: .68rem; }
.media-placeholder strong { color: #d2d2ce; font-size: .9rem; }
.media-shade { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 36%, rgba(0,0,0,.08) 52%, rgba(0,0,0,.92) 100%); }
.category-content { position: absolute; inset: auto 0 0; z-index: 2; padding: 22px; display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.category-index { display: block; color: rgba(255,255,255,.45); font-size: .68rem; letter-spacing: .12em; margin-bottom: 9px; }
.category-card h3 { margin: 0; text-transform: uppercase; font-size: clamp(2.3rem, 11vw, 4.2rem); line-height: .85; letter-spacing: -.06em; }
.category-count { color: var(--rx-yellow); font-weight: 900; text-transform: uppercase; margin-top: 10px; font-size: .72rem; letter-spacing: .08em; }
.category-arrow { width: 52px; height: 52px; flex: 0 0 auto; border: 1px solid rgba(255,255,255,.32); background: rgba(0,0,0,.28); backdrop-filter: blur(10px); border-radius: 50%; display: grid; place-items: center; font-size: 1.2rem; transition: transform .25s ease, background .25s ease; }
.category-card:active .category-arrow, .category-card:hover .category-arrow { transform: rotate(45deg); background: var(--rx-red); border-color: var(--rx-red); }
.category-card:hover .category-media img { transform: scale(1.06); }

/* Values */
.values-section { overflow: hidden; padding-top: 34px; }
.values-marquee { display: flex; align-items: center; gap: 18px; width: max-content; margin: 0 0 24px; color: rgba(255,255,255,.09); font-size: clamp(2rem, 10vw, 4rem); font-weight: 1000; letter-spacing: -.05em; white-space: nowrap; transform: translateX(-2%); }
.values-marquee i { color: var(--rx-red); font-style: normal; font-size: .7em; }
.values-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.value-card { min-height: 180px; background: linear-gradient(155deg, #141414, #0c0c0c); border: 1px solid var(--rx-line); border-radius: var(--rx-radius-sm); padding: 18px; position: relative; overflow: hidden; }
.value-card::after { content:''; position:absolute; width:120px; height:120px; border:1px solid rgba(227,27,35,.09); border-radius:50%; right:-55px; top:-55px; }
.value-number { color: var(--rx-red); font-weight: 950; font-size: .66rem; letter-spacing: .12em; }
.value-card h3 { margin: 28px 0 8px; font-size: 1rem; text-transform: uppercase; line-height: 1; }
.value-card p { color: var(--rx-muted); font-size: .78rem; margin: 0; }

/* Since 1984 */
.since-panel { border: 1px solid var(--rx-line); border-radius: var(--rx-radius); overflow: hidden; background: #0d0d0d; box-shadow: var(--rx-shadow); }
.since-copy { padding: 30px 22px 34px; }
.since-year { margin: 14px 0 22px; font-size: clamp(5.4rem, 27vw, 10rem); line-height: .75; font-weight: 1000; letter-spacing: -.085em; color: #fff; }
.since-copy .rx-subtitle { margin-bottom: 22px; }
.since-visual { min-height: 58svh; max-height: 620px; position: relative; display: grid; place-items: center; border-top: 1px solid var(--rx-line); background: radial-gradient(circle at center, rgba(227,27,35,.15), transparent 46%), linear-gradient(150deg,#181818,#080808); overflow: hidden; }
.since-visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.since-visual.has-image::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.65)); }
.since-overlay { position: relative; z-index: 2; text-align: center; padding: 28px; }
.since-overlay .rx-logo, .since-visual > div > .rx-logo { font-size: clamp(3.2rem, 17vw, 7rem); }
.since-flags { color: #d1d1cd; font-size: .68rem; letter-spacing: .13em; margin-top: 16px; text-transform: uppercase; }

/* Products */
.featured-section { overflow: hidden; }
.archive-head { display: grid; gap: 18px; margin-bottom: 28px; }
.product-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.product-shelf { display: flex; gap: 14px; overflow-x: auto; margin-inline: -14px; padding: 0 14px 14px; scroll-snap-type: x mandatory; scrollbar-width: none; }
.product-shelf::-webkit-scrollbar { display: none; }
.product-shelf .product-card { flex: 0 0 min(82vw, 340px); scroll-snap-align: start; }
.product-card { background: #101010; color: #fff; border: 1px solid var(--rx-line); border-radius: 20px; overflow: hidden; display: flex; flex-direction: column; min-width: 0; transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease; }
.product-card:hover { transform: translateY(-5px); border-color: var(--rx-line-strong); box-shadow: 0 22px 44px rgba(0,0,0,.28); }
.product-thumb { aspect-ratio: 1 / .96; background: #e9e9e5; display: grid; place-items: center; overflow: hidden; position: relative; }
.product-thumb::after { content:''; position:absolute; inset:auto 0 0; height:34%; background:linear-gradient(180deg,transparent,rgba(0,0,0,.08)); pointer-events:none; }
.product-thumb img { width: 100%; height: 100%; object-fit: contain; padding: 5%; transition: transform .45s cubic-bezier(.2,.8,.2,1); }
.product-card:hover .product-thumb img { transform: scale(1.055); }
.product-placeholder { color: #777; text-align: center; padding: 18px; font-size: .72rem; text-transform: uppercase; font-weight: 850; letter-spacing: .06em; }
.product-view-icon { position:absolute; right:12px; top:12px; z-index:2; width:42px; height:42px; display:grid; place-items:center; background:rgba(8,8,8,.86); color:#fff; border-radius:50%; border:1px solid rgba(255,255,255,.15); transition: transform .25s ease, background .25s ease; }
.product-card:hover .product-view-icon { background: var(--rx-red); transform: rotate(45deg); }
.product-card-body { padding: 16px 15px 17px; display: flex; flex-direction: column; flex: 1; }
.product-model { color: var(--rx-red); font-size: .68rem; font-weight: 950; text-transform: uppercase; letter-spacing: .08em; }
.product-card h3 { font-size: 1.18rem; line-height: 1; margin: 7px 0 10px; text-transform: uppercase; letter-spacing: -.025em; }
.product-mini-spec { color: #8f8f8b; font-size: .77rem; }
.swipe-hint { display: flex; justify-content: end; gap: 8px; color:#6f6f6c; text-transform:uppercase; letter-spacing:.10em; font-size:.62rem; margin-top:7px; }
.swipe-hint span { color: var(--rx-red); }

/* Warranty */
.warranty-section { padding-top: 26px; }
.warranty-box { min-height: 270px; background: linear-gradient(115deg,#151515,#090909); border: 1px solid var(--rx-line); border-radius: var(--rx-radius); padding: 24px 20px; display: grid; gap: 22px; position: relative; overflow: hidden; }
.warranty-box::before { content:''; position:absolute; width:250px; height:250px; right:-110px; bottom:-130px; background:radial-gradient(circle,rgba(227,27,35,.2),transparent 66%); }
.warranty-badge { width: 86px; aspect-ratio: 1; border-radius: 50%; background: var(--rx-red); display: grid; place-items: center; align-content:center; text-align: center; font-weight: 1000; line-height: .8; box-shadow: inset 0 0 0 7px rgba(255,255,255,.08); }
.warranty-badge span { font-size: 2rem; }
.warranty-badge small { font-size: .62rem; letter-spacing: .12em; margin-top: 5px; }
.warranty-copy { position: relative; z-index:1; }
.warranty-copy h2 { margin: 7px 0 10px; text-transform: uppercase; font-size: clamp(2rem,10vw,3.6rem); line-height:.9; letter-spacing:-.055em; }
.warranty-copy p { color: var(--rx-muted); margin: 0; max-width: 650px; }
.warranty-mark { position:absolute; right:-8px; top:-20px; font-size:9rem; font-weight:1000; letter-spacing:-.08em; color:rgba(255,255,255,.025); }

/* Generic / archive */
.page-hero { padding: 132px 0 60px; background: radial-gradient(circle at 85% 20%,rgba(227,27,35,.11),transparent 24rem), linear-gradient(145deg,#111,#070707); border-bottom: 1px solid var(--rx-line); overflow:hidden; position:relative; }
.page-hero::after { content:'REXON'; position:absolute; right:-8vw; bottom:-.28em; font-size:clamp(5rem,28vw,16rem); font-weight:1000; font-style:italic; letter-spacing:-.1em; color:rgba(255,255,255,.02); }
.page-hero .rx-container { position:relative; z-index:1; }
.page-hero h1 { margin: 9px 0 0; font-size: clamp(3rem,14vw,6.5rem); text-transform: uppercase; letter-spacing: -.065em; line-height: .82; }
.filter-chips { display: flex; flex-wrap: nowrap; gap: 8px; overflow-x:auto; scrollbar-width:none; padding-bottom:4px; }
.filter-chips::-webkit-scrollbar { display:none; }
.filter-chip { flex:0 0 auto; border: 1px solid var(--rx-line); border-radius: 999px; padding: 10px 14px; font-size: .72rem; font-weight: 900; text-transform: uppercase; letter-spacing:.05em; }
.filter-chip:hover { border-color: var(--rx-red); color: var(--rx-red); }
.post-type-archive-rexon_product .product-grid, .taxonomy-rexon_category .product-grid { align-items: stretch; }
.navigation.pagination { margin-top:34px; }
.nav-links { display:flex; gap:7px; flex-wrap:wrap; }
.page-numbers { width:42px; height:42px; border:1px solid var(--rx-line); border-radius:50%; display:grid; place-items:center; font-size:.76rem; font-weight:900; }
.page-numbers.current { background:var(--rx-red); border-color:var(--rx-red); }

/* About */
.about-lead { font-size: clamp(1.5rem,6vw,2.4rem); line-height:1.15; letter-spacing:-.035em; color: #f0f0ed; max-width:850px; }
.about-grid { display: grid; grid-template-columns: 1fr; gap: 12px; margin-top: 34px; }
.about-card { min-height:220px; border: 1px solid var(--rx-line); background: linear-gradient(150deg,#121212,#0b0b0b); border-radius: var(--rx-radius-sm); padding: 22px; position:relative; overflow:hidden; }
.about-card::after { content:''; position:absolute; width:150px; height:150px; right:-80px; bottom:-80px; border:1px solid rgba(227,27,35,.11); border-radius:50%; }
.about-card h3 { margin: 38px 0 9px; text-transform: uppercase; font-size:1.3rem; letter-spacing:-.03em; }
.about-card p { color: var(--rx-muted); margin: 0; }

/* Single product */
.single-product { padding: 102px 0 74px; }
.product-top { display: grid; grid-template-columns: 1fr; gap: 28px; }
.product-gallery { min-width:0; }
.product-gallery-main { min-height: 62svh; max-height: 700px; border-radius: var(--rx-radius); overflow: hidden; background: #ededE8; border: 1px solid rgba(255,255,255,.12); display: grid; place-items: center; position:relative; }
.product-gallery-main img { width:100%; height:100%; object-fit:contain; padding:4%; transition:opacity .12s ease, transform .28s ease; }
.product-gallery-main img.is-switching { opacity:.18; transform:scale(.985); }
.gallery-label { position:absolute; left:14px; bottom:14px; color:#333; background:rgba(255,255,255,.72); backdrop-filter:blur(8px); border-radius:999px; padding:7px 10px; font-size:.58rem; font-weight:950; letter-spacing:.10em; }
.product-thumbs { display:flex; gap:8px; overflow-x:auto; margin-top:10px; scrollbar-width:none; }
.product-thumbs::-webkit-scrollbar { display:none; }
.product-thumb-button { flex:0 0 76px; aspect-ratio:1; border-radius:13px; border:1px solid var(--rx-line); background:#e8e8e4; overflow:hidden; padding:0; opacity:.62; transition:opacity .2s ease,border-color .2s ease,transform .2s ease; }
.product-thumb-button img { width:100%; height:100%; object-fit:contain; }
.product-thumb-button.active { opacity:1; border-color:var(--rx-red); transform:translateY(-2px); }
.product-kicker { color: var(--rx-red); font-weight: 950; text-transform: uppercase; letter-spacing:.09em; font-size:.72rem; }
.product-info h1 { margin: 8px 0 10px; font-size: clamp(3rem,13vw,6rem); line-height: .82; letter-spacing:-.065em; text-transform: uppercase; }
.product-model-large { display:inline-flex; border:1px solid rgba(245,196,0,.35); color: var(--rx-yellow); background:rgba(245,196,0,.06); border-radius:999px; padding:7px 10px; font-weight: 950; font-size: .72rem; letter-spacing:.08em; }
.product-content { color: #c9c9c5; margin-top:20px; }
.spec-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin: 24px 0 0; }
.spec-card { min-height:96px; border: 1px solid var(--rx-line); background: #101010; padding: 14px; border-radius: 14px; display:flex; flex-direction:column; justify-content:space-between; }
.spec-card-accent { border-color:rgba(227,27,35,.4); background:linear-gradient(145deg,rgba(227,27,35,.13),#101010); }
.spec-label { color: #777; text-transform: uppercase; font-size: .6rem; font-weight: 950; letter-spacing: .09em; }
.spec-value { margin-top: 10px; font-weight: 950; font-size:.95rem; }
.product-section { padding-top: 38px; margin-top: 38px; border-top: 1px solid var(--rx-line); position:relative; }
.product-section h2 { text-transform: uppercase; font-size: clamp(2rem,9vw,3.4rem); line-height:.9; letter-spacing:-.05em; margin:8px 0 22px; }
.section-index { color:var(--rx-red); font-size:.66rem; letter-spacing:.12em; font-weight:950; }
.feature-list, .application-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.feature-list li, .application-list li { border: 1px solid var(--rx-line); padding: 15px 14px; border-radius: 13px; background: #0e0e0e; color:#d2d2ce; }
.feature-list li::before { content: '↗'; color: var(--rx-red); font-weight: 1000; margin-right: 10px; }
.table-wrap { border:1px solid var(--rx-line); border-radius:16px; overflow:hidden; background:#0d0d0d; }
.spec-table { width: 100%; border-collapse: collapse; font-size: .86rem; }
.spec-table tr { border-bottom: 1px solid var(--rx-line); }
.spec-table tr:last-child { border-bottom:0; }
.spec-table th, .spec-table td { text-align: left; padding: 14px 13px; vertical-align: top; }
.spec-table th { color: #7e7e7a; width: 48%; font-weight:700; }
.spec-table td { color:#ecece8; font-weight:850; }
.product-warranty-line { display:flex; align-items:end; justify-content:space-between; gap:18px; }
.warranty-mini { flex:0 0 78px; aspect-ratio:1; border-radius:50%; background:var(--rx-red); display:grid; place-items:center; align-content:center; font-size:1.8rem; font-weight:1000; line-height:.8; }
.warranty-mini small { font-size:.54rem; letter-spacing:.10em; margin-top:5px; }

/* Generic content */
.entry-content { color: #d6d6d2; }
.entry-content a { color: var(--rx-red); }
.entry-content h2, .entry-content h3 { color: #fff; }
.entry-content > * { max-width:800px; }

/* Footer */
.site-footer { border-top: 1px solid var(--rx-line); background: #050505; padding: 44px 0 26px; position:relative; overflow:hidden; }
.site-footer::after { content:'REXON'; position:absolute; right:-6vw; bottom:-.37em; color:rgba(255,255,255,.018); font-size:clamp(5rem,26vw,14rem); font-weight:1000; font-style:italic; letter-spacing:-.09em; pointer-events:none; }
.footer-inner { display: grid; gap: 30px; position:relative; z-index:1; }
.footer-tagline { color: var(--rx-muted); max-width: 350px; margin-top: 12px; font-size: .84rem; }
.footer-links { display: grid; gap: 2px; text-transform: uppercase; font-size: .74rem; font-weight: 900; letter-spacing:.05em; }
.footer-links a { padding:9px 0; border-bottom:1px solid rgba(255,255,255,.06); }
.footer-links a:hover { color: var(--rx-red); }
.footer-bottom { position:relative; z-index:1; margin-top: 28px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.07); color: #666; font-size: .69rem; }

/* Motion */
.will-reveal { opacity:0; transform:translateY(24px); transition:opacity .7s cubic-bezier(.2,.8,.2,1), transform .7s cubic-bezier(.2,.8,.2,1); }
.will-reveal.is-visible { opacity:1; transform:none; }
.category-card.will-reveal:nth-child(2), .value-card.will-reveal:nth-child(2), .product-card.will-reveal:nth-child(2) { transition-delay:.07s; }
.value-card.will-reveal:nth-child(3), .product-card.will-reveal:nth-child(3) { transition-delay:.12s; }
.value-card.will-reveal:nth-child(4), .product-card.will-reveal:nth-child(4) { transition-delay:.17s; }
@keyframes scan { 0%,15%{transform:translateX(-100%)} 70%,100%{transform:translateX(100%)} }

/* Tablet / desktop are enhancements; phone stays the primary design */
@media (min-width: 720px) {
  .rx-container { width: min(100% - 46px, var(--rx-max)); }
  .rx-section { padding: 82px 0; }
  .section-heading { grid-template-columns:1.2fr .8fr; align-items:end; }
  .menu-toggle { display: none; }
  .site-nav { position: static; inset: auto; background: transparent; padding: 0; transform: none; overflow:visible; }
  .site-nav ul { display: flex; align-items: center; gap: 28px; }
  .site-nav a { min-height:auto; border:0; font-size:.77rem; letter-spacing:.05em; padding:26px 0; }
  .site-nav a::after { display:none; }
  .hero-inner { padding-bottom:66px; }
  .hero-copy > p { font-size:1.08rem; }
  .category-grid { grid-template-columns: 1fr 1fr; }
  .category-card { min-height:650px; }
  .values-grid { grid-template-columns: repeat(4,1fr); }
  .value-card { min-height:210px; }
  .since-panel { display: grid; grid-template-columns: .9fr 1.1fr; }
  .since-visual { border-top: 0; border-left: 1px solid var(--rx-line); min-height:620px; }
  .product-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
  .product-shelf { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); overflow:visible; margin:0; padding:0; }
  .product-shelf .product-card { min-width:0; }
  .swipe-hint { display:none; }
  .warranty-box { grid-template-columns:auto 1fr; align-items:center; padding:32px; }
  .warranty-mark { font-size:12rem; }
  .archive-head { grid-template-columns:1fr auto; align-items:end; }
  .about-grid { grid-template-columns: repeat(2,1fr); }
  .product-top { grid-template-columns: 1.08fr .92fr; align-items: start; }
  .product-gallery { position:sticky; top:92px; }
  .spec-grid { grid-template-columns: repeat(2,1fr); }
  .feature-list, .application-list { grid-template-columns:repeat(2,1fr); }
  .footer-inner { grid-template-columns: 1fr auto; align-items: start; }
  .footer-links { min-width:260px; }
}

@media (min-width: 1050px) {
  .product-grid, .product-shelf { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .product-info { padding-top:18px; }
  .spec-grid { grid-template-columns: repeat(3,1fr); }
  .about-grid { grid-template-columns: repeat(4,1fr); }
  .about-card { min-height:260px; }
}

@media (max-width: 380px) {
  .rx-container { width:min(100% - 22px,var(--rx-max)); }
  .hero-line { font-size:clamp(3.05rem,16vw,4rem); }
  .values-grid { grid-template-columns:1fr; }
  .product-grid { grid-template-columns:1fr 1fr; gap:9px; }
  .product-card-body { padding:13px 11px 14px; }
  .product-card h3 { font-size:.98rem; }
}

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

/* =========================================================
   REXON v3 — FACTORY HOMEPAGE + SHOP
   ========================================================= */

/* Factory hero */
.factory-hero {
  min-height: 100svh;
  display: flex;
  align-items: flex-end;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background: #080808;
}
.factory-hero::before {
  content: "";
  position: absolute;
  inset: -36px;
  z-index: -4;
  background-image: var(--factory-hero);
  background-size: cover;
  background-position: center;
  transform: translate3d(0,var(--hero-shift,0),0) scale(1.06);
  filter: saturate(.7) contrast(1.12);
}
.factory-hero-shade {
  position: absolute; inset: 0; z-index: -3;
  background:
    linear-gradient(180deg, rgba(0,0,0,.18) 0%, rgba(0,0,0,.3) 38%, rgba(0,0,0,.9) 88%, #070707 100%),
    linear-gradient(90deg, rgba(0,0,0,.82) 0%, rgba(0,0,0,.42) 58%, rgba(0,0,0,.15) 100%);
}
.factory-grid-lines {
  position: absolute; inset: 0; z-index: -2; opacity: .11; pointer-events: none;
  background-image: linear-gradient(rgba(255,255,255,.12) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.12) 1px, transparent 1px);
  background-size: 72px 72px;
  mask-image: linear-gradient(to bottom, transparent 0%, #000 42%, #000 100%);
}
.factory-hero-inner { padding-top: 120px; padding-bottom: 52px; width: 100%; }
.factory-kicker { display:flex; align-items:center; gap:10px; color:#fff; font-size:.72rem; font-weight:900; letter-spacing:.16em; text-transform:uppercase; }
.factory-kicker span { width:34px; height:2px; background:var(--rx-red); }
.factory-title { margin:18px 0 20px; max-width: 900px; font-size:clamp(4.4rem,20vw,8rem); line-height:.78; letter-spacing:-.075em; font-weight:1000; text-transform:uppercase; }
.factory-title strong { color:var(--rx-red); font-weight:1000; }
.factory-lead { max-width:660px; margin:0; color:#d2d2cf; font-size:1rem; line-height:1.65; }
.factory-actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px; margin-top:28px; }
.factory-shop-link { display:inline-flex; align-items:center; gap:10px; text-transform:uppercase; font-size:.76rem; letter-spacing:.08em; font-weight:900; border-bottom:1px solid rgba(255,255,255,.32); padding:12px 0; }
.factory-shop-link span { color:var(--rx-yellow); }
.factory-hero-meta { margin-top:38px; display:flex; align-items:center; flex-wrap:wrap; gap:10px; color:#b7b7b3; font-size:.63rem; letter-spacing:.14em; font-weight:900; }
.factory-hero-meta i { width:3px; height:3px; border-radius:50%; background:var(--rx-red); }

.factory-intro-section { padding-top:86px; padding-bottom:86px; }
.factory-intro { display:grid; gap:18px; }
.factory-intro h2 { margin:0; font-size:clamp(3rem,13vw,7rem); line-height:.86; letter-spacing:-.06em; text-transform:uppercase; font-weight:1000; }
.factory-intro h2 span { color:#777; }
.factory-intro p { margin:0; max-width:760px; color:var(--rx-muted); font-size:1.03rem; }

.factory-photo-story { border-top:1px solid var(--rx-line); border-bottom:1px solid var(--rx-line); }
.factory-story-card { display:grid; min-height:720px; border-bottom:1px solid var(--rx-line); background:#090909; }
.factory-story-card:last-child { border-bottom:0; }
.factory-story-media { min-height:430px; position:relative; overflow:hidden; }
.factory-story-media img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; filter:grayscale(.12) contrast(1.1) saturate(.72); transition:transform .8s cubic-bezier(.22,.61,.36,1), filter .55s ease; }
.factory-story-card:hover .factory-story-media img { transform:scale(1.035); filter:grayscale(0) contrast(1.08) saturate(.9); }
.factory-media-overlay { position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.03),rgba(0,0,0,.62)); }
.factory-story-copy { padding:34px 20px 44px; display:grid; grid-template-columns:48px 1fr; gap:14px; align-items:start; }
.factory-index { font-size:.7rem; font-weight:900; color:var(--rx-red); letter-spacing:.12em; padding-top:6px; }
.factory-story-copy h2 { margin:8px 0 12px; font-size:clamp(2.45rem,10vw,5.4rem); line-height:.88; letter-spacing:-.055em; text-transform:uppercase; }
.factory-story-copy p { margin:0; color:var(--rx-muted); max-width:620px; }

.factory-process-section { background:linear-gradient(180deg,#090909,#050505); }
.factory-process-head { display:grid; gap:20px; margin-bottom:34px; }
.factory-process-head h2 { margin:8px 0 0; font-size:clamp(2.8rem,11vw,5.2rem); line-height:.9; letter-spacing:-.055em; text-transform:uppercase; }
.factory-process-line { height:1px; background:linear-gradient(90deg,var(--rx-red),rgba(255,255,255,.08)); }
.factory-process-grid { display:grid; gap:1px; background:var(--rx-line); border:1px solid var(--rx-line); }
.factory-process-item { background:#0d0d0d; padding:26px 22px; min-height:190px; }
.factory-process-item > span { display:inline-flex; color:var(--rx-red); font-weight:900; font-size:.68rem; letter-spacing:.12em; }
.factory-process-item h3 { margin:26px 0 9px; font-size:1.28rem; text-transform:uppercase; letter-spacing:-.02em; }
.factory-process-item p { margin:0; color:var(--rx-muted); font-size:.88rem; }

.factory-since-banner { min-height:720px; position:relative; display:flex; align-items:flex-end; overflow:hidden; isolation:isolate; background:#050505; }
.factory-since-banner::before { content:""; position:absolute; inset:0; z-index:-3; background-image:var(--factory-banner); background-size:cover; background-position:center; filter:saturate(.72) contrast(1.12); }
.factory-banner-shade { position:absolute; inset:0; z-index:-2; background:linear-gradient(180deg,rgba(0,0,0,.28),rgba(0,0,0,.9) 85%),linear-gradient(90deg,rgba(0,0,0,.74),rgba(0,0,0,.12)); }
.factory-banner-inner { width:100%; padding-top:88px; padding-bottom:54px; display:grid; gap:40px; }
.factory-big-year { margin-top:8px; font-size:clamp(6.7rem,30vw,15rem); font-weight:1000; letter-spacing:-.09em; line-height:.72; color:#fff; text-shadow:0 16px 80px rgba(0,0,0,.5); }
.factory-banner-copy h2 { margin:0 0 14px; font-size:clamp(2.7rem,10vw,4.9rem); line-height:.9; text-transform:uppercase; letter-spacing:-.05em; }
.factory-banner-copy p { margin:0 0 24px; max-width:580px; color:#d0d0cc; }

/* Shop */
.shop-hero { padding:134px 0 58px; background:radial-gradient(circle at 80% 10%,rgba(227,27,35,.13),transparent 22rem),#080808; border-bottom:1px solid var(--rx-line); }
.shop-hero-inner h1 { margin:8px 0 12px; font-size:clamp(5.8rem,28vw,12rem); line-height:.76; letter-spacing:-.09em; font-weight:1000; }
.shop-hero-inner p { margin:0; max-width:650px; color:var(--rx-muted); }
.shop-categories-section { padding-top:52px; }
.shop-section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:26px; }
.shop-section-head h2 { margin:8px 0 0; font-size:clamp(2.6rem,11vw,4.7rem); line-height:.88; letter-spacing:-.055em; text-transform:uppercase; }
.shop-section-head > span { display:none; color:#777; font-size:.66rem; font-weight:900; letter-spacing:.13em; }
.shop-category-grid { display:grid; gap:14px; }
.shop-category-card { min-height:360px; border:1px solid var(--rx-line); border-radius:22px; overflow:hidden; position:relative; isolation:isolate; background:#111; box-shadow:var(--rx-shadow); }
.shop-category-media { position:absolute; inset:0; z-index:-2; }
.shop-category-media img { width:100%; height:100%; object-fit:cover; transition:transform .65s cubic-bezier(.22,.61,.36,1),filter .5s ease; filter:saturate(.75) contrast(1.06); }
.shop-category-shade { position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.82) 88%); }
.shop-category-top { position:absolute; top:20px; left:20px; right:20px; display:flex; align-items:center; justify-content:space-between; font-size:.66rem; font-weight:900; letter-spacing:.12em; }
.shop-category-top span { color:var(--rx-red); }
.shop-category-top b { color:#fff; font-size:inherit; }
.shop-category-bottom { position:absolute; left:20px; right:20px; bottom:18px; display:flex; align-items:flex-end; justify-content:space-between; gap:12px; }
.shop-category-bottom h2 { margin:0; max-width:86%; font-size:clamp(2.35rem,11vw,4.2rem); line-height:.86; letter-spacing:-.055em; text-transform:uppercase; }
.shop-category-arrow { flex:0 0 auto; width:48px; height:48px; border-radius:50%; display:grid; place-items:center; border:1px solid rgba(255,255,255,.34); background:rgba(0,0,0,.25); backdrop-filter:blur(8px); transition:background .25s ease,transform .25s ease; }
.shop-category-card:hover .shop-category-media img { transform:scale(1.045); filter:saturate(.95) contrast(1.08); }
.shop-category-card:hover .shop-category-arrow { background:var(--rx-red); transform:translate(2px,-2px); }
.shop-product-family { border-top:1px solid var(--rx-line); }
.shop-family-head { display:flex; justify-content:space-between; align-items:flex-end; gap:18px; margin-bottom:24px; }
.shop-family-head h2 { margin:7px 0 0; font-size:clamp(2.6rem,11vw,4.7rem); line-height:.88; letter-spacing:-.055em; text-transform:uppercase; }
.shop-product-row { display:flex !important; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; gap:14px; padding-bottom:8px; margin-right:-14px; padding-right:14px; }
.shop-product-row::-webkit-scrollbar { display:none; }
.shop-product-row .product-card { min-width:min(82vw,340px); scroll-snap-align:start; }
.shop-empty { border:1px solid var(--rx-line); padding:32px; border-radius:18px; color:var(--rx-muted); background:#0d0d0d; }
.category-page-hero { padding-bottom:44px; }
.category-page-hero .text-link { margin-top:24px; }

@media (min-width: 760px) {
  .factory-hero-inner { padding-bottom:68px; }
  .factory-title { font-size:clamp(6rem,12vw,10rem); }
  .factory-intro { grid-template-columns:.65fr 1.35fr; align-items:end; }
  .factory-intro .rx-eyebrow { align-self:start; padding-top:9px; }
  .factory-story-card { grid-template-columns:1.45fr 1fr; min-height:620px; }
  .factory-story-card-reverse { grid-template-columns:1fr 1.45fr; }
  .factory-story-card-reverse .factory-story-media { order:2; }
  .factory-story-card-reverse .factory-story-copy { order:1; }
  .factory-story-media { min-height:620px; }
  .factory-story-copy { padding:56px 46px; display:flex; gap:30px; align-items:flex-end; }
  .factory-process-grid { grid-template-columns:repeat(5,1fr); }
  .factory-process-item { min-height:260px; }
  .factory-process-item h3 { margin-top:78px; }
  .factory-banner-inner { grid-template-columns:1.05fr .95fr; align-items:end; }
  .shop-section-head > span { display:block; }
  .shop-category-grid { grid-template-columns:1fr 1fr; }
  .shop-category-card { min-height:470px; }
  .shop-product-row { display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)); overflow:visible; margin-right:0; padding-right:0; }
  .shop-product-row .product-card { min-width:0; }
}

@media (min-width: 1100px) {
  .factory-story-copy { padding:70px 62px; }
  .shop-category-grid { grid-template-columns:repeat(2,1fr); gap:18px; }
  .shop-category-card { min-height:520px; }
}

@media (prefers-reduced-motion: reduce) {
  .factory-hero::before,
  .factory-story-media img,
  .shop-category-media img,
  .shop-category-arrow { transition:none !important; transform:none !important; }
}

/* =========================================================
   REXON v4 — ONE PAGE / SPACE GREY
   ========================================================= */
body.home {
  background:
    radial-gradient(circle at 82% 7%, rgba(245,196,0,.07), transparent 26rem),
    radial-gradient(circle at 14% 4%, rgba(227,27,35,.10), transparent 28rem),
    #34373c;
}

body.home::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: .18;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(to bottom, #000, transparent 72%);
}

.onepage-header.site-header {
  background: rgba(52,55,60,.86);
  border-bottom: 1px solid rgba(255,255,255,.10);
  backdrop-filter: blur(22px) saturate(135%);
  -webkit-backdrop-filter: blur(22px) saturate(135%);
}
.onepage-header.site-header.scrolled { background: rgba(52,55,60,.96); }
.onepage-header-inner { min-height: 68px; display:flex; align-items:center; justify-content:space-between; gap:18px; }
.onepage-header .rx-logo { font-size: 2.05rem; }
.onepage-nav { display:flex; align-items:center; gap:7px; }
.onepage-nav a {
  min-height: 38px;
  padding: 0 12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.13);
  border-radius:999px;
  color:#eef0f2;
  font-size:.67rem;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
  transition:background .2s ease,border-color .2s ease,transform .2s ease;
}
.onepage-nav a:hover { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.25); transform:translateY(-1px); }

.onepage-intro {
  min-height: 66svh;
  padding: 128px 0 72px;
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  border-bottom:1px solid rgba(255,255,255,.10);
}
.onepage-intro::after {
  content:'REXON';
  position:absolute;
  right:-.05em;
  bottom:-.25em;
  font-size:clamp(8rem,42vw,29rem);
  line-height:.72;
  font-weight:1000;
  font-style:italic;
  letter-spacing:-.095em;
  color:rgba(255,255,255,.027);
  pointer-events:none;
}
.onepage-intro-glow {
  position:absolute;
  width:72vw;
  aspect-ratio:1;
  right:-34vw;
  top:-20vw;
  border-radius:50%;
  background:radial-gradient(circle,rgba(227,27,35,.16),transparent 66%);
  filter:blur(10px);
}
.onepage-intro-inner { position:relative; z-index:2; }
.onepage-kicker { display:flex; flex-wrap:wrap; align-items:center; gap:9px; margin-bottom:22px; font-size:.67rem; letter-spacing:.12em; font-weight:950; color:#f1f2f3; }
.onepage-kicker span:first-child { color:var(--rx-red); }
.onepage-kicker span:nth-of-type(2) { color:var(--rx-yellow); }
.onepage-kicker i { color:#9ea1a5; font-style:normal; }
.onepage-kicker b { margin-left:auto; color:#bfc1c5; font-size:.62rem; }
.onepage-heading {
  max-width:980px;
  margin:0;
  font-size:clamp(3.3rem,15vw,8rem);
  line-height:.86;
  letter-spacing:-.075em;
  text-transform:uppercase;
  font-weight:1000;
  color:#fff;
}
.onepage-lead {
  max-width:720px;
  margin:28px 0 0;
  color:#d0d2d5;
  font-size:clamp(.98rem,3.9vw,1.26rem);
  line-height:1.58;
}
.onepage-brand-line { margin-top:38px; display:grid; grid-template-columns:1fr auto 1fr; gap:14px; align-items:center; color:#94979c; font-size:.65rem; letter-spacing:.16em; }
.onepage-brand-line span { height:1px; background:rgba(255,255,255,.13); }
.onepage-brand-line strong { color:#f3f4f5; }

.onepage-products-section {
  padding:72px 0 86px;
  position:relative;
  overflow:hidden;
  border-bottom:1px solid rgba(255,255,255,.10);
}
.onepage-products-air { background:linear-gradient(180deg,#3b3e43 0%,#36393e 100%); }
.onepage-products-water { background:linear-gradient(180deg,#34373c 0%,#3a3d42 100%); }
.onepage-section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:26px; }
.onepage-section-index { color:var(--rx-red); font-size:.65rem; font-weight:950; letter-spacing:.16em; margin-bottom:8px; }
.onepage-section-head h2 { margin:0; font-size:clamp(2.5rem,12vw,6.4rem); line-height:.82; letter-spacing:-.065em; font-weight:1000; }
.onepage-swipe-note { flex:0 0 auto; color:#aeb0b4; font-size:.59rem; font-weight:900; letter-spacing:.11em; text-transform:uppercase; padding-bottom:5px; }
.onepage-swipe-note span { color:var(--rx-yellow); font-size:.85rem; }

.onepage-rail {
  width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  cursor:grab;
  touch-action:pan-x;
}
.onepage-rail:active { cursor:grabbing; }
.onepage-rail::-webkit-scrollbar { display:none; }
.onepage-rail-track {
  display:flex;
  gap:14px;
  width:max-content;
  padding:0 14px 8px;
  will-change:transform;
}
.onepage-product-card {
  width:min(76vw,340px);
  flex:0 0 auto;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(69,72,78,.78);
  border-radius:24px;
  overflow:hidden;
  box-shadow:0 18px 50px rgba(18,20,23,.18);
  transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease;
}
.onepage-product-card:hover { transform:translateY(-5px); border-color:rgba(255,255,255,.23); box-shadow:0 26px 60px rgba(18,20,23,.26); }
.onepage-product-media {
  position:relative;
  aspect-ratio:1 / .88;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:linear-gradient(145deg,#d9dadd,#f4f4f2);
}
.onepage-product-media::after { content:''; position:absolute; inset:auto 0 0; height:30%; background:linear-gradient(180deg,transparent,rgba(19,20,22,.08)); }
.onepage-product-media img { width:100%; height:100%; object-fit:contain; padding:5.5%; transition:transform .4s cubic-bezier(.2,.8,.2,1); }
.onepage-product-card:hover .onepage-product-media img { transform:scale(1.055); }
.onepage-product-placeholder { display:grid; place-items:center; gap:3px; color:#65676a; text-transform:uppercase; font-weight:900; letter-spacing:.05em; }
.onepage-product-placeholder span { font-size:1.5rem; font-style:italic; }
.onepage-product-placeholder small { font-size:.58rem; }
.onepage-product-copy { padding:17px 17px 19px; min-height:126px; }
.onepage-product-model { color:var(--rx-yellow); font-size:.67rem; font-weight:950; letter-spacing:.10em; text-transform:uppercase; }
.onepage-product-copy h3 { margin:7px 0 10px; font-size:1.18rem; line-height:1; letter-spacing:-.025em; text-transform:uppercase; }
.onepage-product-copy p { margin:0; color:#c0c2c6; font-size:.76rem; line-height:1.45; }
.onepage-empty { margin:0 14px; border:1px dashed rgba(255,255,255,.18); border-radius:20px; padding:28px; color:#bec0c4; }

.onepage-closing { padding:64px 0; background:#3d4045; }
.onepage-closing-inner { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.onepage-closing .rx-logo { font-size:clamp(2.5rem,12vw,5rem); }
.onepage-closing p { margin:0; color:#b9bbc0; font-size:.76rem; text-transform:uppercase; letter-spacing:.08em; text-align:right; }

.onepage-footer.site-footer { background:#33363b; border-top:1px solid rgba(255,255,255,.11); padding:34px 0 28px; }
.onepage-footer.site-footer::after { display:none; }
.onepage-footer-inner { display:grid; gap:16px; }
.onepage-footer .rx-logo { font-size:1.7rem; }
.onepage-footer-copy { color:#c3c5c8; font-size:.79rem; }
.onepage-footer-meta { padding-top:15px; border-top:1px solid rgba(255,255,255,.09); color:#94979b; font-size:.65rem; letter-spacing:.05em; }

@media (min-width: 700px) {
  .onepage-products-section { padding:92px 0 106px; }
  .onepage-rail-track { gap:18px; padding-inline:max(28px,calc((100vw - var(--rx-max))/2 + 14px)); }
  .onepage-product-card { width:360px; }
  .onepage-product-copy { padding:20px 20px 22px; }
  .onepage-nav a { padding-inline:16px; }
  .onepage-footer-inner { grid-template-columns:auto 1fr auto; align-items:center; }
  .onepage-footer-meta { padding:0; border:0; text-align:right; }
}

@media (min-width: 1000px) {
  .onepage-intro { min-height:72vh; }
  .onepage-product-card { width:390px; }
}

@media (max-width: 520px) {
  .onepage-header-inner { min-height:64px; }
  .onepage-header .rx-logo { font-size:1.8rem; }
  .onepage-nav { gap:5px; }
  .onepage-nav a { min-height:34px; padding:0 9px; font-size:.58rem; }
  .onepage-intro { min-height:62svh; padding-top:108px; }
  .onepage-kicker b { width:100%; margin:2px 0 0; }
  .onepage-section-head { align-items:flex-start; }
  .onepage-swipe-note { padding-top:10px; max-width:78px; text-align:right; line-height:1.5; }
  .onepage-product-card { width:78vw; border-radius:20px; }
  .onepage-closing-inner { display:grid; }
  .onepage-closing p { text-align:left; }
}

@media (prefers-reduced-motion: reduce) {
  .onepage-product-card,
  .onepage-product-media img,
  .onepage-nav a { transition:none; }
}
