/*
Theme Name: Homy
Description: Custom block theme for Homy Swiss Clean. No parent theme, no build step.
Author: Nass
Version: 0.10.1
Requires at least: 6.6
Requires PHP: 8.4
Text Domain: homy
*/

/*
 * Bump Version above whenever a file of patterns/ is added or renamed: WordPress caches the
 * pattern list per theme version, a new pattern stays invisible until the version changes.
 */

/*
 * Design tokens beyond theme.json. Charter colors come from the palette (--wp--preset--color--*),
 * the content width from the layout (--wp--style--global--content-size).
 */
:root {
	/* Complementary shades of the mockup. */
	--homy-topbar-text: #d9e7f7;
	--homy-topbar-dot: #58a9ff;
	--homy-nav-link: #203754;
	--homy-footer-bg: #04162f;
	--homy-footer-text: #c3d4e8;
	--homy-footer-muted: #9eb3ca;
	--homy-footer-faint: #758ca6;
	--homy-number: #bed1e7;
	--homy-quote-bg-end: #061b36;
	--homy-eyebrow-light: #8bc3ff;
	--homy-quote-text: #c7d9eb;
	--homy-quote-point: #e1edf9;
	--homy-check-light: #67b5ff;
	--homy-field-label: #28425f;
	--homy-field-bg: #fbfdff;
	--homy-field-border: #cfdae7;
	--homy-error: #c62828;
	--homy-hero-em: #64b1ff;
	--homy-hero-text: #e0ebf6;
	--homy-hero-trust: #ecf5ff;
	--homy-statement-text: #c8d8ea;
	--homy-shop-bg: #eef5fd;
	--homy-shop-kicker: #7fbdff;
	--homy-shop-em: #66b2ff;
	--homy-shop-text: #d2e2f2;
	--homy-shop-pill: #e9f4ff;
	--homy-shop-copy-bg: linear-gradient(150deg, #061d3b, #0a3977);
	/* Hero shade: dark on the text side (left), clear on the picture side. Mobile: from the bottom. */
	--homy-hero-shade: linear-gradient(90deg, rgb(4 23 50 / 94%) 0%, rgb(4 29 63 / 76%) 39%, rgb(4 29 63 / 13%) 70%, rgb(4 29 63 / 5%) 100%);
	--homy-hero-shade-mobile: linear-gradient(rgb(4 29 63 / 20%) 0%, rgb(4 29 63 / 76%) 38%, rgb(4 23 50 / 97%) 100%);
	--homy-shadow-card: 0 30px 70px color-mix(in srgb, #000 25%, transparent);
	/* Lucide icons drawn by CSS masks (list bullets, button arrow): stroke color = background color. */
	--homy-icon-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
	--homy-icon-chevron-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	--homy-icon-arrow-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E");
	--homy-shadow-soft: 0 12px 30px color-mix(in srgb, var(--wp--preset--color--ink) 7%, transparent);
	--homy-shadow-lift: 0 22px 50px color-mix(in srgb, var(--wp--preset--color--ink) 12%, transparent);

	/* Dimensions. */
	--homy-gutter: 24px;
	--homy-gutter-mobile: 15px;
	--homy-text-xs: 12px;
	--homy-topbar-gap: 14px;
	--homy-topbar-height: 34px;
	--homy-header-height: 82px;
	--homy-footer-space: 70px;
	--homy-mark-size: 44px;
	--homy-section-space: 110px;
	--homy-radius: 12px;
	/* Side padding that aligns full-width bars on the content container. */
	--homy-bar-gutter: max(var(--homy-gutter), 50vw - var(--wp--style--global--content-size) / 2);
	--homy-shell: min(var(--wp--style--global--content-size), 100% - 2 * var(--homy-gutter));
}

/* Page frame: no gap between the top-level parts (top strip, header, main, footer). */
body .wp-site-blocks > * {
	margin-block: 0;
}

/* Anchors: smooth scroll, landing below the sticky header. */
html {
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}

[id] {
	scroll-margin-top: calc(var(--homy-header-height) + var(--wp-admin--admin-bar--height, 0px));
}

/* Top strip */
.homy-topbar {
	align-items: center;
	background: var(--wp--preset--color--ink);
	color: var(--homy-topbar-text);
	display: flex;
	flex-wrap: wrap;
	font-size: var(--homy-text-xs);
	gap: 0 var(--homy-topbar-gap);
	justify-content: center;
	letter-spacing: .04em;
	line-height: 1.5;
	/* Grows with enlarged or wrapped text; one line of text fills exactly the strip height. */
	min-height: var(--homy-topbar-height);
	padding: calc((var(--homy-topbar-height) - 1.5em) / 2) var(--homy-gutter-mobile);
}

.homy-topbar > * {
	margin: 0;
}

/* Round 3px separator between the strip items. */
.homy-topbar > * + * {
	align-items: center;
	display: inline-flex;
	gap: var(--homy-topbar-gap);
}

.homy-topbar > * + *::before {
	background: var(--homy-topbar-dot);
	border-radius: 50%;
	content: "";
	flex: none;
	height: 3px;
	width: 3px;
}

/* Header: sticky over the page, translucent and blurred. */
.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 30;
}

.homy-header {
	align-items: center;
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
	background: color-mix(in srgb, var(--wp--preset--color--white) 96%, transparent);
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--navy) 10%, transparent);
	display: flex;
	gap: var(--homy-gutter);
	height: var(--homy-header-height);
	justify-content: space-between;
	line-height: 1.5;
	padding-inline: var(--homy-bar-gutter);
	position: relative;
}

.homy-header > * {
	margin: 0;
}

/* Logo uploaded by the client (core/site-logo): same place and link as the typographic logo below. */
.homy-site-logo {
	flex: none;
}

.homy-site-logo img {
	height: auto;
	max-height: 56px;
	object-fit: contain;
	width: auto;
}

/* Typographic logo (default while no site logo is set): circled "H" drawn here, name and tagline are editable paragraphs. */
.homy-brand {
	align-items: center;
	color: var(--wp--preset--color--ink);
	column-gap: 10px;
	display: inline-grid;
	flex: none;
	grid-template-columns: var(--homy-mark-size) auto;
	line-height: 1;
	position: relative;
}

.homy-brand::before {
	border: 3px solid var(--wp--preset--color--navy);
	border-radius: 50%;
	border-right-color: var(--wp--preset--color--blue);
	box-sizing: border-box;
	color: var(--wp--preset--color--blue);
	content: "H";
	content: "H" / "";
	display: grid;
	font-size: calc(var(--homy-mark-size) * .545);
	font-weight: 800;
	grid-row: 1 / span 2;
	height: var(--homy-mark-size);
	place-items: center;
	width: var(--homy-mark-size);
}

/* Small notch cut at the top right of the circle. */
.homy-brand::after {
	background: var(--homy-brand-notch, var(--wp--preset--color--white));
	content: "";
	height: 4px;
	left: calc(var(--homy-mark-size) - 15px);
	position: absolute;
	top: calc(50% - var(--homy-mark-size) / 2 - 4px);
	transform: rotate(28deg);
	width: 13px;
}

.homy-brand > * {
	margin: 0;
}

.homy-brand__name {
	align-self: end;
	font-size: 23px;
	font-weight: 700;
	letter-spacing: -.04em;
}

.homy-brand__name a {
	color: inherit;
	text-decoration: none;
}

/* The name link covers the whole logo. */
.homy-brand__name a::after {
	content: "";
	inset: 0;
	position: absolute;
}

.homy-brand__tagline {
	align-self: start;
	color: var(--wp--preset--color--blue);
	font-size: 9px;
	font-weight: 800;
	letter-spacing: .26em;
	margin-top: 6px;
}

/* Header navigation */
nav.homy-nav {
	--navigation-layout-gap: var(--homy-gutter);
}

nav.homy-nav .wp-block-navigation__container {
	gap: var(--homy-gutter);
}

/* Doubled class and `.wp-block-navigation`: outweighs core's `color: inherit` on navigation links. */
nav.homy-nav.wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content {
	color: var(--homy-nav-link);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	padding-block: 10px;
	text-decoration: none;
}

nav.homy-nav.wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content:hover,
nav.homy-nav.wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content:focus-visible {
	color: var(--wp--preset--color--blue);
}

.homy-header__actions {
	flex: none;
	gap: 10px;
}

/*
 * Navigation centred between the logo and the actions by its auto margins: same place as
 * space-between gives it with three items, whatever follows it (cart badge or not).
 */
nav.homy-nav {
	margin-inline: auto;
}

/*
 * Cart badge: WooCommerce Mini-Cart block of class homy-cart, rendered only while the shop is online
 * (mu-plugin shop.php). Round bordered button of the mockup, item count in a blue pill, 10px from
 * the quote button.
 */
.homy-header > .homy-cart {
	flex: none;
}

.homy-header > .homy-cart + .homy-header__actions {
	margin-left: calc(10px - var(--homy-gutter));
}

/* Instagram icon (block homy/social-links, rendered only once the address is set), 10px from its neighbours. */
.homy-header > .homy-header__social {
	flex: none;
}

.homy-header > .homy-cart + .homy-header__social,
.homy-header > .homy-header__social + .homy-header__actions {
	margin-left: calc(10px - var(--homy-gutter));
}

.homy-cart .wc-block-mini-cart__button {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 50%;
	color: var(--wp--preset--color--navy);
	display: grid;
	height: 42px;
	padding: 0;
	place-items: center;
	position: relative;
	width: 42px;
}

.homy-cart .wc-block-mini-cart__button:hover {
	opacity: 1;
}

.homy-cart .wc-block-mini-cart__quantity-badge {
	position: static;
}

/* WooCommerce bag icon: drawn in the middle of a 32-unit box, 26px gives the 19px glyph of the mockup. */
.homy-cart .wc-block-mini-cart__quantity-badge svg {
	height: 26px;
	width: 26px;
}

/*
 * !important: the Mini-Cart script writes the badge colors inline (taken from the button colors),
 * which no stylesheet rule outweighs otherwise.
 */
.homy-cart .wc-block-mini-cart__badge.wc-block-mini-cart__badge {
	background: var(--wp--preset--color--blue) !important;
	border: 0;
	border-radius: 9px;
	box-sizing: border-box;
	color: var(--wp--preset--color--white) !important;
	font-size: 10px;
	font-weight: 800;
	height: 18px;
	left: auto;
	line-height: 18px;
	min-width: 18px;
	padding: 0 4px;
	position: absolute;
	right: -3px;
	text-align: center;
	top: -3px;
	transform: none;
}

/* Burger toggle (rendered by functions.php, driven by assets/header.js). */
.homy-burger {
	align-items: center;
	background: none;
	border: 0;
	color: var(--wp--preset--color--ink);
	cursor: pointer;
	display: none;
	justify-content: center;
	padding: 0;
}

.homy-burger[aria-expanded="true"] .homy-burger__open,
.homy-burger[aria-expanded="false"] .homy-burger__close {
	display: none;
}

/*
 * Buttons: colors, border, padding and typography live in theme.json (elements.button), so the
 * client's Global Styles override them; only what theme.json cannot express here.
 */
.wp-element-button,
.wp-block-button__link {
	align-items: center;
	box-shadow: 0 11px 26px color-mix(in srgb, var(--wp--preset--color--blue) 22%, transparent);
	display: inline-flex;
	gap: 9px;
	justify-content: center;
	min-height: 44px;
	transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.wp-element-button:hover,
.wp-block-button__link:hover {
	transform: translateY(-2px);
}

/* Button style « Clair »: white button, navy text. */
.wp-block-button.is-style-light .wp-block-button__link {
	background: var(--wp--preset--color--white);
	box-shadow: none;
	color: var(--wp--preset--color--navy);
}

/*
 * Main areas. The content of a page or a Prestation spans the full width (post-content aligned
 * full, constrained layout), so a Homy section (alignfull) placed in it reaches the edges as on the
 * home page. Content starting or ending with a full-width section: no blank band between it and
 * the header or the footer.
 */
.homy-main {
	padding-block: 80px;
}

.homy-main:has(> .wp-block-post-content:first-child > .alignfull:first-child) {
	padding-top: 0;
}

.homy-main:has(> .wp-block-post-content:last-child > .alignfull:last-child) {
	padding-bottom: 0;
}

/* Eyebrow: small uppercase kicker above a heading. */
.homy-eyebrow {
	color: var(--wp--preset--color--blue);
	font-size: var(--homy-text-xs);
	font-weight: 900;
	letter-spacing: .18em;
	text-transform: uppercase;
}

/* Home sections (patterns/section-*.php): vertical rhythm and split heading of the mockup. */
.homy-section {
	padding-block: var(--homy-section-space);
}

.homy-section > *,
.homy-section__heading > *,
.homy-section__heading > * > * {
	margin-block: 0;
}

.homy-section .homy-section__heading {
	align-items: end;
	display: grid;
	gap: 80px;
	grid-template-columns: 1.2fr .8fr;
	margin-bottom: 46px;
}

.homy-section__intro {
	color: var(--wp--preset--color--muted);
}

/* Home sections stack edge to edge: no block gap between them (their own padding sets the rhythm). */
.wp-block-post-content > .homy-section,
.wp-block-post-content > .homy-hero,
.wp-block-post-content > .homy-reassurance {
	margin-block: 0;
}

/* Hero (patterns/section-hero.php): image under a dark shade, copy on the left, arrow down to the prestations. */
.homy-hero {
	align-content: center;
	background: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--white);
	display: grid;
	min-height: 670px;
	overflow: hidden;
	padding-block: 80px;
	position: relative;
}

.homy-hero::before {
	background: var(--homy-hero-shade);
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
	z-index: 1;
}

.homy-hero > .homy-hero__image {
	inset: 0;
	margin: 0;
	max-width: none;
	position: absolute;
}

.homy-hero__image img {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.homy-hero > .homy-hero__content {
	margin-block: 0;
	position: relative;
	width: 100%;
	z-index: 2;
}

.homy-hero .homy-hero__content > * {
	margin-block: 0;
}

.homy-hero h1 {
	color: var(--wp--preset--color--white);
	max-width: 690px;
}

/* Emphasized words: colored, not italic (mockup). */
.homy-hero h1 em {
	color: var(--homy-hero-em);
	font-style: normal;
}

.homy-hero .homy-hero__intro {
	color: var(--homy-hero-text);
	font-size: 18px;
	margin: 28px 0 32px;
	max-width: 600px;
}

.homy-hero .homy-hero__buttons {
	gap: 12px;
}

.homy-hero .wp-block-button__link {
	min-height: 54px;
	padding-inline: 26px;
}

/* Button with the arrow of the mockup after its label (class homy-button-arrow on a button block). */
.homy-button-arrow .wp-block-button__link::after {
	background: currentColor;
	content: "";
	flex: none;
	height: 18px;
	-webkit-mask: var(--homy-icon-arrow-right) center / contain no-repeat;
	mask: var(--homy-icon-arrow-right) center / contain no-repeat;
	width: 18px;
}

/* Button style « Vitré »: translucent, blurred, for a dark or photo background. */
.wp-block-button.is-style-glass .wp-block-button__link {
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	background: color-mix(in srgb, var(--wp--preset--color--white) 14%, transparent);
	border-color: color-mix(in srgb, var(--wp--preset--color--white) 52%, transparent);
	box-shadow: none;
	color: var(--wp--preset--color--white);
}

.homy-hero .homy-hero__trust {
	color: var(--homy-hero-trust);
	display: flex;
	flex-wrap: wrap;
	font-size: 13px;
	font-weight: 700;
	gap: 24px;
	margin-top: 50px;
}

.homy-hero .homy-hero__trust-item {
	align-items: center;
	display: flex;
	gap: 8px;
}

.homy-hero .homy-hero__trust > *,
.homy-hero .homy-hero__trust-item > * {
	margin: 0;
}

.homy-hero__trust .wp-block-homy-icon {
	color: var(--homy-hero-em);
	display: inline-flex;
}

.homy-hero__trust .wp-block-homy-icon svg {
	height: 20px;
	width: 20px;
}

/* Round arrow at the bottom of the hero: the link text is for screen readers, the chevron is drawn here. */
.homy-hero > .homy-hero__cue {
	bottom: 24px;
	left: 50%;
	margin: 0;
	position: absolute;
	transform: translateX(-50%);
	z-index: 2;
}

.homy-hero__cue a {
	background: color-mix(in srgb, var(--wp--preset--color--white) 8%, transparent);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--white) 40%, transparent);
	border-radius: 50%;
	color: var(--wp--preset--color--white);
	display: grid;
	font-size: 0;
	height: 42px;
	place-items: center;
	text-decoration: none;
	width: 42px;
}

.homy-hero__cue a::before {
	background: currentColor;
	content: "";
	height: 24px;
	-webkit-mask: var(--homy-icon-chevron-down) center / contain no-repeat;
	mask: var(--homy-icon-chevron-down) center / contain no-repeat;
	width: 24px;
}

/* « La différence Homy » (patterns/section-engagements.php): method on a dark background, card « Votre tranquillité » beside it. */
.homy-section.homy-statement {
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--white);
	padding-block: 100px;
}

.homy-statement .homy-statement__grid {
	align-items: center;
	display: grid;
	gap: 120px;
	grid-template-columns: 1.1fr .7fr;
}

.homy-statement .homy-statement__grid > *,
.homy-statement .homy-statement__copy > *,
.homy-statement .homy-proof > *,
.homy-statement .homy-proof__top > * {
	margin-block: 0;
}

.homy-statement h2 {
	color: var(--wp--preset--color--white);
}

.homy-statement .homy-statement__intro {
	color: var(--homy-statement-text);
	margin-top: 26px;
	max-width: 650px;
}

/* Card « Votre tranquillité »: translucent panel with an inner frame. */
.homy-statement .homy-proof {
	background: linear-gradient(145deg, color-mix(in srgb, var(--wp--preset--color--white) 12%, transparent), color-mix(in srgb, var(--wp--preset--color--white) 4%, transparent));
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--white) 14%, transparent);
	box-shadow: 0 28px 60px color-mix(in srgb, #000 25%, transparent);
	padding: 34px;
	position: relative;
}

.homy-proof::before {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--white) 10%, transparent);
	content: "";
	inset: 12px;
	pointer-events: none;
	position: absolute;
}

.homy-statement .homy-proof__top {
	align-items: center;
	color: var(--homy-eyebrow-light);
	display: flex;
	font-size: var(--homy-text-xs);
	font-weight: 900;
	gap: 16px;
	justify-content: space-between;
	letter-spacing: .12em;
	line-height: 1.5;
	text-transform: uppercase;
}

.homy-proof__top .wp-block-homy-icon {
	display: inline-flex;
}

.homy-statement .homy-proof .homy-proof__title {
	font-size: 34px;
	font-weight: 700;
	letter-spacing: -.035em;
	line-height: 1.12;
	margin-top: 72px;
}

/* Right under the title, no margin (mockup): the line heights alone set the gap. */
.homy-statement .homy-proof .homy-proof__title + * {
	color: var(--homy-statement-text);
	line-height: 1.6;
}

/* « Pourquoi nous choisir » (patterns/section-pourquoi.php): four pillars on a pale blue background, separated by rules. */
.homy-section.homy-pillars {
	background: var(--wp--preset--color--ice);
}

.homy-pillars .homy-pillars__heading {
	margin-bottom: 56px;
	text-align: center;
}

.homy-pillars .homy-pillars__heading > *,
.homy-pillars .homy-pillar > * {
	margin-block: 0;
}

.homy-pillars .homy-pillars__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	row-gap: 44px;
}

.homy-pillars .homy-pillar {
	align-items: center;
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 6px 28px;
	text-align: center;
}

.homy-pillars .homy-pillar + .homy-pillar {
	border-left: 1px solid var(--wp--preset--color--line);
}

.homy-pillar .wp-block-homy-icon {
	color: var(--wp--preset--color--blue);
	display: inline-flex;
	margin-bottom: 22px;
}

.homy-pillar .wp-block-homy-icon svg {
	height: 40px;
	stroke-width: 1.5;
	width: 40px;
}

.homy-pillars .homy-pillar h3 {
	font-size: 18px;
	font-weight: 700;
	letter-spacing: -.02em;
	line-height: 1.3;
	margin-bottom: 12px;
}

.homy-pillar p {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.65;
}

/* Reassurance band (patterns/section-reassurance.php): three points centered in the content width, icon beside a title and a detail. */
.homy-reassurance {
	display: grid;
	gap: 28px 72px;
	grid-template-columns: repeat(3, auto);
	justify-content: center;
	padding-block: 64px;
}

.homy-reassurance > *,
.homy-reassurance .homy-reassurance__item > *,
.homy-reassurance .homy-reassurance__text > * {
	margin: 0;
}

.homy-reassurance .homy-reassurance__item {
	align-items: center;
	display: flex;
	gap: 18px;
}

.homy-reassurance__item .wp-block-homy-icon {
	color: var(--wp--preset--color--blue);
	display: inline-flex;
	flex: none;
}

.homy-reassurance__item .wp-block-homy-icon svg {
	height: 36px;
	width: 36px;
}

.homy-reassurance .homy-reassurance__text {
	color: var(--wp--preset--color--muted);
	display: flex;
	flex-direction: column;
	font-size: 15px;
	gap: 4px;
	line-height: 1.5;
}

.homy-reassurance .homy-reassurance__title {
	color: var(--wp--preset--color--ink);
	font-size: 18px;
	font-weight: 700;
}

@media (max-width: 900px) {
	.homy-reassurance {
		grid-template-columns: auto;
		padding-block: 44px;
	}
}

/* « À propos de nous » (patterns/section-a-propos.php): copy beside an optional photo; without one, the copy alone. */
.homy-about .homy-about__grid {
	align-items: center;
	display: grid;
	gap: 80px;
	grid-template-columns: 1fr .9fr;
}

.homy-about .homy-about__grid:not(:has(> .wp-block-image img[src])) {
	grid-template-columns: minmax(0, 760px);
}

.homy-about .homy-about__grid > *,
.homy-about .homy-about__copy > * {
	margin-block: 0;
}

.homy-about .homy-about__copy > p:not(.homy-eyebrow) {
	color: var(--wp--preset--color--muted);
	margin-top: 22px;
}

.homy-about .homy-about__copy > .wp-block-buttons {
	margin-top: 34px;
}

.homy-about .homy-about__image img {
	aspect-ratio: 4 / 5;
	border-radius: var(--homy-radius);
	box-shadow: var(--homy-shadow-lift);
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

/*
 * Eyebrow above a section heading: same spacing in every section, light variant on a dark
 * background. After the section rules above: it overrides their `margin-block: 0` on children.
 */
.homy-section__heading .homy-eyebrow,
.homy-hero .homy-eyebrow,
.homy-statement .homy-eyebrow,
.homy-pillars .homy-eyebrow,
.homy-about .homy-eyebrow,
.homy-shop .homy-eyebrow,
.homy-quote .homy-eyebrow,
.homy-coming-soon .homy-eyebrow {
	line-height: 1.3;
	margin-bottom: 18px;
}

.homy-hero .homy-eyebrow,
.homy-statement .homy-eyebrow,
.homy-quote .homy-eyebrow {
	color: var(--homy-eyebrow-light);
}

.homy-shop .homy-eyebrow {
	color: var(--homy-shop-kicker);
	letter-spacing: .16em;
	margin-bottom: 20px;
}

/* Prestation cards (block homy/prestations, variant grid): photo, round icon over the photo, number, title, summary, arrow. */
.homy-prestation-grid {
	display: grid;
	gap: 20px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

.homy-prestation-card {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--homy-radius);
	box-shadow: var(--homy-shadow-soft);
	display: flex;
	flex-direction: column;
	overflow: hidden;
	position: relative;
	text-align: center;
	transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}

.homy-prestation-card:hover,
.homy-prestation-card:focus-within {
	background: var(--wp--preset--color--ice);
	box-shadow: var(--homy-shadow-lift);
	transform: translateY(-7px);
	z-index: 2;
}

.homy-prestation-card:has(.homy-prestation-card__link:focus-visible) {
	outline: 2px solid var(--wp--preset--color--blue);
	outline-offset: 3px;
}

.homy-prestation-card__media {
	aspect-ratio: 4 / 3;
	background: var(--wp--preset--color--sky);
	/* Lets the ratio win over the image's own height. */
	overflow: hidden;
}

.homy-prestation-card__photo {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.homy-prestation-card__body {
	align-items: center;
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 0 22px 22px;
	position: relative;
}

.homy-prestation-card__icon {
	background: var(--wp--preset--color--white);
	border: 1.5px solid var(--wp--preset--color--blue);
	border-radius: 50%;
	box-shadow: 0 8px 18px color-mix(in srgb, var(--wp--preset--color--blue) 14%, transparent);
	color: var(--wp--preset--color--blue);
	display: grid;
	height: 56px;
	margin-top: -28px;
	place-items: center;
	width: 56px;
}

.homy-prestation-card__number {
	color: var(--homy-number);
	font-size: var(--homy-text-xs);
	font-weight: 800;
	letter-spacing: .12em;
	line-height: 1;
	position: absolute;
	right: 18px;
	top: 16px;
}

/* Bold card titles (reference capture), while headings keep the regular weight of the mockup (theme.json). */
.homy-prestation-card__title.homy-prestation-card__title {
	font-size: 19px;
	font-weight: 700;
	letter-spacing: -.025em;
	line-height: 1.25;
	margin: 18px 0 10px;
}

.homy-prestation-card__link {
	color: inherit;
	text-decoration: none;
}

.homy-prestation-card__link:focus-visible {
	outline: none;
}

/* The title link covers the whole card: one link per card. */
.homy-prestation-card__link::after {
	content: "";
	inset: 0;
	position: absolute;
}

.homy-prestation-card__summary {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.65;
	margin: 0;
}

.homy-prestation-card__arrow {
	color: var(--wp--preset--color--blue);
	display: inline-flex;
	margin-top: auto;
	padding-top: 18px;
	transition: transform .25s ease;
}

.homy-prestation-card:hover .homy-prestation-card__arrow {
	transform: translateX(4px);
}

/* Prestation page (templates/single-homy_prestation.html) */
.homy-prestation-page > * {
	margin-block: 0;
}

.homy-prestation-page .homy-eyebrow {
	margin-bottom: 18px;
	text-align: center;
}

.homy-prestation-page .homy-eyebrow a {
	color: inherit;
	text-decoration: none;
}

.homy-prestation-page .homy-prestation-page__title {
	font-size: var(--wp--preset--font-size--x-large);
	letter-spacing: -.045em;
	line-height: 1.04;
	text-align: center;
}

.homy-prestation-page .homy-prestation-page__photo {
	margin-top: 40px;
}

.homy-prestation-page__photo img {
	aspect-ratio: 16 / 7;
	border-radius: var(--homy-radius);
	display: block;
	object-fit: cover;
	width: 100%;
}

/*
 * Text under the big photo; the image block of class homy-prestation-card-image (first block of the
 * text) floats on its right as a card. flow-root keeps the card inside the text area, above the CTA.
 */
.homy-prestation-page .homy-prestation-page__text {
	display: flow-root;
	margin-top: 46px;
}

.homy-prestation-page__text > :where(p, ul, .wp-block-buttons) {
	max-width: 760px;
}

.homy-prestation-page__text > .homy-prestation-card-image {
	float: right;
	margin: 0 0 32px 40px;
	width: min(380px, 34%);
}

.homy-prestation-card-image img {
	border-radius: var(--homy-radius);
	box-shadow: var(--homy-shadow-lift);
	display: block;
	height: auto;
	width: 100%;
}

/* Text of a Prestation: lead paragraph, secondary paragraphs, checklist, quote button. */
.homy-prestation-page__text > .homy-prestation-page__lead {
	color: var(--wp--preset--color--ink);
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.55;
}

.homy-prestation-page__text > p:not(.homy-prestation-page__lead) {
	color: var(--wp--preset--color--muted);
}

.homy-prestation-page__text > * + * {
	margin-block-start: 22px;
}

.homy-prestation-page__text > .homy-checklist {
	margin-block-start: 32px;
}

.homy-prestation-page__text > .wp-block-buttons {
	margin-block-start: 32px;
}

/* Checklist: list with a check icon per item (list block of class homy-checklist). */
.homy-checklist {
	--homy-check: var(--wp--preset--color--blue);
	display: flex;
	flex-direction: column;
	gap: 13px;
	list-style: none;
	padding: 0;
}

.homy-checklist li {
	align-items: center;
	display: flex;
	font-size: var(--wp--preset--font-size--small);
	gap: 10px;
}

.homy-checklist li::before {
	background: var(--homy-check);
	content: "";
	flex: none;
	height: 18px;
	-webkit-mask: var(--homy-icon-check) center / contain no-repeat;
	mask: var(--homy-icon-check) center / contain no-repeat;
	width: 18px;
}

/* Quote section (patterns/section-devis.php): copy on a dark gradient, form card beside it. */
.homy-quote {
	background: linear-gradient(120deg, var(--wp--preset--color--navy), var(--homy-quote-bg-end));
	color: var(--wp--preset--color--white);
}

.homy-quote .homy-quote__grid {
	align-items: center;
	display: grid;
	gap: 110px;
	grid-template-columns: .9fr 1.1fr;
}

.homy-quote__grid > *,
.homy-quote__copy > *,
.homy-quote__card > *,
.homy-quote__card-title > * {
	margin-block: 0;
}

.homy-quote h2 {
	color: var(--wp--preset--color--white);
}

.homy-quote .homy-quote__intro {
	color: var(--homy-quote-text);
	margin: 25px 0 30px;
}

.homy-quote .homy-checklist {
	--homy-check: var(--homy-check-light);
	color: var(--homy-quote-point);
}

/* Form card: a square white card, as in the mockup. */
.homy-quote .homy-quote__card {
	background: var(--wp--preset--color--white);
	box-shadow: var(--homy-shadow-card);
	color: var(--wp--preset--color--ink);
	min-height: 560px;
	padding: 38px;
}

.homy-quote .homy-quote__card-title {
	align-items: center;
	display: flex;
	gap: 8px 16px;
	justify-content: space-between;
	margin-bottom: 24px;
}

.homy-quote__card-name {
	font-size: 24px;
	font-weight: 800;
	line-height: 1.25;
}

.homy-quote__card-note {
	color: var(--wp--preset--color--blue);
	font-size: 13px;
	font-weight: 800;
	line-height: 1.3;
}

/*
 * Quote form (block homy/quote-form): Fluent Forms markup set to inherit the theme style. Fields on a
 * two-column grid, name and phone side by side (field class homy-quote-form__half).
 */
.homy-quote-form {
	--fluentform-danger: var(--homy-error);
}

.homy-quote-form .fluentform fieldset {
	column-gap: 14px;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.homy-quote-form .fluentform .ff-el-group {
	grid-column: 1 / -1;
	margin: 0 0 14px;
}

.homy-quote-form .fluentform .ff-el-group.homy-quote-form__half {
	grid-column: auto;
}

.homy-quote-form .fluentform .ff-el-input--label {
	margin-bottom: 7px;
}

.homy-quote-form .fluentform .ff-el-input--label label {
	color: var(--homy-field-label);
	font-size: 13px;
	font-weight: 800;
}

.homy-quote-form .fluentform .ff-el-form-control {
	background: var(--homy-field-bg);
	border: 1px solid var(--homy-field-border);
	border-radius: 6px;
	box-sizing: border-box;
	color: var(--wp--preset--color--ink);
	font: inherit;
	font-size: 13px;
	font-weight: 800;
	height: 47px;
	outline: none;
	padding: 0 13px;
	width: 100%;
}

.homy-quote-form .fluentform textarea.ff-el-form-control {
	height: auto;
	line-height: 1.5;
	padding: 13px;
	resize: vertical;
}

.homy-quote-form .fluentform .ff-el-form-control::placeholder {
	color: var(--wp--preset--color--muted);
}

.homy-quote-form .fluentform .ff-el-form-control:focus {
	border-color: var(--wp--preset--color--blue);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--wp--preset--color--blue) 10%, transparent);
}

.homy-quote-form .fluentform .ff-el-is-error .ff-el-form-control {
	border-color: var(--homy-error);
}

.homy-quote-form .fluentform .text-danger {
	color: var(--homy-error);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.4;
	margin-top: 6px;
}

/* Profile: two bordered choices side by side; the group label is read by screen readers only. */
.homy-quote-form .fluentform .homy-quote-form__profile {
	margin-bottom: 18px;
}

.homy-quote-form .homy-quote-form__profile .ff-el-input--label {
	clip-path: inset(50%);
	height: 1px;
	margin: 0;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

.homy-quote-form .homy-quote-form__profile .ff-el-input--content {
	display: flex;
	gap: 12px;
}

.homy-quote-form .fluentform .homy-quote-form__profile .ff-el-form-check {
	flex: 1;
	margin: 0;
}

.homy-quote-form .homy-quote-form__profile .ff-el-form-check-label {
	align-items: center;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 6px;
	cursor: pointer;
	display: flex;
	font-size: var(--wp--preset--font-size--small);
	gap: 8px;
	height: 100%;
	line-height: 1.4;
	padding: 13px 15px;
}

.homy-quote-form .homy-quote-form__profile .ff-el-form-check-label:has(:focus-visible) {
	border-color: var(--wp--preset--color--blue);
}

.homy-quote-form .homy-quote-form__profile .ff-el-form-check-input {
	accent-color: var(--wp--preset--color--blue);
	margin: 0;
}

/* Submit: large full-width primary button with the arrow of the mockup. */
.homy-quote-form .fluentform .ff_submit_btn_wrapper {
	margin: 0;
}

.homy-quote-form .fluentform .ff-btn-submit {
	cursor: pointer;
	min-height: 54px;
	padding-inline: 26px;
	width: 100%;
}

.homy-quote-form .fluentform .ff-btn-submit::after {
	background: currentColor;
	content: "";
	flex: none;
	height: 18px;
	-webkit-mask: var(--homy-icon-arrow-right) center / contain no-repeat;
	mask: var(--homy-icon-arrow-right) center / contain no-repeat;
	width: 18px;
}

.homy-quote-form .ff-message-success {
	background: var(--wp--preset--color--ice);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 6px;
	padding: 18px 20px;
}

.homy-quote-form .ff-message-success > * {
	margin: 0;
}

/* Information notice on the data collected (LPD art. 19 al. 2): paragraph under the quote form. */
.homy-quote .homy-quote__notice {
	color: var(--wp--preset--color--muted);
	font-size: var(--homy-text-xs);
	line-height: 1.5;
	margin: 14px 0 0;
}

/* « Homy Clean Shop » (patterns/section-boutique.php): copy on a dark gradient and the image side by side in a white card. */
.homy-section.homy-shop {
	background: var(--homy-shop-bg);
}

.homy-shop .homy-shop__card {
	background: var(--wp--preset--color--white);
	box-shadow: 0 24px 60px color-mix(in srgb, var(--wp--preset--color--ink) 10%, transparent);
	display: grid;
	grid-template-columns: .86fr 1.14fr;
	min-height: 500px;
	overflow: hidden;
}

/* Without image, the copy spans the card. */
.homy-shop .homy-shop__card:not(:has(> .homy-shop__image)) {
	grid-template-columns: 1fr;
}

.homy-shop__card > *,
.homy-shop__copy > * {
	margin-block: 0;
}

.homy-shop .homy-shop__copy {
	background: var(--homy-shop-copy-bg);
	color: var(--wp--preset--color--white);
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 70px 60px;
}

.homy-shop h2 {
	color: var(--wp--preset--color--white);
}

/* Emphasized word: colored, not italic (mockup). */
.homy-shop h2 em {
	color: var(--homy-shop-em);
	font-style: normal;
}

.homy-shop .homy-shop__copy .homy-shop__intro {
	color: var(--homy-shop-text);
	margin-block: 24px;
}

/* Category pills: a list, one pill per item. */
.homy-shop .homy-shop__copy .homy-shop__pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	padding: 0;
}

.homy-shop__pills li {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--white) 18%, transparent);
	border-radius: 20px;
	color: var(--homy-shop-pill);
	font-size: var(--homy-text-xs);
	line-height: 1.5;
	padding: 8px 12px;
}

.homy-shop .homy-shop__image {
	margin: 0;
}

.homy-shop__image img {
	display: block;
	height: 100%;
	min-height: 500px;
	object-fit: cover;
	width: 100%;
}

/*
 * Waiting page (templates/coming-soon.html), served while the site or the shop is not online: alone
 * on the page (whole site, homy-waiting-site), or in the site frame (shop pages only,
 * homy-waiting-shop). The mu-plugin renders only the variant of the current mode.
 */
.homy-coming-soon {
	align-items: flex-start;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: center;
	margin-inline: auto;
	min-height: 100vh;
	min-height: 100svh;
	padding-block: 80px;
	width: var(--homy-shell);
}

.homy-coming-soon > * {
	margin-block: 0;
}

.homy-coming-soon > .homy-site-logo,
.homy-coming-soon > .homy-brand {
	margin-bottom: 72px;
}

.homy-coming-soon h1 em {
	color: var(--wp--preset--color--blue);
	font-style: normal;
}

.homy-coming-soon .homy-coming-soon__intro {
	color: var(--wp--preset--color--muted);
	margin-top: 26px;
	max-width: 640px;
}

.homy-coming-soon > .wp-block-buttons {
	margin-top: 32px;
}

.homy-coming-soon.homy-coming-soon--shop {
	min-height: 0;
	padding-block: var(--homy-section-space);
}

/* 404 */
.homy-404 {
	padding-block: 110px;
}

.homy-404 p:not(.homy-eyebrow) {
	color: var(--wp--preset--color--muted);
}

/* Reading layout for long texts (legal pages): content group of class homy-prose.
   The page title follows the same width so title and text stay aligned. */
.wp-block-group.homy-prose,
.homy-main:has(.homy-prose) > .wp-block-post-title {
	max-width: 760px;
}

.homy-main:has(.homy-prose) > .wp-block-post-title {
	font-size: var(--wp--preset--font-size--x-large);
}

.homy-prose h2 {
	font-size: 28px;
	letter-spacing: -.02em;
	line-height: 1.2;
	margin-top: 56px;
}

.homy-prose h3 {
	margin-top: 36px;
}

.homy-prose__updated {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

/* Footer */
.homy-footer {
	--homy-brand-notch: var(--homy-footer-bg);
	background: var(--homy-footer-bg);
	color: var(--homy-footer-text);
	line-height: 1.5;
	padding: var(--homy-footer-space) 0 var(--homy-gutter);
}

.homy-footer > *,
.homy-footer__grid > *,
.homy-footer__col > *,
.homy-footer__bottom > * {
	margin: 0;
}

.homy-footer__grid,
.homy-footer__bottom {
	margin-inline: auto;
	width: var(--homy-shell);
}

.homy-footer__grid {
	display: grid;
	gap: var(--homy-footer-space);
	grid-template-columns: 1.35fr .8fr 1fr .9fr;
}

.homy-footer__col {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.homy-footer .homy-brand {
	color: var(--wp--preset--color--white);
}

.homy-footer__col > p,
.homy-footer__col > .homy-prestation-list {
	color: var(--homy-footer-muted);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.6;
}

/* Column titles: h2 headings, set back from the section title scale of theme.json. */
.homy-footer__col > .homy-footer__heading {
	color: var(--wp--preset--color--white);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: normal;
	line-height: 1.5;
}

.homy-footer__links > p,
.homy-footer__col > .homy-footer__zone,
.homy-footer__col > .homy-footer__prestations {
	font-size: 13px;
	line-height: 1.5;
}

.homy-footer__col > .homy-footer__zone {
	margin-top: 8px;
}

/* Social network links (block homy/social-links): round icon buttons, absent while no address is set. */
.homy-social {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	list-style: none;
	padding: 0;
}

.homy-footer__col > .homy-social {
	margin-top: 8px;
}

.homy-footer__col > .homy-social__label {
	font-weight: 700;
	margin-top: 16px;
}

.homy-social a {
	border: 1px solid color-mix(in srgb, currentColor 30%, transparent);
	border-radius: 50%;
	color: inherit;
	display: grid;
	height: 38px;
	place-items: center;
	transition: background .2s ease, border-color .2s ease, color .2s ease;
	width: 38px;
}

.homy-footer .homy-social a {
	border-color: color-mix(in srgb, var(--wp--preset--color--white) 18%, transparent);
}

.homy-social a:hover,
.homy-social a:focus-visible {
	background: var(--wp--preset--color--blue);
	border-color: var(--wp--preset--color--blue);
	color: var(--wp--preset--color--white);
}

.homy-social__empty {
	font-size: var(--homy-text-xs);
	opacity: .7;
}

/* Footer list of the first Prestations (block homy/prestations, variant list). */
.homy-prestation-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
	list-style: none;
	padding: 0;
}

.homy-footer a:where(:not(.wp-element-button)) {
	color: inherit;
	text-decoration: none;
}

.homy-footer a:where(:not(.wp-element-button)):hover {
	color: var(--wp--preset--color--white);
}

.homy-footer__bottom {
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--white) 12%, transparent);
	color: var(--homy-footer-faint);
	display: flex;
	font-size: var(--homy-text-xs);
	justify-content: space-between;
	margin-top: 50px;
	padding-top: var(--homy-gutter);
}

/* Tablet: navigation folds into the burger menu, only when JavaScript runs (class set by functions.php). */
@media (max-width: 1050px) {
	.homy-prestation-page__text > .homy-prestation-card-image {
		float: none;
		margin: 0 0 32px;
		max-width: 380px;
		width: 100%;
	}

	.homy-quote .homy-quote__grid,
	.homy-statement .homy-statement__grid,
	.homy-about .homy-about__grid {
		gap: 60px;
	}

	/* Sits 10px from the quote button, as in the mockup (cancels most of the header gap). */
	.homy-js .homy-burger {
		display: grid;
		margin-left: calc(10px - var(--homy-gutter));
	}

	.homy-js .homy-header__actions,
	.homy-js .homy-header__social,
	.homy-js .homy-header > .homy-cart {
		margin-left: auto;
	}

	.homy-js .homy-header > .homy-cart + .homy-header__social,
	.homy-js .homy-header > .homy-header__social + .homy-header__actions {
		margin-left: calc(10px - var(--homy-gutter));
	}

	.homy-js .homy-header > .homy-cart + .homy-header__actions {
		margin-left: calc(10px - var(--homy-gutter));
	}

	.homy-prestation-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.homy-prestation-card__media {
		aspect-ratio: 16 / 10;
	}

	.homy-pillars .homy-pillars__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.homy-pillars .homy-pillar:nth-child(odd) {
		border-left: 0;
	}

	/* Only on the front end, where the burger exists: the site editor keeps the navigation visible. */
	.homy-js nav.homy-nav--burger {
		display: none;
	}

	.homy-js nav.homy-nav--burger.is-open {
		background: var(--wp--preset--color--white);
		box-shadow: 0 24px 40px color-mix(in srgb, var(--wp--preset--color--ink) 14%, transparent);
		display: flex;
		inset: 100% 0 auto;
		padding: 26px var(--homy-gutter);
		position: absolute;
	}

	.homy-js nav.homy-nav--burger.is-open .wp-block-navigation__container {
		align-items: stretch;
		flex-direction: column;
		width: 100%;
	}

	/* Without JavaScript the navigation stays visible: the header grows to hold it. */
	html:not(.homy-js) .homy-header {
		flex-wrap: wrap;
		height: auto;
		min-height: var(--homy-header-height);
		padding-block: calc((var(--homy-header-height) - var(--homy-mark-size)) / 2);
	}
}

/* Mobile */
@media (max-width: 760px) {
	:root {
		--homy-header-height: 72px;
		--homy-shell: min(100% - 2 * var(--homy-gutter-mobile), var(--wp--style--global--content-size));
		--homy-mark-size: 38px;
	}

	.homy-topbar > * + * {
		display: none;
	}

	.homy-header {
		padding-inline: var(--homy-gutter-mobile);
	}

	.homy-header .homy-header__quote {
		display: none;
	}

	.homy-brand__name {
		font-size: 19px;
	}

	:root {
		--homy-section-space: 76px;
	}

	/* Content gutter of the mockup on mobile (theme.json root padding sets 24px on body). */
	html body {
		--wp--style--root--padding-left: var(--homy-gutter-mobile);
		--wp--style--root--padding-right: var(--homy-gutter-mobile);
	}

	.homy-section .homy-section__heading {
		gap: 22px;
		grid-template-columns: 1fr;
	}

	.homy-hero {
		align-content: end;
		min-height: 690px;
		padding-block: 90px 80px;
	}

	.homy-hero::before {
		background: var(--homy-hero-shade-mobile);
	}

	/* Copy set in from the page gutter, as in the mockup. */
	.homy-hero > .homy-hero__content {
		padding-inline: var(--homy-gutter-mobile);
	}

	.homy-hero__image img {
		object-position: 61% center;
	}

	.homy-hero h1 {
		font-size: 52px;
	}

	.homy-hero .homy-hero__intro {
		font-size: 16px;
	}

	.homy-hero .homy-hero__buttons {
		align-items: stretch;
		flex-direction: column;
	}

	.homy-hero .homy-hero__buttons .wp-block-button {
		width: 100%;
	}

	.homy-hero .homy-hero__buttons .wp-block-button__link {
		width: 100%;
	}

	.homy-hero .homy-hero__trust {
		flex-direction: column;
		gap: 13px;
		margin-top: 30px;
	}

	.homy-hero > .homy-hero__cue {
		display: none;
	}

	.homy-prestation-grid {
		grid-template-columns: 1fr;
	}

	.homy-statement .homy-statement__grid {
		gap: 48px;
		grid-template-columns: 1fr;
	}

	.homy-about .homy-about__grid {
		gap: 48px;
		grid-template-columns: 1fr;
	}

	.homy-pillars .homy-pillars__grid {
		grid-template-columns: 1fr;
		row-gap: 36px;
	}

	.homy-pillars .homy-pillar + .homy-pillar {
		border-left: 0;
	}

	.homy-shop .homy-shop__card {
		grid-template-columns: 1fr;
	}

	.homy-shop .homy-shop__copy {
		padding: 48px 26px;
	}

	.homy-shop__image img {
		min-height: 300px;
	}

	.homy-cart .wc-block-mini-cart__button {
		height: 38px;
		width: 38px;
	}

	.homy-statement .homy-proof .homy-proof__title {
		margin-top: 48px;
	}

	.homy-quote .homy-quote__grid {
		gap: 44px;
		grid-template-columns: 1fr;
	}

	.homy-quote .homy-quote__card {
		min-height: auto;
		padding: 24px 18px;
	}

	.homy-quote .homy-quote__card-title {
		align-items: flex-start;
		flex-direction: column;
	}

	.homy-quote-form .fluentform fieldset {
		grid-template-columns: 1fr;
	}

	/* 16px: below, mobile browsers zoom into the field on focus. */
	.homy-quote-form .fluentform .ff-el-form-control {
		font-size: 16px;
	}

	.homy-prestation-page__photo img {
		aspect-ratio: 4 / 3;
	}

	.homy-footer__grid {
		gap: 44px 25px;
		grid-template-columns: 1fr 1fr;
	}

	.homy-footer__bottom {
		flex-direction: column;
		gap: 12px;
	}
}

@media (max-width: 430px) {
	.homy-hero h1 {
		font-size: 46px;
	}

	.homy-footer__grid {
		grid-template-columns: 1fr;
	}
}
