/* Fusim v2 polish layer: one type scale, real italics, no underlines, no faux weights.
   Loaded last so it settles every size in one place. */
:root{
	--fs-h1:clamp(42px,6vw,80px);
	--fs-h2:clamp(34px,4.4vw,56px);
	--fs-h3l:clamp(28px,3vw,40px);
	--fs-h3:26px;
	--fs-h4:22px;
	--fs-lead:18px;
	--fs-body:16px;
	--fs-sm:15px;
	--fs-xs:14px;
	--fs-label:13px;
	--fs-meta:12px;
	--ls-label:.12em;
	--ls-meta:.14em;
}

/* even-height numerals (Cormorant defaults to old-style figures) */
body.fzh{font-variant-numeric:lining-nums}

/* ---------- headings: tight leading everywhere ---------- */
.fzh :where(h1,h2,h3,h4,summary,.h1){line-height:1.15}
.fzh-pagehero :is(h1,.h1){font-size:var(--fs-h1);line-height:1.02}
.fzh-h2,.fzh-band h2{font-size:var(--fs-h2);line-height:1.06;letter-spacing:-.01em}
.fzh-feature h2{font-size:clamp(30px,3.4vw,44px);line-height:1.1}
.fzh-models__head h3,.fzh-mv h3{font-size:var(--fs-h3l);line-height:1.1}
.fzh-form h3{font-size:32px;line-height:1.1}
.fzh-why__item h3,.fzh-door__meta h3,.fzh-pcard h3,.fzh-ind h3,.fzh-perk h3,.fzh-step h3,.fzh-pillar h3,.fzh-state{font-size:var(--fs-h3);line-height:1.15}
.fzh-model h4,.fzh-cinfo p,.fzh-faq summary{font-size:var(--fs-h4);line-height:1.25}
.fzh-post h3{font-size:24px;line-height:1.2}
.fzh-masonry a span,.fzh-pd__meta b{font-size:var(--fs-h4);line-height:1.2}
.fzh-drawer a{line-height:1.25}
.fzh-drawer a.sm{line-height:1.5}

/* ---------- real italics and real weights ---------- */
.fzh em{font-style:italic;font-synthesis:none}
.fzh-marquee__label{font-synthesis:none}
.fzh :where(b,strong){font-weight:700}
.fzh-figure .cap b,.fzh-semi__badge b,.fzh-stat b,.fzh-perk b,.fzh-step b,.fzh-pd__meta b{font-weight:600}
.fzh-semi__badge,.fzh-figure .cap,.fzh-tcard__q{font-weight:500}

/* small uppercase headings keep readable leading */
.fzh-pd h2,.fzh-cinfo h3,.fzh-foot h4,.fzh-state small,.fzh-eyebrow{line-height:1.4}
.fzh-card .fzh-link{font-size:var(--fs-label);letter-spacing:var(--ls-label)}

/* ---------- body copy ---------- */
.fzh-lead,.fzh-hero p{font-size:var(--fs-lead);line-height:1.6}
.fzh-about__copy p,.fzh-prose p,.fzh-pd__desc,.fzh-tcard p,.fzh-ticks li,.fzh-mv li,.fzh-faq details p{font-size:var(--fs-body);line-height:1.7}
.fzh-why__item p,.fzh-card p,.fzh-perk p,.fzh-step p,.fzh-pillar p,.fzh-stat p,.fzh-form>p,.fzh-spec,.fzh-feats li{font-size:var(--fs-sm);line-height:1.65}
.fzh-tcard__who span,.fzh-pd__meta div,.fzh-hero__marks{font-size:var(--fs-xs)}

/* ---------- labels: two tiers only ---------- */
.fzh-link,.fzh-tabs a,.fzh-tabs button,.fzh-switch button,.fzh-foot h4,.fzh-pd h2,.fzh-note cite,.fzh-stat>span,.fzh-dots button,.fzh-crumb{font-size:var(--fs-label);letter-spacing:var(--ls-label)}
.fzh-door__meta span,.fzh-model p,.fzh-why__num,.fzh-post time,.fzh-spec th,.fzh-cinfo h3,.fzh-pcard .cat,.fzh-pcard__btns a,.fzh-state small,.fzh-ind p,.fzh-about__img .cap,.fzh-stack.is-pinned .fzh-stack__count{font-size:var(--fs-meta);letter-spacing:var(--ls-meta)}
.fzh-door__img .tag{font-size:11px;letter-spacing:.14em}

/* ---------- buttons: one size, never wrap ---------- */
.fzh-btn,.fzh-head__cta .fzh-btn,.fzh-drawer .fzh-btn,.fzh-form input[type=submit]{font-size:13px;letter-spacing:.08em;white-space:nowrap}
.fzh-hero__btns .fzh-btn{flex:1 1 auto}

/* ---------- no underlines ---------- */
.fzh a,.fzh a:hover{text-decoration:none}
.fzh-link{border-bottom:0;padding-bottom:0}
.fzh-link:hover{color:var(--accent)}
.fzh-post:hover h3{text-decoration:none;color:var(--accent);transition:color .3s var(--ease)}
.fzh-steel em::after{display:none}
.fzh-rc a{text-decoration:none;color:inherit;font-weight:600}
.fzh-door__meta{border-bottom:0;padding-bottom:0}
.fzh-nav>li>a::after,.fzh-dots button::after{display:none}
.fzh-nav>li>a:hover,.fzh-nav>li>a.is-on{color:var(--accent)}
.fzh-dots button{transition:color .3s var(--ease)}
.fzh-dots button.is-on{color:var(--accent)}

/* ---------- phones ---------- */
@media (max-width:860px){
	.fzh-stack.is-pinned .fzh-stat>span{font-size:11.5px;letter-spacing:.1em}
	.fzh-stack.is-pinned .fzh-slide--models .fzh-btn{font-size:13px}
	.fzh-stack.is-pinned .fzh-feats li{font-size:14px}
}
@media (max-width:600px){
	:root{--fs-h3:23px;--fs-h4:20px;--fs-lead:16.5px;--fs-sm:15px}
	.fzh-pcard h3{font-size:22px}
	.fzh-post h3{font-size:22px}
	.fzh-form h3{font-size:28px}
	.fzh-door__img .tag{font-size:11px}
}

/* ---------- contact quote form: match brand ---------- */
.fzh .cf7-modern-form input:not([type=submit]):not([type=checkbox]):not([type=radio]),.fzh .cf7-modern-form textarea,.fzh .cf7-modern-form select{border-radius:var(--r)!important;font-family:var(--body)!important;font-size:15px!important}
.fzh .cf7-modern-form input[type=submit]{background:var(--accent)!important;border:0!important;border-radius:var(--r)!important;color:#fff!important;font-family:var(--body)!important;font-weight:700!important;font-size:13px!important;letter-spacing:.1em!important;text-transform:uppercase!important;box-shadow:none!important}
.fzh .cf7-modern-form input[type=submit]:hover{background:var(--accent-d)!important}

/* pinned images keep the whole door in frame on phones */
@media (max-width:860px){
	.fzh-stack.is-pinned .fzh-about__img img{aspect-ratio:16/10;max-height:none;object-position:50% 50%}
	.fzh-stack.is-pinned .fzh-semi__media img{aspect-ratio:16/9;max-height:none;object-position:50% 50%}
}
.fzh-semi__media img{object-position:42% 50%}

/* ---------- audit fixes ---------- */
/* active states on dark grounds: lighter red keeps 4.5:1 contrast */
.fzh-head .fzh-nav>li>a.is-on,.fzh-head .fzh-nav>li>a:hover,.fzh-dots button.is-on{color:#ff4b52}
/* WhatsApp button: deeper green so white text passes contrast */
.fzh-btn--wa{background:#0f7a3e}
.fzh-btn--wa:hover{background:#0c6834}
/* state cards fit small phones */
.fzh-state{min-width:0}
@media (max-width:420px){.fzh-states{gap:10px}.fzh-state{padding:18px 14px;gap:10px;font-size:20px}.fzh-state small{font-size:11px;letter-spacing:.1em}}
/* footer and top bar links: comfortable tap size on touch screens */
@media (max-width:1024px){.fzh-foot li+li{margin-top:2px}.fzh-foot li a{display:inline-block;padding:9px 0}.fzh-top a{display:inline-block;padding:10px 0}}
/* hero slide numbers: bigger hit area, same look */
.fzh-dots button{padding-left:10px;padding-right:10px;margin-left:-10px;margin-right:-10px}

/* ---------- forged steel ribbon (replaces the old Why Choose marquee) ---------- */
.fzh-ribbon{--skew:0deg;position:relative;overflow:hidden;isolation:isolate;padding:30px 0 24px;color:#f2f2f2;background:linear-gradient(180deg,#1a1a1a 0%,#0b0b0b 55%,#080808 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.07),inset 0 -1px 0 rgba(0,0,0,.6)}
.fzh-ribbon::before{content:'';position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(180deg,rgba(255,255,255,.022) 0 1px,transparent 1px 3px);pointer-events:none}
.fzh-ribbon::after{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.07) 48%,rgba(255,255,255,.02) 52%,transparent 62%);background-size:250% 100%;animation:fzhSheen 9s ease-in-out infinite}
@keyframes fzhSheen{0%{background-position:130% 0}60%,100%{background-position:-30% 0}}
.fzh-ribbon__row{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.fzh-ribbon__track{display:flex;width:max-content;animation:fzhRib 46s linear infinite;will-change:transform}
.fzh-ribbon__track--rev{animation-duration:58s;animation-direction:reverse}
@keyframes fzhRib{to{transform:translate3d(-50%,0,0)}}
.fzh-ribbon__group{display:flex;align-items:center;margin:0;padding:0;list-style:none}
.fzh-ribbon__row--big .fzh-ribbon__group{transform:skewX(var(--skew));transition:transform .25s linear}
.fzh-ribbon__row--big li{display:flex;align-items:center;gap:40px;padding-right:40px;white-space:nowrap}
.fzh-ribbon .w{font-family:var(--display);font-weight:600;font-size:clamp(34px,4.4vw,62px);line-height:1.12;letter-spacing:-.01em;transition:color .35s var(--ease),-webkit-text-stroke-color .35s var(--ease)}
.fzh-ribbon li.o .w{color:#0f0f0f;-webkit-text-stroke:2px rgba(255,255,255,.62);paint-order:stroke fill}
.fzh-ribbon__row--big li:hover .w{color:var(--accent);-webkit-text-stroke-color:var(--accent)}
.fzh-ribbon .rivet{flex:none;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 32%,#ff8a8d 0,#e41e26 42%,#7d0d12 100%);box-shadow:0 0 0 5px rgba(228,30,38,.12),0 2px 4px rgba(0,0,0,.6)}
.fzh-ribbon__row--small{margin-top:16px}
.fzh-ribbon__row--small li{display:flex;align-items:center;gap:10px;padding-right:46px;white-space:nowrap;font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#a6a6a6}
.fzh-ribbon__row--small svg{width:17px;height:17px;color:var(--accent);flex:none}
@media (max-width:860px){
	.fzh-ribbon{padding:20px 0 16px}
	.fzh-ribbon__row--big li{gap:26px;padding-right:26px}
	.fzh-ribbon .rivet{width:11px;height:11px;box-shadow:0 0 0 4px rgba(228,30,38,.12)}
	.fzh-ribbon__row--small{margin-top:10px}
	.fzh-ribbon__row--small li{font-size:11px;letter-spacing:.16em;padding-right:32px}
	.fzh-ribbon__track{animation-duration:34s}
	.fzh-ribbon__track--rev{animation-duration:44s}
}
@media (prefers-reduced-motion:reduce){
	.fzh-ribbon__track,.fzh-ribbon::after{animation:none}
	.fzh-ribbon__row{overflow-x:auto}
}
/* ---------- image fit: frames follow each photo's own shape, so nothing important is cut ---------- */
/* gallery: justified rows, every photo shown whole at its natural proportions */
.fzh-gal{display:flex;flex-direction:column;gap:14px}
.fzh-gal__row{display:flex;gap:14px}
.fzh-gal__row a{position:relative;display:block;flex:var(--ar,1.5) 1 0;min-width:0;aspect-ratio:var(--ar,1.5);overflow:hidden;border-radius:var(--r)}
.fzh-gal__row img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.fzh-gal__row a:hover img{transform:scale(1.04)}
@media (max-width:600px){.fzh-gal__row{flex-direction:column}.fzh-gal__row a{flex:none;width:100%}}
/* semi luxury photo: landscape frame keeps the whole door and side light */
@media (min-width:861px){.fzh-semi__media img{aspect-ratio:3/2;object-position:45% 50%}}
.fzh-semi__badge{padding:16px 20px;bottom:24px;right:20px;max-width:210px;font-size:17px}
.fzh-semi__badge b{font-size:30px}
/* about photos: show the full picture */
.fzh-figure img,.fzh-figure--wide img{aspect-ratio:auto;height:auto}
@media (min-width:861px){.fzh-about__img img{aspect-ratio:3/2}}
/* industry cards: landscape so each room scene stays readable */
.fzh-ind{aspect-ratio:4/3}
/* caption tag sits on the photo edge, off the people and doors */
.fzh-figure{margin-bottom:34px}
.fzh-figure .cap{left:24px;bottom:-30px;box-shadow:0 18px 40px rgba(0,0,0,.45)}
@media (max-width:600px){.fzh-figure .cap{left:14px;bottom:-26px;padding:12px 16px}.fzh-figure .cap b{font-size:30px}}
