:root {
  --paper: #f6f6f6; --paper-bright: #ffffff; --ink: #202020; --muted: #6b6b6b;
  --charcoal: #333333; --charcoal-dark: #242424; --night: #1c1c1c; --gold: #b89a62;
  --gold-bright: #d2b77d; --white: #fafafa; --line: rgba(32,32,32,.17);
  --line-light: rgba(255,255,255,.16); --display: "Forum", serif; --sans: "Onest", sans-serif;
  --page: min(calc(100% - clamp(36px,5vw,120px)), 2200px); --ease: cubic-bezier(.2,.72,.2,1);
  --header-height: 146px; --header-compact: 108px; --header-current: var(--header-height);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-compact) + 20px); }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); font-size: 14px; font-weight: 300; line-height: 1.6; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
img { display: block; max-width: 100%; }
.page { width: var(--page); margin-inline: auto; }
.skip-link { position: fixed; z-index: 1000; left: 18px; top: -80px; padding: 12px 16px; color: var(--night); background: var(--white); transition: top .2s; }
.skip-link:focus { top: 18px; }
.display { margin: 0; font-family: var(--display); font-size: clamp(58px,6.4vw,124px); font-weight: 400; line-height: .88; letter-spacing: -.035em; }
.display em { color: var(--charcoal); font-style: normal; }
.micro { margin: 0 0 28px; color: var(--gold-bright); font-size: 10px; font-weight: 500; letter-spacing: .19em; text-transform: uppercase; }
.micro--accent { color: var(--charcoal); }
.link-arrow { display: inline-flex; align-items: center; gap: 34px; width: fit-content; padding-bottom: 7px; border-bottom: 1px solid currentColor; font-size: 10px; font-weight: 500; letter-spacing: .13em; text-transform: uppercase; transition: color .3s, gap .3s; }
.link-arrow span { font-size: 16px; line-height: 1; }
.link-arrow:hover { gap: 42px; color: var(--charcoal); }
.link-arrow--light { color: var(--white); }
.link-arrow--light:hover { color: var(--gold-bright); }

.site-header { position: fixed; z-index: 100; top: 0; left: 0; width: 100%; height: 88px; color: var(--white); border-bottom: 1px solid rgba(255,255,255,.18); transition: height .45s var(--ease), color .35s, background .35s, backdrop-filter .35s; }
.site-header.is-scrolled { height: 70px; color: var(--ink); background: rgba(250,250,250,.92); backdrop-filter: blur(18px); border-bottom-color: var(--line); }
.header__inner { position: relative; display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; width: calc(100% - clamp(32px,4vw,86px)); height: 100%; max-width: 2200px; margin: 0 auto; }
.header__nav { display: flex; align-items: center; gap: clamp(18px,2.2vw,43px); font-size: 9px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.header__nav--right { justify-self: end; padding-right: 98px; }
.header__nav a { position: relative; }
.header__nav a::after { position: absolute; content: ""; left: 0; bottom: -6px; width: 100%; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .3s var(--ease); }
.header__nav a:hover::after { transform: scaleX(1); transform-origin: left; }
.logo { position: relative; z-index: 2; width: 116px; }
.logo img { width: 100%; filter: brightness(0) invert(1); transition: filter .35s; }
.site-header.is-scrolled .logo img { filter: brightness(0); }
.header__actions { position: absolute; right: 0; display: flex; gap: 4px; }
.icon-button { display: grid; place-items: center; width: 38px; height: 38px; padding: 0; color: inherit; border: 0; background: transparent; cursor: pointer; }
.icon-button svg { width: 17px; fill: none; stroke: currentColor; stroke-width: 1.25; }
.menu-toggle { display: none; color: inherit; }
.mobile-menu { position: fixed; z-index: 90; inset: 0; display: flex; flex-direction: column; justify-content: center; padding: 110px max(24px,7vw) 40px; color: var(--white); background: var(--charcoal-dark); visibility: hidden; opacity: 0; transition: opacity .45s var(--ease), visibility .45s; }
.mobile-menu.is-open { visibility: visible; opacity: 1; transition: opacity .45s var(--ease), visibility 0s; }
.mobile-menu__mark { position: absolute; right: -5vw; bottom: -20vw; color: rgba(255,255,255,.04); font-family: var(--display); font-size: 90vw; line-height: 1; }
.mobile-menu nav { position: relative; z-index: 1; display: flex; flex-direction: column; border-top: 1px solid var(--line-light); }
.mobile-menu nav a { display: grid; grid-template-columns: 42px 1fr; align-items: center; padding: 13px 0; border-bottom: 1px solid var(--line-light); font-family: var(--display); font-size: clamp(30px,7.8vw,50px); line-height: 1; }
.mobile-menu nav span { color: var(--gold-bright); font-family: var(--sans); font-size: 9px; }
.mobile-menu__contacts { position: relative; z-index: 1; display: flex; justify-content: space-between; gap: 18px; margin-top: 34px; color: rgba(255,255,255,.55); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }

.hero { position: relative; min-height: 100svh; overflow: hidden; color: var(--white); background: var(--night); }
.hero__media { position: absolute; inset: 0; background: url("assets/hero-wedding-couple.png") 48% 30% / cover no-repeat; transform: scale(1.025); animation: heroBreath 18s ease-in-out infinite alternate; }
.hero__gradient { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(12,12,12,.83) 0%,rgba(12,12,12,.58) 35%,rgba(12,12,12,.08) 68%), linear-gradient(0deg,rgba(12,12,12,.56) 0%,transparent 45%); }
.hero__grain { position: absolute; inset: 0; opacity: .13; pointer-events: none; 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='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E"); mix-blend-mode: soft-light; }
.hero__content { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; min-height: 100svh; padding: 150px 0 104px; }
.hero__kicker { margin-bottom: 32px; }
.hero h1 { max-width: 930px; margin: 0; font-family: var(--display); font-size: clamp(76px,9.1vw,176px); font-weight: 400; line-height: .78; letter-spacing: -.035em; }
.hero h1 em { color: var(--gold-bright); font-style: normal; }
.hero__footer { display: flex; align-items: flex-end; gap: clamp(45px,8vw,150px); width: min(100%,900px); margin: 56px 0 0 clamp(0px,9vw,180px); }
.hero__footer p { max-width: 440px; margin: 0; color: rgba(255,255,255,.64); font-size: 13px; }
.hero__index { position: absolute; z-index: 3; top: 50%; right: 28px; color: rgba(255,255,255,.45); font-size: 8px; letter-spacing: .16em; writing-mode: vertical-rl; }
.hero__scroll { position: absolute; z-index: 3; right: clamp(32px,4vw,84px); bottom: 34px; display: flex; align-items: center; gap: 14px; font-size: 8px; letter-spacing: .16em; text-transform: uppercase; }
.hero__scroll span { width: 48px; height: 1px; background: rgba(255,255,255,.5); overflow: hidden; }
.hero__scroll span::after { display: block; content: ""; width: 100%; height: 100%; background: var(--white); animation: scrollLine 2.2s var(--ease) infinite; }
.craft-line { overflow: hidden; padding: 20px 0 18px; color: var(--white); background: var(--charcoal); }
.craft-line__track { display: flex; align-items: center; gap: 28px; width: max-content; padding-left: 28px; font-family: var(--display); font-size: 24px; animation: ticker 25s linear infinite; }
.craft-line i { color: var(--gold-bright); font-family: var(--sans); font-size: 7px; font-style: normal; }

.promise { display: grid; grid-template-columns: .26fr 1.15fr .59fr; gap: clamp(28px,4.5vw,90px); padding-top: clamp(120px,11vw,220px); padding-bottom: clamp(110px,10vw,200px); }
.promise__number { color: var(--charcoal); font-size: 9px; letter-spacing: .13em; }
.promise__main .display { font-size: clamp(65px,6.8vw,132px); }
.promise__aside { align-self: end; max-width: 470px; padding-bottom: 8px; }
.promise__aside p { margin: 0 0 40px; color: var(--muted); }
.promise__facts { grid-column: 2 / 4; display: grid; grid-template-columns: repeat(4,1fr); margin-top: 96px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.fact { min-height: 176px; display: flex; flex-direction: column; justify-content: space-between; padding: 25px clamp(16px,2vw,38px) 30px 0; border-right: 1px solid var(--line); }
.fact + .fact { padding-left: clamp(16px,2vw,38px); }
.fact:last-child { border-right: 0; }
.fact strong { font-family: var(--display); font-size: clamp(55px,5vw,96px); font-weight: 400; line-height: 1; letter-spacing: -.04em; }
.fact span { color: var(--muted); font-size: 9px; letter-spacing: .1em; line-height: 1.55; text-transform: uppercase; }

.catalog { padding: clamp(110px,9vw,180px) 0; background: var(--paper-bright); }
.section-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 70px; margin-bottom: 58px; }
.section-head .micro { margin-bottom: 22px; }
.section-head .display { font-size: clamp(62px,6vw,115px); }
.section-head > p { max-width: 440px; margin: 0 0 8px; color: var(--muted); }
.category-grid { display: grid; grid-template-columns: 1.05fr .95fr .48fr .48fr; grid-template-rows: minmax(320px,36vw) minmax(280px,28vw); gap: 7px; width: calc(100% - clamp(14px,1.5vw,32px)); max-width: 2200px; margin: 0 auto; }
.category-card { position: relative; overflow: hidden; color: var(--white); background: var(--night); }
.category-card--large { grid-row: 1 / 3; }
.category-card--wide { grid-column: 2 / 4; }
.category-card--tall { grid-column: 4; grid-row: 1 / 3; }
.category-card img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.72) contrast(.97); transition: transform 1.1s var(--ease), filter .7s; }
.category-card__shade { position: absolute; inset: 0; background: linear-gradient(0deg,rgba(14,14,14,.72),transparent 55%); transition: background .5s; }
.category-card__count { position: absolute; top: 22px; left: 24px; font-size: 8px; letter-spacing: .16em; text-transform: uppercase; }
.category-card__name { position: absolute; left: 28px; bottom: 27px; max-width: 80%; font-family: var(--display); font-size: clamp(35px,4vw,74px); line-height: .88; }
.category-card--wide .category-card__name { font-size: clamp(38px,4vw,78px); }
.category-card--tall .category-card__name { font-size: clamp(33px,3.4vw,64px); }
.category-card--small .category-card__count { top: auto; bottom: 26px; font-family: var(--display); font-size: clamp(25px,2.5vw,44px); letter-spacing: 0; text-transform: none; }
.category-card__arrow { position: absolute; right: 24px; bottom: 23px; display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; font-size: 15px; transition: color .35s, background .35s, transform .35s; }
.category-card:hover img { transform: scale(1.035); filter: saturate(.9) contrast(1); }
.category-card:hover .category-card__shade { background: linear-gradient(0deg,rgba(36,36,36,.76),transparent 58%); }
.category-card:hover .category-card__arrow { color: var(--charcoal); background: var(--white); transform: rotate(45deg); }
.button-outline { display: flex; align-items: center; justify-content: space-between; width: min(calc(100% - 36px),430px); margin: 52px auto 0; padding: 16px 20px; border: 1px solid var(--ink); font-size: 9px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; transition: color .3s, background .3s; }
.button-outline:hover { color: var(--white); background: var(--charcoal); border-color: var(--charcoal); }
.button-outline span { font-size: 16px; }

.bespoke { position: relative; overflow: hidden; padding: clamp(82px,7vw,130px) 0 clamp(48px,4vw,72px); color: var(--white); background: #172015; }
.bespoke__media { position: absolute; inset: 0; background: url("assets/bespoke-garden-design-v2.png") center / cover no-repeat; transform: scale(1.01); }
.bespoke::after { position: absolute; z-index: 1; content: ""; inset: 0; background: linear-gradient(90deg,rgba(10,12,8,.82) 0%,rgba(10,12,8,.58) 39%,rgba(10,12,8,.12) 72%), linear-gradient(0deg,rgba(10,12,8,.74) 0%,rgba(10,12,8,.08) 58%,rgba(10,12,8,.22) 100%); }
.bespoke__content { position: relative; z-index: 2; }
.bespoke__intro { display: grid; grid-template-columns: .22fr 1.18fr .6fr; gap: clamp(28px,4.2vw,86px); align-items: end; }
.bespoke__seal { position: relative; display: grid; place-items: center; width: min(7vw,112px); aspect-ratio: 1; color: var(--gold-bright); }
.bespoke__seal span { font-family: var(--display); font-size: clamp(34px,3vw,56px); }
.bespoke__seal svg { position: absolute; inset: 0; width: 100%; fill: none; stroke: rgba(210,183,125,.44); stroke-width: .7; animation: sealTurn 22s linear infinite; }
.bespoke__title .display { font-size: clamp(52px,5vw,96px); }
.bespoke__title .display em { color: var(--gold-bright); }
.bespoke__lead { padding-bottom: 6px; }
.process { display: grid; grid-template-columns: repeat(5,1fr); margin-top: clamp(62px,6vw,105px); border-top: 1px solid rgba(255,255,255,.34); border-bottom: 1px solid rgba(255,255,255,.34); }
.process-card { display: flex; flex-direction: column; justify-content: space-between; min-height: clamp(118px,9vw,150px); padding: 18px clamp(16px,1.6vw,28px) 20px; border-right: 1px solid rgba(255,255,255,.22); transition: color .35s, background .35s; }
.process-card:last-child { border-right: 0; }
.process-card:hover, .process-card.is-active { color: var(--night); background: var(--gold-bright); }
.process-card__top { display: flex; justify-content: space-between; color: rgba(255,255,255,.46); font-size: 8px; letter-spacing: .12em; text-transform: uppercase; }
.process-card__top i { font-style: normal; }
.process-card:hover .process-card__top, .process-card.is-active .process-card__top { color: rgba(28,28,28,.55); }
.process-card h3 { margin: 24px 0 0; font-family: var(--display); font-size: clamp(24px,1.8vw,34px); font-weight: 400; line-height: 1; }

.selection { padding: clamp(120px,10vw,200px) 0; background: var(--paper-bright); }
.selection .section-head > .link-arrow { margin-bottom: 14px; }
.product-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 9px; }
.product-card__visual { position: relative; display: block; aspect-ratio: .82; overflow: hidden; background: #e6e6e6; }
.product-card__visual::before { position: absolute; z-index: 1; content: ""; inset: 16%; border: 1px solid rgba(51,51,51,.13); border-radius: 50%; }
.product-card__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; transition: opacity .7s var(--ease), transform 1s var(--ease), filter .7s; }
.product-card__image--main { z-index: 2; padding: 9%; mix-blend-mode: multiply; }
.product-card__image--hover { z-index: 3; object-fit: cover; opacity: 0; transform: scale(1.035); filter: saturate(.75); }
.product-card__label { position: absolute; z-index: 5; top: 18px; left: 18px; color: var(--charcoal); font-size: 7px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; }
.product-card__action { position: absolute; z-index: 5; left: 12px; right: 12px; bottom: 12px; display: flex; align-items: center; justify-content: space-between; padding: 12px 14px; color: var(--white); background: rgba(28,28,28,.9); font-size: 8px; font-weight: 500; letter-spacing: .13em; text-transform: uppercase; transform: translateY(calc(100% + 14px)); transition: transform .4s var(--ease), background .3s; }
.product-card__action i { color: var(--gold-bright); font-size: 15px; font-style: normal; }
.product-card__action:hover { background: var(--charcoal); }
.product-card__visual:hover .product-card__image--main { opacity: 0; transform: scale(.97); }
.product-card__visual:hover .product-card__image--hover { opacity: 1; transform: scale(1); filter: saturate(.9); }
.product-card__visual:hover .product-card__action { transform: translateY(0); }
.product-card__type { margin: 17px 0 6px; color: var(--muted); font-size: 7px; letter-spacing: .12em; text-transform: uppercase; }
.product-card h3 { margin: 0; font-family: var(--display); font-size: clamp(24px,2.1vw,38px); font-weight: 400; line-height: 1; }
.product-card > strong { display: block; margin-top: 9px; font-size: 10px; font-weight: 400; }

.house { position: relative; overflow: hidden; padding: clamp(130px,11vw,220px) 0 0; color: var(--white); background: #181818; }
.house::before { position: absolute; z-index: 0; content: ""; inset: 0; background: url("assets/house-atelier-background.png") 72% center / cover no-repeat; transform: scale(1.01); }
.house::after { position: absolute; z-index: 1; content: ""; inset: 0; background: linear-gradient(90deg,rgba(18,18,18,.7) 0%,rgba(18,18,18,.48) 58%,rgba(18,18,18,.24) 100%), linear-gradient(0deg,rgba(28,28,28,.72) 0%,rgba(28,28,28,.08) 52%,rgba(18,18,18,.28) 100%); }
.house__year { position: absolute; z-index: 2; top: -2vw; right: -2vw; color: transparent; font-family: var(--display); font-size: 36vw; line-height: .78; -webkit-text-stroke: 1px rgba(210,183,125,.12); }
.house__content { position: relative; z-index: 2; }
.house__grid { display: grid; grid-template-columns: 1.25fr .55fr; gap: clamp(50px,9vw,180px); align-items: end; }
.house__grid .display { font-size: clamp(64px,6.7vw,130px); }
.house__grid .display em { color: var(--gold-bright); }
.house__copy { max-width: 520px; padding-bottom: 8px; }
.house__copy p { margin: 0 0 18px; color: rgba(255,255,255,.55); }
.house__copy .link-arrow { margin-top: 25px; }
.house__service { position: relative; z-index: 2; margin-top: clamp(80px,7vw,140px); padding-bottom: clamp(44px,4vw,70px); scroll-margin-top: 88px; }
.service__list { display: grid; grid-template-columns: repeat(4,1fr); margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.service__list li { display: flex; align-items: center; min-height: clamp(82px,6.5vw,110px); padding: 16px clamp(18px,2.2vw,42px); border-right: 1px solid var(--line); font-family: var(--display); font-size: clamp(23px,1.85vw,35px); line-height: 1; transition: color .3s; }
.service__list li:first-child { padding-left: 0; }
.service__list li:last-child { padding-right: 0; border-right: 0; }
.service__list li:hover { color: var(--charcoal); }
.house__service .service__list { border-color: rgba(255,255,255,.34); }
.house__service .service__list li { color: var(--white); border-color: rgba(255,255,255,.22); }
.house__service .service__list li:hover { color: var(--gold-bright); }

.contacts { display: grid; grid-template-columns: 1fr 1fr; min-height: 800px; background: #dedede; }
.contacts__visual { position: relative; overflow: hidden; display: grid; place-items: center; background: var(--charcoal-dark); }
.contacts__visual > span { position: relative; z-index: 2; color: var(--gold-bright); font-family: var(--display); font-size: clamp(130px,19vw,360px); line-height: 1; }
.contacts__visual > p { position: absolute; left: 35px; bottom: 28px; margin: 0; color: rgba(255,255,255,.38); font-size: 8px; letter-spacing: .14em; line-height: 1.6; text-transform: uppercase; }
.contacts__map-label { position: absolute; z-index: 3; top: 34px; left: 35px; display: grid; grid-template-columns: 34px auto; grid-template-rows: auto auto; column-gap: 12px; align-items: center; color: var(--white); }
.contacts__map-label i { position: relative; grid-row: 1 / 3; width: 34px; height: 34px; border: 1px solid rgba(255,255,255,.54); border-radius: 50% 50% 50% 0; font-style: normal; transform: rotate(-45deg); }
.contacts__map-label i::after { position: absolute; content: ""; inset: 11px; background: var(--gold-bright); border-radius: 50%; }
.contacts__map-label span { font-size: 8px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; }
.contacts__map-label strong { color: var(--gold-bright); font-family: var(--display); font-size: 25px; font-weight: 400; line-height: 1; }
.contacts__orbit { position: absolute; border: 1px solid rgba(210,183,125,.28); border-radius: 50%; }
.contacts__orbit--1 { width: 62%; aspect-ratio: 1; }
.contacts__orbit--2 { width: 92%; aspect-ratio: 1; }
.contacts__content { display: flex; flex-direction: column; justify-content: center; padding: clamp(55px,8vw,150px); background: var(--paper-bright); }
.contacts__content .display { font-size: clamp(65px,6.4vw,125px); }
.contacts__details { display: grid; grid-template-columns: 1fr 1fr; gap: 34px 55px; margin-top: 58px; padding-top: 30px; border-top: 1px solid var(--line); }
.contacts__details span { display: block; margin-bottom: 9px; color: var(--charcoal); font-size: 8px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; }
.contacts__details p { margin: 0; font-size: 12px; }
.button-solid { display: flex; align-items: center; justify-content: space-between; width: min(100%,390px); margin-top: 48px; padding: 17px 19px; color: var(--white); background: var(--charcoal); font-size: 9px; font-weight: 500; letter-spacing: .13em; text-transform: uppercase; transition: background .3s; }
.button-solid:hover { background: var(--night); }
.button-solid span { font-size: 16px; }

.footer { padding: 90px 0 24px; color: var(--white); background: var(--night); }
.footer__top { display: grid; grid-template-columns: .6fr 1.4fr; gap: 80px; padding-bottom: 75px; }
.footer__brand img { width: 160px; filter: brightness(0) invert(1); }
.footer__brand p { margin: 18px 0 0; color: rgba(255,255,255,.4); font-family: var(--display); font-size: 21px; }
.footer__nav { display: grid; grid-template-columns: repeat(3,1fr); gap: 30px; }
.footer__nav div { display: flex; flex-direction: column; align-items: flex-start; gap: 9px; }
.footer__nav span { margin-bottom: 10px; color: var(--gold-bright); font-size: 8px; letter-spacing: .15em; text-transform: uppercase; }
.footer__nav a { color: rgba(255,255,255,.55); font-size: 10px; }
.footer__nav a:hover { color: var(--white); }
.footer__bottom { display: flex; justify-content: space-between; gap: 20px; padding-top: 22px; color: rgba(255,255,255,.32); border-top: 1px solid var(--line-light); font-size: 8px; letter-spacing: .1em; text-transform: uppercase; }

.reveal { opacity: 0; transform: translateY(24px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.reveal--1 { transition-delay: .1s; } .reveal--2 { transition-delay: .2s; } .reveal--3 { transition-delay: .3s; }
@keyframes heroBreath { to { transform: scale(1.07) translate3d(-.8%,.4%,0); } }
@keyframes scrollLine { 0% { transform: translateX(-110%); } 65%,100% { transform: translateX(110%); } }
@keyframes ticker { to { transform: translateX(-50%); } }
@keyframes sealTurn { to { transform: rotate(360deg); } }

@media (max-width: 1200px) {
  .header__nav a:nth-child(2) { display: none; }
  .promise { grid-template-columns: .18fr 1.15fr .67fr; }
  .category-grid { grid-template-columns: 1.05fr .95fr .5fr; grid-template-rows: minmax(310px,40vw) minmax(280px,30vw) minmax(310px,38vw); }
  .category-card--large { grid-row: 1 / 3; } .category-card--wide { grid-column: 2 / 4; } .category-card--tall { grid-column: 1 / 4; grid-row: 3; }
  .category-card--tall .category-card__name { font-size: clamp(45px,6vw,78px); }
  .product-grid { grid-template-columns: repeat(2,1fr); gap: 55px 10px; }
  .contacts { min-height: 710px; }
}

@media (max-width: 760px) {
  :root { --page: calc(100% - 36px); }
  body { font-size: 13px; }
  .display { font-size: clamp(52px,15vw,78px); }
  .micro { margin-bottom: 18px; }
  .site-header { height: 72px; } .site-header.is-scrolled { height: 62px; }
  .header__inner { grid-template-columns: 42px 1fr 76px; width: calc(100% - 28px); }
  .header__nav { display: none; }
  .logo { width: 98px; justify-self: center; }
  .menu-toggle { display: flex; flex-direction: column; justify-content: center; gap: 7px; width: 38px; height: 38px; padding: 7px; border: 0; background: transparent; }
  .menu-toggle span { display: block; width: 23px; height: 1px; background: currentColor; transition: transform .3s; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-4px) rotate(-45deg); }
  .header__actions { right: 0; } .icon-button { width: 34px; }
  .hero__media { background-position: 48% 30%; }
  .hero__gradient { background: linear-gradient(90deg,rgba(12,12,12,.78),rgba(12,12,12,.11)), linear-gradient(0deg,rgba(12,12,12,.82),transparent 62%); }
  .hero__content { justify-content: flex-end; padding: 118px 0 90px; }
  .hero h1 { font-size: clamp(67px,19vw,95px); line-height: .79; }
  .hero__footer { display: block; margin: 38px 0 0; }
  .hero__footer p { margin-bottom: 27px; }
  .hero__index { display: none; } .hero__scroll { right: 18px; bottom: 23px; }
  .craft-line { padding: 13px 0 12px; } .craft-line__track { font-size: 19px; }
  .promise { display: block; padding-top: 100px; padding-bottom: 100px; }
  .promise__number { margin-bottom: 42px; }
  .promise__aside { margin: 44px 0 0 16vw; }
  .promise__facts { margin-top: 70px; grid-template-columns: 1fr 1fr; }
  .fact { min-height: 145px; padding: 20px 15px 23px 0; }
  .fact:nth-child(2) { border-right: 0; } .fact:nth-child(-n+2) { border-bottom: 1px solid var(--line); } .fact:nth-child(3) { padding-left: 0; }
  .fact strong { font-size: 52px; }
  .catalog { padding: 100px 0; }
  .section-head { display: block; margin-bottom: 34px; }
  .section-head > p { margin-top: 24px; }
  .category-grid { display: block; width: calc(100% - 18px); }
  .category-card { display: block; min-height: 450px; margin-bottom: 7px; }
  .category-card--wide { min-height: 320px; }
  .category-card--small { display: inline-block; width: calc(50% - 5px); min-height: 275px; vertical-align: top; }
  .category-card--small + .category-card--small { margin-left: 6px; }
  .category-card--tall { min-height: 340px; }
  .category-card__name, .category-card--wide .category-card__name, .category-card--tall .category-card__name { left: 18px; bottom: 20px; font-size: 42px; }
  .category-card__count { left: 18px; }
  .category-card--small .category-card__count { left: 14px; bottom: 16px; font-size: 27px; }
  .category-card__arrow { right: 15px; bottom: 16px; width: 38px; height: 38px; }
  .bespoke { padding: 74px 0 44px; }
  .bespoke__media { background-position: 66% center; }
  .bespoke::after { background: linear-gradient(90deg,rgba(10,12,8,.86) 0%,rgba(10,12,8,.62) 72%,rgba(10,12,8,.22)), linear-gradient(0deg,rgba(10,12,8,.82) 0%,rgba(10,12,8,.12) 62%,rgba(10,12,8,.28)); }
  .bespoke__intro { display: block; }
  .bespoke__seal { width: 68px; margin-bottom: 34px; }
  .bespoke__title .display { font-size: clamp(44px,12vw,58px); }
  .bespoke__lead { margin: 28px 0 0; }
  .process { display: flex; width: calc(100% - 18px); margin-right: 0; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .process::-webkit-scrollbar { display: none; }
  .process-card { flex: 0 0 min(52vw,210px); min-height: 124px; scroll-snap-align: start; border-bottom: 0 !important; }
  .process-card h3 { font-size: 26px; }
  .selection { padding: 100px 0 110px; overflow: hidden; }
  .selection .section-head .link-arrow { margin-top: 26px; }
  .product-grid { display: flex; width: calc(100% - 18px); margin-right: 0; overflow-x: auto; gap: 9px; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .product-grid::-webkit-scrollbar { display: none; }
  .product-card { flex: 0 0 min(82vw,340px); scroll-snap-align: start; }
  .product-card__action { transform: translateY(0); }
  .house { padding-top: 100px; }
  .house__year { top: 5vw; font-size: 58vw; }
  .house__grid { display: block; }
  .house__copy { margin: 45px 0 0 16vw; }
  .house__service { margin-top: 72px; padding-bottom: 42px; }
  .service__list { grid-template-columns: 1fr 1fr; }
  .service__list li { min-height: 78px; padding: 14px 16px; font-size: 24px; }
  .service__list li:nth-child(2) { padding-right: 0; border-right: 0; }
  .service__list li:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .service__list li:nth-child(3) { padding-left: 0; }
  .house__service .service__list li:nth-child(-n+2) { border-bottom-color: rgba(255,255,255,.22); }
  .contacts { display: block; }
  .contacts__visual { min-height: 78vw; }
  .contacts__map-label { top: 22px; left: 18px; }
  .contacts__map-label strong { font-size: 22px; }
  .contacts__content { padding: 85px 18px 100px; }
  .contacts__details { gap: 27px 20px; }
  .footer { padding-top: 70px; }
  .footer__top { display: block; padding-bottom: 58px; }
  .footer__nav { margin-top: 52px; gap: 18px; }
  .footer__bottom { flex-direction: column; }
}

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

/* Concept 02 — restrained editorial system */
.link-arrow { gap: 16px; padding: 0; border: 0; }
.link-arrow span { display: grid; place-items: center; width: 35px; height: 35px; border: 1px solid currentColor; border-radius: 50%; font-size: 15px; transition: color .3s, background .3s, transform .3s var(--ease); }
.link-arrow:hover { gap: 16px; }
.link-arrow:hover span { color: var(--white); background: var(--charcoal); transform: translateX(4px); }
.link-arrow--light:hover span { color: var(--charcoal-dark); background: var(--gold-bright); }

.header__inner { grid-template-columns: auto minmax(520px,1fr) auto 80px; gap: clamp(22px,3vw,60px); }
.header__nav { justify-content: center; gap: clamp(20px,2.5vw,50px); }
.header__phone { font-size: 9px; font-weight: 500; letter-spacing: .1em; white-space: nowrap; }
.header__actions { position: static; justify-self: end; gap: 2px; }
.cart-button { position: relative; }
.cart-count { position: absolute; top: 1px; right: 0; display: grid; place-items: center; min-width: 14px; height: 14px; padding: 0 3px; color: var(--white); background: var(--charcoal); border-radius: 999px; font-size: 7px; font-weight: 500; line-height: 1; }
.site-header:not(.is-scrolled) .cart-count { color: var(--night); background: var(--gold-bright); }

.hero__media { background-position: 48% 30%; }
.hero__gradient { background: linear-gradient(0deg,rgba(7,12,7,.52) 0%,rgba(7,12,7,.08) 47%,rgba(7,12,7,.18) 100%), linear-gradient(90deg,rgba(7,12,7,.27) 0%,rgba(7,12,7,.22) 58%,rgba(7,12,7,.07) 100%); }
.hero__content.page { display: grid; grid-template-columns: minmax(0,1fr); grid-template-rows: auto 1fr auto; width: 100%; max-width: 2200px; min-height: 100svh; padding: 118px 0 34px; }
.hero__topline { display: flex; justify-content: center; color: rgba(255,255,255,.55); font-size: 8px; font-weight: 500; letter-spacing: .17em; text-transform: uppercase; }
.hero__statement { align-self: end; display: block; padding-bottom: clamp(30px,4vw,70px); }
.hero__edition { align-self: end; margin: 0 0 4px; color: var(--gold-bright); font-size: 9px; letter-spacing: .16em; text-transform: uppercase; }
.hero h1 { max-width: none; margin: 0; font-size: clamp(88px,10.4vw,200px); line-height: .72; text-align: center; }
.hero h1 span, .hero h1 em { display: block; }
.hero h1 em { margin-left: 0; color: var(--gold-bright); }
.hero__lower { display: grid; grid-template-columns: .42fr 1fr auto; gap: clamp(30px,5vw,100px); align-items: end; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.25); }
.hero__lower > p { grid-column: 2; max-width: 480px; margin: 0; color: rgba(255,255,255,.62); font-size: 11px; }
.hero__lower > .hero__edition { grid-column: 1; max-width: none; margin-bottom: 4px; color: var(--gold-bright); font-size: 9px; }
.hero__cta { display: flex; align-items: center; gap: 32px; padding: 15px 0 4px 22px; border-left: 1px solid rgba(255,255,255,.35); font-size: 9px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; }
.hero__cta span { font-size: 18px; transition: transform .3s var(--ease); }
.hero__cta:hover span { transform: translateX(6px); }
.hero__scroll { display: none; }

.opening { display: grid; grid-template-columns: .3fr 1.7fr; gap: clamp(45px,7vw,140px); padding-top: clamp(130px,11vw,220px); padding-bottom: clamp(130px,10vw,200px); }
.opening__mark { align-self: start; color: transparent; font-family: var(--display); font-size: clamp(170px,20vw,390px); line-height: .72; -webkit-text-stroke: 1px rgba(51,51,51,.3); }
.opening__body .display { max-width: 1450px; font-size: clamp(67px,7.1vw,138px); }
.opening__story { display: grid; grid-template-columns: 1fr auto; gap: clamp(35px,6vw,120px); align-items: end; max-width: 850px; margin: 64px 0 0 auto; }
.opening__story p { margin: 0; color: var(--muted); }
.principles { position: relative; display: flex; overflow: hidden; min-height: clamp(520px,44vw,744px); color: var(--white); background: #172015; }
.principles__media { position: absolute; inset: 0; background: url("assets/principles-garden-process.png") center 58% / cover no-repeat; transform: scale(1.01); }
.principles::after { position: absolute; z-index: 1; content: ""; inset: 0; background: linear-gradient(0deg,rgba(12,14,9,.78) 0%,rgba(12,14,9,.12) 58%,rgba(12,14,9,.3) 100%), linear-gradient(90deg,rgba(12,14,9,.42),rgba(12,14,9,.12) 65%,rgba(12,14,9,.22)); }
.principles__inner { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: space-between; padding-top: clamp(64px,5.6vw,108px); padding-bottom: clamp(44px,4vw,72px); }
.principles__head { display: grid; grid-template-columns: .55fr 1.45fr; gap: clamp(35px,7vw,140px); align-items: start; }
.principles__head .micro { color: rgba(255,255,255,.68); }
.principles__title { margin: 0; font-family: var(--display); font-size: clamp(58px,5.7vw,110px); font-weight: 400; line-height: .88; letter-spacing: -.035em; }
.principles__title em { color: var(--gold-bright); font-style: normal; }
.principles__grid { display: grid; grid-template-columns: repeat(3,1fr); margin-top: clamp(80px,8.8vw,152px); border-top: 1px solid rgba(255,255,255,.38); }
.principles__grid article { min-height: 148px; padding: 16px clamp(24px,3vw,56px) 18px 0; border-right: 1px solid rgba(255,255,255,.22); }
.principles__grid article + article { padding-left: clamp(24px,3vw,56px); }
.principles__grid article:last-child { border-right: 0; }
.principles__grid span { color: var(--gold-bright); font-size: 9px; letter-spacing: .15em; }
.principles__grid h3 { margin: 24px 0 9px; font-family: var(--display); font-size: clamp(29px,2.25vw,43px); font-weight: 400; line-height: 1; }
.principles__grid p { max-width: 360px; margin: 0; color: rgba(255,255,255,.66); font-size: 12px; line-height: 1.55; }

.catalog { padding: clamp(120px,10vw,200px) 0; }
.catalog__heading { display: grid; grid-template-columns: 1fr 1.35fr .65fr; gap: clamp(35px,6vw,120px); align-items: end; margin-bottom: clamp(60px,7vw,120px); }
.catalog__heading .micro { align-self: start; margin: 8px 0 0; }
.catalog__heading .display { font-size: clamp(60px,5.8vw,112px); }
.catalog__aside { max-width: 390px; padding-bottom: 7px; }
.catalog__aside > p { margin: 0; color: var(--muted); }
.catalog__aside .link-arrow { margin-top: 28px; }
.category-gallery { display: grid; grid-template-columns: repeat(5,1fr); gap: clamp(8px,1.3vw,26px); align-items: start; }
.category-item:nth-child(even) { margin-top: 0; }
.category-item figure { position: relative; aspect-ratio: .69; overflow: hidden; margin: 0; background: #f3f3f3; }
.category-item img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.88) contrast(.99); transition: transform 1s var(--ease), filter .6s; }
.category-item figure > span { position: absolute; top: 15px; left: 15px; display: grid; place-items: center; width: 30px; height: 30px; color: var(--charcoal); background: rgba(255,255,255,.68); border: 1px solid rgba(51,51,51,.46); border-radius: 50%; backdrop-filter: blur(5px); font-size: 7px; }
.category-item > div { display: flex; justify-content: space-between; gap: 15px; align-items: baseline; padding: 16px 0 0; border-top: 1px solid transparent; transition: border-color .35s; }
.category-item h3 { margin: 0; font-family: var(--display); font-size: clamp(24px,2vw,38px); font-weight: 400; line-height: 1; }
.category-item p { margin: 0; color: var(--muted); font-size: 7px; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
.category-item:hover img { transform: scale(1.035); filter: saturate(1) contrast(1); }
.category-item:hover > div { border-color: var(--charcoal); }

.objects { padding: clamp(130px,11vw,220px) 0; background: #f0f0f0; }
.objects__heading { display: grid; grid-template-columns: .45fr 1.1fr .55fr; gap: clamp(35px,6vw,120px); align-items: end; margin-bottom: clamp(70px,7vw,130px); }
.objects__heading .micro { align-self: start; margin-top: 8px; }
.objects__heading .display { font-size: clamp(65px,6.3vw,122px); }
.objects__heading > div > p { margin: 0 0 34px; color: var(--muted); }
.objects__layout { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(45px,7vw,135px); align-items: start; }
.piece__visual, .piece-row__visual { position: relative; display: block; overflow: hidden; background: var(--paper-bright); }
.piece--feature .piece__visual { aspect-ratio: 1.06; }
.piece__image { position: absolute; inset: 0; width: 100%; height: 100%; transition: opacity .7s var(--ease), transform 1s var(--ease), filter .7s; }
.piece__image--main { object-fit: contain; padding: 9%; mix-blend-mode: multiply; }
.piece--feature .piece__image--main { padding: 13%; }
.piece-row__visual .piece__image--main { padding: 3%; }
.piece__image--hover { object-fit: cover; opacity: 0; transform: scale(1.025); filter: saturate(.72); }
.piece__visual:hover .piece__image--main, .piece-row__visual:hover .piece__image--main { opacity: 0; transform: scale(.98); }
.piece__visual:hover .piece__image--hover, .piece-row__visual:hover .piece__image--hover { opacity: 1; transform: scale(1); filter: saturate(.9); }
.piece__info { display: flex; justify-content: space-between; gap: 25px; align-items: end; padding: 24px 0; border-bottom: 1px solid var(--ink); }
.piece__info p, .piece-row__info p { margin: 0 0 8px; color: var(--muted); font-size: 7px; letter-spacing: .12em; text-transform: uppercase; }
.piece__info h3, .piece-row__info h3 { margin: 0; font-family: var(--display); font-size: clamp(31px,3vw,58px); font-weight: 400; line-height: .95; }
.piece__info > div:last-child { display: flex; align-items: center; gap: 20px; }
.piece__info strong, .piece-row__info strong { font-size: 10px; font-weight: 400; white-space: nowrap; }
.objects__list { border-top: 1px solid var(--ink); }
.piece-row { display: grid; grid-template-columns: minmax(180px,.5fr) 1fr; gap: clamp(22px,3vw,55px); align-items: center; padding: 18px 0; border-bottom: 1px solid var(--line); }
.piece-row__visual { aspect-ratio: 1; }
.piece-row__info { position: relative; }
.piece-row__info h3 { margin-bottom: 18px; font-size: clamp(26px,2.3vw,44px); }

@media (max-width: 1200px) {
  .header__inner { grid-template-columns: auto 1fr auto 80px; gap: 24px; }
  .header__nav { gap: 22px; }
  .header__nav a:nth-child(2) { display: inline; }
  .header__nav a:nth-child(4) { display: none; }
  .hero__statement { grid-template-columns: .28fr 1.72fr; }
  .hero__lower { grid-template-columns: .28fr 1fr auto; }
  .opening { grid-template-columns: .2fr 1.8fr; }

  .category-item:nth-child(even) { margin-top: 0; }
  .category-item:nth-child(2), .category-item:nth-child(5) { margin-top: 0; }
  .objects__layout { grid-template-columns: 1fr; }
  .objects__list { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; border-top: 0; }
  .piece-row { display: block; padding: 0; border-bottom: 0; }
  .piece-row__info { padding: 17px 0 25px; border-bottom: 1px solid var(--line); }
}

/* Readability pass — preserve the editorial hierarchy without micro-text */
body { font-size: 15px; }
.micro, .link-arrow, .button-outline, .button-solid { font-size: 11px; }
.header__nav, .header__phone { font-size: 10px; }
.mobile-menu nav span, .mobile-menu__contacts { font-size: 11px; }
.hero__topline { padding-inline: clamp(18px,2vw,40px); font-size: 10px; }
.hero__lower { padding-inline: clamp(18px,2vw,40px); }
.hero__edition, .hero__lower > .hero__edition, .hero__cta { font-size: 11px; }
.hero__lower > p { font-size: 13px; line-height: 1.55; }
.principles__grid span, .process-card__top, .service-row > span { font-size: 9px; }
.principles__grid p, .process-card p { font-size: 12px; line-height: 1.55; }
.category-item figure > span { font-size: 8px; }
.category-item p, .piece__info p, .piece-row__info p { font-size: 9px; }
.piece__info strong, .piece-row__info strong { font-size: 12px; }
.service-row p { font-size: 13px; line-height: 1.55; }
.contacts__visual > p { font-size: 10px; }
.contacts__details span, .footer__nav span, .footer__bottom { font-size: 9px; }
.contacts__details p { font-size: 14px; }
.footer__nav a { font-size: 12px; }

@media (max-width: 760px) {
  .header__inner { grid-template-columns: 42px 1fr 68px; gap: 0; }
  .menu-toggle { grid-column: 1; grid-row: 1; }
  .logo { grid-column: 2; grid-row: 1; }
  .header__nav, .header__phone { display: none; }
  .header__actions { grid-column: 3; grid-row: 1; }
  .hero__media { background-position: 48% 30%; }
  .hero__gradient { background: linear-gradient(0deg,rgba(7,12,7,.7) 0%,rgba(7,12,7,.2) 50%,rgba(7,12,7,.22) 100%), linear-gradient(90deg,rgba(7,12,7,.18),rgba(7,12,7,.08)); }
  .hero__content { display: grid; padding: 96px 0 28px; }
  .hero__statement { display: block; align-self: end; padding-bottom: 32px; }
  .hero__edition { margin-bottom: 13px; }
  .hero h1 { font-size: clamp(70px,21vw,96px); line-height: .75; }
  .hero h1 em { margin-left: 0; color: var(--gold-bright); }
  .hero__lower { display: block; padding-top: 18px; }
  .hero__lower > p { max-width: 330px; margin-bottom: 25px; font-size: 10px; }
  .hero__lower > .hero__edition { margin-bottom: 13px; color: var(--gold-bright); font-size: 8px; }
  .hero__cta { justify-content: space-between; width: 100%; padding: 13px 0 0; border-left: 0; }
  .opening { display: block; padding-top: 100px; padding-bottom: 100px; }
  .opening__mark { font-size: 180px; margin-bottom: 45px; }
  .opening__story { display: block; margin: 40px 0 0 13vw; }
  .opening__story .link-arrow { margin-top: 28px; }
  .principles { min-height: 0; }
  .principles__media { background-position: 52% center; }
  .principles::after { background: linear-gradient(0deg,rgba(12,14,9,.88),rgba(12,14,9,.3) 58%,rgba(12,14,9,.48)); }
  .principles__inner { padding-top: 72px; padding-bottom: 46px; }
  .principles__head { display: block; }
  .principles__title { margin-top: 24px; font-size: 58px; }
  .principles__grid { display: block; margin-top: 104px; }
  .principles__grid article { min-height: 0; padding: 18px 0 22px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.22); }
  .principles__grid article + article { padding-left: 0; }
  .principles__grid h3 { margin: 20px 0 8px; }
  .catalog__heading { display: block; margin-bottom: 48px; }
  .catalog__heading .micro { margin-bottom: 18px; }
  .catalog__aside { max-width: 360px; margin-top: 28px; padding-bottom: 0; }
  .catalog__aside .link-arrow { margin-top: 24px; }
  .category-gallery { display: flex; width: calc(100% - 18px); margin-right: 0; overflow-x: auto; gap: 10px; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .category-gallery::-webkit-scrollbar { display: none; }
  .category-item, .category-item:nth-child(2), .category-item:nth-child(5) { flex: 0 0 min(74vw,290px); margin-top: 0; scroll-snap-align: start; }
  .category-item figure { aspect-ratio: .72; }
  .objects { padding: 100px 0; }
  .objects__heading { display: block; margin-bottom: 55px; }
  .objects__heading > div { margin: 35px 0 0 13vw; }
  .objects__layout { display: block; }
  .piece--feature .piece__visual { aspect-ratio: .82; }
  .piece__info { align-items: start; }
  .piece__info > div:last-child { flex-direction: column-reverse; align-items: flex-end; gap: 8px; }
  .objects__list { display: block; margin-top: 65px; }
  .piece-row { display: grid; grid-template-columns: minmax(138px,42vw) 1fr; gap: 18px; padding: 14px 0; border-bottom: 1px solid var(--line); }
  .piece-row__info { align-self: center; padding: 0; border-bottom: 0; }
  .piece-row__info h3 { margin-bottom: 10px; font-size: 28px; }
  .piece-row__info p { font-size: 6px; }
}

@media (max-width: 760px) {
  .hero__topline { padding-inline: 14px; font-size: 9px; }
  .hero__lower { padding-inline: 14px; }
  .hero__lower > p { font-size: 12px; }
  .hero__lower > .hero__edition { font-size: 10px; }
  .piece-row__info p { font-size: 8px; }
}

/* Editorial commerce refinement */
:root {
  --muted: #5e5e5e;
  --line: rgba(32,32,32,.2);
}

:focus-visible {
  outline: 1px solid var(--gold-bright);
  outline-offset: 4px;
}

.site-header {
  height: 92px;
}

.site-header.is-scrolled {
  height: 72px;
}

.logo {
  width: 128px;
}

.header__nav,
.header__phone {
  font-size: 10.5px;
  letter-spacing: .13em;
}

.icon-button {
  width: 40px;
  height: 40px;
}

.hero__gradient {
  background:
    linear-gradient(0deg,rgba(7,12,7,.62) 0%,rgba(7,12,7,.08) 49%,rgba(7,12,7,.2) 100%),
    linear-gradient(90deg,rgba(7,12,7,.34) 0%,rgba(7,12,7,.19) 58%,rgba(7,12,7,.08) 100%);
}

.hero h1 {
  font-size: clamp(80px,8.6vw,166px);
  line-height: .75;
}

.hero__topline {
  color: rgba(255,255,255,.72);
}

.hero__lower {
  border-top-color: rgba(255,255,255,.38);
}

.hero__lower > p {
  max-width: 540px;
  color: rgba(255,255,255,.78);
  font-size: 14px;
}

.hero__cta {
  border-left-color: rgba(255,255,255,.48);
}

.opening {
  padding-top: clamp(118px,9vw,180px);
  padding-bottom: clamp(118px,9vw,180px);
}

.opening__story p,
.catalog__aside > p,
.objects__heading > div > p {
  color: var(--muted);
  font-size: 15px;
  line-height: 1.65;
}

.catalog {
  padding: clamp(108px,8.5vw,168px) 0 clamp(118px,9vw,180px);
}

.catalog__heading {
  grid-template-columns: .82fr 1.38fr .8fr;
  margin-bottom: clamp(50px,5.3vw,88px);
}

.catalog__heading .display {
  font-size: clamp(60px,5.45vw,104px);
}

.category-gallery {
  gap: clamp(12px,1.45vw,28px);
}

.category-item:nth-child(even) {
  margin-top: 0;
}

.category-item > div {
  padding-top: 18px;
  border-top-color: rgba(32,32,32,.18);
}

.category-item h3 {
  font-size: clamp(27px,2.15vw,41px);
}

.category-item p {
  color: #666666;
  font-size: 10px;
  letter-spacing: .12em;
}

.category-item figure > span {
  width: 34px;
  height: 34px;
  color: var(--charcoal-dark);
  background: rgba(250,250,250,.82);
  font-size: 9px;
}

.gallery-hint {
  display: none;
}

.objects {
  padding: clamp(112px,8.6vw,170px) 0 clamp(125px,9.5vw,190px);
  background: #eeeeee;
}

.objects__heading {
  grid-template-columns: .36fr 1.14fr .5fr;
  margin-bottom: clamp(56px,5.4vw,92px);
}

.objects__heading .display {
  max-width: 930px;
  font-size: clamp(62px,5.45vw,104px);
}

.objects__layout {
  grid-template-columns: 1.08fr .92fr;
  gap: clamp(38px,5vw,92px);
}

.piece--feature .piece__visual {
  aspect-ratio: 1.02;
}

.piece__info {
  padding: 28px 0 26px;
}

.piece__info p,
.piece-row__info p {
  color: #646464;
  font-size: 10px;
  line-height: 1.45;
}

.piece__info h3 {
  font-size: clamp(37px,3.25vw,62px);
}

.piece__info strong,
.piece-row__info strong {
  color: var(--charcoal-dark);
  font-size: 13px;
  font-weight: 500;
}

.piece-row {
  grid-template-columns: minmax(190px,.54fr) 1fr;
  padding: 20px 0;
}

.piece-row__info h3 {
  font-size: clamp(30px,2.5vw,48px);
}

.house__copy p {
  color: rgba(255,255,255,.72);
  font-size: 15px;
  line-height: 1.65;
}

.contacts {
  min-height: 760px;
}

.contacts__visual {
  isolation: isolate;
  background:
    radial-gradient(circle at 50% 46%,rgba(210,183,125,.08),transparent 42%),
    var(--charcoal-dark);
}

.contacts__visual::before {
  position: absolute;
  z-index: 0;
  content: "";
  inset: -12%;
  opacity: .38;
  background:
    linear-gradient(27deg,transparent 47.7%,rgba(210,183,125,.2) 48%,rgba(210,183,125,.2) 48.25%,transparent 48.55%),
    linear-gradient(112deg,transparent 40%,rgba(255,255,255,.11) 40.2%,rgba(255,255,255,.11) 40.4%,transparent 40.6%),
    linear-gradient(164deg,transparent 62%,rgba(210,183,125,.13) 62.2%,rgba(210,183,125,.13) 62.42%,transparent 62.65%);
  transform: rotate(-5deg) scale(1.08);
}

.contacts__visual > span {
  text-shadow: 0 12px 55px rgba(28,28,28,.36);
}

.contacts__visual > p {
  z-index: 3;
  color: rgba(255,255,255,.58);
  font-size: 10px;
}

.contacts__content {
  padding: clamp(55px,7vw,128px);
}

.contacts__content .display {
  font-size: clamp(64px,5.6vw,108px);
}

.contacts__details {
  margin-top: 46px;
}

.contacts__details span {
  font-size: 10px;
}

.contacts__details p {
  font-size: 15px;
  line-height: 1.6;
}

.button-solid {
  margin-top: 42px;
  padding: 18px 20px;
  background: var(--charcoal);
  font-size: 11px;
}

.button-solid:hover {
  background: var(--charcoal-dark);
}

.footer {
  padding: 72px 0 24px;
}

.footer__top {
  padding-bottom: 58px;
}

.footer__brand p {
  color: rgba(255,255,255,.58);
}

.footer__nav span {
  font-size: 10px;
}

.footer__nav a {
  color: rgba(255,255,255,.7);
  font-size: 13px;
}

.footer__bottom {
  color: rgba(255,255,255,.48);
  font-size: 10px;
}

@media (max-width: 1200px) {
  .logo { width: 120px; }
  .header__nav, .header__phone { font-size: 9.5px; }
  .catalog__heading { grid-template-columns: .55fr 1.15fr .7fr; }
  .objects__heading { grid-template-columns: .3fr 1.1fr .6fr; }
}

@media (max-width: 760px) {
  .site-header { height: 74px; }
  .site-header.is-scrolled { height: 64px; }
  .logo { width: 104px; }
  .icon-button { width: 36px; height: 40px; }

  .mobile-menu {
    justify-content: flex-start;
    padding-top: 160px;
  }

  .mobile-menu nav a {
    padding: 12px 0;
  }

  .mobile-menu__contacts {
    color: rgba(255,255,255,.72);
  }

  .hero__gradient {
    background:
      linear-gradient(0deg,rgba(7,12,7,.82) 0%,rgba(7,12,7,.28) 54%,rgba(7,12,7,.24) 100%),
      linear-gradient(90deg,rgba(7,12,7,.22),rgba(7,12,7,.08));
  }

  .hero h1 {
    font-size: clamp(62px,18vw,84px);
    line-height: .77;
  }

  .hero__lower > p {
    margin-bottom: 30px;
    color: rgba(255,255,255,.82);
    font-size: 12px;
  }

  .opening {
    padding-top: 90px;
    padding-bottom: 96px;
  }

  .catalog {
    padding: 88px 0 102px;
    overflow: hidden;
  }

  .catalog__heading {
    margin-bottom: 42px;
  }

  .catalog__heading .display {
    font-size: clamp(53px,14.5vw,70px);
  }

  .catalog__aside > p,
  .objects__heading > div > p {
    font-size: 14px;
  }

  .category-gallery {
    width: calc(100% - 18px);
    padding-bottom: 16px;
    scrollbar-width: thin;
    scrollbar-color: var(--charcoal) rgba(51,51,51,.14);
  }

  .category-gallery::-webkit-scrollbar {
    display: block;
    height: 2px;
  }

  .category-gallery::-webkit-scrollbar-track {
    background: rgba(51,51,51,.14);
  }

  .category-gallery::-webkit-scrollbar-thumb {
    background: var(--charcoal);
  }

  .category-item,
  .category-item:nth-child(2),
  .category-item:nth-child(5) {
    flex-basis: min(78vw,304px);
  }

  .category-item > div {
    padding-top: 15px;
  }

  .category-item h3 {
    font-size: 31px;
  }

  .category-item p {
    font-size: 9px;
  }

  .gallery-hint {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 14px;
    color: var(--charcoal);
    font-size: 9px;
    font-weight: 500;
    letter-spacing: .14em;
    text-transform: uppercase;
  }

  .gallery-hint span {
    width: 38px;
    height: 1px;
    background: var(--charcoal);
  }

  .objects {
    padding: 92px 0 110px;
  }

  .objects__heading {
    margin-bottom: 46px;
  }

  .objects__heading .display {
    font-size: clamp(54px,14vw,70px);
  }

  .objects__heading > div {
    margin-top: 28px;
  }

  .piece__info {
    padding: 22px 0;
  }

  .piece__info h3 {
    font-size: 36px;
  }

  .piece__info strong,
  .piece-row__info strong {
    font-size: 12px;
  }

  .piece-row__info p {
    font-size: 9px;
  }

  .contacts__visual {
    min-height: 72vw;
  }

  .contacts__visual > p {
    left: 18px;
    bottom: 18px;
  }

  .contacts__content {
    padding: 76px 18px 88px;
  }

  .contacts__content .display {
    font-size: clamp(56px,15vw,74px);
  }

  .contacts__details {
    margin-top: 40px;
    gap: 30px 22px;
  }

  .contacts__details span {
    font-size: 9px;
  }

  .contacts__details p {
    font-size: 14px;
  }

  .footer {
    padding-top: 62px;
  }

  .footer__nav a {
    font-size: 12px;
  }

  .footer__bottom {
    font-size: 9px;
  }
}

/* Owner revisions: centered identity, catalog navigation and a single category row. */
.site-header,
.site-header.is-scrolled {
  height: var(--header-current);
}
.site-header {
  background: linear-gradient(rgba(28,28,28,.8), rgba(28,28,28,.36));
}
.site-header.is-scrolled { background: rgba(250,250,250,.97); }
.header__inner {
  height: 92px;
  grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);
  gap: 20px;
}
.logo { grid-column: 2; grid-row: 1; justify-self: center; }
.header__right {
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
  display: flex;
  align-items: center;
  gap: clamp(16px,2vw,36px);
}
.header__actions { position: static; display: flex; }
.menu-toggle {
  grid-column: 1;
  grid-row: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 7px;
  width: 44px;
  height: 44px;
  padding: 10px;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.menu-toggle span {
  display: block;
  width: 24px;
  height: 1px;
  background: currentColor;
  transition: transform .3s;
}
.menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-4px) rotate(-45deg); }
.catalog-nav {
  overflow-x: auto;
  border-top: 1px solid var(--line-light);
  scrollbar-width: thin;
  scrollbar-color: currentColor transparent;
}
.catalog-nav__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(20px,1.7vw,36px);
  width: max-content;
  min-width: 100%;
  min-height: 53px;
  padding: 0 clamp(18px,2vw,44px);
}
.catalog-nav a {
  display: flex;
  align-items: center;
  min-height: 44px;
  font-size: 12px;
  font-weight: 400;
  white-space: nowrap;
  text-underline-offset: 6px;
}
.catalog-nav a:hover { text-decoration: underline; }
.catalog-nav a:focus-visible { outline-offset: -2px; }
.site-header.is-scrolled .catalog-nav { border-color: var(--line); }
body.menu-open .site-header { color: var(--white); background: var(--charcoal-dark); border-color: var(--line-light); }
body.menu-open .site-header .logo img { filter: brightness(0) invert(1); }
body.menu-open .catalog-nav { visibility: hidden; }
.mobile-menu {
  top: var(--header-current);
  justify-content: flex-start;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: clamp(24px,4vh,48px) max(24px,7vw) 40px;
}
.mobile-menu nav, .mobile-menu__contacts { width: min(100%,1100px); margin-inline: auto; }
.mobile-menu nav a { font-size: clamp(28px,4vw,48px); line-height: 1.12; }
.mobile-menu__mark { position: fixed; pointer-events: none; }
.hero__content.page { padding-top: calc(var(--header-height) + 24px); }
.hero__lower { grid-template-columns: .42fr 1fr auto; }
.catalog__heading, .objects__heading {
  grid-template-columns: minmax(0,1fr) auto;
  gap: 40px;
}
.catalog__heading .display { font-size: clamp(52px,5.4vw,104px); line-height: 1; }
.catalog__aside { max-width: none; }
.catalog__aside .link-arrow { margin-top: 0; white-space: nowrap; }
.category-gallery { grid-template-columns: repeat(5,minmax(0,1fr)); align-items: start; }
.category-item { min-width: 0; }
.category-item > div { flex-direction: column; align-items: flex-start; gap: 10px; }
.category-item h3 { font-size: clamp(24px,2.15vw,41px); }
.objects__heading > div { max-width: 360px; }
.house__grid { grid-template-columns: 1fr 1fr; align-items: start; }
.house__grid .display { font-size: clamp(58px,5.7vw,110px); line-height: .98; }
.house__copy { max-width: 650px; }
.contacts__content .display { font-size: clamp(52px,4.6vw,88px); line-height: 1; }
.contacts__intro { max-width: 440px; margin: 28px 0 0; color: var(--muted); font-size: 15px; }
.contacts__details { gap: 30px 24px; }
.button-solid { gap: 24px; }

@media (max-width: 1100px) {
  .header__phone { display: none; }
  .category-gallery {
    display: flex;
    overflow-x: auto;
    padding-bottom: 18px;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    scrollbar-color: var(--charcoal) rgba(51,51,51,.14);
  }
  .category-item { flex: 0 0 29%; scroll-snap-align: start; }
  .gallery-hint { display: flex; align-items: center; gap: 12px; margin-top: 14px; font-size: 10px; }
  .gallery-hint span { width: 38px; height: 1px; background: var(--charcoal); }
  .contacts__content { padding: 60px 32px; }
}

@media (max-width: 760px) {
  :root { --header-height: 74px; --header-compact: 56px; }
  .header__inner { height: 74px; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); gap: 8px; }
  .header__right { gap: 0; }
  .catalog-nav__inner { min-height: 47px; gap: 24px; }
  .catalog-nav a { font-size: 12px; }
  .mobile-menu { padding: 20px 24px 36px; }
  .mobile-menu nav a { grid-template-columns: 30px minmax(0,1fr); font-size: clamp(25px,6.8vw,36px); }
  .mobile-menu__contacts { flex-direction: column; gap: 12px; margin-top: 28px; }
  .hero__content.page { min-height: max(680px,100svh); padding-bottom: 28px; }
  .hero__lower { display: block; }
  .catalog__heading, .objects__heading { display: block; }
  .catalog__aside { margin-top: 24px; }
  .category-item, .category-item:nth-child(2), .category-item:nth-child(5) { flex-basis: min(78vw,304px); }
  .category-item h3 { font-size: 31px; }
  .objects__heading > div { margin: 24px 0 0; }
  .piece-row { grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 18px; }
  .piece-row__info { min-width: 0; }
  .piece-row__info h3 { font-size: clamp(24px,6.8vw,30px); overflow-wrap: anywhere; }
  .house__grid { display: block; }
  .house__grid .display { font-size: clamp(49px,11.5vw,78px); }
  .house__copy { margin: 32px 0 0; }
  .contacts__content { padding: 72px 18px 80px; }
  .contacts__content .display { font-size: clamp(46px,11vw,72px); }
  .contacts__intro { font-size: 14px; }
}

/* Equal product cards and compact sticky navigation. */
:root.is-scrolled { --header-current: var(--header-compact); }
.header__inner { transition: height .35s var(--ease); }
.logo { transition: width .35s var(--ease); }
.site-header.is-scrolled .header__inner { height: 54px; }
.site-header.is-scrolled .logo { width: 88px; }
.mobile-menu { transition: opacity .45s var(--ease), visibility .45s, top .35s var(--ease); }
.mobile-menu.is-open { transition: opacity .45s var(--ease), visibility 0s, top .35s var(--ease); }
.category-item figure { aspect-ratio: 2 / 3; background: #f3f3f3; }
.category-item img { object-fit: contain; filter: none; }
.category-item:hover img { filter: none; transform: scale(1.025); }
.shop-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: clamp(16px,2vw,38px);
}
.shop-card {
  min-width: 0;
  display: grid;
  grid-template-rows: auto auto 1fr auto;
  align-content: start;
}
.shop-card__photo {
  position: relative;
  display: block;
  overflow: hidden;
  aspect-ratio: 1;
  background: #fff;
}
.shop-card__photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 8%;
  object-fit: contain;
  transition: opacity .4s var(--ease), transform .65s var(--ease);
}
.shop-card__photo .shop-card__image--hover { padding: 0; opacity: 0; }
.shop-card.has-hover-image:focus-within .shop-card__image--main { opacity: 0; }
.shop-card.has-hover-image:focus-within .shop-card__image--hover { opacity: 1; }
@media (hover: hover) and (pointer: fine) {
  .shop-card.has-hover-image:hover .shop-card__image--main { opacity: 0; }
  .shop-card.has-hover-image:hover .shop-card__image--hover { opacity: 1; }
}
.shop-card__sku { margin: 22px 0 10px; color: var(--muted); font-size: 10px; letter-spacing: .08em; }
.shop-card h3 { margin: 0; color: var(--muted); font-family: var(--sans); font-size: 14px; font-weight: 400; line-height: 1.55; }
.shop-card h3 a { text-decoration-thickness: 1px; text-underline-offset: 4px; }
.shop-card h3 a:hover { text-decoration: underline; }
.shop-card__price { margin: 22px 0 0; color: var(--ink); font-size: 14px; font-weight: 500; }

body:not(.home-page) .category-gallery .reveal {
  opacity: 1;
  transform: none;
}
.katalog-categories {
  width: 100vw;
  margin: 8px 0 56px calc(50% - 50vw);
}
body:has(.katalog-categories) {
  overflow-x: clip;
}

@media (max-width: 760px) {
  .catalog-nav { display: none; }
  .site-header.is-scrolled .header__inner { height: 56px; }
  .site-header.is-scrolled .logo { width: 78px; }
  .shop-grid { grid-template-columns: minmax(0,1fr); gap: 36px 16px; }
  .shop-card__photo { aspect-ratio: 1; }
  .shop-card__photo img { padding: 5%; }
  .shop-card__sku { margin-top: 16px; font-size: 9px; }
  .shop-card h3 { font-size: 13px; line-height: 1.5; }
  .shop-card__price { margin-top: 16px; font-size: 13px; }
}
