/* Hansa Domus — site styles.
   Every colour, font, size, spacing, radius and timing comes from theme.json
   (--wp--preset--* / --wp--custom--*). The short aliases below only rename them. */

:root {
	--hd-paper: var(--wp--preset--color--paper);
	--hd-ink: var(--wp--preset--color--ink);
	--hd-stone: var(--wp--preset--color--stone);
	--hd-line: var(--wp--preset--color--line);
	--hd-madder: var(--wp--preset--color--madder);
	--hd-madder-deep: var(--wp--preset--color--madder-deep);
	--hd-indigo: var(--wp--preset--color--indigo);
	--hd-saffron: var(--wp--preset--color--saffron);
	--hd-saffron-light: var(--wp--preset--color--saffron-light);
	--hd-wa: var(--wp--preset--color--whatsapp);
	--hd-night: var(--wp--preset--color--night);
	--hd-night-text: var(--wp--preset--color--night-text);
	--hd-night-muted: var(--wp--preset--color--night-muted);
	--hd-wool: var(--wp--preset--color--wool);
	--hd-display: var(--wp--preset--font-family--display);
	--hd-text: var(--wp--preset--font-family--text);
	--hd-ease: var(--wp--custom--ease);
	--hd-fast: var(--wp--custom--duration--fast);
	--hd-base: var(--wp--custom--duration--base);
	--hd-slow: var(--wp--custom--duration--slow);
	--hd-r-s: var(--wp--custom--radius--s);
	--hd-r-m: var(--wp--custom--radius--m);
	--hd-r-l: var(--wp--custom--radius--l);
	--hd-r-xl: var(--wp--custom--radius--xl);
	--hd-pill: var(--wp--custom--radius--pill);
	--hd-b1: var(--wp--custom--border--hair);
	--hd-b2: var(--wp--custom--border--thin);
	--hd-b3: var(--wp--custom--border--thick);
	--hd-s1: var(--wp--preset--spacing--10);
	--hd-s2: var(--wp--preset--spacing--20);
	--hd-s3: var(--wp--preset--spacing--30);
	--hd-s4: var(--wp--preset--spacing--40);
	--hd-s5: var(--wp--preset--spacing--50);
	--hd-s6: var(--wp--preset--spacing--60);
	--hd-s7: var(--wp--preset--spacing--70);
	--hd-s8: var(--wp--preset--spacing--80);
	--hd-hdr-h: var(--wp--custom--header--height);
}

html { scroll-behavior: smooth; }
.wp-site-blocks > * + * { margin-block-start: 0; }
.hd-main > .alignwide + .alignwide, .hd-main > .alignfull + .alignwide { margin-block-start: 0; }
body { overflow-x: clip; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }
:where(a, button):focus-visible { outline: var(--hd-b3) solid var(--hd-madder); outline-offset: 0.2em; border-radius: var(--hd-r-s); }
.hd-main { padding-top: var(--hd-hdr-h); padding-bottom: var(--hd-s8); }
.hd-main--home { padding-top: 0; }
.hd-wrap { max-width: var(--wp--style--global--wide-size); margin-inline: auto; padding-inline: var(--wp--custom--gutter); }
.hd-icon { width: 1.15em; height: 1.15em; flex: none; }
.hd-eyebrow { display: inline-block; font-size: var(--wp--preset--font-size--xs); font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--hd-madder-deep); }
.hd-placeholder { display: inline-block; padding: 0 var(--hd-s2); border: var(--hd-b1) dashed currentColor; border-radius: var(--hd-r-s); opacity: 0.75; font-size: 0.9em; }
.hd-noimage { display: grid; place-items: center; aspect-ratio: 2 / 3; width: 100%; border: var(--hd-b1) dashed var(--hd-stone); border-radius: var(--hd-r-m); color: var(--hd-stone); font-size: var(--wp--preset--font-size--xs); }
.hd-hint { color: var(--hd-stone); }
@media (pointer: coarse) { .hd-hint { display: none; } }

/* ---------- buttons ---------- */
.hd-btn { display: inline-flex; align-items: center; gap: var(--hd-s2); padding: 0.85em 1.5em; border-radius: var(--hd-pill); border: var(--hd-b2) solid transparent; font: 600 var(--wp--preset--font-size--s) / 1.2 var(--hd-text); text-decoration: none; cursor: pointer; white-space: nowrap; transition: transform var(--hd-fast) var(--hd-ease), background-color var(--hd-fast), color var(--hd-fast), box-shadow var(--hd-fast); }
.hd-btn:hover { transform: translateY(-0.12em); }
.hd-btn--ink { background: var(--hd-ink); color: var(--hd-paper); }
.hd-btn--ink:hover { color: var(--hd-paper); box-shadow: var(--wp--preset--shadow--lift); }
.hd-btn--wa { background: var(--hd-wa); color: var(--hd-paper); }
.hd-btn--wa:hover { color: var(--hd-paper); box-shadow: 0 0.75rem 1.5rem -0.75rem var(--wp--custom--wa-glow); }
.hd-btn--ghost { border-color: currentColor; color: var(--hd-ink); background: transparent; }
.hd-btn--ghost:hover { color: var(--hd-ink); }
.hd-arr { transition: transform var(--hd-fast) var(--hd-ease); }
.hd-btn:hover .hd-arr { transform: translateX(0.25em); }
.hd-ctas { display: flex; flex-wrap: wrap; gap: var(--hd-s3); }

/* ---------- section heads ---------- */
.hd-section { padding-block: var(--hd-s8) 0; }
.hd-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: var(--hd-s4) var(--hd-s6); margin-bottom: var(--hd-s6); }
.hd-head h2 { font-size: var(--wp--preset--font-size--title); margin: var(--hd-s2) 0 0; }
.hd-head p { margin: var(--hd-s3) 0 0; color: var(--hd-stone); max-width: 52ch; }
.hd-page-head { padding-block: var(--hd-s7) var(--hd-s5); display: grid; gap: var(--hd-s3); justify-items: start; }
.hd-page-head h1 { font-size: var(--wp--preset--font-size--title); margin: 0; max-width: 22ch; }
.hd-page-head p { margin: 0; color: var(--hd-stone); max-width: 58ch; font-size: var(--wp--preset--font-size--l); }
.is-style-lead { font-size: var(--wp--preset--font-size--xl); font-family: var(--hd-display); line-height: 1.35; }

/* ---------- reveal on scroll (JS adds .is-pending only below the first screen) ---------- */
.hd-rv { transition: opacity 0.9s var(--hd-ease), transform 0.9s var(--hd-ease); transition-delay: calc(var(--i, 0) * 90ms); }
.hd-rv.is-pending { opacity: 0; transform: translateY(1.75rem); }

/* ---------- header ---------- */
.hd-hdr { position: fixed; inset: 0 0 auto 0; z-index: 50; padding-top: env(safe-area-inset-top, 0px); background: var(--wp--custom--glass); box-shadow: 0 var(--hd-b1) 0 var(--hd-line); backdrop-filter: blur(0.9rem); -webkit-backdrop-filter: blur(0.9rem); transition: background-color var(--hd-base), box-shadow var(--hd-base); }
.hd-hdr--overlay:not(.is-scrolled) { background: transparent; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
.admin-bar .hd-hdr { top: var(--wp-admin--admin-bar--height, 0px); }
.hd-hdr__bar { display: flex; align-items: center; justify-content: space-between; gap: var(--hd-s5); height: var(--hd-hdr-h); transition: height var(--hd-base) var(--hd-ease); }
.hd-hdr.is-scrolled .hd-hdr__bar { height: var(--wp--custom--header--compact); }
.hd-logo { display: flex; align-items: center; gap: var(--hd-s3); text-decoration: none; color: var(--hd-ink); }
.hd-logo:hover { color: var(--hd-ink); }
.hd-logo__mark { height: 2.9em; width: auto; flex: none; transform-origin: 60% 90%; transition: transform 0.8s var(--hd-ease); }
.hd-logo__text { display: grid; gap: 0.3em; line-height: 1; }
.hd-logo__name { font: 700 var(--wp--preset--font-size--l) / 1 var(--hd-text); letter-spacing: 0.17em; text-transform: uppercase; white-space: nowrap; }
.hd-logo__tag { font-size: var(--wp--preset--font-size--xxs); font-weight: 500; letter-spacing: 0.42em; text-transform: uppercase; color: var(--hd-stone); white-space: nowrap; }
.hd-mk__rug { fill: var(--hd-paper); stroke: var(--hd-ink); stroke-width: 28; stroke-linejoin: round; }
.hd-mk__med { fill: var(--hd-ink); stroke: var(--hd-saffron); stroke-width: 14; }
.hd-mk__core { fill: var(--hd-madder); stroke: var(--hd-paper); stroke-width: 10; }
.hd-mk__fringe { fill: none; stroke: var(--hd-ink); stroke-width: 15; stroke-linecap: round; }
.hd-logo:hover .hd-logo__mark { transform: rotate(-7deg) translateY(-0.08em); }
.hd-nav { display: flex; gap: var(--hd-s1); }
.hd-nav a { position: relative; padding: var(--hd-s2) var(--hd-s4); text-decoration: none; color: var(--hd-ink); font-weight: 500; font-size: var(--wp--preset--font-size--s); }
.hd-nav a::after { content: ""; position: absolute; left: var(--hd-s4); right: var(--hd-s4); bottom: var(--hd-s1); height: var(--hd-b2); background: var(--hd-madder); transform: scaleX(0); transform-origin: right; transition: transform 0.45s var(--hd-ease); }
.hd-nav a:hover::after, .hd-nav a[aria-current]::after { transform: scaleX(1); transform-origin: left; }
.hd-hdr__tools { display: flex; align-items: center; gap: var(--hd-s3); }
.hd-hdr__tools .hd-btn { padding: 0.65em 1.15em; }
.hd-burger { display: none; position: relative; width: var(--wp--custom--control--s); height: var(--wp--custom--control--s); border-radius: 50%; border: var(--hd-b2) solid var(--hd-ink); background: transparent; cursor: pointer; }
.hd-burger i { position: absolute; left: 28%; right: 28%; height: var(--hd-b2); background: var(--hd-ink); transition: transform 0.4s var(--hd-ease), top 0.4s var(--hd-ease); }
.hd-burger i:first-child { top: 40%; }
.hd-burger i:last-child { top: 58%; }
.is-menu-open .hd-burger i:first-child, .is-menu-open .hd-burger i:last-child { top: 49%; transform: rotate(45deg); }
.is-menu-open .hd-burger i:last-child { transform: rotate(-45deg); }
.hd-mnav { position: fixed; inset: 0; z-index: 40; background: var(--wp--preset--color--tint-madder); padding: calc(var(--hd-hdr-h) + var(--hd-s6)) var(--wp--custom--gutter) var(--hd-s6); display: grid; align-content: start; gap: var(--hd-s2); clip-path: circle(0 at calc(100% - 2.6rem) 2.6rem); visibility: hidden; transition: clip-path 0.7s var(--hd-ease), visibility 0s linear 0.7s; }
.is-menu-open .hd-mnav { clip-path: circle(150% at calc(100% - 2.6rem) 2.6rem); visibility: visible; transition: clip-path 0.7s var(--hd-ease); }
.hd-mnav a:not(.hd-btn) { font-family: var(--hd-display); font-size: var(--wp--preset--font-size--xxl); color: var(--hd-ink); text-decoration: none; opacity: 0; transform: translateY(1.25rem); transition: opacity 0.5s, transform 0.5s var(--hd-ease); }
.is-menu-open .hd-mnav a:not(.hd-btn) { opacity: 1; transform: none; transition-delay: calc(0.2s + var(--i) * 70ms); }
.hd-mnav .hd-btn { margin-top: var(--hd-s5); justify-self: start; }

/* ---------- hero ---------- */
.hd-hero { position: relative; overflow: hidden; background: var(--hd-slide-bg, var(--wp--preset--color--tint-madder)); transition: background-color 1.1s var(--hd-ease); padding-top: var(--hd-hdr-h); }
.hd-hero__blob { position: absolute; width: 62vw; max-width: 52rem; aspect-ratio: 1; right: -8vw; top: 50%; translate: 0 -46%; border-radius: 46% 54% 58% 42% / 48% 42% 58% 52%; background: var(--wp--custom--veil); animation: hd-blob 18s ease-in-out infinite; }
@keyframes hd-blob { 50% { border-radius: 58% 42% 44% 56% / 42% 58% 42% 58%; rotate: 20deg; } }
.hd-hero__slides { position: relative; display: grid; }
.hd-slide { grid-area: 1 / 1; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center; gap: var(--hd-s5); min-height: clamp(33rem, 78vh, 47rem); pointer-events: none; }
.hd-slide.is-active { pointer-events: auto; }
.hd-slide__copy { position: relative; z-index: 3; padding-block: var(--hd-s6); }
.hd-slide__title { font-family: var(--hd-display); font-weight: 500; font-size: var(--wp--preset--font-size--display); line-height: 1.04; letter-spacing: -0.02em; margin: var(--hd-s3) 0 var(--hd-s4); text-wrap: balance; }
.hd-slide__text { color: var(--hd-stone); font-size: var(--wp--preset--font-size--l); max-width: 40ch; margin: 0 0 var(--hd-s6); }
.hd-w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: 0.08em; }
.hd-w > span { display: inline-block; transform: translateY(105%); transition: transform 0.9s var(--hd-ease); transition-delay: calc(0.25s + var(--i) * 70ms); }
.hd-fade { opacity: 0; transform: translateY(1rem); transition: opacity 0.7s, transform 0.8s var(--hd-ease); transition-delay: calc(0.55s + var(--i, 0) * 90ms); }
.hd-slide.is-active .hd-w > span, .hd-slide.is-active .hd-fade { transform: none; opacity: 1; }
.hd-slide.is-leaving .hd-w > span { transform: translateY(-105%); transition-delay: calc(var(--i) * 30ms); transition-duration: 0.5s; }
.hd-slide.is-leaving .hd-fade { opacity: 0; transition-delay: 0s; transition-duration: 0.35s; }
.no-js .hd-slide.is-first .hd-w > span, .no-js .hd-slide.is-first .hd-fade { transform: none; opacity: 1; }
.no-js .hd-slide:not(.is-first) { display: none; }

.hd-stage { position: relative; height: 100%; min-height: 26rem; perspective: 87rem; }
.hd-layer { position: absolute; will-change: transform; transition: transform var(--hd-base) var(--hd-ease); }
.hd-enter { opacity: 0; transform: translate(var(--fx, 0), var(--fy, 5rem)) rotate(var(--fr, 0deg)) scale(var(--fs, 1)); transition: transform 1.3s var(--hd-ease), opacity 0.9s; transition-delay: var(--d, 0s); }
.hd-slide.is-active .hd-enter { opacity: 1; transform: none; }
.hd-slide.is-leaving .hd-enter { opacity: 0; transform: translate(calc(var(--fx, 0) * -0.5), -2.5rem) scale(0.9); transition-duration: 0.55s; transition-delay: 0s; }
.hd-float { animation: hd-float var(--ft, 6s) ease-in-out infinite; animation-delay: var(--fd, 0s); }
@keyframes hd-float { 50% { transform: translateY(-0.9rem) rotate(4deg); } }
.hd-ing svg { display: block; width: 100%; height: auto; filter: drop-shadow(0 1.1rem 1.1rem color-mix(in srgb, var(--hd-ink) 22%, transparent)); }
.hd-dye--madder { color: var(--hd-madder); }
.hd-dye--indigo { color: var(--hd-indigo); }
.hd-dye--saffron { color: var(--hd-saffron); }

/* the rug lies on the floor and unrolls */
.hd-floor { left: 20%; top: 12%; width: min(38vw, 30rem); }
.hd-rug3d { position: relative; transform: rotateX(54deg) rotateZ(-22deg); transform-style: preserve-3d; filter: drop-shadow(0 3rem 2.5rem color-mix(in srgb, var(--hd-ink) 28%, transparent)); }
.hd-rug3d img, .hd-rug3d .hd-noimage { display: block; width: 100%; height: auto; clip-path: inset(0 0 100% 0); transition: clip-path 1.5s var(--hd-ease) 0.15s; }
.hd-slide.is-active .hd-rug3d img, .hd-slide.is-active .hd-rug3d .hd-noimage, .no-js .hd-slide.is-first .hd-rug3d img { clip-path: inset(0 0 0 0); }
.hd-slide.is-leaving .hd-rug3d img { clip-path: inset(100% 0 0 0); transition-duration: 0.6s; transition-delay: 0s; }
.hd-fringe { position: absolute; left: 3%; right: 3%; height: 4.5%; background: repeating-linear-gradient(90deg, var(--hd-wool) 0 2px, transparent 2px 5px); }
.hd-fringe--top { top: -4.2%; }
.hd-fringe--bot { bottom: -4.2%; opacity: 0; transition: opacity 0.3s 1.4s; }
.hd-slide.is-active .hd-fringe--bot { opacity: 1; }
.hd-roll { position: absolute; left: -1%; right: -1%; height: 7%; top: -3%; opacity: 0; border-radius: var(--hd-pill); background: linear-gradient(180deg, var(--roll-a) 0%, var(--roll-b) 45%, var(--roll-a) 70%, color-mix(in srgb, var(--hd-ink) 45%, transparent) 100%); }
.hd-roll--madder { --roll-a: var(--hd-madder-deep); --roll-b: var(--hd-madder); }
.hd-roll--indigo { --roll-a: var(--hd-indigo); --roll-b: var(--wp--preset--color--tint-indigo); }
.hd-roll--saffron { --roll-a: var(--wp--preset--color--stone); --roll-b: var(--hd-saffron); }
.hd-slide.is-active .hd-roll { animation: hd-unroll 1.5s var(--hd-ease) 0.15s both; }
@keyframes hd-unroll { 0% { top: -3%; opacity: 1; } 85% { opacity: 1; } 100% { top: 97%; opacity: 0; } }

.hd-hero__ui { position: relative; z-index: 5; display: flex; align-items: center; justify-content: space-between; gap: var(--hd-s4); padding-bottom: var(--hd-s5); }
.hd-dots { display: flex; gap: var(--hd-s3); }
.hd-dot { width: 4rem; border: 0; background: none; cursor: pointer; padding: 0; display: grid; gap: var(--hd-s2); text-align: left; font: 600 var(--wp--preset--font-size--xs) var(--hd-text); color: var(--hd-stone); }
.hd-dot i { display: block; height: var(--hd-b3); background: color-mix(in srgb, var(--hd-ink) 14%, transparent); position: relative; overflow: hidden; }
.hd-dot i::after { content: ""; position: absolute; inset: 0; background: var(--hd-ink); transform: scaleX(0); transform-origin: left; }
.hd-dot.is-on { color: var(--hd-ink); }
.hd-dot.is-on i::after { animation: hd-prog var(--hd-dur, 7s) linear forwards; }
.hd-hero.is-paused .hd-dot.is-on i::after { animation-play-state: paused; }
@keyframes hd-prog { to { transform: scaleX(1); } }
.hd-arrows { display: flex; gap: var(--hd-s3); }
.hd-arrow { width: var(--wp--custom--control--m); height: var(--wp--custom--control--m); border-radius: 50%; border: var(--hd-b2) solid var(--hd-ink); background: transparent; color: var(--hd-ink); cursor: pointer; display: grid; place-items: center; transition: background-color var(--hd-fast), color var(--hd-fast); }
.hd-arrow:hover { background: var(--hd-ink); color: var(--hd-paper); }
.hd-arrow--prev .hd-icon { transform: scaleX(-1); }

/* ---------- marquee ---------- */
.hd-marquee { border-block: var(--hd-b1) solid var(--hd-line); overflow: hidden; padding-block: var(--hd-s4); background: var(--hd-paper); }
.hd-marquee__track { display: flex; width: max-content; animation: hd-marq 38s linear infinite; }
.hd-marquee:hover .hd-marquee__track { animation-play-state: paused; }
.hd-marquee__track span { display: inline-flex; align-items: center; gap: var(--hd-s5); padding-right: var(--hd-s5); font-family: var(--hd-display); font-size: var(--wp--preset--font-size--xl); white-space: nowrap; }
.hd-marquee__track .hd-icon { width: 1rem; height: 1rem; color: var(--hd-madder); }
@keyframes hd-marq { to { transform: translateX(-50%); } }

/* ---------- collection tiles ---------- */
.hd-tiles { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--hd-s4); }
.hd-tile { position: relative; isolation: isolate; overflow: hidden; display: grid; justify-items: center; gap: var(--hd-s3); padding: var(--hd-s5) var(--hd-s4) var(--hd-s4); border-radius: var(--hd-r-l); text-decoration: none; color: var(--hd-ink); }
.hd-tile:hover { color: var(--hd-ink); }
.hd-tile::before { content: ""; position: absolute; inset: auto -30% -60% -30%; height: 90%; border-radius: 50%; background: var(--wp--custom--veil); z-index: -1; transition: transform 0.8s var(--hd-ease); }
.hd-tile:hover::before { transform: translateY(-18%) scale(1.1); }
.hd-tile .hd-rugpic { width: 62%; aspect-ratio: 3 / 4; display: grid; place-items: center; transform: rotate(-6deg); transition: transform 0.8s var(--hd-ease); filter: drop-shadow(var(--wp--preset--shadow--rug)); }
.hd-tile:nth-child(even) .hd-rugpic { transform: rotate(5deg); }
.hd-tile:hover .hd-rugpic { transform: translateY(-0.6rem) rotate(0deg) scale(1.06); }
.hd-rugpic img { display: block; width: 100%; height: auto; }
.hd-tile .hd-rugpic img { width: auto; max-width: 100%; max-height: 100%; object-fit: contain; }
.hd-tile b { font-family: var(--hd-display); font-weight: 500; font-size: var(--wp--preset--font-size--xl); }
.hd-tile small { color: var(--hd-stone); font-size: var(--wp--preset--font-size--xs); margin-top: calc(var(--hd-s3) * -1); text-align: center; }

/* ---------- promos ---------- */
.hd-promos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--hd-s5); padding-top: var(--hd-s8); }
.hd-promo { position: relative; isolation: isolate; overflow: hidden; min-height: 21rem; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; border-radius: var(--hd-r-l); text-decoration: none; color: var(--hd-ink); }
.hd-promo:hover { color: var(--hd-ink); }
.hd-promo::after { content: ""; position: absolute; inset: 1.1rem; border: var(--hd-b2) solid color-mix(in srgb, var(--hd-ink) 18%, transparent); border-radius: var(--hd-r-m); pointer-events: none; transition: inset var(--hd-base) var(--hd-ease), border-color var(--hd-base); }
.hd-promo:hover::after { inset: 0.6rem; border-color: color-mix(in srgb, var(--hd-ink) 40%, transparent); }
.hd-promo__txt { position: relative; z-index: 2; display: grid; gap: var(--hd-s3); justify-items: start; padding: var(--hd-s6); }
.hd-promo h3 { font-size: var(--wp--preset--font-size--xxl); margin: 0; }
.hd-promo p { margin: 0 0 var(--hd-s2); color: var(--hd-stone); }
.hd-promo__art { position: relative; height: 100%; min-height: 14rem; transition: transform 1s var(--hd-ease); }
.hd-promo:hover .hd-promo__art { transform: scale(1.05); }
.hd-loom { position: absolute; inset: 14% 14% 10% 6%; }
.hd-loom__beam { position: absolute; left: -6%; right: -6%; top: -0.15rem; height: 0.75rem; border-radius: var(--hd-r-s); background: linear-gradient(var(--wp--preset--color--stone), var(--hd-night)); }
.hd-loom__beam--b { top: auto; bottom: -0.4rem; }
.hd-loom__warps { position: absolute; inset: 0.5rem 0 0 0; background: repeating-linear-gradient(90deg, color-mix(in srgb, var(--hd-stone) 55%, transparent) 0 1px, transparent 1px 7px); }
.hd-loom__cloth { position: absolute; inset: 0.5rem 0 0.35rem 0; overflow: hidden; clip-path: inset(calc(100% - var(--woven, 100%)) 0 0 0); }
.hd-loom__cloth img { width: 100%; height: 100%; object-fit: cover; object-position: bottom; }
.hd-room { position: absolute; inset: 0; }
.hd-room__wall { position: absolute; inset: 0 0 38% 0; background: var(--wp--preset--color--tint-indigo); filter: saturate(1.4) brightness(0.97); }
.hd-room__win { position: absolute; left: 22%; top: 12%; width: 30%; height: 40%; border-radius: var(--hd-pill) var(--hd-pill) var(--hd-r-s) var(--hd-r-s); background: var(--hd-paper); box-shadow: inset 0 0 0 0.4rem var(--wp--preset--color--tint-walnut); }
.hd-room__floor { position: absolute; inset: 62% 0 0 0; background: var(--wp--preset--color--tint-walnut); filter: brightness(0.93); }
.hd-room__rug { position: absolute; left: 14%; right: 4%; top: 56%; perspective: 37rem; }
.hd-room__rug img { display: block; width: 100%; height: 9rem; object-fit: cover; transform: rotateX(68deg); filter: drop-shadow(0 1.25rem 0.6rem color-mix(in srgb, var(--hd-ink) 15%, transparent)); }
.hd-room__plant { position: absolute; right: 12%; top: 26%; width: 18%; }
.hd-room__plant svg { width: 100%; height: auto; display: block; }

/* ---------- rug cards ---------- */
.hd-tabs { display: flex; flex-wrap: wrap; gap: var(--hd-s2); }
.hd-tab { display: inline-block; border: var(--hd-b2) solid var(--hd-line); background: var(--hd-paper); border-radius: var(--hd-pill); padding: 0.55em 1.15em; font: 600 var(--wp--preset--font-size--s) var(--hd-text); color: var(--hd-stone); text-decoration: none; cursor: pointer; transition: all var(--hd-fast); }
.hd-tab:hover { color: var(--hd-ink); border-color: var(--hd-ink); }
.hd-tab.is-on { background: var(--hd-ink); border-color: var(--hd-ink); color: var(--hd-paper); }
.hd-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--hd-s5); }
.hd-card { display: grid; gap: var(--hd-s3); align-content: start; transition: opacity 0.45s, transform var(--hd-base) var(--hd-ease); }
.hd-card.is-out { opacity: 0; transform: translateY(1.1rem) scale(0.98); }
.hd-card[hidden] { display: none; }
.hd-card__pic { position: relative; overflow: hidden; aspect-ratio: 4 / 5; border-radius: var(--hd-r-l); display: grid; place-items: center; cursor: crosshair; }
.hd-card__pic .hd-rugpic { width: 58%; filter: drop-shadow(var(--wp--preset--shadow--rug)); transition: transform 0.8s var(--hd-ease); }
.hd-card__pic .hd-rugpic.is-tall { width: 34%; }
.hd-card:hover .hd-card__pic .hd-rugpic { transform: translateY(-0.5rem) rotate(-2deg); }
.hd-badge { position: absolute; top: var(--hd-s4); left: var(--hd-s4); z-index: 2; margin: 0; background: var(--hd-paper); border-radius: var(--hd-pill); padding: 0.3em 0.8em; font-size: var(--wp--preset--font-size--xs); font-weight: 600; }
.hd-badge--status { background: var(--hd-ink); color: var(--hd-paper); }
.hd-rug-info .hd-badge { position: static; justify-self: start; }
.hd-loupe { position: absolute; z-index: 3; width: 8.75rem; height: 8.75rem; left: 0; top: 0; border-radius: 50%; pointer-events: none; border: var(--wp--custom--border--frame) solid var(--hd-paper); box-shadow: var(--wp--preset--shadow--pop); background-repeat: no-repeat; image-rendering: pixelated; opacity: 0; transform: scale(0.4); transition: opacity 0.25s, transform 0.35s var(--hd-ease); }
.is-loupe .hd-loupe { opacity: 1; transform: scale(1); }
.hd-card__actions { position: absolute; z-index: 4; left: var(--hd-s3); right: var(--hd-s3); bottom: var(--hd-s3); display: flex; gap: var(--hd-s2); transform: translateY(calc(100% + var(--hd-s4))); transition: transform 0.5s var(--hd-ease); }
.hd-card:hover .hd-card__actions, .hd-card:focus-within .hd-card__actions { transform: none; }
.hd-card__actions .hd-btn { flex: 1; justify-content: center; padding: 0.75em 0.6em; font-size: var(--wp--preset--font-size--xs); }
.hd-card__meta { display: grid; gap: 0.1rem; }
.hd-card__ref { font-size: var(--wp--preset--font-size--xs); letter-spacing: 0.1em; text-transform: uppercase; color: var(--hd-stone); font-weight: 600; }
.hd-card__title { font-family: var(--hd-display); font-weight: 500; font-size: var(--wp--preset--font-size--xl); margin: 0; line-height: 1.2; }
.hd-card__title a { color: var(--hd-ink); text-decoration: none; }
.hd-card__size { color: var(--hd-stone); font-size: var(--wp--preset--font-size--s); font-variant-numeric: tabular-nums; }
.hd-card__ask { display: inline-flex; align-items: center; gap: var(--hd-s2); color: var(--hd-wa); font-weight: 600; font-size: var(--wp--preset--font-size--s); text-decoration: none; }
.hd-card__ask:hover { color: var(--hd-ink); }
.hd-more { margin: var(--hd-s6) 0 0; text-align: center; }
.hd-empty { color: var(--hd-stone); }
.hd-pages { margin-top: var(--hd-s6); display: flex; flex-wrap: wrap; gap: var(--hd-s2); justify-content: center; }
.hd-pages .page-numbers { padding: 0.5em 1em; border-radius: var(--hd-pill); border: var(--hd-b2) solid var(--hd-line); color: var(--hd-ink); text-decoration: none; }
.hd-pages .page-numbers.current { background: var(--hd-ink); color: var(--hd-paper); border-color: var(--hd-ink); }
.hd-filters { display: flex; flex-wrap: wrap; gap: var(--hd-s3) var(--hd-s5); align-items: center; padding-bottom: var(--hd-s3); }
.hd-filters__group { display: flex; flex-wrap: wrap; gap: var(--hd-s2); align-items: center; }
.hd-filters__label { font-size: var(--wp--preset--font-size--xs); letter-spacing: 0.12em; text-transform: uppercase; color: var(--hd-stone); font-weight: 600; margin-right: var(--hd-s1); }
.hd-rug-grid--archive { padding-top: var(--hd-s6); }

/* ---------- spotlight + single rug viewer ---------- */
.hd-spot { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: var(--hd-s7); align-items: center; padding: var(--hd-s7); border-radius: var(--hd-r-xl); background: var(--wp--preset--color--tint-walnut); }
.hd-viewer, .hd-gallery { display: grid; gap: var(--hd-s3); }
.hd-viewer__main, .hd-gallery__main { position: relative; display: grid; aspect-ratio: 1; overflow: hidden; border-radius: var(--hd-r-l); background: var(--hd-paper); perspective: 62rem; }
.hd-view { grid-area: 1 / 1; display: grid; place-items: center; opacity: 0; transform: scale(1.04); transition: opacity 0.5s, transform 0.7s var(--hd-ease); pointer-events: none; }
.hd-view.is-on { opacity: 1; transform: none; pointer-events: auto; }
.hd-view--front img { width: auto; max-width: 70%; max-height: 88%; object-fit: contain; filter: drop-shadow(var(--wp--preset--shadow--rug)); transition: transform 0.5s var(--hd-ease); }
.hd-view:not(.hd-view--front) img { width: 100%; height: 100%; object-fit: cover; }
.hd-view[data-hd-loupe] { cursor: crosshair; }
.hd-thumbs { display: flex; gap: var(--hd-s3); }
.hd-thumb { flex: 1; display: grid; gap: var(--hd-s2); justify-items: center; padding: var(--hd-s2); border: var(--hd-b3) solid transparent; border-radius: var(--hd-r-m); background: var(--hd-paper); cursor: pointer; font: 600 var(--wp--preset--font-size--xs) var(--hd-text); color: var(--hd-stone); transition: border-color var(--hd-fast), transform var(--hd-fast) var(--hd-ease); }
.hd-thumb:hover { transform: translateY(-0.12rem); }
.hd-thumb.is-on { border-color: var(--hd-ink); color: var(--hd-ink); }
.hd-thumb img { width: 100%; height: 3.5rem; object-fit: cover; border-radius: var(--hd-r-s); }
.hd-spot__info h2 { font-size: var(--wp--preset--font-size--title); margin: var(--hd-s3) 0 var(--hd-s4); }
.hd-spot__info h2 a { color: var(--hd-ink); text-decoration: none; }
.hd-spot__info > p { color: var(--hd-stone); margin: 0 0 var(--hd-s5); }
.hd-specs { display: grid; grid-template-columns: auto 1fr; gap: var(--hd-s2) var(--hd-s5); margin: 0 0 var(--hd-s5); padding-block: var(--hd-s4); border-block: var(--hd-b1) solid color-mix(in srgb, var(--hd-ink) 12%, transparent); font-size: var(--wp--preset--font-size--s); }
.hd-specs dt { color: var(--hd-stone); }
.hd-specs dd { margin: 0; font-weight: 500; font-variant-numeric: tabular-nums; }
.hd-loomtime { margin-bottom: var(--hd-s5); }
.hd-loomtime__lab { display: flex; justify-content: space-between; font-size: var(--wp--preset--font-size--s); color: var(--hd-stone); margin-bottom: var(--hd-s2); }
.hd-loomtime__lab b { color: var(--hd-ink); }
.hd-loomtime__bar { height: 0.5rem; border-radius: var(--hd-pill); background: color-mix(in srgb, var(--hd-ink) 10%, transparent); overflow: hidden; }
.hd-loomtime__bar i { display: block; height: 100%; width: 0; border-radius: var(--hd-pill); background: repeating-linear-gradient(90deg, var(--hd-madder) 0 10px, var(--hd-madder-deep) 10px 12px); transition: width 2.2s var(--hd-ease); }
.hd-loomtime.is-go .hd-loomtime__bar i { width: calc(var(--months) / 18 * 100%); }
.hd-crumbs { display: flex; flex-wrap: wrap; gap: var(--hd-s2); padding-top: var(--hd-s5); font-size: var(--wp--preset--font-size--s); color: var(--hd-stone); }
.hd-crumbs a { color: var(--hd-stone); }
.hd-rug-top { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--hd-s7); align-items: start; padding-top: var(--hd-s5); }
.hd-rug-top > * { margin-block-start: 0; }
.hd-gallery { position: sticky; top: calc(var(--wp--custom--header--compact) + var(--hd-s4)); }
.hd-gallery__hint { margin: 0; font-size: var(--wp--preset--font-size--xs); }
.hd-rug-info { display: grid; gap: var(--hd-s3); }
.hd-rug-info__title { font-size: var(--wp--preset--font-size--title); margin: 0; }
.hd-rug-info__lead { font-size: var(--wp--preset--font-size--l); color: var(--hd-stone); margin: 0 0 var(--hd-s3); }
.hd-rug-info__note { font-size: var(--wp--preset--font-size--xs); color: var(--hd-stone); margin: var(--hd-s3) 0 0; }
.hd-rug-story { max-width: var(--wp--style--global--content-size); padding-top: var(--hd-s8); }
.hd-rug-story__h { font-size: var(--wp--preset--font-size--xxl); }
.hd-rug-story__body { font-size: var(--wp--preset--font-size--l); }

/* ---------- process ---------- */
.hd-steps { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--hd-s5); list-style: none; margin: 0; padding: 0; }
.hd-steps__line { position: absolute; top: 2.35rem; left: 6%; right: 6%; height: var(--hd-b3); background: var(--hd-line); }
.hd-steps__line i { display: block; width: 100%; height: 100%; background: var(--hd-madder); transform: scaleX(var(--p, 0)); transform-origin: left; }
.hd-step { position: relative; display: grid; gap: var(--hd-s2); justify-items: start; align-content: start; }
.hd-step__ic { position: relative; z-index: 1; display: grid; place-items: center; width: 4.75rem; height: 4.75rem; border-radius: 50%; box-shadow: 0 0 0 0.5rem var(--hd-paper); transition: transform var(--hd-base) var(--hd-ease); }
.hd-step:hover .hd-step__ic { transform: rotate(-10deg) scale(1.06); }
.hd-step__ic .hd-icon { width: 2.25rem; height: 2.25rem; }
.hd-step__n { font-size: var(--wp--preset--font-size--xs); letter-spacing: 0.14em; color: var(--hd-madder); font-weight: 700; margin-top: var(--hd-s2); }
.hd-step h3 { font-size: var(--wp--preset--font-size--xl); margin: 0; }
.hd-step p { margin: 0; color: var(--hd-stone); font-size: var(--wp--preset--font-size--s); }

/* ---------- visit ---------- */
.hd-visit { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); overflow: hidden; border-radius: var(--hd-r-xl); }
.hd-visit__txt { display: grid; gap: var(--hd-s4); align-content: center; padding: var(--hd-s7); }
.hd-visit h2 { font-size: var(--wp--preset--font-size--title); margin: 0; }
.hd-visit p { margin: 0; color: var(--hd-stone); max-width: 46ch; }
.hd-visit .hd-specs { margin: 0; border: 0; padding: 0; }
.hd-visit__map { position: relative; min-height: 22rem; overflow: hidden; background: var(--wp--preset--color--map); }
.hd-visit__map > svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.hd-pin { position: absolute; left: 54%; top: 46%; translate: -50% -100%; }
.hd-pin::before { content: ""; position: absolute; left: 50%; bottom: -0.4rem; width: 0.9rem; height: 0.9rem; translate: -50% 0; border-radius: 50%; background: color-mix(in srgb, var(--hd-madder) 35%, transparent); animation: hd-ping 2.2s ease-out infinite; }
@keyframes hd-ping { 0% { scale: 1; opacity: 1; } 100% { scale: 5; opacity: 0; } }
.hd-pin span { display: block; padding: var(--hd-s2) var(--hd-s4); border-radius: var(--hd-pill); background: var(--hd-ink); color: var(--hd-paper); font-weight: 600; font-size: var(--wp--preset--font-size--s); white-space: nowrap; }

/* ---------- footer ---------- */
.hd-foot { background: var(--hd-night); color: var(--hd-night-text); }
.hd-foot__band { height: 1.1rem; background: url("../img/band.svg") repeat-x left center / auto 100%; }
.hd-foot__brand { display: flex; align-items: center; gap: var(--hd-s6); padding-block: var(--hd-s7) var(--hd-s6); }
.hd-foot__mark { display: block; width: auto; height: clamp(6rem, 14vw, 10rem); flex: none; }
.hd-foot__big { margin: 0; display: grid; gap: var(--hd-s3); min-width: 0; }
.hd-foot__name { font: 700 min(var(--wp--preset--font-size--display), 7.4vw) / 1 var(--hd-text); letter-spacing: 0.14em; text-transform: uppercase; color: var(--hd-night-text); white-space: nowrap; }
.hd-foot__tag { font-size: var(--wp--preset--font-size--s); font-weight: 500; letter-spacing: 0.6em; text-transform: uppercase; color: var(--hd-saffron-light); }
.hd-foot__cols { display: grid; grid-template-columns: 2fr 1fr 1fr 1.4fr; gap: var(--hd-s6); padding-block: var(--hd-s6); border-top: var(--hd-b1) solid color-mix(in srgb, var(--hd-night-text) 12%, transparent); }
.hd-foot__h { margin: 0 0 var(--hd-s3); font-family: var(--hd-text); font-size: var(--wp--preset--font-size--xs); font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--hd-night-muted); }
.hd-foot__cols a { display: block; padding: 0.2rem 0; color: var(--hd-night-text); text-decoration: none; opacity: 0.85; transition: opacity 0.2s, transform var(--hd-fast) var(--hd-ease); }
.hd-foot__cols a:hover { opacity: 1; transform: translateX(0.25rem); color: var(--hd-night-text); }
.hd-foot__cols p { margin: 0; color: var(--hd-night-muted); max-width: 36ch; }
.hd-foot__line { display: block; padding: 0.2rem 0; color: var(--hd-night-text); }
.hd-foot__legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--hd-s3); padding-block: var(--hd-s4) var(--hd-s6); border-top: var(--hd-b1) solid color-mix(in srgb, var(--hd-night-text) 8%, transparent); font-size: var(--wp--preset--font-size--xs); color: var(--hd-night-muted); }
.hd-foot__legal a { color: var(--hd-night-muted); }

/* ---------- floating WhatsApp ---------- */
.hd-fab { position: fixed; z-index: 60; right: var(--hd-s4); bottom: calc(var(--hd-s4) + env(safe-area-inset-bottom, 0px)); display: grid; place-items: center; width: var(--wp--custom--control--fab); height: var(--wp--custom--control--fab); border-radius: 50%; background: var(--hd-wa); color: var(--hd-paper); box-shadow: 0 0.9rem 1.9rem -0.6rem var(--wp--custom--wa-glow); transition: transform var(--hd-fast) var(--hd-ease); }
.hd-fab:hover { transform: scale(1.08); color: var(--hd-paper); }
.hd-fab .hd-icon { width: 1.75rem; height: 1.75rem; }
.hd-fab::before { content: ""; position: absolute; inset: 0; border-radius: 50%; border: var(--hd-b3) solid var(--hd-wa); animation: hd-ring 2.6s ease-out 3; }
@keyframes hd-ring { to { transform: scale(1.7); opacity: 0; } }

/* ---------- editor previews ---------- */
.hd-editor-preview .hd-rv.is-pending { opacity: 1; transform: none; }
.hd-editor-preview .hd-slide.is-first .hd-w > span, .hd-editor-preview .hd-slide.is-first .hd-fade, .hd-editor-preview .hd-slide.is-first .hd-enter { opacity: 1; transform: none; }
.hd-editor-preview .hd-slide.is-first .hd-rug3d img { clip-path: none; }
.hd-editor-preview .hd-slide:not(.is-first) { display: none; }
.hd-editor-preview .hd-hdr, .hd-editor-preview .hd-fab { position: static; }

/* ---------- responsive ---------- */
@media (max-width: 1020px) {
	.hd-nav, .hd-hdr__visit { display: none; }
	.hd-burger { display: block; }
	.hd-tiles { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(11rem, 44%); overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: var(--hd-s2); scrollbar-width: none; }
	.hd-tile { scroll-snap-align: start; }
	.hd-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.hd-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: var(--hd-s6); }
	.hd-steps__line { display: none; }
	.hd-foot__cols { grid-template-columns: 1fr 1fr; }
	.hd-rug-top { grid-template-columns: 1fr; }
	.hd-gallery { position: static; }
}
@media (max-width: 760px) {
	:root { --hd-hdr-h: var(--wp--custom--header--mobile); }
	.hd-hdr__wa span { position: absolute; width: var(--hd-b1); height: var(--hd-b1); overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
	.hd-hdr__wa { padding: 0.65em 0.75em; }
	.hd-logo { gap: var(--hd-s2); }
	.hd-logo__mark { height: 2.5em; }
	.hd-logo__name { font-size: var(--wp--preset--font-size--m); letter-spacing: 0.13em; }
	.hd-logo__tag { letter-spacing: 0.3em; }
	.hd-foot__brand { gap: var(--hd-s4); }
	.hd-foot__tag { letter-spacing: 0.4em; font-size: var(--wp--preset--font-size--xs); }
	.hd-slide { grid-template-columns: 1fr; min-height: 0; gap: 0; align-content: start; }
	.hd-slide__copy { padding-block: var(--hd-s5) 0; }
	.hd-slide__text { margin-bottom: var(--hd-s5); }
	.hd-stage { min-height: 20rem; height: 20rem; }
	.hd-floor { left: 12%; top: 4%; width: 74%; }
	.hd-promos, .hd-promo, .hd-spot, .hd-visit { grid-template-columns: 1fr; }
	.hd-spot { padding: var(--hd-s5); }
	.hd-promo__txt { padding: var(--hd-s6) var(--hd-s6) var(--hd-s2); }
	.hd-cards { gap: var(--hd-s4); }
	.hd-card__actions { display: none; }
	.hd-visit__map { min-height: 16rem; }
	.hd-foot__cols { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition-duration: 0.01ms !important; transition-delay: 0s !important; }
	html { scroll-behavior: auto; }
}
