:root {
  --orange: #ff4d00;
  --orange-hot: #ff6a00;
  --black: #080808;
  --panel: #111111;
  --panel-2: #181818;
  --paper: #f1efe9;
  --white: #fffdf8;
  --ink: #121212;
  --muted: #8f8b84;
  --line: rgba(255, 255, 255, .13);
  --radius: 3px;
  --noise: 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='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E");
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; color: var(--white); background: var(--black); font-family: "Manrope", Arial, sans-serif; -webkit-font-smoothing: antialiased; }
body::after { content: ""; position: fixed; z-index: 90; inset: 0; pointer-events: none; opacity: .5; background-image: var(--noise); background-size: 180px 180px; mix-blend-mode: soft-light; }
body.modal-open { overflow: hidden; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
button { color: inherit; }
.svg-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

.site-header { position: absolute; z-index: 20; inset: 0 0 auto; height: 104px; padding: 0 clamp(20px, 4.8vw, 76px); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; border-bottom: 1px solid var(--line); }
.brand { display: inline-flex; align-items: center; gap: 12px; width: max-content; }
.brand-symbol { position: relative; width: 31px; height: 31px; display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 5px; background: var(--orange); transform: rotate(45deg); }
.brand-symbol i { display: block; background: var(--black); }
.brand-symbol i:last-child { align-self: end; height: 50%; }
.brand-name { font-family: "Unbounded", sans-serif; font-size: 14px; font-weight: 700; line-height: .9; letter-spacing: -.06em; }
.brand-city { margin-left: 5px; padding-left: 14px; color: #777; border-left: 1px solid #383838; font-size: 8px; font-weight: 800; letter-spacing: .17em; }
.main-nav { display: flex; align-items: center; gap: 30px; }
.main-nav a { position: relative; color: #b2b2ae; font-size: 11px; font-weight: 700; }
.main-nav a::before { content: ""; position: absolute; left: 0; bottom: -10px; width: 100%; height: 2px; background: var(--orange); transform: scaleX(0); transform-origin: left; transition: transform .2s; }
.main-nav a:hover { color: white; }
.main-nav a:hover::before { transform: scaleX(1); }
.header-actions { justify-self: end; display: flex; align-items: center; gap: 13px; }
.header-contact { display: flex; align-items: center; gap: 10px; }
.header-phone { color: #ccc; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; }
.header-phone:hover { color: var(--orange); }
.header-socials { display: flex; gap: 5px; }
.header-socials a { width: 30px; height: 30px; display: grid; place-items: center; color: #999; border: 1px solid #333; transition: .2s; }
.header-socials a:hover { color: #0b0b0b; border-color: var(--orange); background: var(--orange); }
.header-socials svg { width: 14px; height: 14px; }
.lang-switcher { display: flex; gap: 2px; padding: 2px; border: 1px solid #333; }
.lang-switcher button { min-width: 33px; padding: 6px 5px; color: #6f6f6f; border: 0; background: transparent; font-size: 8px; font-weight: 800; cursor: pointer; }
.lang-switcher button.active { color: #090909; background: var(--orange); }
.cart-button, .favorite-nav-button { position: relative; width: 40px; height: 40px; display: grid; place-items: center; padding: 0; color: #ddd; border: 1px solid #353535; background: transparent; cursor: pointer; transition: .2s; }
.cart-button:hover, .favorite-nav-button:hover { color: var(--orange); border-color: var(--orange); }
.favorite-nav-button.active { color: var(--orange); border-color: var(--orange); background: rgba(255, 77, 0, .1); }
.favorite-nav-button.active svg { fill: currentColor; }
.cart-button svg, .favorite-nav-button svg { width: 17px; }
.cart-count, .favorite-count { position: absolute; top: -6px; right: -6px; min-width: 18px; height: 18px; padding: 0 4px; display: grid; place-items: center; color: black; background: var(--orange); font-size: 9px; font-weight: 800; }
.menu-toggle { display: none; width: 38px; height: 38px; padding: 8px; border: 0; background: transparent; cursor: pointer; }
.menu-toggle span { display: block; height: 2px; margin: 6px 0; background: white; }

.hero { position: relative; min-height: 720px; height: 100svh; max-height: 980px; display: flex; align-items: center; overflow: hidden; background: var(--black); isolation: isolate; }
.hero::before { content: ""; position: absolute; z-index: -3; inset: 0; opacity: .27; background-image: linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px); background-size: 86px 86px; mask-image: linear-gradient(to right, black, transparent 72%); }
.hero::after { content: ""; position: absolute; z-index: -2; width: 54vw; height: 54vw; right: -13vw; top: 50%; border-radius: 50%; background: var(--orange); filter: blur(1px); transform: translateY(-50%); box-shadow: 0 0 150px rgba(255, 77, 0, .25); }
.hero-reel { position: absolute; z-index: 2; top: 104px; right: 0; width: 54px; height: calc(100% - 104px); display: flex; flex-direction: column; justify-content: space-around; align-items: center; color: rgba(255,255,255,.75); border-left: 1px solid rgba(255,255,255,.18); font-size: 8px; font-weight: 800; letter-spacing: .12em; }
.hero-reel span { writing-mode: vertical-rl; }
.hero-content { position: relative; z-index: 3; width: min(820px, 62vw); margin-left: clamp(22px, 8vw, 128px); padding-top: 85px; }
.hero-index { margin: 0 0 28px; color: var(--orange); font-size: 10px; font-weight: 800; letter-spacing: .2em; }
.hero h1 { margin: 0; font-family: "Unbounded", sans-serif; font-size: clamp(48px, 6.1vw, 100px); font-weight: 600; line-height: .98; letter-spacing: -.065em; text-transform: uppercase; }
.hero h1 em { color: var(--orange); font-style: normal; }
.hero-lead { max-width: 510px; margin: 28px 0 0; color: #a7a7a2; font-size: clamp(14px, 1.25vw, 18px); line-height: 1.65; }
.hero-actions { display: flex; align-items: center; gap: 10px; margin-top: 33px; }
.button { min-height: 52px; padding: 0 22px; display: inline-flex; align-items: center; justify-content: center; gap: 24px; border: 1px solid transparent; border-radius: 0; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .035em; cursor: pointer; transition: .2s ease; }
.button svg { width: 18px; transition: transform .2s; }
.button:hover svg { transform: translateX(4px); }
.button-primary { color: #090909; background: var(--orange); }
.button-primary:hover { color: white; background: var(--orange-hot); box-shadow: 8px 8px 0 rgba(255,255,255,.12); transform: translate(-3px, -3px); }
.button-ghost { color: white; border-color: #3c3c3c; background: transparent; }
.button-ghost:hover { border-color: var(--orange); color: var(--orange); }
.button-light { color: white; border-color: white; background: transparent; }
.button-light:hover { color: black; background: white; }
.button.full { width: 100%; }
.hero-facts { display: flex; gap: clamp(22px, 4vw, 54px); margin-top: 54px; }
.hero-facts div { display: flex; flex-direction: column; gap: 7px; }
.hero-facts strong { font-family: "Unbounded", sans-serif; font-size: 12px; }
.hero-facts span { color: #656565; font-size: 9px; }
.hero-object { position: absolute; z-index: 1; right: clamp(4%, 8vw, 130px); top: 52%; width: min(39vw, 590px); aspect-ratio: 1; border-radius: 50%; transform: translateY(-50%); }
.lens-ring { position: absolute; inset: 0; border: clamp(20px, 3.2vw, 52px) solid #131313; border-radius: 50%; box-shadow: inset 0 0 0 1px #363636, 0 35px 90px rgba(0,0,0,.55); }
.lens-ring::before { content: ""; position: absolute; inset: 7%; border: 1px dashed rgba(255,255,255,.24); border-radius: 50%; }
.lens-ring-b { inset: 17%; border-width: clamp(15px, 2.2vw, 35px); border-color: #202020; }
.lens-core { position: absolute; inset: 34%; display: grid; place-items: center; border: 2px solid #080808; border-radius: 50%; color: #111; background: #ffb300; box-shadow: 0 0 50px rgba(255, 179, 0, .42); text-align: center; }
.lens-core span { font-family: "Unbounded", sans-serif; font-size: clamp(12px, 1.4vw, 21px); font-weight: 700; line-height: .9; letter-spacing: -.07em; }
.hero-object > p { position: absolute; right: 2%; top: 4%; margin: 0; color: white; font-size: 8px; font-weight: 800; letter-spacing: .17em; transform: rotate(45deg); }
.scroll-cue { position: absolute; z-index: 4; left: clamp(22px, 3vw, 48px); bottom: 55px; display: flex; align-items: center; gap: 14px; color: #747474; font-size: 8px; text-transform: uppercase; letter-spacing: .15em; transform: rotate(-90deg); transform-origin: left center; }
.scroll-cue i { width: 38px; height: 1px; background: var(--orange); }

.section { padding: 118px clamp(22px, 6.5vw, 104px); }
.section-narrow { margin: 0 clamp(22px, 6.5vw, 104px); }
.section-heading { display: grid; grid-template-columns: 1.2fr .8fr; align-items: end; gap: 45px; margin-bottom: 55px; }
.section-heading.compact { grid-template-columns: 1fr; margin-bottom: 26px; }
.kicker { margin: 0 0 20px; color: var(--orange); font-size: 9px; font-weight: 800; letter-spacing: .2em; }
.section h2, .kit-banner h2, .modal h2 { margin: 0; font-family: "Unbounded", sans-serif; font-size: clamp(36px, 4.2vw, 66px); font-weight: 600; line-height: 1.02; letter-spacing: -.055em; text-transform: uppercase; }
.section-heading > p { max-width: 510px; justify-self: end; margin: 0; color: #85857f; font-size: 13px; line-height: 1.75; }

.catalog { color: var(--white); background: #0c0c0c; border-top: 1px solid #242424; }
.catalog-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-bottom: 32px; }
.search-field { width: min(400px, 35vw); min-height: 49px; display: flex; align-items: center; gap: 12px; padding: 0 14px; color: white; border: 1px solid #333; background: #141414; }
.search-field:focus-within { border-color: var(--orange); }
.search-field svg { width: 17px; color: #777; }
.search-field input { width: 100%; color: white; border: 0; outline: 0; background: transparent; font-size: 12px; }
.search-field input::placeholder { color: #676767; }
.search-field kbd { padding: 3px 6px; color: #777; border: 1px solid #343434; font-size: 9px; white-space: nowrap; }
.category-tabs { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.category-tabs button { padding: 9px 13px; color: #8e8e89; border: 1px solid #303030; background: #111; font-size: 9px; font-weight: 800; text-transform: uppercase; cursor: pointer; transition: .2s; }
.category-tabs button.active, .category-tabs button:hover { color: black; border-color: var(--orange); background: var(--orange); }
.product-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; }
.product-card { min-width: 0; overflow: hidden; background: #151515; outline: 1px solid #282828; transition: transform .25s, box-shadow .25s; }
.product-card:hover { z-index: 2; transform: translateY(-5px); box-shadow: 0 25px 50px rgba(0,0,0,.55); }
.product-card.hidden { display: none; }
.product-visual { position: relative; height: 290px; display: grid; place-items: center; overflow: hidden; background: #e9e7df; }
.product-visual::before { content: ""; position: absolute; width: 58%; aspect-ratio: 1; border: 1px solid rgba(255,77,0,.38); border-radius: 50%; box-shadow: 0 0 0 28px rgba(255,77,0,.05), 0 0 0 56px rgba(255,77,0,.025); }
.product-visual > svg { position: relative; z-index: 1; width: 140px; height: 140px; color: #1d1d1d; stroke-width: .8; transition: transform .35s; }
.product-card:hover .product-visual > svg { transform: rotate(-3deg) scale(1.05); }
.product-visual.with-photo { background-image: linear-gradient(135deg, #f7f5ef 0 50%, #eeece5 50%); }
.product-visual.with-photo::before { display: none; }
.favorite-button { position: absolute; z-index: 7; top: 14px; left: 14px; width: 36px; height: 36px; display: grid; place-items: center; padding: 0; color: #171717; border: 1px solid rgba(0,0,0,.18); background: rgba(255,255,255,.82); cursor: pointer; transition: .2s; }
.favorite-button svg { width: 17px; height: 17px; }
.favorite-button.active { color: white; border-color: var(--orange); background: var(--orange); }
.favorite-button.active svg { fill: currentColor; }
.product-carousel { position: absolute; inset: 0; }
.product-photo { position: absolute; z-index: 2; inset: 0; width: 100%; height: 100%; object-fit: contain; padding: 26px; opacity: 0; transform: scale(var(--photo-scale, 1)); transition: opacity .24s; }
.product-photo.active { opacity: 1; }
.carousel-arrow { position: absolute; z-index: 5; top: 50%; width: 32px; height: 32px; display: grid; place-items: center; padding: 0 0 3px; color: #111; border: 1px solid #ccc; background: rgba(255,255,255,.9); font-size: 22px; cursor: pointer; transform: translateY(-50%); transition: .2s; }
.carousel-arrow:hover { color: white; border-color: var(--orange); background: var(--orange); }
.carousel-prev { left: 10px; }
.carousel-next { right: 10px; }
.carousel-dots { position: absolute; z-index: 5; left: 50%; bottom: 12px; display: flex; gap: 5px; transform: translateX(-50%); }
.carousel-dot { width: 6px; height: 6px; padding: 0; border: 0; background: #c0beb8; cursor: pointer; }
.carousel-dot.active { width: 19px; background: var(--orange); }
.stock-badge { position: absolute; z-index: 6; top: 14px; right: 14px; padding: 6px 8px; color: #393939; border: 1px solid rgba(0,0,0,.17); background: rgba(255,255,255,.75); font-size: 8px; font-weight: 700; text-transform: uppercase; }
.product-info { min-height: 230px; display: flex; flex-direction: column; padding: 22px; border-top: 3px solid var(--orange); }
.product-type { margin: 0 0 7px; color: var(--orange); font-size: 8px; font-weight: 800; text-transform: uppercase; letter-spacing: .14em; }
.product-info h3 { margin: 0; color: #f6f4ef; font-family: "Unbounded", sans-serif; font-size: 14px; font-weight: 600; line-height: 1.35; letter-spacing: -.035em; }
.product-set { min-height: 34px; margin: 13px 0 0; color: #777771; font-size: 9px; line-height: 1.55; }
.product-set b { color: #aaa9a3; }
.product-set.placeholder { visibility: hidden; }
.product-bottom { display: flex; align-items: end; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 20px; }
.product-bottom p { margin: 0; color: #797974; font-size: 9px; white-space: nowrap; }
.product-bottom strong { color: white; font-family: "Unbounded", sans-serif; font-size: 13px; }
.add-button { display: flex; align-items: center; gap: 8px; padding: 7px 8px 7px 11px; color: #b7b7b2; border: 1px solid #3b3b3b; background: transparent; font-size: 9px; font-weight: 800; text-transform: uppercase; cursor: pointer; }
.add-button b { width: 20px; height: 20px; display: grid; place-items: center; color: #111; background: var(--orange); font-size: 14px; font-weight: 500; }
.add-button.added { color: #111; border-color: var(--orange); background: var(--orange); }
.add-button.added b { color: white; background: #111; }
.empty-state { display: none; padding: 50px; color: #888; text-align: center; border: 1px dashed #414141; }
.empty-state.show { display: block; }
.text-button { padding: 0; color: var(--orange); border: 0; border-bottom: 1px solid; background: transparent; font-weight: 700; cursor: pointer; }
.catalog-more { display: flex; justify-content: center; margin-top: 36px; }
.more-button { min-width: 220px; color: #aaa; border-color: #383838; background: #131313; }
.more-button:hover { color: black; border-color: var(--orange); background: var(--orange); }
.more-button b { color: #6f6f6c; font-size: 9px; }
.more-button[hidden] { display: none; }

.kit-banner { position: relative; min-height: 420px; display: grid; grid-template-columns: 1.35fr .65fr; overflow: hidden; color: #111; background: var(--orange); }
.kit-banner::before { content: "FP / BUILD A KIT / FP / BUILD A KIT"; position: absolute; left: -5%; bottom: -28px; color: rgba(0,0,0,.09); font-family: "Unbounded", sans-serif; font-size: clamp(48px, 8vw, 130px); font-weight: 700; white-space: nowrap; }
.kit-copy { position: relative; z-index: 1; align-self: center; padding: clamp(42px, 6vw, 82px); }
.kit-copy .kicker { color: #111; }
.kit-copy p:not(.kicker) { max-width: 560px; margin: 24px 0 30px; font-size: 13px; line-height: 1.75; }
.kit-route { position: relative; z-index: 1; display: flex; flex-direction: column; justify-content: center; padding: 45px clamp(30px, 5vw, 72px); border-left: 1px solid rgba(0,0,0,.3); }
.kit-route > div { display: grid; grid-template-columns: 28px 1fr auto; align-items: baseline; gap: 18px; padding: 25px 0; border-bottom: 1px solid rgba(0,0,0,.3); }
.kit-route > div:last-child { border-bottom: 0; }
.kit-route span { font-size: 9px; font-weight: 800; }
.kit-route strong { font-family: "Unbounded", sans-serif; font-size: clamp(19px, 2.2vw, 33px); letter-spacing: -.055em; }
.kit-route i { font-style: normal; }

.how { color: #151515; background: var(--paper); }
.how .kicker { color: var(--orange); }
.steps { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid #aaa69d; }
.steps article { position: relative; min-height: 275px; padding: 25px 28px 20px 0; border-right: 1px solid #aaa69d; }
.steps article:not(:first-child) { padding-left: 28px; }
.steps article:last-child { border-right: 0; }
.steps span { color: var(--orange); font-family: "Unbounded", sans-serif; font-size: 10px; font-weight: 700; }
.steps h3 { margin: 76px 0 14px; font-family: "Unbounded", sans-serif; font-size: 15px; letter-spacing: -.03em; text-transform: uppercase; }
.steps p { max-width: 245px; margin: 0; color: #6e6b65; font-size: 11px; line-height: 1.7; }

.terms { padding-top: 0; color: #111; background: var(--paper); }
.terms-card { display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; color: white; background: #101010; }
.terms-intro { position: relative; padding: clamp(50px, 6vw, 90px); background: #111; }
.terms-intro::after { content: ""; position: absolute; right: -8%; bottom: -25%; width: 55%; aspect-ratio: 1; border: 48px solid var(--orange); border-radius: 50%; opacity: .8; }
.terms-intro > * { position: relative; z-index: 1; }
.terms-intro > p:last-child { max-width: 450px; margin: 28px 0 0; color: #858581; font-size: 12px; line-height: 1.7; }
.terms-list { padding: 42px clamp(34px, 5vw, 70px); }
.terms-list > div { display: grid; grid-template-columns: 35px 1fr; gap: 18px; padding: 24px 0; border-bottom: 1px solid #303030; }
.terms-list > div:last-child { border-bottom: 0; }
.terms-list > div > svg { width: 20px; height: 20px; color: var(--orange); }
.terms-list span { display: flex; flex-direction: column; gap: 7px; }
.terms-list strong { font-family: "Unbounded", sans-serif; font-size: 11px; text-transform: uppercase; }
.terms-list small { max-width: 400px; color: #777; font-size: 10px; line-height: 1.6; }

.faq { padding-top: 0; color: #111; background: var(--paper); }
.faq-list { border-top: 1px solid #aaa69d; }
.faq details { border-bottom: 1px solid #aaa69d; }
.faq summary { padding: 25px 0; display: flex; justify-content: space-between; align-items: center; cursor: pointer; list-style: none; font-family: "Unbounded", sans-serif; font-size: 13px; font-weight: 600; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary svg { color: var(--orange); transition: transform .2s; }
.faq details[open] summary svg { transform: rotate(180deg); }
.faq details p { max-width: 720px; margin: -3px 0 26px; color: #6d6a65; font-size: 12px; line-height: 1.7; }

.contact { position: relative; display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 60px; overflow: hidden; background-color: #0a0a0a; background-image: var(--noise); background-blend-mode: soft-light; }
.contact::after { content: ""; position: absolute; right: -8%; top: -70%; width: 48vw; aspect-ratio: 1; border: 70px solid var(--orange); border-radius: 50%; opacity: .24; }
.contact > * { position: relative; z-index: 1; }
.contact-copy > p:last-child { max-width: 500px; margin: 28px 0 0; color: #7f7f7a; font-size: 13px; line-height: 1.7; }
.contact-action { justify-self: end; display: flex; flex-direction: column; align-items: flex-end; gap: 24px; }
.contact-details { display: flex; flex-direction: column; align-items: flex-end; gap: 9px; }
.contact-details p { display: flex; align-items: center; gap: 8px; margin: 4px 0 0; color: #777; font-size: 10px; }
.contact-details p svg { width: 14px; }
.contact-link { font-family: "Unbounded", sans-serif; font-size: 15px; }
.contact-link:hover { color: var(--orange); }
.social-links { display: flex; gap: 7px; margin: 3px 0; }
.social-links a { width: 40px; height: 40px; display: grid; place-items: center; color: white; border: 1px solid #373737; transition: .2s; }
.social-links a:hover { color: black; border-color: var(--orange); background: var(--orange); transform: translateY(-2px); }
.social-links svg { width: 18px; height: 18px; }

footer { padding: 52px clamp(22px, 6.5vw, 104px); display: grid; grid-template-columns: 1fr auto; gap: 48px; color: #777; background: #070707; border-top: 1px solid #252525; }
.footer-logo { display: inline-block; color: white; font-family: "Unbounded", sans-serif; font-size: 24px; font-weight: 700; line-height: .86; letter-spacing: -.07em; }
.footer-brand p { margin: 15px 0 0; font-size: 10px; }
.footer-nav { display: flex; gap: 24px; align-items: flex-start; color: #aaa; font-size: 10px; }
.footer-nav a:hover { color: var(--orange); }
.footer-meta { grid-column: 1 / -1; display: flex; justify-content: space-between; padding-top: 26px; border-top: 1px solid #242424; font-size: 8px; text-transform: uppercase; letter-spacing: .12em; }

.modal { position: fixed; z-index: 100; inset: 0; display: grid; visibility: hidden; opacity: 0; transition: .2s; }
.modal.open { visibility: visible; opacity: 1; }
.modal-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.82); backdrop-filter: blur(5px); }
.modal-panel { position: relative; justify-self: end; width: min(620px, 100%); height: 100%; padding: clamp(35px, 5vw, 72px); overflow-y: auto; color: #111; background: var(--paper); border-left: 6px solid var(--orange); transform: translateX(100%); transition: transform .3s ease; }
.modal.open .modal-panel { transform: translateX(0); }
.modal-close { position: absolute; right: 26px; top: 24px; width: 38px; height: 38px; display: grid; place-items: center; color: #111; border: 1px solid #aaa69e; background: transparent; font-size: 23px; cursor: pointer; }
.modal-close:hover { color: white; border-color: var(--orange); background: var(--orange); }
.modal h2 { font-size: clamp(34px, 3.7vw, 55px); }
.modal-lead { margin: 19px 0 27px; color: #6e6b65; font-size: 12px; line-height: 1.7; }
.booking-selection { display: none; gap: 10px; padding: 8px 0 12px; }
.booking-selection.show { display: grid; }
.booking-item { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: end; gap: 14px 20px; padding: 18px; border: 1px solid #ccc8bf; }
.booking-item-copy { min-width: 0; }
.booking-item-copy strong { display: block; font-size: 12px; line-height: 1.4; }
.booking-item-copy small { display: block; margin-top: 5px; color: #777; font-size: 9px; }
.booking-quantity, .booking-line-total { display: grid; gap: 7px; }
.booking-quantity > span, .booking-line-total > span { color: #777; font-size: 8px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.booking-item-controls { width: max-content; display: grid; grid-template-columns: 32px 38px 32px; align-items: center; justify-self: start; border: 1px solid #aaa; }
.booking-item-controls button { width: 32px; height: 32px; padding: 0; color: #111; border: 0; background: transparent; cursor: pointer; }
.booking-item-controls button:hover:not(:disabled) { color: white; border-color: var(--orange); background: var(--orange); }
.booking-item-controls button:disabled { opacity: .28; cursor: not-allowed; }
.booking-item-controls b { min-width: 38px; text-align: center; font-size: 11px; }
.booking-line-total { min-width: 105px; }
.booking-line-total strong { font-family: "Unbounded", sans-serif; font-size: 12px; white-space: nowrap; }
.booking-remove { grid-column: 1 / -1; width: max-content; padding: 0; color: var(--orange); border: 0; border-bottom: 1px solid; background: transparent; font-size: 9px; cursor: pointer; }
.booking-total { display: none; align-items: baseline; justify-content: space-between; margin: 0 0 24px; padding: 16px 0; border-bottom: 2px solid #111; }
.booking-total.show { display: flex; }
.booking-total span { color: #666; font-size: 10px; font-weight: 700; }
.booking-total strong { font-family: "Unbounded", sans-serif; font-size: 19px; }
#booking-form { display: grid; gap: 18px; }
#booking-form label { display: grid; gap: 7px; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
#booking-form input, #booking-form textarea { width: 100%; padding: 13px 0; color: #111; border: 0; border-bottom: 1px solid #aaa69e; outline: none; background: transparent; border-radius: 0; }
#booking-form input:focus, #booking-form textarea:focus { border-color: var(--orange); }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.form-disclaimer { margin: -7px 0 0; color: #8f8b84; font-size: 8px; line-height: 1.5; text-align: center; }
.hp-field { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.form-success { display: none; padding: 58px 0; text-align: center; }
.form-success.show { display: block; }
.form-success > span { width: 58px; height: 58px; display: grid; place-items: center; margin: 0 auto 24px; color: white; background: var(--orange); }
.form-success h3 { margin: 0 0 12px; font-family: "Unbounded", sans-serif; font-size: 23px; text-transform: uppercase; }
.form-success p { color: #777; font-size: 11px; line-height: 1.6; }
.form-success .button-ghost { margin-top: 18px; color: #111; border-color: #aaa; }

@media (max-width: 1120px) {
  .site-header { grid-template-columns: 1fr auto; }
  .main-nav { display: none; position: absolute; top: 104px; left: 0; width: 100%; padding: 26px; flex-direction: column; align-items: flex-start; background: #0a0a0a; border-bottom: 1px solid #303030; }
  .site-header.menu-open .main-nav { display: flex; }
  .menu-toggle { display: block; }
  .product-grid { grid-template-columns: repeat(2, 1fr); }
  .catalog-toolbar { align-items: flex-start; flex-direction: column; }
  .search-field { width: 100%; }
  .category-tabs { justify-content: flex-start; }
  .steps { grid-template-columns: repeat(2, 1fr); }
  .steps article:nth-child(2) { border-right: 0; }
  .steps article:nth-child(n+3) { border-top: 1px solid #aaa69d; }
  .steps article:nth-child(3) { padding-left: 0; }
  .footer-nav { flex-wrap: wrap; justify-content: flex-end; max-width: 480px; }
}

@media (max-width: 740px) {
  .site-header { height: 78px; padding-inline: 17px; }
  .brand-symbol { width: 27px; height: 27px; }
  .brand-name { font-size: 12px; }
  .brand-city, .header-contact, .lang-switcher { display: none; }
  .header-actions { gap: 7px; }
  .cart-button, .favorite-nav-button { width: 35px; height: 35px; }
  .main-nav { top: 78px; }
  .hero { min-height: 690px; height: 100svh; max-height: 820px; align-items: flex-end; }
  .hero::before { background-size: 55px 55px; }
  .hero::after { width: 86vw; height: 86vw; right: -44vw; top: 28%; }
  .hero-reel { top: 78px; width: 34px; height: calc(100% - 78px); }
  .hero-content { width: 100%; margin: 0; padding: 110px 50px 52px 18px; }
  .hero-index { margin-bottom: 18px; }
  .hero h1 { font-size: clamp(37px, 11vw, 55px); line-height: 1.04; }
  .hero-lead { max-width: 85%; margin-top: 20px; font-size: 13px; }
  .hero-actions { align-items: stretch; flex-direction: column; max-width: 100%; }
  .hero-actions .button { width: 100%; }
  .hero-facts { gap: 12px; margin-top: 35px; }
  .hero-facts div { flex: 1; }
  .hero-facts strong { font-size: 9px; }
  .hero-facts span { font-size: 8px; line-height: 1.35; }
  .hero-object { right: -15%; top: 25%; width: 70vw; opacity: .35; }
  .scroll-cue { display: none; }
  .section { padding: 74px 18px; }
  .section-narrow { margin-inline: 18px; }
  .section-heading { grid-template-columns: 1fr; gap: 22px; margin-bottom: 34px; }
  .section-heading > p { justify-self: start; }
  .section h2, .kit-banner h2 { font-size: 33px; overflow-wrap: anywhere; }
  .category-tabs { flex-wrap: nowrap; width: calc(100vw - 36px); padding-bottom: 7px; overflow-x: auto; }
  .category-tabs button { flex: 0 0 auto; }
  .product-grid { grid-template-columns: 1fr; gap: 8px; }
  .product-visual { height: 265px; }
  .product-info { min-height: 215px; padding: 19px; }
  .product-bottom { align-items: center; }
  .kit-banner { grid-template-columns: 1fr; }
  .kit-copy { padding: 46px 24px; }
  .kit-route { padding: 8px 24px 30px; border-top: 1px solid rgba(0,0,0,.3); border-left: 0; }
  .steps { grid-template-columns: 1fr; }
  .steps article, .steps article:not(:first-child), .steps article:nth-child(3) { min-height: 195px; padding: 24px 0; border-right: 0; border-top: 1px solid #aaa69d; }
  .steps article:first-child { border-top: 0; }
  .steps h3 { margin-top: 37px; }
  .terms-card { grid-template-columns: 1fr; }
  .terms-intro { padding: 46px 24px; }
  .terms-list { padding: 15px 24px; }
  .contact { grid-template-columns: 1fr; }
  .contact-action { justify-self: start; align-items: flex-start; }
  .contact-details { align-items: flex-start; }
  footer { grid-template-columns: 1fr; }
  .footer-nav { flex-direction: column; align-items: flex-start; gap: 13px; }
  .footer-meta { flex-direction: column; gap: 11px; }
  .form-row { grid-template-columns: 1fr; }
  .modal-panel { padding: 62px 20px 34px; border-left-width: 4px; }
  .modal h2 { padding-right: 35px; font-size: 32px; }
  .modal-close { right: 15px; top: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* FILM PLACE — simplified black edition */
.brand { gap: 10px; }
.brand-logo { width: 112px; height: auto; display: block; object-fit: contain; }
.brand-symbol, .brand-name { display: none; }

.hero { min-height: 500px; height: 64svh; max-height: 620px; justify-content: center; background: #1b1b1b; }
.hero::before, .hero::after { display: none; }
.hero-content { width: min(780px, calc(100vw - 44px)); margin: 0 auto; padding: 104px 0 34px; display: flex; flex-direction: column; align-items: center; text-align: center; }
.hero-logo { width: min(790px, 88vw); height: auto; display: block; }
.hero-subtitle { margin: 20px 0 0; color: #f3f2ed; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .24em; }
.hero-actions { justify-content: center; width: 100%; margin-top: 30px; }
.hero-actions .button { min-width: 220px; border-width: 2px; }

.section-heading > p, .catalog .section-heading > p { color: #bebdb8; }
.how, .terms, .faq { color: var(--white); background: #0a0a0a; }
.steps, .faq-list { border-color: #373737; }
.steps article, .faq details { border-color: #373737; }
.steps h3, .faq summary { color: #fff; }
.steps p, .faq details p { color: #aaa9a4; }
.terms-card { outline: 1px solid #2f2f2f; }
.product-set { color: #aaa9a4; }
.product-set b { color: #e4e2dc; }
.product-visual, .product-visual.with-photo, .catalog .product-visual:not(.with-photo) { height: 290px; background: #fff; background-image: none; }
.product-visual::before, .product-visual.with-photo::before, .catalog .product-visual:not(.with-photo)::before { display: none; }
.product-visual > svg, .catalog .product-visual:not(.with-photo) svg { width: 128px; height: 128px; color: #171717; }
.product-visual .favorite-button svg, .catalog .product-visual:not(.with-photo) .favorite-button svg { width: 17px; height: 17px; color: inherit; }
.product-photo { width: 100%; height: 100%; padding: 32px; object-fit: contain; object-position: center; }
.contact-link.secondary { color: #aaa9a4; font-family: "Manrope", sans-serif; font-size: 12px; }
.footer-logo { width: 230px; height: auto; margin: 0; object-fit: contain; }
footer { background: #1b1b1b; }

.modal-panel { color: #f8f7f2; background: #101010; }
.modal-close { color: white; border-color: #444; }
.modal-lead, .booking-item-copy small, .form-success p { color: #aaa9a4; }
.booking-item, .booking-total { border-color: #3a3a3a; }
.booking-item-controls button { color: white; border-color: #555; }
.booking-item-controls { border-color: #555; }
.booking-quantity > span, .booking-line-total > span { color: #8c8b86; }
#booking-form input, #booking-form textarea { color: white; border-color: #555; }
.form-success .button-ghost { color: white; border-color: #555; }

@media (max-width: 740px) {
  .booking-item { grid-template-columns: 1fr auto; }
  .booking-item-copy { grid-column: 1 / -1; }
  .booking-line-total { text-align: right; }
  .brand-logo { width: 92px; height: auto; }
  .hero { min-height: 500px; height: 68svh; max-height: 560px; align-items: center; }
  .hero-content { width: calc(100vw - 36px); padding: 94px 0 28px; }
  .hero-logo { width: min(640px, 92vw); margin-block: 0; }
  .hero-subtitle { margin-top: 16px; font-size: 9px; letter-spacing: .18em; }
  .hero-actions { max-width: 390px; margin-top: 28px; }
  .hero-actions .button { min-width: 0; }
  .product-visual, .product-visual.with-photo, .catalog .product-visual:not(.with-photo) { height: 265px; }
  .product-photo { padding: 28px; }
  .steps article, .steps article:not(:first-child), .steps article:nth-child(3) { border-color: #373737; }
}
