:root {
  --shell: 420px;
  --ink: #1d1b19;
  --muted: #6c6863;
  --line: #e8e3dd;
  --paper: #fff;
  --soft: #f7f5f2;
  --warm: #f3efe9;
  --dark: #171512;
  --soft-shadow: 0 12px 34px rgba(46, 35, 26, .08);
  color-scheme: light;
  font-family: Arial, Helvetica, sans-serif;
}

* { box-sizing: border-box; }
html { width: 100%; overflow-x: hidden; scroll-behavior: smooth; }
body { width: 100%; margin: 0; overflow-x: hidden; background: linear-gradient(135deg, #e7e3dd, #d8d4ce); color: var(--ink); font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 1.4; text-rendering: optimizeLegibility; -webkit-font-smoothing: auto; }
body:has(.order-dialog[open]), body.menu-open { overflow: hidden; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; cursor: pointer; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }

.mobile-shell { width: min(100%, var(--shell)); min-height: 100svh; margin: 0 auto; overflow: hidden; background: #fbfaf8; box-shadow: 0 0 40px rgba(34,28,23,.13); }

.site-header { height: 64px; display: grid; grid-template-columns: 86px 1fr 86px; align-items: center; position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.94); box-shadow: 0 5px 18px rgba(42,32,24,.045); backdrop-filter: blur(16px); }
.scroll-progress { width: 100%; height: 2px; position: absolute; left: 0; bottom: -1px; z-index: 2; transform: scaleX(0); transform-origin: left center; background: #111; will-change: transform; }
.header-actions { display: flex; justify-content: flex-end; }
.header-actions-left { justify-content: flex-start; }
.header-icon { width: 40px; height: 40px; padding: 10px; display: grid; place-items: center; position: relative; border: 0; border-radius: 50%; background: transparent; transition: background .25s ease, transform .25s ease; }
.header-icon:active { transform: scale(.92); background: var(--soft); }
.header-icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.45; stroke-linecap: round; stroke-linejoin: round; }
.bag-icon span { min-width: 16px; height: 16px; padding: 0 3px; display: grid; place-items: center; position: absolute; top: 0; right: 0; border-radius: 20px; background: #000; color: #fff; font-size: 10px; }
.wordmark { width: 150px; display: grid; place-items: center; justify-self: center; }
.wordmark img { width: 100%; height: auto; }

.category-nav { min-height: 50px; display: flex; align-items: center; justify-content: flex-start; gap: 7px; overflow-x: auto; padding: 7px 12px; background: rgba(255,255,255,.97); scrollbar-width: none; }
.category-nav::-webkit-scrollbar { display: none; }
.category-nav a { min-height: 34px; padding: 0 13px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 999px; background: #f6f3ef; font-size: 11px; transition: background .25s ease, transform .25s ease; }
.category-nav a:active { transform: scale(.96); background: #ebe6df; }

.home-hero { overflow: hidden; }
.home-hero > img, .feature-campaign-media img { width: 100%; object-fit: cover; }
.home-hero > img { aspect-ratio: 490 / 613; animation: hero-settle 1.1s cubic-bezier(.2,.7,.25,1) both; }
.campaign-caption { padding: 25px 20px 30px; background: #fff; text-align: center; }
.home-hero .campaign-caption { margin: -20px 12px 14px; position: relative; z-index: 2; border-radius: 19px; box-shadow: var(--soft-shadow); }
.campaign-caption > p, .section-heading > p, .footer-newsletter > p { margin: 0 0 9px; font-size: 11px; letter-spacing: .11em; text-transform: uppercase; }
.campaign-caption h1, .campaign-caption h2, .explore h2, .section-heading h2, .services > h2, .maison > h2, .footer-newsletter h2 { margin: 0; font-family: Arial, Helvetica, sans-serif; font-weight: 400; letter-spacing: -.025em; }
.campaign-caption h1 { font-size: 28px; }
.campaign-caption h2 { font-size: 28px; }
.campaign-caption > div { margin-top: 17px; display: flex; justify-content: center; gap: 24px; }
.campaign-caption button { min-height: 36px; padding: 0 2px; border: 0; border-bottom: 1px solid currentColor; background: transparent; font-size: 12px; transition: opacity .25s ease, transform .25s ease; }
.campaign-caption button:active { transform: translateY(1px); opacity: .62; }

.private-offer { min-height: 62px; margin: 0 12px 12px; padding: 13px 14px; display: grid; place-items: center; gap: 5px; border-radius: 14px; background: var(--warm); text-align: center; }
.private-offer span { font-size: 10px; letter-spacing: .14em; }
.private-offer strong { font-size: 11px; letter-spacing: .04em; }

.trust-row { padding: 5px 12px 19px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; background: #fff; }
.trust-row div { min-width: 0; min-height: 87px; padding: 12px 6px 10px; display: grid; place-items: center; align-content: start; gap: 3px; border-radius: 13px; background: #fbfaf8; text-align: center; box-shadow: inset 0 0 0 1px rgba(60,45,34,.04); }
.trust-row div > span { height: 22px; display: grid; place-items: center; font-family: Georgia, serif; font-size: 19px; line-height: 1; }
.trust-row strong { font-size: 10px; font-weight: 600; line-height: 1.25; }
.trust-row small { color: #6b6b6b; font-size: 9px; line-height: 1.25; }

.explore { padding: 52px 0 57px; background: #fff; }
.explore > h2 { max-width: 350px; margin: 0 auto 28px; padding: 0 15px; font-size: 28px; line-height: 1.22; text-align: center; }
.category-rail, .service-rail { display: flex; gap: 12px; overflow-x: auto; padding: 0 18px 8px; scroll-snap-type: x mandatory; scrollbar-width: none; }
.category-rail::-webkit-scrollbar, .service-rail::-webkit-scrollbar { display: none; }
.category-rail button { flex: 0 0 72%; padding: 0 0 4px; overflow: hidden; scroll-snap-align: center; border: 0; border-radius: 17px; background: #fff; box-shadow: 0 8px 24px rgba(42,31,24,.07); }
.category-rail img { width: 100%; aspect-ratio: 1 / 1.08; object-fit: cover; background: var(--soft); border-radius: 17px 17px 0 0; }
.category-rail span { min-height: 47px; display: grid; place-items: center; font-size: 13px; }

.collection { padding: 52px 12px 74px; background: linear-gradient(180deg, #fbfaf8 0%, #fff 18%, #fff 100%); }
.offer-card { margin: 0 0 47px; padding: 26px 18px; position: relative; overflow: hidden; border-radius: 18px; background: linear-gradient(135deg, #211e1a, #0f0e0d); color: #fff; text-align: center; box-shadow: 0 14px 34px rgba(27,21,17,.16); }
.offer-card::after { content: "LV"; position: absolute; right: -6px; bottom: -29px; color: rgba(255,255,255,.055); font-size: 94px; font-weight: 700; letter-spacing: -.08em; line-height: 1; }
.offer-card p { margin: 0 0 8px; position: relative; z-index: 1; font-size: 10px; letter-spacing: .14em; }
.offer-card strong { display: block; position: relative; z-index: 1; font-size: 22px; font-weight: 400; line-height: 1.2; }
.offer-card span { max-width: 310px; margin: 10px auto 0; display: block; position: relative; z-index: 1; color: #d3d3d3; font-size: 11px; line-height: 1.5; }
.section-heading { margin-bottom: 27px; padding: 0 12px; text-align: center; }
.section-heading h2 { font-size: 28px; line-height: 1.18; }
.section-heading > span { display: block; margin-top: 10px; color: var(--muted); font-size: 12px; line-height: 1.45; }
.product-grid { display: grid; grid-template-columns: 1fr; gap: 48px; }
.product-card { min-width: 0; }
.product-button { width: 100%; padding: 0; text-align: left; border: 0; background: transparent; }
.product-media { width: 100%; aspect-ratio: 1.08 / 1; display: grid; place-items: center; position: relative; overflow: hidden; border-radius: 18px; background: linear-gradient(145deg, #fbfaf8, #f1eeea); box-shadow: 0 9px 26px rgba(44,32,23,.06); transition: transform .45s cubic-bezier(.2,.75,.2,1), box-shadow .45s ease; }
.product-media::before { content: ""; width: 48%; height: 170%; position: absolute; top: -35%; left: -75%; z-index: 2; transform: rotate(16deg); background: linear-gradient(90deg, transparent, rgba(255,255,255,.6), transparent); pointer-events: none; transition: left .8s cubic-bezier(.2,.7,.2,1); }
.product-media img { width: 100%; height: 100%; object-fit: contain; transform-origin: center; transition: filter .35s ease; }
.product-button:active .product-media { transform: scale(.985); }
.product-button:active .product-media::before { left: 125%; }
.product-badge { position: absolute; top: 13px; right: 14px; z-index: 2; color: #111; background: transparent; font-size: 0; }
.product-badge::after { content: "♡"; font-family: Arial, sans-serif; font-size: 27px; font-weight: 300; line-height: 1; }
.product-copy { padding: 18px 4px 0; }
.product-ref { margin: 0 0 7px; color: #666; font-size: 11px; letter-spacing: .07em; }
.product-copy h3 { min-height: 0; margin: 0; font-size: 16px; font-weight: 400; line-height: 1.35; }
.product-price { min-height: 27px; margin: 10px 0 12px; display: flex; align-items: baseline; gap: 7px; flex-wrap: wrap; }
.product-price strong { font-size: 17px; }
.product-price s { color: #777; font-size: 12px; }
.product-price span { padding: 4px 7px; display: inline-flex; align-items: center; border-radius: 20px; background: #eee; color: #444; font-size: 9px; font-weight: 600; letter-spacing: .04em; }
.product-cta { min-height: 49px; display: grid; place-items: center; position: relative; overflow: hidden; border: 1px solid var(--dark); border-radius: 12px 12px 0 0; background: var(--dark); color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.product-cta::after { content: ""; width: 35%; height: 180%; position: absolute; top: -40%; left: -55%; transform: rotate(18deg); background: linear-gradient(90deg, transparent, rgba(255,255,255,.24), transparent); animation: button-shine 4.8s ease-in-out infinite; }
.product-assurance { min-height: 34px; display: grid; place-items: center; border: 1px solid var(--line); border-top: 0; border-radius: 0 0 12px 12px; background: #fff; color: #5f5a55; font-size: 10px; text-align: center; }
.product-grid .product-card:last-child { width: 100%; }
.product-card--lv-pochette-accessoires-m82766 .product-image { transform: translateY(-22%) scale(1.16); }
.product-card--lv-loop-bag .product-image { transform: translateY(-13%) scale(1.04); }
.product-card--lv-pochette-metis-east-west .product-image { transform: translateY(-23%) scale(1.16); }
.product-card--lv-multipass .product-image { transform: scale(.9); }
.product-card--lv-carryall-mm-bag .product-image { transform: translateY(-3%) scale(.91); }

.feature-campaign { padding-top: 12px; background: #fff; }
.feature-campaign-media { width: calc(100% - 24px); aspect-ratio: 4 / 3; margin: 0 12px; overflow: hidden; border-radius: 18px; background: #7e451d; box-shadow: var(--soft-shadow); }
.feature-campaign-media img { height: 100%; object-position: center 65%; transform: scale(1.015); transition: transform 1.1s cubic-bezier(.2,.7,.2,1); }
.feature-campaign.is-visible .feature-campaign-media img { transform: scale(1.055); }
.feature-campaign .campaign-caption { margin: -17px 24px 18px; position: relative; z-index: 2; border-radius: 17px; box-shadow: 0 10px 28px rgba(48,35,26,.07); }

.services { padding: 55px 0 62px; background: var(--soft); }
.services > h2 { margin: 0 0 29px; padding: 0 20px; font-size: 28px; text-align: center; }
.service-rail article { flex: 0 0 76%; min-height: 246px; padding: 28px 24px; display: flex; flex-direction: column; align-items: flex-start; scroll-snap-align: center; border-radius: 18px; background: #fff; box-shadow: 0 9px 27px rgba(44,32,23,.07); }
.service-rail article > span { margin-bottom: 31px; font-family: Georgia, serif; font-size: 26px; }
.service-rail h3 { margin: 0 0 10px; font-size: 15px; font-weight: 400; }
.service-rail p { margin: 0 0 18px; color: var(--muted); font-size: 12px; line-height: 1.55; }
.service-rail a { margin-top: auto; padding-bottom: 3px; border-bottom: 1px solid; font-size: 11px; }

.maison { padding: 56px 12px 62px; background: #fff; text-align: center; }
.maison > h2 { font-size: 28px; }
.maison > p { max-width: 330px; margin: 10px auto 27px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.maison-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.maison-grid button { min-width: 0; padding: 0 0 3px; overflow: hidden; border: 0; border-radius: 16px; background: #fff; box-shadow: 0 8px 24px rgba(43,32,24,.07); }
.maison-grid img { width: 100%; aspect-ratio: .86; object-fit: cover; border-radius: 16px 16px 0 0; background: var(--soft); }
.maison-grid span { min-height: 43px; display: grid; place-items: center; font-size: 12px; }

footer { padding: 0 20px 91px; overflow: hidden; border-radius: 24px 24px 0 0; background: linear-gradient(145deg, #1d1a17, #0d0c0b); color: #fff; }
.footer-newsletter { padding: 42px 0 37px; text-align: center; border-bottom: 1px solid rgba(255,255,255,.22); }
.footer-newsletter h2 { font-size: 24px; }
.footer-newsletter button { width: 100%; min-height: 46px; margin-top: 20px; border: 1px solid #fff; border-radius: 12px; background: #fff; color: #111; font-size: 11px; }
.footer-links details { border-bottom: 1px solid rgba(255,255,255,.22); }
.footer-links summary { min-height: 49px; display: flex; align-items: center; justify-content: space-between; list-style: none; font-size: 11px; font-weight: 700; letter-spacing: .08em; cursor: pointer; }
.footer-links summary::-webkit-details-marker { display: none; }
.footer-links summary::after { content: "+"; font-size: 16px; font-weight: 300; }
.footer-links details[open] summary::after { content: "−"; }
.footer-links a { display: block; padding: 0 0 13px; color: #c5c5c5; font-size: 11px; }
.footer-bottom { padding: 25px 0; display: flex; gap: 15px; flex-wrap: wrap; color: #c5c5c5; font-size: 10px; }
.footer-bottom strong { width: 100%; color: #fff; font-weight: 400; }
.footer-wordmark { padding: 29px 0 21px; display: grid; place-items: center; border-top: 1px solid rgba(255,255,255,.22); }
.footer-wordmark img { width: 190px; height: auto; filter: invert(1); }
.footer-disclaimer { margin: 0; color: #aaa; font-size: 10px; line-height: 1.5; text-align: center; }

.menu-panel { width: min(100%, var(--shell)); position: fixed; inset: 0 auto 0 50%; z-index: 100; visibility: hidden; transform: translateX(-50%); }
.menu-panel.is-open { visibility: visible; }
.menu-backdrop { width: 100%; height: 100%; padding: 0; position: absolute; inset: 0; border: 0; background: rgba(0,0,0,.55); opacity: 0; transition: opacity .25s ease; }
.menu-panel.is-open .menu-backdrop { opacity: 1; }
.menu-sheet { width: 88%; height: 100%; padding: 0 23px 30px; position: relative; z-index: 2; transform: translateX(-102%); transition: transform .35s cubic-bezier(.2,.75,.2,1); border-radius: 0 22px 22px 0; background: #fff; box-shadow: 18px 0 44px rgba(0,0,0,.15); }
.menu-panel.is-open .menu-sheet { transform: translateX(0); }
.menu-sheet header { height: 63px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }
.menu-sheet header strong { font-size: 13px; }
.menu-sheet header button { width: 38px; height: 38px; border: 0; background: transparent; font-size: 27px; }
.menu-sheet nav a { min-height: 57px; display: flex; align-items: center; border-bottom: 1px solid var(--line); font-size: 13px; }
.menu-sheet > p { margin-top: 30px; color: var(--muted); font-size: 10px; }

.sticky-shop { width: min(calc(100% - 18px), 402px); min-height: 54px; padding: 0 16px; display: flex; justify-content: space-between; align-items: center; position: fixed; left: 50%; bottom: max(9px, env(safe-area-inset-bottom)); z-index: 70; opacity: 0; transform: translate(-50%, calc(100% + 22px)); border: 1px solid rgba(255,255,255,.2); border-radius: 14px; background: rgba(23,21,18,.97); color: #fff; box-shadow: 0 10px 30px rgba(0,0,0,.24); font-size: 11px; letter-spacing: .06em; pointer-events: none; transition: opacity .3s ease, transform .45s cubic-bezier(.2,.75,.25,1); backdrop-filter: blur(12px); }
.sticky-shop.is-visible { opacity: 1; transform: translate(-50%, 0); pointer-events: auto; animation: sticky-glow 1.25s .65s 2 alternate ease-in-out; }
.sticky-shop strong { padding-bottom: 2px; border-bottom: 1px solid #fff; }
body:has(.order-dialog[open]) .sticky-shop, body.menu-open .sticky-shop { opacity: 0; transform: translate(-50%, calc(100% + 22px)); pointer-events: none; }

.order-dialog { width: min(calc(100% - 10px), 410px); max-width: 410px; max-height: 94svh; max-height: 94dvh; margin: auto auto 0; padding: 0; overflow: hidden; overscroll-behavior: contain; color: var(--ink); background: #fff; border: 0; border-radius: 24px 24px 0 0; box-shadow: 0 -20px 60px rgba(0,0,0,.24); }
.order-dialog::backdrop { background: rgba(22,18,15,.62); backdrop-filter: blur(2px); }
.dialog-shell { max-height: 94svh; max-height: 94dvh; display: flex; flex-direction: column; position: relative; overflow: hidden; }
.order-head { min-height: 66px; padding: 14px 58px 11px; display: grid; place-items: center; align-content: center; gap: 4px; flex: 0 0 auto; border-bottom: 1px solid var(--line); background: #fff; text-align: center; }
.order-wordmark { width: 158px; height: auto; }
.order-head span { color: #666; font-size: 11px; }
.dialog-close { width: 40px; height: 40px; position: absolute; top: 12px; right: 12px; z-index: 5; display: grid; place-items: center; border: 0; border-radius: 50%; background: var(--soft); color: #111; font-size: 25px; font-weight: 300; line-height: 1; }
.dialog-close:focus { outline: 0; }
.dialog-close:focus-visible { box-shadow: inset 0 0 0 1px #111; }
.dialog-content { padding: 12px 13px calc(18px + env(safe-area-inset-bottom)); display: grid; gap: 12px; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.dialog-product { min-height: 154px; padding: 10px; display: grid; grid-template-columns: minmax(116px, 38%) 1fr; gap: 13px; align-items: center; border: 1px solid var(--line); border-radius: 16px; background: #fbfaf8; }
.dialog-product-media { width: 100%; aspect-ratio: 1 / 1; display: grid; place-items: center; overflow: hidden; border-radius: 12px; background: #f3f0ec; }
.dialog-product-media img { width: 100%; height: 100%; object-fit: contain; transform-origin: center; }
.dialog-product-media img[data-product-slug="lv-pochette-accessoires-m82766"] { transform: translateY(-22%) scale(1.16); }
.dialog-product-media img[data-product-slug="lv-loop-bag"] { transform: translateY(-13%) scale(1.04); }
.dialog-product-media img[data-product-slug="lv-pochette-metis-east-west"] { transform: translateY(-23%) scale(1.16); }
.dialog-product-media img[data-product-slug="lv-multipass"] { transform: scale(.9); }
.dialog-product-media img[data-product-slug="lv-carryall-mm-bag"] { transform: translateY(-3%) scale(.91); }
.dialog-product-copy { min-width: 0; }
.dialog-product-copy > p { margin: 0 0 6px; color: #555; font-size: 10px; font-weight: 600; letter-spacing: .08em; }
.dialog-product-copy h2 { margin: 0 0 6px; font-size: 16px; font-weight: 500; line-height: 1.25; }
.dialog-product-copy > span { display: block; margin-bottom: 10px; color: #666; font-size: 11px; letter-spacing: .07em; }
.dialog-pricing { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.dialog-pricing strong { font-size: 22px; line-height: 1; }
.dialog-pricing s { color: #777; font-size: 12px; }
.dialog-benefits { padding: 11px 8px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; border-radius: 12px; background: var(--warm); color: #444; font-size: 10px; line-height: 1.3; text-align: center; }
.dialog-benefits span::before { content: "✓"; margin-right: 3px; color: #111; font-weight: 800; }
.quantity-options { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; border: 0; }
.quantity-options legend { width: 100%; margin: 0 0 7px; padding: 0; color: #444; font-size: 12px; font-weight: 600; }
.quantity-options label { min-height: 56px; padding: 8px 10px; display: grid; grid-template-columns: 20px 1fr auto; gap: 7px; align-items: center; border: 1px solid #c9c2bb; border-radius: 11px; background: #fff; transition: border-color .2s ease, background .2s ease, transform .2s ease; }
.quantity-options label:has(input:checked) { border-color: #292521; background: #f8f5f1; box-shadow: inset 0 0 0 1px #292521; }
.quantity-options input { width: 18px; height: 18px; margin: 0; accent-color: #111; }
.quantity-options label span { font-size: 13px; }
.quantity-options label strong { font-size: 14px; }
.field-stack { display: grid; gap: 10px; }
.field-stack > label, .form-row > label { display: grid; }
.field-stack > label, .form-row > label { gap: 5px; }
.field-stack label > span { color: #444; font-size: 11px; font-weight: 600; letter-spacing: .04em; }
#orderForm input:not([type="radio"]), #orderForm select, #orderForm textarea { width: 100%; min-height: 50px; padding: 12px; border: 1px solid #c9c2bb; border-radius: 10px; outline: none; background: #fff; color: var(--ink); font-size: 16px; line-height: 1.35; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; }
#orderForm textarea { min-height: 76px; resize: vertical; }
#orderForm input:focus, #orderForm select:focus, #orderForm textarea:focus { border-color: #111; box-shadow: 0 0 0 1px #111; }
.form-row { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 8px; }
.form-note { margin: 0; color: #555; font-size: 11px; line-height: 1.45; text-align: center; }
.form-status { min-height: 16px; margin: 0; color: #842d20; font-size: 12px; text-align: center; }
.submit-order { min-height: 55px; padding: 0 18px; display: flex; justify-content: space-between; align-items: center; border: 0; border-radius: 12px; background: var(--dark); color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .08em; box-shadow: 0 9px 22px rgba(26,20,16,.16); }
.submit-order:disabled { opacity: .55; cursor: wait; }

.reveal-ready [data-reveal] { opacity: 0; transform: translateY(14px); transition: opacity .75s ease var(--reveal-delay, 0ms), transform .75s cubic-bezier(.2,.72,.22,1) var(--reveal-delay, 0ms); }
.reveal-ready [data-reveal].is-visible { opacity: 1; transform: translateY(0); }

@media (hover: hover) {
  .product-button:hover .product-media { transform: translateY(-3px); box-shadow: 0 14px 34px rgba(0,0,0,.08); }
  .product-button:hover .product-media::before { left: 125%; }
  .product-button:hover .product-media img { filter: saturate(1.06) contrast(1.015); }
  .campaign-caption button:hover, .service-rail a:hover { opacity: .58; }
}

@keyframes hero-settle {
  from { opacity: .6; transform: scale(1.035); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes button-shine {
  0%, 62% { left: -55%; }
  82%, 100% { left: 125%; }
}

@keyframes sticky-glow {
  from { box-shadow: 0 8px 26px rgba(0,0,0,.25); }
  to { box-shadow: 0 8px 28px rgba(0,0,0,.3), 0 0 0 3px rgba(255,255,255,.55); }
}

@media (max-width: 360px) {
  .site-header { grid-template-columns: 77px 1fr 77px; }
  .header-icon { width: 36px; }
  .wordmark { width: 142px; }
  .category-nav { gap: 5px; padding-inline: 9px; }
  .category-nav a { padding-inline: 10px; }
  .product-copy h3 { font-size: 15px; }
  .dialog-content { padding-inline: 10px; }
  .dialog-product { grid-template-columns: 112px 1fr; gap: 10px; }
  .dialog-product-copy h2 { font-size: 15px; }
  .trust-row { padding-inline: 5px; }
  .trust-row div { padding-inline: 4px; }
  .trust-row strong { font-size: 9px; }
  .trust-row small { font-size: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .reveal-ready [data-reveal] { opacity: 1; transform: none; }
}
