/* LAFU Blocks section library. Only theme presets and custom properties are used, so every
   section takes the site's design set (colours, fonts, radius, shadow) automatically. */
:root {
	--lafu-radius: var(--wp--custom--radius, 14px);
	--lafu-radius-lg: var(--wp--custom--radius-large, 28px);
	--lafu-shadow: var(--wp--custom--shadow, 0 18px 40px -24px rgba(0, 0, 0, .35));
	--lafu-primary: var(--wp--preset--color--primary, #1f6f5c);
	--lafu-accent: var(--wp--preset--color--accent, #e0794a);
	--lafu-base: var(--wp--preset--color--base, #fff);
	--lafu-text: var(--wp--preset--color--contrast, #111);
	--lafu-soft: var(--wp--preset--color--muted, #f2f2f2);
	--lafu-soft-text: var(--wp--preset--color--muted-contrast, #555);
	--lafu-surface: var(--wp--preset--color--surface, #fff);
	--lafu-line: var(--wp--preset--color--line, rgba(0, 0, 0, .1));
}

/* Sections */
.lafu-section { padding-block: var(--wp--preset--spacing--60, 5rem); position: relative; isolation: isolate; overflow-x: clip; }
.lafu-section.is-tight { padding-block: var(--wp--preset--spacing--50, 3rem); }
.lafu-soft { background: var(--lafu-soft); }
.lafu-dark { --lafu-ink: var(--wp--custom--ink, var(--lafu-text)); --lafu-on-ink: var(--wp--custom--on-ink, var(--lafu-base)); background: var(--lafu-ink); color: var(--lafu-on-ink); }
.lafu-dark :where(h1, h2, h3, h4, p, li, summary) { color: var(--lafu-on-ink); }
.lafu-dark .lafu-lead, .lafu-dark .lafu-muted { color: color-mix(in srgb, var(--lafu-on-ink) 72%, transparent); }
.lafu-dark .lafu-pill { background: color-mix(in srgb, var(--lafu-on-ink) 10%, transparent); border-color: color-mix(in srgb, var(--lafu-on-ink) 22%, transparent); color: var(--lafu-on-ink); }
.lafu-dark .wp-block-button.is-style-outline .wp-block-button__link { color: var(--lafu-on-ink); border-color: currentColor; }
.lafu-primary-bg { background: var(--lafu-primary); color: var(--wp--preset--color--primary-contrast, #fff); }
.lafu-primary-bg :where(h1, h2, h3, h4, p) { color: inherit; }
.lafu-primary-bg .wp-block-button__link { background: var(--wp--preset--color--primary-contrast, #fff); color: var(--lafu-primary); }

/* Type */
.lafu-eyebrow { display: inline-flex; align-items: center; gap: .5rem; font-size: .8rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--lafu-primary); margin: 0; }
.lafu-dark .lafu-eyebrow { color: var(--lafu-accent); }
.lafu-pill { display: inline-flex; width: fit-content; align-items: center; gap: .5rem; padding: .4rem .9rem; border-radius: 999px; border: 1px solid var(--lafu-line); background: var(--lafu-surface); font-size: .85rem; font-weight: 600; margin: 0; }
.lafu-pill::before { content: ""; width: .5rem; height: .5rem; border-radius: 50%; background: var(--lafu-primary); box-shadow: 0 0 0 4px color-mix(in srgb, var(--lafu-primary) 22%, transparent); }
.lafu-lead { font-size: clamp(1.1rem, 1.6vw, 1.3rem); line-height: 1.6; color: var(--lafu-soft-text); max-width: 46ch; }
.has-text-align-center.lafu-lead, .lafu-center .lafu-lead { margin-inline: auto; }
.lafu-muted { color: var(--lafu-soft-text); }
.lafu-giant { font-size: clamp(3rem, 10vw, 8rem) !important; line-height: .92 !important; letter-spacing: -0.05em; }
.lafu-gradient-text { background: linear-gradient(100deg, var(--lafu-primary), var(--lafu-accent)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.lafu-center { text-align: center; }
.lafu-center > * { margin-inline: auto; }
.lafu-measure { max-width: 52ch; }

/* Cards */
.lafu-card { background: var(--lafu-surface); border: 1px solid var(--lafu-line); border-radius: var(--lafu-radius); padding: clamp(1.4rem, 3vw, 2.2rem); box-shadow: var(--lafu-shadow); height: 100%; box-sizing: border-box; transition: transform .35s ease, box-shadow .35s ease; }
.lafu-card:hover { transform: translateY(-4px); }
.lafu-card > *:first-child { margin-top: 0; }
.lafu-card.is-flat { box-shadow: none; }
.lafu-card.is-featured { background: var(--lafu-text); color: var(--lafu-base); border-color: transparent; }
.lafu-card.is-featured :where(h2, h3, h4, p, li) { color: inherit; }
.lafu-card.is-featured .lafu-muted { color: color-mix(in srgb, var(--lafu-base) 70%, transparent); }
.lafu-dark .lafu-card { background: color-mix(in srgb, var(--lafu-on-ink) 6%, transparent); border-color: color-mix(in srgb, var(--lafu-on-ink) 14%, transparent); color: var(--lafu-on-ink); }
.lafu-icon { width: 3rem; height: 3rem; border-radius: calc(var(--lafu-radius) * .8); display: grid; place-items: center; font-size: 1.35rem; background: color-mix(in srgb, var(--lafu-primary) 14%, transparent); color: var(--lafu-primary); margin: 0 0 1rem; }

/* Art: CSS-only visuals in the site's own colours (TEKORI swaps in real images). */
.lafu-art { border-radius: var(--lafu-radius-lg); min-height: 420px; position: relative; overflow: hidden; background:
	radial-gradient(60% 60% at 25% 30%, color-mix(in srgb, var(--lafu-accent) 85%, transparent), transparent 70%),
	radial-gradient(55% 55% at 75% 70%, color-mix(in srgb, var(--lafu-primary) 90%, transparent), transparent 70%),
	linear-gradient(135deg, var(--lafu-soft), var(--lafu-surface)); box-shadow: var(--lafu-shadow); }
.lafu-art::after { content: ""; position: absolute; inset: 12%; border-radius: var(--lafu-radius); background: color-mix(in srgb, var(--lafu-base) 70%, transparent); backdrop-filter: blur(18px); border: 1px solid color-mix(in srgb, var(--lafu-base) 60%, transparent); }
.lafu-art.is-portrait { min-height: 520px; }
.lafu-art.is-plain::after { display: none; }
.lafu-art.is-dots { background:
	radial-gradient(circle at 1px 1px, color-mix(in srgb, var(--lafu-text) 25%, transparent) 1px, transparent 0) 0 0 / 22px 22px,
	linear-gradient(160deg, color-mix(in srgb, var(--lafu-primary) 30%, var(--lafu-soft)), var(--lafu-soft)); }
.lafu-art.is-dots::after { inset: auto 10% 10% 10%; height: 38%; }
.lafu-art.is-ring { background: conic-gradient(from 120deg at 50% 50%, var(--lafu-primary), var(--lafu-accent), var(--lafu-primary)); }
.lafu-art.is-ring::after { inset: 18%; border-radius: 50%; }
.lafu-art.is-small { min-height: 240px; }
.lafu-avatar { width: 3.25rem; height: 3.25rem; border-radius: 50%; background: linear-gradient(135deg, var(--lafu-primary), var(--lafu-accent)); flex: none; margin: 0; }
.lafu-photo { aspect-ratio: 4 / 5; border-radius: var(--lafu-radius); background: linear-gradient(160deg, color-mix(in srgb, var(--lafu-primary) 55%, var(--lafu-soft)), color-mix(in srgb, var(--lafu-accent) 45%, var(--lafu-soft))); margin: 0 0 1rem; }

/* Hero decoration */
.lafu-glow::before { content: ""; position: absolute; z-index: -1; inset: -20% -10% auto auto; width: 60vw; max-width: 760px; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--lafu-primary) 45%, transparent), transparent 65%); filter: blur(40px); }
.lafu-glow::after { content: ""; position: absolute; z-index: -1; inset: auto auto -25% -10%; width: 45vw; max-width: 560px; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--lafu-accent) 40%, transparent), transparent 65%); filter: blur(40px); }
.lafu-dark.lafu-grid-bg { --lafu-line: color-mix(in srgb, var(--lafu-on-ink) 9%, transparent); }
.lafu-grid-bg { background-image: linear-gradient(var(--lafu-line) 1px, transparent 1px), linear-gradient(90deg, var(--lafu-line) 1px, transparent 1px); background-size: 56px 56px; background-position: center top; }
.lafu-line-top { border-top: 1px solid var(--lafu-line); }

/* Numbers */
.lafu-stat { font-family: var(--wp--preset--font-family--display); font-size: clamp(2.6rem, 6vw, 4.4rem) !important; font-weight: var(--wp--custom--heading-weight, 700); letter-spacing: -0.04em; line-height: 1; margin: 0; }
.lafu-stat + p { margin-top: .4rem; }

/* Pricing */
.lafu-price { font-family: var(--wp--preset--font-family--display); font-size: clamp(2.4rem, 5vw, 3.4rem) !important; font-weight: var(--wp--custom--heading-weight, 700); letter-spacing: -0.03em; line-height: 1; margin: .5rem 0 0; }
.lafu-price-note { font-size: .9rem; margin-top: .3rem; }
.lafu-checks { list-style: none; padding: 0; margin: 1.2rem 0 1.6rem; display: grid; gap: .6rem; }
.lafu-checks li { position: relative; padding-left: 1.8rem; }
.lafu-checks li::before { content: ""; position: absolute; left: 0; top: .3em; width: 1.1rem; height: 1.1rem; border-radius: 50%; background: color-mix(in srgb, var(--lafu-primary) 18%, transparent); }
.lafu-checks li::after { content: ""; position: absolute; left: .38rem; top: .48em; width: .3rem; height: .55rem; border: solid var(--lafu-primary); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.lafu-card.is-featured .lafu-checks li::after { border-color: var(--lafu-accent); }
.lafu-badge { display: inline-block; width: fit-content; padding: .25rem .7rem; border-radius: 999px; background: var(--lafu-accent); color: #fff; font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; margin: 0; }

/* Testimonials */
.lafu-quote-card { display: flex; flex-direction: column; gap: 1.2rem; }
.lafu-stars { color: var(--lafu-accent); letter-spacing: .15em; margin: 0; }
.lafu-person { display: flex; align-items: center; gap: .8rem; margin-top: auto; }
.lafu-person p { margin: 0; line-height: 1.3; }
.lafu-big-quote { font-family: var(--wp--preset--font-family--display); font-size: clamp(1.6rem, 3.4vw, 2.6rem) !important; line-height: 1.25; letter-spacing: -0.02em; border: 0; padding: 0; margin: 0; }
.lafu-big-quote p { font-size: inherit; }
.lafu-big-quote cite { display: block; margin-top: 1.4rem; font-family: var(--wp--preset--font-family--body); font-size: 1rem; font-style: normal; color: var(--lafu-soft-text); }

/* FAQ */
.lafu-faq .wp-block-details { border-bottom: 1px solid var(--lafu-line); padding: 1.1rem 0; margin: 0; }
.lafu-faq .wp-block-details summary { font-weight: 600; font-size: 1.1rem; cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.lafu-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.lafu-faq .wp-block-details summary::after { content: "+"; font-size: 1.4rem; line-height: 1; color: var(--lafu-primary); transition: transform .25s ease; }
.lafu-faq .wp-block-details[open] summary::after { transform: rotate(45deg); }
.lafu-faq .wp-block-details > p { color: var(--lafu-soft-text); margin: .8rem 0 0; }

/* Marquee of logos/words */
.lafu-marquee { overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); }
.lafu-marquee > .wp-block-group { display: flex; gap: 3.5rem; width: max-content; animation: lafu-scroll 38s linear infinite; }
.lafu-marquee p { white-space: nowrap; font-family: var(--wp--preset--font-family--display); font-size: 1.5rem; font-weight: 700; opacity: .55; margin: 0; }
@keyframes lafu-scroll { to { transform: translateX(-50%); } }

/* Steps */
.lafu-steps { counter-reset: lafu-step; }
.lafu-step { counter-increment: lafu-step; border-top: 2px solid var(--lafu-text); padding-top: 1.4rem; }
.lafu-step::before { content: "0" counter(lafu-step); display: block; font-family: var(--wp--preset--font-family--display); font-size: 3rem; font-weight: 800; line-height: 1; color: transparent; -webkit-text-stroke: 1.5px var(--lafu-text); margin-bottom: .8rem; }
.lafu-dark .lafu-step { border-color: var(--lafu-on-ink); }
.lafu-dark .lafu-step::before { -webkit-text-stroke-color: var(--lafu-on-ink); }

/* Menu / price list */
.lafu-menu-row { display: flex; align-items: baseline; gap: .8rem; padding: .9rem 0; border-bottom: 1px dashed var(--lafu-line); }
.lafu-menu-row > p { margin: 0; }
.lafu-menu-row > p:first-child { font-weight: 600; }
.lafu-menu-row > p:nth-child(2) { flex: 1; color: var(--lafu-soft-text); font-size: .95rem; }
.lafu-menu-row > p:last-child { font-family: var(--wp--preset--font-family--display); font-weight: 700; white-space: nowrap; }

/* Headers and footers */
.lafu-header { padding-block: 1rem; }
.lafu-header.is-sticky { position: sticky; top: 0; z-index: 50; backdrop-filter: blur(12px); background: color-mix(in srgb, var(--lafu-base) 82%, transparent); border-bottom: 1px solid var(--lafu-line); }
.lafu-header.is-overlay { position: absolute; inset: 0 0 auto 0; z-index: 50; }
.lafu-header .wp-block-site-title { font-family: var(--wp--preset--font-family--display); font-weight: 800; letter-spacing: -0.03em; font-size: 1.35rem; margin: 0; }
.lafu-header .wp-block-site-title a { text-decoration: none; color: inherit; }
.lafu-header .wp-block-navigation a { text-decoration: none; }
.lafu-topbar { font-size: .85rem; padding-block: .5rem; background: var(--lafu-text); color: var(--lafu-base); }
.lafu-topbar p { margin: 0; }
.lafu-footer { padding-block: var(--wp--preset--spacing--60, 4rem) var(--wp--preset--spacing--40, 2rem); }
.lafu-footer h4 { font-size: .85rem; text-transform: uppercase; letter-spacing: .12em; margin: 0 0 1rem; color: var(--lafu-soft-text); }
.lafu-footer .wp-block-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; }
.lafu-footer a { color: inherit; text-decoration: none; }
.lafu-footer a:hover { text-decoration: underline; }
.lafu-footer-bottom { border-top: 1px solid var(--lafu-line); padding-top: 1.4rem; margin-top: var(--wp--preset--spacing--50, 3rem); font-size: .9rem; color: var(--lafu-soft-text); }
.lafu-dark .lafu-footer-bottom { border-color: color-mix(in srgb, var(--lafu-on-ink) 16%, transparent); }

/* Bento */
.lafu-bento { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.lafu-bento > .is-wide { grid-column: span 2; }
.lafu-bento > .is-tall { grid-row: span 2; }
@media (max-width: 781px) { .lafu-bento { grid-template-columns: 1fr; } .lafu-bento > .is-wide, .lafu-bento > .is-tall { grid-column: auto; grid-row: auto; } }

/* Motion: scroll reveal where supported, never for people who prefer less motion. */
@supports (animation-timeline: view()) {
	.lafu-reveal { animation: lafu-rise linear both; animation-timeline: view(); animation-range: entry 0% cover 25%; }
	@keyframes lafu-rise { from { opacity: 0; transform: translateY(32px); } to { opacity: 1; transform: none; } }
}
@media (prefers-reduced-motion: reduce) {
	.lafu-reveal, .lafu-marquee > .wp-block-group { animation: none !important; }
	.lafu-card { transition: none; }
}

/* Rows inside a section breathe the same everywhere. */
.lafu-section .wp-block-columns + .wp-block-columns,
.lafu-section .wp-block-group + .wp-block-columns { margin-top: var(--wp--preset--spacing--50, 3rem); }
.lafu-section .wp-block-columns + .wp-block-columns.lafu-steps { margin-top: var(--wp--preset--spacing--40, 2rem); }
@media (max-width: 781px) { .lafu-stat-row { display: grid !important; grid-template-columns: 1fr 1fr; gap: 2rem 1.25rem; } }

/* Decorative shapes hold a tiny spacer only so the editor never shows an empty block. */
.lafu-art > .wp-block-spacer, .lafu-avatar > .wp-block-spacer, .lafu-photo > .wp-block-spacer { display: none; }
.lafu-avatar, .lafu-photo { flex-shrink: 0; }

/* Sections sit flush: no strip of page background between two coloured sections. */
:where(.wp-block-post-content, .entry-content) > .lafu-section,
:where(.wp-block-post-content, .entry-content) > .lafu-section + * { margin-block-start: 0; }
.wp-site-blocks > * + * { margin-block-start: 0; }

/* ---- v2: photo sections ---------------------------------------------------------------- */
.lafu-section .wp-block-image { margin: 0; }
.lafu-section .wp-block-image img, .lafu-strip img { display: block; width: 100%; height: 100%; object-fit: cover; }
.lafu-photo-xl img, .lafu-band-img img, .lafu-card-img img, .lafu-product-img img, .lafu-team-img img, .lafu-mini-img img, .lafu-gallery img, .lafu-collage img { border-radius: var(--lafu-radius); }
.lafu-photo-xl img { border-radius: var(--lafu-radius-lg); box-shadow: var(--lafu-shadow); }
.lafu-arch img { border-radius: 999px 999px var(--lafu-radius-lg) var(--lafu-radius-lg); }
.lafu-band-img { margin-block: var(--wp--preset--spacing--50, 3rem) !important; }
.lafu-band-img img { border-radius: var(--lafu-radius-lg); }
.lafu-measure-wide { max-width: 40rem; }

/* Hero covers */
.lafu-hero-cover, .lafu-stats-cover { padding-inline: max(1.25rem, calc((100vw - var(--wp--style--global--wide-size, 1280px)) / 2)) !important; }
.lafu-hero-cover h1 { font-size: clamp(2.6rem, 6.4vw, 5.4rem) !important; line-height: 1.02; letter-spacing: -0.035em; margin-block: 1rem; }
.lafu-hero-cover .lafu-lead, .wp-block-cover .lafu-lead, .wp-block-cover .lafu-muted { color: rgba(255, 255, 255, .86); }
.wp-block-cover .lafu-eyebrow { color: #fff; opacity: .9; }
.wp-block-cover .lafu-pill { background: rgba(255, 255, 255, .14); border-color: rgba(255, 255, 255, .28); color: #fff; backdrop-filter: blur(8px); }
.wp-block-cover .wp-block-button.is-style-outline .wp-block-button__link { color: #fff; border-color: rgba(255, 255, 255, .7); }
.lafu-fade-left .wp-block-cover__background { background: linear-gradient(90deg, rgba(0, 0, 0, .78), rgba(0, 0, 0, .15) 75%) !important; opacity: 1 !important; }
.lafu-hero-card { max-width: 34rem; background: var(--lafu-surface) !important; color: var(--lafu-text); }
.lafu-hero-card :where(h1, h2, p) { color: var(--lafu-text); }
.lafu-hero-card .lafu-lead { color: var(--lafu-soft-text) !important; }
.lafu-hero-card .lafu-eyebrow { color: var(--lafu-primary); }
.lafu-hero-card .wp-block-button.is-style-outline .wp-block-button__link { color: var(--lafu-text); border-color: currentColor; }
.lafu-hero-card h1 { font-size: clamp(2.2rem, 4.4vw, 3.6rem) !important; }
.lafu-parallax { background-attachment: fixed; }

/* Floating highlight on a hero photo */
.lafu-float-wrap { position: relative; }
.lafu-float { position: absolute; left: -1.5rem; bottom: 2rem; height: auto !important; padding: 1.1rem 1.4rem !important; max-width: 15rem; }
.lafu-float .lafu-stat { font-size: 2.4rem !important; }
.lafu-float p { margin: 0; }
@media (max-width: 781px) { .lafu-float { left: 1rem; bottom: 1rem; } }

/* Collage */
.lafu-collage { display: grid !important; grid-template-columns: 1.1fr 1fr; grid-template-rows: auto auto; gap: 1rem; }
.lafu-collage > .lafu-c1 { grid-row: span 2; }
.lafu-collage > .lafu-c2 { margin-top: 3rem !important; }
.lafu-collage img { box-shadow: var(--lafu-shadow); }
.lafu-lift { transform: translateY(-2.5rem); }
@media (max-width: 781px) { .lafu-lift { transform: none; } .lafu-collage > .lafu-c2 { margin-top: 0 !important; } }

/* Cards with photos */
.lafu-card.is-media { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.lafu-card.is-media .lafu-card-img img { border-radius: 0; transition: transform .6s ease; }
.lafu-card.is-media:hover .lafu-card-img img { transform: scale(1.05); }
.lafu-card-img { overflow: hidden; }
.lafu-card-body { padding: 1.4rem 1.6rem 1.6rem; display: flex; flex-direction: column; flex: 1; }
.lafu-card-body > * { margin: 0 0 .5rem; }
.lafu-price-tag { font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 1.15rem; color: var(--lafu-primary); margin-top: auto !important; }
.lafu-dark .lafu-price-tag { color: var(--lafu-accent); }
.lafu-link-arrow { font-weight: 600; margin: 0; }
.lafu-link-arrow::after { content: " \2192"; color: var(--lafu-primary); }

/* Zigzag media rows */
.lafu-zigzag-list { display: grid; gap: clamp(2rem, 5vw, 4rem); }
.wp-block-media-text.lafu-zigzag { grid-template-rows: minmax(400px, auto); }
.lafu-zigzag .wp-block-media-text__media { border-radius: var(--lafu-radius-lg); overflow: hidden; height: 100%; min-height: 400px; }
@media (max-width: 600px) { .wp-block-media-text.lafu-zigzag { grid-template-rows: auto; } .lafu-zigzag .wp-block-media-text__media { min-height: 260px; } }
.lafu-zigzag .wp-block-media-text__content { padding-inline: clamp(1.5rem, 5vw, 4.5rem); }

/* Photo tiles (covers inside columns and bento) */
.lafu-tile { border-radius: var(--lafu-radius-lg); overflow: hidden; height: 100%; padding: 1.8rem !important; }
.lafu-tile img.wp-block-cover__image-background { transition: transform .8s ease; }
.lafu-tile:hover img.wp-block-cover__image-background { transform: scale(1.06); }
.lafu-tile h3 { color: #fff; font-size: clamp(1.4rem, 2.4vw, 2rem); margin: .3rem 0 1rem; }
.lafu-tile p { color: rgba(255, 255, 255, .86); }
.lafu-tile .lafu-link-arrow a, .lafu-tile .lafu-link-arrow::after { color: #fff; font-weight: 600; }

/* Products */
.lafu-product { display: flex; flex-direction: column; gap: .35rem; }
.lafu-product > * { margin: 0; }
.lafu-product-media { position: relative; margin-bottom: .6rem !important; overflow: hidden; border-radius: var(--lafu-radius); }
.lafu-product-img img { transition: transform .6s ease; }
.lafu-product:hover .lafu-product-img img { transform: scale(1.05); }
.lafu-badge-float { position: absolute; top: .9rem; left: .9rem; z-index: 2; }
.lafu-product-name { font-size: 1.1rem !important; }
.lafu-product .lafu-muted { font-size: .92rem; }
.lafu-minis { display: grid; gap: 1rem; margin-block: 1.6rem !important; }
.lafu-mini { display: flex; align-items: center; gap: 1rem; padding: .8rem; border: 1px solid var(--lafu-line); border-radius: var(--lafu-radius); background: var(--lafu-surface); }
.lafu-mini-img { width: 4.5rem; flex: none; }
.lafu-mini h4, .lafu-mini p { margin: 0; }

/* Overlap story */
.lafu-overlap-wrap { position: relative; }
.lafu-overlap-wrap .lafu-band-img { margin: 0 !important; }
.lafu-overlap { position: relative; max-width: 36rem; margin: -9rem clamp(0rem, 5vw, 4rem) 0 auto !important; height: auto; }
@media (max-width: 781px) { .lafu-overlap { margin: -3rem 1rem 0 !important; } }

/* Numbers over a photo */
.lafu-stats-cover .lafu-stat { color: #fff; }
.lafu-stats-cover p { color: rgba(255, 255, 255, .82); }

/* People */
.lafu-avatar-img { width: 3.25rem; flex: none; }
.lafu-avatar-img img { border-radius: 50% !important; aspect-ratio: 1; }
.lafu-person.is-row { padding-block: 1rem; border-bottom: 1px solid var(--lafu-line); margin: 0; }
.lafu-person.is-row h4 { margin: 0; }
.lafu-team-img { overflow: hidden; border-radius: var(--lafu-radius); margin-bottom: 1rem !important; }
.lafu-team-img img { filter: grayscale(.25); transition: filter .5s ease, transform .6s ease; }
.lafu-team-img:hover img { filter: none; transform: scale(1.04); }

/* CTA card */
.lafu-cta-card { padding: clamp(1.6rem, 4vw, 3.4rem) !important; background: var(--lafu-soft); }
.lafu-cta-card:hover { transform: none; }

/* Gallery */
.lafu-gallery { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-top: 2rem !important; }
.lafu-gallery > .lafu-g1 { grid-column: span 2; grid-row: span 2; }
.lafu-gallery > .lafu-g1 img { aspect-ratio: auto !important; height: 100%; }
.lafu-gallery > figure { overflow: hidden; border-radius: var(--lafu-radius); margin: 0 !important; }
.lafu-gallery img { transition: transform .6s ease; }
.lafu-gallery > figure:hover img { transform: scale(1.06); }
@media (max-width: 781px) { .lafu-gallery { grid-template-columns: 1fr 1fr; } }
.lafu-strip { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 0; }
.lafu-strip > figure { margin: 0 !important; }
@media (max-width: 781px) { .lafu-strip { grid-template-columns: 1fr 1fr; } }

/* Contact list */
.lafu-contact-list h4 { font-size: .8rem; text-transform: uppercase; letter-spacing: .12em; color: var(--lafu-soft-text); margin: 1.4rem 0 .2rem; }
.lafu-contact-list p { margin: 0; font-size: 1.1rem; font-weight: 600; }

@media (prefers-reduced-motion: reduce) {
	.lafu-card-img img, .lafu-product-img img, .lafu-tile img, .lafu-gallery img, .lafu-team-img img { transition: none; }
	.lafu-parallax { background-attachment: scroll; }
}

/* v2 review fixes */
.lafu-step.is-plain { border-top-width: 1px; }
.lafu-step.is-plain::before { display: none; }
.wp-block-cover .lafu-big-quote cite, .wp-block-cover .wp-block-quote cite { color: rgba(255, 255, 255, .8); font-size: 1rem; }
.lafu-big-quote + .lafu-muted { margin-top: .2rem; }
.lafu-primary-bg .wp-block-column:last-child > .wp-block-buttons { justify-content: flex-end; }
@media (max-width: 781px) { .lafu-primary-bg .wp-block-column:last-child > .wp-block-buttons { justify-content: flex-start; } }

/* Headers and footers, set two */
.lafu-header.is-light, .lafu-header.is-light a, .lafu-header.is-light .wp-block-site-title a { color: #fff; }
.lafu-header.is-light .wp-block-button.is-style-outline .wp-block-button__link { color: #fff; border-color: rgba(255, 255, 255, .7); }
.lafu-header.is-light .wp-block-navigation__responsive-container-open { color: #fff; }
.lafu-header.is-floating { background: transparent; border: 0; backdrop-filter: none; padding-inline: 1rem; }
.lafu-pill-bar { background: color-mix(in srgb, var(--lafu-surface) 88%, transparent); backdrop-filter: blur(14px); border: 1px solid var(--lafu-line); border-radius: 999px; padding: .55rem .6rem .55rem 1.4rem; box-shadow: var(--lafu-shadow); }
.lafu-header-split > * { flex: 1; }
.lafu-header-split > .wp-block-site-title { text-align: center; }
.lafu-header-split > .wp-block-buttons { justify-content: flex-end; }
@media (max-width: 781px) { .lafu-header-split > .wp-block-navigation { order: 3; flex: none; } .lafu-header-split > .wp-block-site-title { text-align: left; } }
.lafu-header .wp-block-search__button { background: transparent; color: inherit; border: 0; padding: .4rem; }
.lafu-footer-giant { margin-top: var(--wp--preset--spacing--50, 3rem); overflow: hidden; }
.lafu-footer-giant .wp-block-site-title { font-family: var(--wp--preset--font-family--display); font-size: clamp(3.5rem, 15vw, 13rem) !important; line-height: .85; letter-spacing: -0.06em; font-weight: 800; margin: 0; }
.lafu-footer-giant .wp-block-site-title a { color: inherit; text-decoration: none; }
.lafu-footer-news { margin-bottom: var(--wp--preset--spacing--50, 3rem) !important; height: auto; }
.lafu-footer-news:hover { transform: none; }
.lafu-footer-news .wp-block-buttons { justify-content: flex-end; }
@media (max-width: 781px) { .lafu-footer-news .wp-block-buttons { justify-content: flex-start; } }

/* ---- v3: headers, footers, shop headers ------------------------------------------------- */
.lafu-small { font-size: .85rem !important; margin: 0; }
.lafu-strong { font-weight: 700; margin: 0; }
.lafu-brand { gap: .6rem !important; align-items: center; }
.lafu-brand .wp-block-site-logo img { display: block; }
/* A real logo (often a wordmark) shows at a readable height and replaces the written site name. */
.lafu-brand:has(.wp-block-site-logo img) .wp-block-site-logo img { width: auto !important; height: 3.75rem; max-width: 18rem; object-fit: contain; }
@media (max-width: 600px) { .lafu-brand:has(.wp-block-site-logo img) .wp-block-site-logo img { height: 2.9rem; max-width: 12rem; } }
.lafu-brand:has(.wp-block-site-logo img) .wp-block-site-title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.lafu-header, .lafu-footer { box-sizing: border-box; }
.lafu-header > .wp-block-group, .lafu-header-stack .lafu-header > .wp-block-group { gap: 1.5rem; align-items: center; }
.lafu-header .wp-block-navigation { font-size: .95rem; font-weight: 500; }
.lafu-header-stack { position: sticky; top: 0; z-index: 50; }
.lafu-header-stack > .lafu-header { position: relative; }
.lafu-topbar .wp-block-social-links { gap: .5rem; }
.lafu-gap-lg { gap: 2.5rem !important; }
.lafu-stack { gap: .9rem !important; }
.lafu-header-info { gap: 2rem !important; align-items: center; }
.lafu-header-info p { margin: 0; line-height: 1.25; }
.lafu-header.is-two-row { padding-bottom: 0; }
.lafu-header.is-two-row > .lafu-navband { margin-top: .9rem; }
.lafu-navband { border-top: 1px solid var(--lafu-line); padding-block: .55rem; }
.lafu-navband.lafu-dark { border-top: 0; }
.lafu-header.is-line { border-bottom: 1px solid var(--lafu-line); }
.lafu-header.is-glass, .lafu-footer.is-glass { background: color-mix(in srgb, var(--lafu-surface) 70%, transparent); backdrop-filter: blur(16px) saturate(1.4); border-bottom: 1px solid color-mix(in srgb, var(--lafu-line) 60%, transparent); }
.lafu-header.is-tall { padding-block: 1.8rem; }
.lafu-header.is-tall .wp-block-site-title { font-size: 1.6rem; }
.lafu-header.is-compact { padding-block: .45rem; }
.lafu-header.is-compact .wp-block-site-title { font-size: 1.1rem; }
.lafu-header.is-stripe { border-top: 4px solid var(--lafu-accent); }
.lafu-header.is-boxed { padding: .8rem 1rem; background: transparent; }
.lafu-header.is-boxed > .wp-block-group:first-child { background: var(--lafu-surface); border: 1px solid var(--lafu-line); border-radius: var(--lafu-radius); padding: .7rem 1.2rem; box-shadow: var(--lafu-shadow); }
.lafu-header.lafu-primary-bg .wp-block-navigation a, .lafu-header.lafu-primary-bg .wp-block-site-title a { color: var(--wp--preset--color--primary-contrast, #fff); }
.lafu-header.lafu-dark .wp-block-navigation a, .lafu-header.lafu-dark .wp-block-site-title a { color: var(--lafu-on-ink); }
.lafu-header.is-burger .wp-block-navigation__responsive-container-open { display: flex !important; }
/* Pill and overlay variants take the treatment as a tone. */
.lafu-header.is-floating.lafu-dark, .lafu-header.is-floating.lafu-primary-bg, .lafu-header.is-floating.lafu-soft { background: transparent; color: inherit; }
.lafu-header.is-floating.lafu-dark .lafu-pill-bar { background: var(--lafu-ink); color: var(--lafu-on-ink); border-color: transparent; }
.lafu-header.is-floating.lafu-primary-bg .lafu-pill-bar { background: var(--lafu-primary); color: var(--wp--preset--color--primary-contrast, #fff); border-color: transparent; }
.lafu-header.is-floating.lafu-soft .lafu-pill-bar { background: var(--lafu-soft); }
.lafu-header.is-floating.is-compact .lafu-pill-bar { padding-block: .3rem; }
.lafu-header.is-floating.is-tall { padding-top: 1.5rem; }
.lafu-header.is-floating.is-stripe { border-top: 0; }
.lafu-header.is-floating.is-stripe .lafu-pill-bar { box-shadow: inset 0 -3px 0 var(--lafu-accent), var(--lafu-shadow); }
.lafu-header.is-overlay { padding-block: 1.2rem; }
.lafu-header.is-overlay.is-light .wp-block-navigation a, .lafu-header.is-overlay.is-light .wp-block-site-title a { color: #fff; }
.lafu-header.ov-dark, .lafu-header.ov-glass { background: linear-gradient(180deg, rgba(0, 0, 0, .55), transparent); }
.lafu-header.ov-glass { backdrop-filter: blur(10px); }
.lafu-header.ov-brand { background: linear-gradient(180deg, color-mix(in srgb, var(--lafu-primary) 70%, transparent), transparent); }
.lafu-header.ov-line { border-bottom: 1px solid rgba(255, 255, 255, .25); }
.lafu-header.ov-tall { padding-block: 2.2rem; }
.lafu-header.ov-compact { padding-block: .6rem; }
.lafu-header.ov-stripe { border-top: 4px solid var(--lafu-accent); }
.lafu-header.ov-boxed > .wp-block-group { background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .22); border-radius: var(--lafu-radius); padding: .6rem 1.2rem; backdrop-filter: blur(10px); }
.lafu-header.ov-soft { background: rgba(255, 255, 255, .08); }
/* Search and shop icons */
.lafu-search .wp-block-search__button { background: transparent; color: inherit; border: 0; padding: .35rem; }
.lafu-search.is-field { flex: 1; max-width: 520px; }
.lafu-search.is-field .wp-block-search__inside-wrapper { border: 1px solid var(--lafu-line); border-radius: 999px; padding: .2rem .3rem .2rem 1rem; background: var(--lafu-surface); }
.lafu-search.is-field input { border: 0; background: transparent; color: var(--lafu-text); }
.lafu-shop-icons { gap: .8rem !important; align-items: center; }
.lafu-shop-icons .wc-block-mini-cart__button, .lafu-shop-icons .wc-block-customer-account a { color: inherit; }
.is-shop-search > .wp-block-group:first-child { gap: 2rem; }
@media (max-width: 781px) {
	.lafu-header-info, .lafu-header .lafu-search.is-field, .lafu-header-split > .wp-block-navigation + .wp-block-site-title + p { display: none !important; }
	.lafu-gap-lg { gap: 1rem !important; }
}

/* Footers */
.lafu-footer-inner > * + * { margin-top: var(--wp--preset--spacing--50, 3rem); }
.lafu-footer .lafu-links { list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; }
.lafu-footer .lafu-links a { color: inherit; text-decoration: none; opacity: .85; }
.lafu-footer .lafu-links a:hover { opacity: 1; text-decoration: underline; }
.lafu-footer h4 { font-size: .8rem; text-transform: uppercase; letter-spacing: .12em; margin: 0 0 1rem; }
.lafu-footer.lafu-dark h4 { color: var(--lafu-accent); }
.lafu-footer.lafu-primary-bg .lafu-footer-bottom { border-color: rgba(255, 255, 255, .25); }
.lafu-footer.is-glass { border-top: 1px solid var(--lafu-line); border-bottom: 0; }
.lafu-footer.is-tall { padding-block: var(--wp--preset--spacing--70, 7rem) var(--wp--preset--spacing--50, 3rem); }
.lafu-footer.is-compact { padding-block: 2rem 1.2rem; }
.lafu-footer.is-compact .lafu-footer-inner > * + * { margin-top: 1.6rem; }
.lafu-footer.is-stripe { border-top: 6px solid var(--lafu-accent); }
.lafu-footer.is-boxed { padding: 1rem; background: transparent; }
.lafu-footer.is-boxed > .lafu-footer-inner { background: var(--lafu-ink, #111); color: var(--lafu-on-ink, #fff); border-radius: var(--lafu-radius-lg); padding: clamp(1.5rem, 4vw, 3.5rem); }
.lafu-footer.is-boxed > .lafu-footer-inner :where(h3, h4, p, a, li) { color: inherit; }
.lafu-footer.is-boxed { --lafu-ink: var(--wp--custom--ink, var(--lafu-text)); --lafu-on-ink: var(--wp--custom--on-ink, var(--lafu-base)); }
.lafu-footer.is-minimal { padding-block: 1.6rem; border-top: 1px solid var(--lafu-line); }
.lafu-footer-cta { padding-bottom: var(--wp--preset--spacing--50, 3rem); border-bottom: 1px solid var(--lafu-line); }
.lafu-footer-cta h2 { margin: 0; font-size: clamp(1.8rem, 3.6vw, 2.8rem); }
.lafu-footer .lafu-card.is-flat { background: transparent; }
.lafu-sep { border-color: var(--lafu-line) !important; opacity: 1; }

/* ---- v3: product sections ------------------------------------------------------------------ */
.lafu-mockup { background: var(--lafu-surface); border: 1px solid var(--lafu-line); border-radius: var(--lafu-radius-lg); box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .45); overflow: hidden; color: var(--lafu-text); }
.lafu-mock-bar { gap: .8rem !important; align-items: center; padding: .7rem 1rem; border-bottom: 1px solid var(--lafu-line); background: var(--lafu-soft); }
.lafu-dots { width: 54px; height: 12px; margin: 0; flex: none; background: radial-gradient(circle at 6px 6px, #ff5f57 5px, transparent 6px), radial-gradient(circle at 24px 6px, #febc2e 5px, transparent 6px), radial-gradient(circle at 42px 6px, #28c840 5px, transparent 6px); }
.lafu-dots > .wp-block-spacer, .lafu-bar > .wp-block-spacer, .lafu-rule > .wp-block-spacer { display: none; }
.lafu-mock-kpis { gap: 1rem !important; padding: 1.2rem 1.2rem 0; }
.lafu-mock-kpi { flex: 1; border: 1px solid var(--lafu-line); border-radius: var(--lafu-radius); padding: .9rem 1rem; }
.lafu-mock-kpi p { margin: 0; }
.lafu-mock-kpi.is-accent { background: color-mix(in srgb, var(--lafu-primary) 10%, var(--lafu-surface)); border-color: color-mix(in srgb, var(--lafu-primary) 30%, transparent); }
.lafu-kpi { font-family: var(--wp--preset--font-family--display); font-size: 1.5rem !important; font-weight: 700; letter-spacing: -0.02em; }
.lafu-mock-chart { padding: 1.2rem; }
.lafu-bars { gap: .6rem !important; align-items: flex-end; height: 150px; margin-top: .8rem !important; }
.lafu-bar { flex: 1; margin: 0 !important; border-radius: 8px 8px 3px 3px; background: linear-gradient(180deg, var(--lafu-primary), color-mix(in srgb, var(--lafu-primary) 55%, var(--lafu-accent))); }
.lafu-bar.is-h4 { height: 40%; } .lafu-bar.is-h5 { height: 50%; } .lafu-bar.is-h6 { height: 60%; } .lafu-bar.is-h7 { height: 70%; } .lafu-bar.is-h8 { height: 80%; } .lafu-bar.is-h9 { height: 92%; }
.lafu-bar:nth-child(6) { background: linear-gradient(180deg, var(--lafu-accent), color-mix(in srgb, var(--lafu-accent) 60%, var(--lafu-primary))); }
.lafu-announce { padding-block: .6rem; font-size: .9rem; }
.lafu-announce p { margin: 0; }
.lafu-announce a { color: inherit; }
.lafu-wordmark { font-family: var(--wp--preset--font-family--display); font-size: 1.35rem !important; font-weight: 800; letter-spacing: -0.03em; opacity: .7; margin: 0; }
.lafu-logo-grid { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--lafu-line); border: 1px solid var(--lafu-line); border-radius: var(--lafu-radius); overflow: hidden; }
.lafu-logo-grid > p { background: var(--lafu-surface); text-align: center; padding: 1.8rem 1rem; }
@media (max-width: 781px) { .lafu-logo-grid { grid-template-columns: 1fr 1fr; } }
.lafu-num { font-family: var(--wp--preset--font-family--display); font-size: 2.6rem !important; font-weight: 800; line-height: 1; margin: 0 0 1rem; background: linear-gradient(100deg, var(--lafu-primary), var(--lafu-accent)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.lafu-app-grid { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-top: 2.5rem !important; }
.lafu-app-tile { gap: .9rem !important; align-items: center; background: var(--lafu-surface); border: 1px solid var(--lafu-line); border-radius: var(--lafu-radius); padding: 1rem 1.2rem; box-shadow: var(--lafu-shadow); }
.lafu-app-badge { width: 2.6rem; height: 2.6rem; flex: none; display: grid; place-items: center; border-radius: 12px; margin: 0; font-weight: 800; color: #fff; background: linear-gradient(135deg, var(--lafu-primary), var(--lafu-accent)); }
.lafu-app-tile:nth-child(3n+2) .lafu-app-badge { background: linear-gradient(135deg, var(--lafu-accent), var(--lafu-primary)); }
.lafu-app-tile:nth-child(3n) .lafu-app-badge { background: var(--lafu-text); }
@media (max-width: 781px) { .lafu-app-grid { grid-template-columns: 1fr 1fr; } }
.lafu-price.is-small { font-size: clamp(1.6rem, 3vw, 2.2rem) !important; }
.lafu-measure-xl { max-width: 60rem; margin-inline: auto; }
.lafu-compare { margin-top: 2rem; }
.lafu-compare table { border-collapse: collapse; width: 100%; }
.lafu-compare th, .lafu-compare td { padding: .95rem 1rem; border: 0; border-bottom: 1px solid var(--lafu-line); text-align: center; }
.lafu-compare th:first-child, .lafu-compare td:first-child { text-align: left; font-weight: 600; }
.lafu-compare thead th { font-family: var(--wp--preset--font-family--display); font-size: 1.1rem; }
.lafu-compare thead th:nth-child(3), .lafu-compare td:nth-child(3) { background: color-mix(in srgb, var(--lafu-primary) 8%, transparent); }
.lafu-compare tbody tr:last-child td { font-weight: 700; border-bottom: 0; }
.lafu-gradient-card { background: linear-gradient(120deg, var(--lafu-primary), color-mix(in srgb, var(--lafu-primary) 40%, var(--lafu-accent)), var(--lafu-accent)); color: #fff; border-radius: var(--lafu-radius-lg); padding: clamp(2.5rem, 7vw, 6rem) clamp(1.5rem, 5vw, 4rem); box-shadow: var(--lafu-shadow); }
.lafu-gradient-card :where(h2, p) { color: #fff; }
.lafu-gradient-card .wp-block-button__link { background: #fff; color: var(--lafu-primary); }
.lafu-phone img { border-radius: 36px !important; border: 8px solid color-mix(in srgb, var(--lafu-on-ink, #fff) 15%, transparent); }
.lafu-rule { height: 1px; background: var(--lafu-line); margin: 1.4rem 0 !important; }
.lafu-masonry { columns: 3 280px; column-gap: 1.25rem; margin-top: 2.5rem !important; }
.lafu-masonry > .lafu-card { break-inside: avoid; margin: 0 0 1.25rem !important; height: auto; display: flex; }
.lafu-masonry > .lafu-card:nth-child(2) { padding-block: 2.6rem; }
.lafu-cross { list-style: none; padding: 0; margin: 1.2rem 0 0; display: grid; gap: .7rem; }
.lafu-cross li { position: relative; padding-left: 1.8rem; color: var(--lafu-soft-text); }
.lafu-cross li::before { content: "×"; position: absolute; left: .2rem; top: -.05em; font-size: 1.3rem; color: #c0392b; }
.lafu-timeline { position: relative; }
.lafu-timeline::before { content: ""; position: absolute; left: 1.2rem; right: 1.2rem; top: 1.2rem; height: 2px; background: linear-gradient(90deg, var(--lafu-primary), var(--lafu-accent)); }
.lafu-dot-num { position: relative; width: 2.4rem; height: 2.4rem; display: grid; place-items: center; border-radius: 50%; background: var(--lafu-surface); border: 2px solid var(--lafu-primary); font-weight: 800; margin: 0 0 1rem; }
@media (max-width: 781px) { .lafu-timeline::before { display: none; } }
.lafu-avatar-xl { width: 7rem; margin: 0 auto 1rem !important; }
.lafu-avatar-xl img { border-radius: 50% !important; aspect-ratio: 1; }
.lafu-posts { gap: 1.5rem; margin-top: 2rem !important; padding: 0; }
.lafu-posts li { list-style: none; }
.lafu-posts .wp-block-latest-posts__featured-image img { border-radius: var(--lafu-radius); aspect-ratio: 16 / 10; object-fit: cover; width: 100%; }
.lafu-posts a { font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 1.15rem; color: inherit; text-decoration: none; }
.lafu-posts time { display: block; font-size: .85rem; color: var(--lafu-soft-text); margin-top: .3rem; }
@media (prefers-reduced-motion: reduce) { .lafu-bar { transition: none; } }

/* v3 review fixes: tone treatments win over the sticky header's glass background; nothing wraps. */
.lafu-header.lafu-dark, .lafu-header-stack .lafu-header.lafu-dark { background: var(--lafu-ink); color: var(--lafu-on-ink); border-color: transparent; }
.lafu-header.lafu-soft { background: var(--lafu-soft); }
.lafu-header.lafu-primary-bg { background: var(--lafu-primary); color: var(--wp--preset--color--primary-contrast, #fff); border-color: transparent; }
.lafu-header.lafu-dark .wp-block-navigation, .lafu-header.lafu-primary-bg .wp-block-navigation, .lafu-header.lafu-dark .lafu-shop-icons, .lafu-header.lafu-primary-bg .lafu-shop-icons { color: inherit; }
.lafu-header.lafu-dark .lafu-navband { border-color: color-mix(in srgb, var(--lafu-on-ink) 16%, transparent); }
.lafu-header.lafu-primary-bg .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: var(--wp--preset--color--primary-contrast, #fff); color: var(--lafu-primary); }
.lafu-header.lafu-primary-bg .wp-block-button.is-style-outline .wp-block-button__link, .lafu-header.lafu-dark .wp-block-button.is-style-outline .wp-block-button__link { color: inherit; border-color: currentColor; }
.lafu-header .wp-block-site-title, .lafu-header .wp-block-button__link, .lafu-header .lafu-small, .lafu-header .lafu-strong, .lafu-footer .wp-block-button__link { white-space: nowrap; }
.lafu-header .wp-block-navigation { flex: 1 1 auto; min-width: 0; }
.lafu-header .wp-block-navigation__container { row-gap: .3rem; }
.lafu-header > .wp-block-group > .wp-block-group { flex-wrap: nowrap; min-width: 0; }
.lafu-header.is-overlay { box-sizing: border-box; width: 100%; max-width: 100%; }
.lafu-footer .lafu-brand .wp-block-site-title, .lafu-footer > .lafu-footer-inner > .lafu-row > .wp-block-site-title { font-family: var(--wp--preset--font-family--display); font-size: 1.4rem; font-weight: 800; letter-spacing: -0.02em; margin: 0; }
.lafu-footer .wp-block-site-title a { color: inherit; text-decoration: none; }
/* Phones: headers keep the name, cart and menu button; the call to action and contact lines move into the menu. */
@media (max-width: 600px) {
	.lafu-header:not(.is-burger) .wp-block-buttons, .lafu-header .lafu-small, .lafu-header .lafu-strong, .lafu-header .wp-block-social-links { display: none !important; }
	.lafu-header.is-burger .wp-block-button__link { padding: .55rem .9rem; font-size: .85rem; }
	.lafu-header .wp-block-site-title { font-size: 1.15rem; }
	.lafu-topbar .lafu-small:last-child { display: none; }
}
.lafu-header > .lafu-navband { border-top: 1px solid var(--lafu-line); }
/* v3 review fixes, round two */
.lafu-shop-icons :where(a, button, svg) { color: inherit; fill: currentColor; }
.lafu-shop-icons .wc-block-customer-account__link { color: inherit; }
.lafu-navband.lafu-dark { padding-inline: 1.2rem; border-radius: calc(var(--lafu-radius) * .6); }
.lafu-app-grid > *, .lafu-logo-grid > *, .lafu-gallery > *, .lafu-bento > *, .lafu-collage > * { margin: 0 !important; }
.lafu-card .lafu-stat { font-size: clamp(2rem, 3.6vw, 3rem) !important; white-space: nowrap; }
.lafu-masonry { columns: 3 260px; }
.lafu-app-tile:nth-child(3n) .lafu-app-badge { background: var(--wp--custom--ink, #1d1d1f); color: var(--wp--custom--on-ink, #fff); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--lafu-text) 25%, transparent); }

/* Two-column heroes keep the headline in proportion with the picture beside it. */
.lafu-section.lafu-glow .wp-block-columns h1 { font-size: clamp(2.4rem, 4.8vw, 4.4rem) !important; line-height: 1.04; letter-spacing: -0.035em; }
@media (max-width: 600px) {
	.lafu-mock-kpis { gap: .5rem !important; padding: .9rem .9rem 0; }
	.lafu-mock-kpi { padding: .6rem .7rem; min-width: 0; }
	.lafu-mock-kpi .lafu-small { font-size: .72rem !important; overflow-wrap: anywhere; hyphens: auto; }
	.lafu-kpi { font-size: 1.15rem !important; }
}

/* ---------------------------------------------------------------- Shop sections (LAFU 0.4) */
.lafu-band-primary { background: var(--lafu-primary); color: var(--wp--preset--color--primary-contrast, #fff); }
.lafu-band-primary :where(h1, h2, h3, h4, p, a, .lafu-muted, .lafu-lead) { color: inherit; }
.lafu-band-primary .wp-block-button__link { background: var(--wp--preset--color--primary-contrast, #fff); color: var(--lafu-primary); }
.lafu-band-thin { padding-block: .7rem !important; font-size: .95rem; }
.lafu-band-thin p { margin: 0; }
.lafu-border-y { border-block: 1px solid var(--lafu-line); }
.lafu-head-row { align-items: flex-end !important; gap: 1rem; margin-bottom: clamp(1.2rem, 3vw, 2rem) !important; }
.lafu-head-row h2, .lafu-head-row h3 { margin: 0; }
.lafu-head-row .lafu-muted { margin: .3rem 0 0; }
.lafu-head-row .lafu-link-arrow a { text-decoration: none; }
.lafu-head-row .lafu-link-arrow::after { content: none; }

/* Product cards from the shop (WooCommerce product template) */
.lafu-products > li { display: flex; flex-direction: column; gap: .35rem; margin: 0 !important; position: relative; }
.lafu-products .lafu-product-img { margin: 0 0 .5rem !important; overflow: hidden; border-radius: var(--lafu-radius); background: var(--lafu-soft); }
.lafu-products .lafu-product-img img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--lafu-radius); transition: transform .6s ease; }
.lafu-products > li:hover .lafu-product-img img { transform: scale(1.04); }
.lafu-products .lafu-product-name { font-size: 1rem !important; line-height: 1.35; margin: 0 !important; }
.lafu-products .lafu-product-name a { text-decoration: none; color: inherit; }
.lafu-products .lafu-product-price, .lafu-products .wc-block-components-product-price { font-family: var(--wp--preset--font-family--display); font-weight: 700; color: var(--lafu-primary); margin: 0 !important; }
.lafu-products del { opacity: .55; font-weight: 400; margin-right: .35rem; }
.lafu-products ins { text-decoration: none; }
.lafu-products .lafu-product-button { margin-top: auto !important; }
.lafu-products .lafu-product-button .wp-block-button__link, .lafu-products .lafu-product-button .wc-block-components-product-button__button { width: 100%; font-size: .9rem; padding: .65rem 1rem; }
.lafu-products .wc-block-components-product-sale-badge { border-radius: 999px; background: var(--lafu-accent); color: #fff; border: 0; font-size: .7rem; letter-spacing: .06em; padding: .2rem .6rem; top: .7rem; left: .7rem; }
.lafu-products.is-card > li { background: var(--lafu-surface); border: 1px solid var(--lafu-line); border-radius: var(--lafu-radius); padding: .8rem .8rem 1rem; box-shadow: var(--lafu-shadow); }
.lafu-products.is-soft > li { background: var(--lafu-soft); border-radius: var(--lafu-radius); padding: 1rem; text-align: center; }
.lafu-products.is-compact .lafu-product-name { font-size: .9rem !important; }
.lafu-products.is-minimal .lafu-product-name { font-size: .88rem !important; font-weight: 500; }
.lafu-products.is-minimal .lafu-product-price { font-size: .9rem; }
.lafu-dark .lafu-products.is-card > li { background: color-mix(in srgb, var(--lafu-on-ink) 6%, transparent); border-color: color-mix(in srgb, var(--lafu-on-ink) 14%, transparent); }
.lafu-dark .lafu-products .lafu-product-price, .lafu-band-primary .lafu-products .lafu-product-price { color: inherit; }
.lafu-band-primary .lafu-products.is-card > li { color: var(--lafu-text); }
.lafu-band-primary .lafu-products.is-card .lafu-product-price { color: var(--lafu-primary); }
/* One big featured product */
.lafu-products.is-feature > li { display: block; }
.lafu-products.is-feature .lafu-product-img { border-radius: var(--lafu-radius-lg); }
.lafu-price-lg, .lafu-products .lafu-price-lg { font-size: clamp(1.6rem, 3vw, 2.2rem) !important; }
/* Rows: small picture beside name and price */
.lafu-products.is-row { display: flex !important; flex-direction: column; gap: .8rem !important; }
.lafu-product-row { gap: 1rem !important; align-items: center !important; padding: .6rem; border: 1px solid var(--lafu-line); border-radius: var(--lafu-radius); background: var(--lafu-surface); }
.lafu-product-thumb { flex: 0 0 84px; width: 84px !important; margin: 0 !important; }
.lafu-product-thumb img { width: 84px !important; height: 84px !important; object-fit: cover; border-radius: calc(var(--lafu-radius) * .7); }
.lafu-product-row h4, .lafu-product-row .wp-block-post-title { font-size: .95rem !important; margin: 0 0 .2rem !important; }
.lafu-product-row .lafu-product-button.is-small .wp-block-button__link { padding: .35rem .8rem; font-size: .8rem; width: auto; }

/* Categories from the shop */
.lafu-cat-terms .wp-block-term-template { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.lafu-cat-terms .wp-block-term-template > li, .lafu-cat-terms .wp-block-term-name { margin: 0; }
/* A section that is only a heading row (title + category chips) sits tight on the section after it. */
.lafu-section:has(> .alignwide > .lafu-head-row:only-child) { padding-bottom: 0; }
.lafu-cat-terms.is-pills .wp-block-term-name a { display: inline-block; padding: .45rem 1rem; border-radius: 999px; border: 1px solid var(--lafu-line); background: var(--lafu-surface); color: var(--lafu-text); text-decoration: none; font-weight: 600; font-size: .9rem; }
.lafu-cat-terms.is-pills a:hover { border-color: var(--lafu-primary); color: var(--lafu-primary); }
.lafu-cat-terms.is-center .wp-block-term-template { justify-content: center; }
.wp-block-cover .lafu-cat-terms.is-pills a { background: rgba(255, 255, 255, .92); border-color: transparent; color: #111; }
.lafu-cat-terms.is-list .wp-block-term-template { flex-direction: column; gap: 0; }
.lafu-cat-terms.is-list .wp-block-term-name a { display: block; padding: .8rem 0; border-bottom: 1px solid var(--lafu-line); text-decoration: none; color: var(--lafu-text); font-weight: 600; }
.lafu-cat-terms.is-list .wp-block-term-name a::after { content: " \2192"; color: var(--lafu-primary); }
.lafu-cat-terms.is-columns .wp-block-term-template { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 0 2rem; }
.lafu-cat-terms.is-columns .wp-block-term-template > li > .wp-block-group { justify-content: space-between; padding: .8rem 0; border-bottom: 1px solid var(--lafu-line); }
.lafu-cat-terms.is-columns a { text-decoration: none; color: var(--lafu-text); font-weight: 600; }
.lafu-cat-terms .wp-block-term-count { color: var(--lafu-soft-text); font-size: .9rem; }
/* Category tiles (product categories with pictures) */
.lafu-cat-grid .wc-block-product-categories-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: clamp(.8rem, 2vw, 1.4rem); }
.lafu-cat-grid .wc-block-product-categories-list-item { margin: 0; }
.lafu-cat-grid .wc-block-product-categories-list-item > a { display: flex; flex-direction: column; gap: .7rem; text-decoration: none; color: var(--lafu-text); font-weight: 700; text-align: center; }
.lafu-cat-grid .wc-block-product-categories-list-item__image { display: block; aspect-ratio: 1; overflow: hidden; border-radius: var(--lafu-radius-lg); background: var(--lafu-soft); max-width: none; width: 100%; margin: 0; }
.lafu-cat-grid .wc-block-product-categories-list-item__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.lafu-cat-grid .wc-block-product-categories-list-item > a:hover img { transform: scale(1.05); }
.lafu-cat-grid .wc-block-product-categories-list-item-count { color: var(--lafu-soft-text); font-weight: 400; }

/* Shop promises, timer, live reviews */
.lafu-usp h4 { font-size: 1rem; margin: 0 0 .2rem; }
.lafu-usp p { margin: 0; font-size: .92rem; }
.lafu-usp::before { content: ""; display: block; width: 2.2rem; height: 2.2rem; border-radius: 50%; margin-bottom: .7rem; background: color-mix(in srgb, var(--lafu-primary) 16%, transparent); }
.lafu-timer { gap: .7rem !important; margin: 1.2rem 0 1.6rem !important; }
.lafu-timer-cell { min-width: 5.2rem; text-align: center; padding: .8rem .6rem; border-radius: var(--lafu-radius); background: var(--lafu-surface); border: 1px solid var(--lafu-line); }
.lafu-timer-num { font-family: var(--wp--preset--font-family--display); font-size: 2.2rem !important; font-weight: 800; line-height: 1; margin: 0 0 .25rem !important; color: var(--lafu-primary); }
.lafu-timer-cell .lafu-muted { margin: 0; font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; }
.lafu-reviews-live .wc-block-review-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.2rem; list-style: none; padding: 0; }
.lafu-reviews-live .wc-block-review-list-item__item { background: var(--lafu-surface); border: 1px solid var(--lafu-line); border-radius: var(--lafu-radius); padding: 1.3rem; margin: 0; }
.lafu-reviews-live .wc-block-review-list-item__product a { color: var(--lafu-primary); text-decoration: none; font-weight: 600; }
@media (max-width: 781px) {
	.lafu-head-row { flex-wrap: wrap; }
	.lafu-timer-cell { min-width: 4.4rem; }
}
@media (prefers-reduced-motion: reduce) {
	.lafu-products .lafu-product-img img, .lafu-cat-grid img { transition: none; }
}
