/* Fibi · luxury layer
   Quiet luxury: Bellefair display headlines, one colour per headline, long air,
   a slow line of real Eazy Builder tones as the signature. */

:root {
	--fibi-display: var(--wp--preset--font-family--rubik), "Rubik", "Heebo", sans-serif;
	--fibi-slow: cubic-bezier(.16, .84, .24, 1);
	--fibi-section: clamp(4.5rem, 9vw, 9rem);
}

/* ---------- Type ---------- */
body h1, body h2, body h3,
.fibi-tile__name, .fibi-buyline__price, .fibi-tier__value {
	font-family: var(--fibi-display);
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.12;
	text-wrap: balance;
}
body h1 strong, body h2 strong, body h3 strong,
body h1 b, body h2 b { font-weight: 400; color: inherit; }
.fibi-hero__title .fibi-rose { color: var(--fibi-title-rose); }
.fibi-eyebrow { letter-spacing: .32em !important; font-size: .7rem !important; font-weight: 500; }
p.has-l-font-size { line-height: 1.7; font-weight: 300; }

/* ---------- Header: refined, shrinks on scroll ---------- */
.fibi-header__row { transition: min-height .5s var(--fibi-slow); }
.fibi-wordmark { transition: transform .5s var(--fibi-slow); transform-origin: right center; }
.fibi-scrolled .fibi-header__row { min-height: 58px; }
.fibi-scrolled .fibi-wordmark { transform: scale(.86); }
.fibi-scrolled .fibi-header { background: rgba(255, 241, 241, .97); box-shadow: 0 1px 0 rgba(126, 82, 69, .12); }
.fibi-nav .wp-block-navigation-item__content { letter-spacing: .02em; }

/* ---------- Hero: real film, full bleed ---------- */
.fibi-hero.wp-block-cover { min-height: min(92vh, 980px) !important; overflow: hidden; }
.fibi-hero .wp-block-cover__video-background {
	transform: scale(1.06);
	animation: fibi-drift 14s var(--fibi-slow) both;
}
@keyframes fibi-drift { from { transform: scale(1.14); } to { transform: scale(1.04); } }
.fibi-hero .wp-block-cover__background {
	background: linear-gradient(180deg, rgba(28, 20, 18, .55) 0%, rgba(28, 20, 18, .35) 45%, rgba(28, 20, 18, .82) 100%) !important;
	opacity: 1 !important;
}
.fibi-hero__title { color: var(--fibi-blush) !important; margin-block: 1.25rem 1.5rem !important; }
.fibi-hero__lead { max-width: 34rem; margin-inline: auto !important; color: var(--fibi-ribbon) !important; }
.fibi-hero__hint {
	position: absolute; inset-inline: 0; bottom: 2rem; margin: 0 !important;
	letter-spacing: .12em; opacity: .85;
}
.fibi-hero__scroll {
	position: absolute; bottom: 4.75rem; left: 50%; width: 1px; height: 3.25rem;
	background: linear-gradient(var(--fibi-title-rose), transparent);
	transform-origin: top; animation: fibi-scrollcue 2.6s var(--fibi-slow) infinite;
}
@keyframes fibi-scrollcue { 0% { transform: scaleY(0); opacity: 0; } 30% { opacity: 1; } 100% { transform: scaleY(1); opacity: 0; } }

/* ---------- Signature: the swatch line ---------- */
.fibi-swatchsec { padding-block: clamp(2.5rem, 5vw, 4rem) !important; border-bottom: 1px solid var(--fibi-line); }
.fibi-swatchline__head {
	display: flex; justify-content: space-between; align-items: baseline; gap: 1rem;
	max-width: 1320px; margin: 0 auto 1.75rem; padding-inline: var(--wp--style--root--padding-left, 1.25rem);
}
.fibi-swatchline__head .fibi-eyebrow { color: var(--fibi-title-deep); margin: 0; }
.fibi-swatchline__track {
	display: flex; width: max-content;
	animation: fibi-swatch 90s linear infinite;
}
.fibi-swatchline:hover .fibi-swatchline__track { animation-play-state: paused; }
@keyframes fibi-swatch { from { transform: translateX(0); } to { transform: translateX(50%); } }
.fibi-swatchline { overflow: hidden; }
.fibi-swatchline__run { display: flex; gap: clamp(1.25rem, 3vw, 2.5rem); padding-inline-end: clamp(1.25rem, 3vw, 2.5rem); }
.fibi-swatch {
	display: flex; flex-direction: column; align-items: center; gap: .75rem;
	text-decoration: none !important; color: var(--fibi-muted);
}
.fibi-swatch__dot {
	display: block; width: clamp(64px, 7vw, 92px); aspect-ratio: 1; border-radius: 50%; overflow: hidden;
	box-shadow: 0 0 0 1px rgba(126, 82, 69, .14), 0 18px 30px -22px rgba(28, 20, 18, .55);
	background: var(--fibi-white);
	transition: transform .8s var(--fibi-slow), box-shadow .8s var(--fibi-slow);
}
.fibi-swatch__dot img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.9); transform-origin: 50% 46%; }
.fibi-swatch__no { font-family: var(--fibi-display); font-size: 1.05rem; color: var(--fibi-title-deep); }
.fibi-swatch:hover .fibi-swatch__dot { transform: translateY(-6px); box-shadow: 0 0 0 1px var(--fibi-title-deep), 0 26px 34px -22px rgba(28, 20, 18, .6); }
.fibi-swatch.is-out { opacity: .45; }

/* ---------- Sections breathe ---------- */
.fibi-cats, .fibi-deals, .fibi-works, .fibi-club { padding-block: var(--fibi-section) !important; }
.fibi-spot--light, .fibi-spot--dark, .fibi-academy { padding-block: var(--fibi-section) !important; }
.fibi-sechead { margin-bottom: clamp(2rem, 4vw, 3.5rem) !important; }

/* Category tiles: slower, calmer */
.fibi-tile__media img { transition: transform 1.4s var(--fibi-slow) !important; }
.fibi-tile:hover .fibi-tile__media img { transform: scale(1.05) !important; }
.fibi-tile__name { font-size: clamp(1.15rem, 1.6vw, 1.5rem); }

/* Stage lighting under spotlight products */
.fibi-stage { background: radial-gradient(60% 55% at 50% 42%, #fff 0%, #FFF7F5 45%, var(--fibi-blush) 100%); }
.fibi-stage--dark { background: radial-gradient(55% 55% at 50% 45%, #3a2925 0%, #241916 50%, var(--fibi-espresso) 100%); }
.fibi-stage__img { transition: transform 1.6s var(--fibi-slow); }
.fibi-stage:hover .fibi-stage__img { transform: scale(1.03); }

/* ---------- Product cards ---------- */
.woocommerce ul.products li.product a img { transition: transform 1.2s var(--fibi-slow), opacity .6s ease; }
.woocommerce ul.products li.product:hover a img { transform: scale(1.04); }
.woocommerce ul.products li.product .woocommerce-loop-product__link { position: relative; display: block; overflow: hidden; }
.woocommerce ul.products li.product .fibi-alt-img {
	position: absolute; inset: 0; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; opacity: 0;
}
.woocommerce ul.products li.product:hover .fibi-alt-img { opacity: 1; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-weight: 400 !important; }
.woocommerce ul.products li.product .price del { opacity: .55; font-weight: 300; margin-inline-start: .4rem; }
.woocommerce ul.products li.product .price ins { text-decoration: none; color: var(--fibi-title-deep); }

/* ---------- Academy: real film from the studio ---------- */
.fibi-academy .fibi-film { border-radius: 2px; overflow: hidden; }
.fibi-academy .fibi-film .wp-block-cover__background { background: linear-gradient(180deg, transparent 55%, rgba(28, 20, 18, .75)) !important; opacity: 1 !important; }
.fibi-film__label { letter-spacing: .28em; font-size: .7rem !important; }

/* ---------- Real work: editorial grid ---------- */
.fibi-workgrid {
	display: grid; gap: clamp(.5rem, 1.2vw, 1rem);
	grid-template-columns: 1.25fr 1fr 1fr;
	grid-template-rows: auto auto;
	margin-top: clamp(2rem, 4vw, 3.5rem);
}
.fibi-workgrid figure { margin: 0; overflow: hidden; background: var(--fibi-white); }
.fibi-workgrid figure:first-child { grid-row: span 2; }
.fibi-workgrid img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.6s var(--fibi-slow); aspect-ratio: 1; }
.fibi-workgrid figure:first-child img { aspect-ratio: auto; }
.fibi-workgrid figure:hover img { transform: scale(1.04); }
@media (max-width: 781px) {
	.fibi-workgrid { grid-template-columns: 1fr 1fr; }
	.fibi-workgrid figure:first-child { grid-column: span 2; grid-row: auto; }
	.fibi-workgrid figure:first-child img { aspect-ratio: 4 / 5; }
}

/* ---------- Fade-and-rise, slower and softer ---------- */
.fibi-js .fibi-reveal { transition: opacity 1.2s var(--fibi-slow), transform 1.2s var(--fibi-slow) !important; }

/* ---------- Phone ---------- */
@media (max-width: 781px) {
	.fibi-hero.wp-block-cover { min-height: 86svh !important; }
	.fibi-hero__hint { bottom: 1.25rem; font-size: .7rem !important; padding-inline: 1.25rem; }
	.fibi-hero__scroll { display: none; }
	.fibi-hero .wp-block-buttons { flex-direction: column; align-items: stretch !important; max-width: 20rem; margin-inline: auto; }
	.fibi-swatchline__head { flex-direction: column; align-items: flex-start; gap: .5rem; }
}

@media (prefers-reduced-motion: reduce) {
	.fibi-hero .wp-block-cover__video-background, .fibi-hero__scroll { animation: none !important; transform: none; }
	.fibi-swatchline__track { animation: none; width: auto; overflow-x: auto; }
	.fibi-swatchline__run[aria-hidden] { display: none; }
	.fibi-swatch__dot, .fibi-stage__img, .fibi-workgrid img, .woocommerce ul.products li.product a img { transition: none !important; }
}

/* Hero fixes: no rose glow over the film, deeper veil, hint in flow */
.fibi-hero::after { display: none; }
.fibi-hero .wp-block-cover__background {
	background: linear-gradient(180deg, rgba(28, 20, 18, .7) 0%, rgba(28, 20, 18, .55) 50%, rgba(28, 20, 18, .88) 100%) !important;
}
.fibi-hero__hint { position: static !important; margin-top: 3.5rem !important; }

/* Category tiles, one calm stage for every product */
.fibi-bento--lux .fibi-tile, .fibi-bento--lux .fibi-tile.is-wide {
	background: radial-gradient(70% 70% at 50% 40%, #FFFFFF 0%, #FFF8F6 55%, #FBEDE9 100%);
	color: var(--fibi-ink); border-radius: 2px; box-shadow: inset 0 0 0 1px rgba(126, 82, 69, .08);
}
.fibi-bento--lux .fibi-tile.is-wide .fibi-tile__media img { background: none; border-radius: 0; padding: 0; width: 70%; height: 82%; aspect-ratio: auto; mix-blend-mode: multiply; }
.fibi-bento--lux .fibi-tile.is-hero { background: var(--fibi-espresso); color: var(--fibi-blush); }
.fibi-bento--lux .fibi-tile.is-hero .fibi-tile__media { inset: 0; }
.fibi-bento--lux .fibi-tile.is-hero .fibi-tile__media img { width: 100%; height: 100%; object-fit: cover; mix-blend-mode: normal; }
.fibi-bento--lux .fibi-tile.is-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(28, 20, 18, .7)); pointer-events: none; }
.fibi-bento--lux .fibi-tile.is-hero .fibi-tile__name, .fibi-bento--lux .fibi-tile.is-hero .fibi-tile__go { z-index: 2; color: var(--fibi-blush); }
.fibi-bento--lux .fibi-tile.is-hero .fibi-tile__go { border-color: rgba(255, 241, 241, .6); }

/* Rhythm between light sections */
.fibi-cats { padding-bottom: clamp(2.5rem, 4vw, 4rem) !important; }
.fibi-deals { padding-bottom: clamp(3rem, 5vw, 5rem) !important; }

/* Builder: the photograph fills its stage */
.fibi-spot--light .fibi-stage__img { width: 100%; height: 100%; object-fit: cover; mix-blend-mode: normal; }

/* Cobra: an ivory plinth on espresso */
.fibi-stage--dark { aspect-ratio: 16 / 9; }
.fibi-stage--dark .fibi-stage__img {
	height: 84%; width: auto; aspect-ratio: 4 / 5; padding: 6%; border-radius: 2px;
	background: #FFFFFF;
	object-fit: contain;
	box-shadow: 0 0 0 1px rgba(224, 188, 177, .25), 0 50px 90px -40px rgba(0, 0, 0, .9), 0 0 160px 10px rgba(224, 188, 177, .12);
}

/* Wordmark stays on one line */
.fibi-wordmark__name, .fibi-wordmark__sub { white-space: nowrap; }
@media (max-width: 781px) {
	.fibi-wordmark__name { font-size: 1.5rem; }
	.fibi-wordmark__sub { font-size: .5rem; letter-spacing: .38em; }
	.fibi-header__row { gap: .5rem; }
}

.fibi-swatchsec { padding-inline: 0 !important; }

/* Every tile is a full-bleed photograph with the name on a soft veil */
.fibi-bento--lux .fibi-tile .fibi-tile__media { inset: 0; }
.fibi-bento--lux .fibi-tile .fibi-tile__media img,
.fibi-bento--lux .fibi-tile.is-wide .fibi-tile__media img { width: 100%; height: 100%; object-fit: cover; mix-blend-mode: normal; padding: 0; background: none; border-radius: 0; }
.fibi-bento--lux .fibi-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(255, 241, 241, .92)); pointer-events: none; }
.fibi-bento--lux .fibi-tile .fibi-tile__name, .fibi-bento--lux .fibi-tile .fibi-tile__go { z-index: 2; }

/* Card button: one neat line, centred */
.woocommerce ul.products li.product .button { display: flex !important; align-items: center; justify-content: center; gap: .5rem; height: 46px; min-height: 0 !important; padding: 0 1rem !important; line-height: 1 !important; }
.woocommerce ul.products li.product .button::after { margin: 0 !important; }
@media (max-width: 781px) {
	.fibi-stage--dark { aspect-ratio: 4 / 5; }
	.fibi-stage--dark .fibi-stage__img { height: 78%; }
}

.fibi-bento--lux .fibi-tile.is-wide .fibi-tile__media img { object-fit: contain !important; mix-blend-mode: multiply !important; padding: 4% 0 12% !important; }

/* ---------- Product page: the working-order set ---------- */
.fibi-kit { margin: clamp(3rem, 6vw, 5rem) 0; padding: clamp(1.75rem, 4vw, 3rem); background: var(--fibi-white); box-shadow: inset 0 0 0 1px var(--fibi-line); clear: both; }
.fibi-kit__head { max-width: 40rem; margin-bottom: clamp(1.5rem, 3vw, 2.25rem); }
.fibi-kit__head .fibi-eyebrow { color: var(--fibi-title-deep); margin: 0 0 .5rem; }
.fibi-kit__head h2 { font-size: var(--wp--preset--font-size--xl); margin: 0 0 .75rem; color: var(--fibi-title-deep); }
.fibi-kit__lead { color: var(--fibi-muted); margin: 0; line-height: 1.7; }
.fibi-kit__steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: clamp(.6rem, 1.2vw, 1rem); counter-reset: none; }
.fibi-kit__step { position: relative; }
.fibi-kit__step + .fibi-kit__step::before {
	content: ""; position: absolute; top: 2.15rem; inset-inline-end: calc(100% + .1rem); width: clamp(.5rem, 1.2vw, 1rem); height: 1px; background: var(--fibi-ribbon);
}
.fibi-kit__card {
	display: flex; flex-direction: column; gap: .6rem; height: 100%; padding: 1rem; cursor: pointer;
	background: var(--fibi-blush); box-shadow: inset 0 0 0 1px transparent; transition: box-shadow .35s var(--fibi-slow), background-color .35s;
}
.fibi-kit__step.is-on .fibi-kit__card { box-shadow: inset 0 0 0 1px var(--fibi-title-deep); background: #FFF8F6; }
.fibi-kit__step.is-self .fibi-kit__card { background: #FBEDE9; }
.fibi-kit__step.is-out .fibi-kit__card { opacity: .5; cursor: default; }
.fibi-kit__check { position: absolute; top: 1rem; inset-inline-start: 1rem; width: 18px; height: 18px; accent-color: var(--fibi-title-deep); margin: 0; }
.fibi-kit__no { font-size: .72rem; letter-spacing: .14em; color: var(--fibi-title-deep); font-weight: 600; padding-inline-start: 1.75rem; min-height: 18px; }
.fibi-kit__img { display: block; aspect-ratio: 1; background: var(--fibi-white); overflow: hidden; }
.fibi-kit__img img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.fibi-kit__name { font-size: .9rem; line-height: 1.4; color: var(--fibi-ink); }
.fibi-kit__price { margin-top: auto; font-weight: 600; color: var(--fibi-ink); font-size: .95rem; }
.fibi-kit__price del { opacity: .5; font-weight: 300; margin-inline-start: .35rem; }
.fibi-kit__price ins { text-decoration: none; }
.fibi-kit__more { font-size: .78rem; color: var(--fibi-muted) !important; text-decoration: underline; text-underline-offset: 3px; align-self: flex-start; }
.fibi-kit__bar { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-top: clamp(1.25rem, 3vw, 2rem); padding-top: 1.25rem; border-top: 1px solid var(--fibi-line); }
.fibi-kit__sum { margin: 0; color: var(--fibi-muted); }
.fibi-kit__total { font-family: var(--fibi-display); font-weight: 400; font-size: 1.75rem; color: var(--fibi-ink); margin-inline-start: .35rem; }
.fibi-kit__add { margin-inline-start: auto; border: 0; cursor: pointer; }
.fibi-kit__add[disabled] { opacity: .5; cursor: default; }
.fibi-kit__add.is-busy { opacity: .7; }
.fibi-kit__msg { flex-basis: 100%; margin: 0; color: var(--fibi-title-deep); min-height: 1.2em; }
.fibi-kit__msg a { color: inherit; font-weight: 600; }
@media (max-width: 781px) {
	.fibi-kit__steps { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: .5rem; margin-inline: calc(-1 * clamp(1.75rem, 4vw, 3rem)); padding-inline: clamp(1.75rem, 4vw, 3rem); }
	.fibi-kit__step { flex: 0 0 62%; scroll-snap-align: start; }
	.fibi-kit__step + .fibi-kit__step::before { display: none; }
	.fibi-kit__add { width: 100%; margin-inline-start: 0; }
}

/* ---------- Product page: shade picker ---------- */
.fibi-shadepick { margin: 1.25rem 0 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--fibi-line); }
.fibi-shadepick__label { font-size: .8rem; letter-spacing: .08em; color: var(--fibi-muted); margin: 0 0 .75rem; }
.fibi-shadepick .fibi-tones { margin: 0; }
.fibi-tone.is-current img { box-shadow: 0 0 0 2px var(--fibi-blush), 0 0 0 3px var(--fibi-title-deep); }
.fibi-tone.is-current span { color: var(--fibi-title-deep); font-weight: 600; }

/* Summary scrolls with the page, so the set below never slides under it */
.woocommerce div.product .summary { position: static !important; }
