/* Alizés theme — direction « Alizés » validated on 21/10/2026 (design/v3/).
   Colours, fonts and sizes come from theme.json (--wp--preset--*). Motion rules only apply under
   html.motion-on (set by assets/js/scenes.js), so the editor and reduced-motion visitors get a static layout. */

:root {
	--al-creme: var(--wp--preset--color--creme);
	--al-papier: var(--wp--preset--color--papier);
	--al-sable: var(--wp--preset--color--sable);
	--al-or: var(--wp--preset--color--or);
	--al-or-fonce: var(--wp--preset--color--or-fonce);
	--al-bleu: var(--wp--preset--color--bleu-vert);
	--al-bleu-fonce: var(--wp--preset--color--bleu-vert-fonce);
	--al-ciel: var(--wp--preset--color--ciel);
	--al-ciel-clair: var(--wp--preset--color--ciel-clair);
	--al-encre: var(--wp--preset--color--encre);
	--al-encre-douce: var(--wp--preset--color--encre-douce);
	--al-titre: var(--wp--preset--font-family--gloock);
	--al-souple: var(--wp--preset--font-family--fraunces);
	--al-texte: var(--wp--preset--font-family--manrope);
	--al-wrap: min(1280px, 100% - 2.5rem);
	--al-gap: clamp(5rem, 11vw, 10rem);
	--al-r: 22px;
	--al-ease: cubic-bezier(.2, .7, .2, 1);
	--al-entete: 4.5rem;
}

/* ---------- Base ---------- */
body { font-weight: 450; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
:focus-visible { outline: 3px solid var(--al-bleu); outline-offset: 3px; }
img { max-width: 100%; height: auto; }
.alizes-wrap { width: var(--al-wrap); margin-inline: auto; }
.alizes-section { padding-block: var(--al-gap); }
.alizes-fond-sable { background: var(--al-sable); }
.alizes-centre { text-align: center; }
.alizes-centre .alizes-intro { margin-inline: auto; }
h1, h2, h3 { text-wrap: balance; }
h1 .it, h2 .it, h3 .it, .it {
	font-family: var(--al-souple); font-style: italic; font-weight: 340; font-variation-settings: "SOFT" 100;
	color: var(--al-bleu); letter-spacing: -.015em;
}
h1 .it, h2 .it { font-size: 1.04em; }
.em { position: relative; white-space: nowrap; color: var(--al-bleu); }
.em::after {
	content: ""; position: absolute; left: -2%; right: -2%; bottom: -.14em; height: .3em;
	background: url("../images/vague.svg") center / 100% 100% no-repeat;
}
.is-style-surtitre, p.is-style-surtitre {
	margin: 0 0 1rem; color: var(--al-or-fonce); font-size: .78rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase;
}
.alizes-intro { max-width: 36rem; color: var(--al-encre-douce); font-size: 1.15rem; }

/* Buttons */
.wp-block-button__link { display: inline-flex; align-items: center; gap: .6rem; min-height: 3.25rem; transition: background .25s, transform .25s; }
.wp-block-button__link:hover { transform: translateY(-1px); }
.wp-block-button.is-style-contour .wp-block-button__link { background: transparent; color: var(--al-bleu); box-shadow: inset 0 0 0 1.5px var(--al-bleu); }
.wp-block-button.is-style-contour .wp-block-button__link:hover { background: var(--al-bleu); color: #fff; }
.wp-block-button.is-style-clair .wp-block-button__link { background: var(--al-papier); color: var(--al-bleu-fonce); }
.wp-block-button.is-style-clair .wp-block-button__link:hover { background: var(--al-sable); }
.alizes-fleche .wp-block-button__link::after { content: "→"; font-weight: 400; }

/* Lists */
ul.is-style-pastilles { display: flex; flex-wrap: wrap; gap: .4rem; margin: 1.25rem 0 0; padding: 0; list-style: none; }
ul.is-style-pastilles li { padding: .35rem .85rem; border-radius: 999px; background: var(--al-sable); font-size: .88rem; font-weight: 700; }

/* Photo placeholder (theme image) until a real photo is chosen */
img[src*="photo-a-choisir"] { object-fit: cover; background: var(--al-sable); }

/* ---------- Header ---------- */
.alizes-entete {
	position: fixed; top: var(--wp-admin--admin-bar--height, 0px); left: 0; right: 0; z-index: 50;
	background: rgba(247, 243, 234, .96); transition: box-shadow .35s;
}
@supports (backdrop-filter: blur(8px)) { .alizes-entete { backdrop-filter: blur(8px); } }
.alizes-entete.is-scrolled { box-shadow: 0 1px 0 rgba(31, 43, 44, .08); }
.alizes-entete__in { display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: var(--al-wrap); min-height: var(--al-entete); margin-inline: auto; }
/* The flow layout adds a top margin to every child after the first: none in a flex row. */
.alizes-entete__in > * { margin-block: 0; }
body:not(.alizes-accueil) .wp-site-blocks { padding-top: var(--al-entete); }
.alizes-marque { margin: 0; }
.alizes-marque a { display: inline-flex; white-space: nowrap; align-items: center; gap: .65rem; color: var(--al-encre); text-decoration: none; font: 340 1.55rem/1 var(--al-souple); font-variation-settings: "SOFT" 100; letter-spacing: -.02em; }
.alizes-marque img { width: 2.5rem; height: 2.5rem; border-radius: 50%; object-fit: cover; }
.alizes-marque em { font-style: italic; }
.alizes-entete .wp-block-navigation { gap: 2.25rem; font-weight: 600; }
.alizes-entete .wp-block-navigation a { color: var(--al-encre); text-decoration: none; }
.alizes-entete .wp-block-navigation a:hover, .alizes-entete .wp-block-navigation .current-menu-item > a {
	text-decoration: underline; text-decoration-color: var(--al-or); text-decoration-thickness: 2px; text-underline-offset: .5em;
}
.wp-block-buttons.alizes-entete__appel { display: none; }
.alizes-entete__appel .wp-block-button__link { min-height: 2.8rem; padding: .85rem 1.4rem; }
.alizes-entete .wp-block-navigation__responsive-container-open {
	place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: var(--al-sable); color: var(--al-encre);
}
/* Core switches to the full menu at 600 px, where the four links no longer fit beside the name: keep the round button up to 767 px. */
@media (max-width: 767px) {
	.alizes-entete .wp-block-navigation__responsive-container-open:not(.always-shown) { display: grid; }
	.alizes-entete .wp-block-navigation .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
/* backdrop-filter would make the header the containing block of the fixed menu overlay. */
.alizes-entete:has(.is-menu-open) { backdrop-filter: none; z-index: 100; }
.alizes-entete .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open {
	padding: 1.5rem 1.25rem; background: var(--al-bleu-fonce); color: var(--al-creme);
}
.alizes-entete .wp-block-navigation__responsive-container.is-menu-open a { color: var(--al-creme); font: 400 2.4rem/1.1 var(--al-titre); }
.alizes-entete .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; padding-block: .5rem; border-bottom: 1px solid rgba(247, 243, 234, .15); }
.alizes-entete .wp-block-navigation__responsive-container-close { color: var(--al-creme); }
/* Core aligns the overlay items with these variables (centre, from the desktop menu): full-width rows instead. */
.alizes-entete .wp-block-navigation__responsive-container.is-menu-open { --navigation-layout-justification-setting: stretch; --navigation-layout-justify: flex-start; }
@media (min-width: 900px) { .wp-block-buttons.alizes-entete__appel { display: flex; } }

/* ---------- Footer ---------- */
.alizes-pied { padding-block: 4rem 2rem; background: var(--al-bleu-fonce); color: var(--al-creme); }
.alizes-pied a { color: var(--al-creme); text-decoration: none; }
/* Footer links underlined on hover and keyboard focus only (D-069). */
.alizes-pied a:hover, .alizes-pied a:focus-visible { text-decoration: underline; text-underline-offset: .2em; }
.alizes-pied__marque { margin: 0; font: 300 clamp(3rem, 13vw, 11rem)/.92 var(--al-souple); font-variation-settings: "SOFT" 100; color: var(--al-or); letter-spacing: -.035em; }
.alizes-pied__marque em { font-style: italic; }
.alizes-pied__grille { display: grid; gap: 2rem; margin-top: 3rem; }
.alizes-pied h2 { margin: 0 0 .6rem; color: var(--al-ciel); font: 700 .78rem/1 var(--al-texte); letter-spacing: .16em; text-transform: uppercase; }
.alizes-pied p { margin: 0 0 .35rem; }
.alizes-pied__mail a { font-weight: 700; }
.alizes-pied__bas { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; margin-top: 3rem; padding-top: 1.25rem; border-top: 1px solid rgba(247, 243, 234, .18); font-size: .88rem; color: rgba(247, 243, 234, .85); }
.alizes-pied__bas p { margin: 0; }
@media (min-width: 900px) { .alizes-pied__grille { grid-template-columns: repeat(4, 1fr); } }

/* Social links (Facebook, Airbnb) */
.alizes-reseaux.wp-block-social-links { gap: .6rem; }
.alizes-reseaux .wp-social-link { border-radius: 999px; background: rgba(247, 243, 234, .1) !important; color: var(--al-creme) !important; }
.alizes-reseaux .wp-social-link a { display: inline-flex; align-items: center; gap: .55rem; min-height: 2.75rem; padding: .4rem 1rem .4rem .45rem; font-weight: 700; }
/* Core sets the icon colour with a 5-class selector: match it. */
.alizes-reseaux.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg { width: 2rem; height: 2rem; padding: .4rem; border-radius: 50%; background: var(--al-creme); color: var(--al-bleu-fonce); fill: currentColor; }
.alizes-reseaux .wp-block-social-link-label { position: static; width: auto; height: auto; clip: auto; overflow: visible; white-space: nowrap; }
.alizes-reseaux--clair .wp-social-link { background: var(--al-papier) !important; color: var(--al-encre) !important; }
.alizes-reseaux--clair.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg { background: var(--al-bleu); color: #fff; }

/* Mobile bar: e-mail + availability, fixed at the bottom of the screen */
.wp-block-buttons.alizes-barre {
	position: fixed; left: .75rem; right: .75rem; bottom: .75rem; z-index: 40; display: grid; grid-template-columns: auto 1fr; gap: .4rem;
	margin: 0 0 env(safe-area-inset-bottom); padding: .4rem; border-radius: 999px; background: rgba(22, 59, 66, .96); box-shadow: 0 10px 30px rgba(10, 30, 34, .3);
}
.alizes-barre .wp-block-button__link { width: 100%; justify-content: center; min-height: 3rem; padding: .8rem 1.2rem; background: var(--al-or); color: var(--al-bleu-fonce); }
.alizes-barre .alizes-barre__mail .wp-block-button__link {
	width: 3rem; padding: 0; background: transparent url("../images/ico-mail.svg") center / 1.15rem no-repeat;
	box-shadow: inset 0 0 0 1.5px rgba(247, 243, 234, .5); color: transparent; font-size: 0;
}
body { padding-bottom: 5rem; }
@media (min-width: 900px) { .wp-block-buttons.alizes-barre { display: none; } body { padding-bottom: 0; } }

/* ---------- Home: opening (D-024) ---------- */
.alizes-hero { position: relative; margin: 0; }
.alizes-hero__sticky { position: relative; height: 100svh; min-height: 34rem; overflow: hidden; }
.alizes-hero__photo { position: absolute; inset: 0; margin: 0; overflow: hidden; transform-origin: 50% 0; background: var(--al-creme); }
.alizes-hero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.alizes-hero__photo::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background: linear-gradient(180deg, rgba(10, 30, 34, .35) 0%, rgba(10, 30, 34, 0) 30%, rgba(10, 30, 34, .15) 55%, rgba(10, 30, 34, .7) 100%);
}
.alizes-hero__titre { position: absolute; left: 0; right: 0; bottom: 6.75rem; z-index: 1; padding: 0 calc(7vw + 1.25rem); color: #fff; }
.alizes-hero__titre .is-style-surtitre { color: var(--al-creme); text-shadow: 0 1px 10px rgba(0, 0, 0, .45); font-size: .68rem; letter-spacing: .14em; }
.alizes-hero h1 { max-width: 13ch; margin: 0; color: #fff; font-size: clamp(2.6rem, 10.5vw, 6.4rem); }
.alizes-hero h1 .it { color: #fff; }
.alizes-hero__sous-titre { display: none; }
@media (min-width: 900px) {
	.alizes-hero__sticky { min-height: 40rem; }
	.alizes-hero__titre { bottom: calc(20svh - 2.25rem); padding: 0 calc(10vw + 2.5rem); }
	.alizes-hero__titre .is-style-surtitre { font-size: .78rem; letter-spacing: .2em; }
	.alizes-hero__sous-titre { display: block; max-width: 32rem; margin-top: 1.1rem; font-size: 1.15rem; }
}
/* With motion: the photo starts reduced under the menu bar and grows to full screen while pinned */
.motion-on .alizes-hero { height: 265svh; }
/* On phones the photo grows over a shorter scroll (about one and a half screens), so the thumb reaches the page sooner. */
@media (max-width: 899px) { .motion-on .alizes-hero { height: 160svh; } }
.motion-on .alizes-hero__sticky { position: sticky; top: 0; }
.motion-on .alizes-hero__photo {
	--s0: .86; --y0: 4.6rem; will-change: transform; border-radius: calc((1 - var(--p, 0)) * 26px);
	transform: translateY(calc((1 - var(--p, 0)) * var(--y0))) scale(calc(var(--s0) + var(--p, 0) * (1 - var(--s0))));
}
.motion-on .alizes-hero__photo img { transform: scale(calc(1.12 - var(--p, 0) * .12)); }
@media (min-width: 900px) { .motion-on .alizes-hero__photo { --s0: .8; --y0: 5.25rem; } }
.motion-off .alizes-hero__photo { top: var(--al-entete); }
/* Intro: the photo rises slowly out of the cream background, the text waits for the first scroll */
.intro-play .alizes-hero__photo img { opacity: 0; animation: alizesPhotoLente 2.6s .2s cubic-bezier(.45, 0, .35, 1) forwards; }
.intro-play .alizes-hero__photo::after { opacity: 0; animation: alizesFondu 1s 1.6s ease forwards; }
.intro-end .alizes-hero__photo img, .intro-end .alizes-hero__photo::after { animation: none; opacity: 1; scale: 1; }
@keyframes alizesPhotoLente { from { opacity: 0; scale: 1.06; } to { opacity: 1; scale: 1; } }
@keyframes alizesFondu { to { opacity: 1; } }
html:is(.intro-play, .intro-skip) .alizes-hero__titre > * { opacity: 0; transform: translateY(1.5rem); transition: opacity .9s var(--al-ease), transform .9s var(--al-ease); }
html:is(.intro-play, .intro-skip).hero-text .alizes-hero__titre > * { opacity: 1; transform: none; }
html.hero-text .alizes-hero__titre > :nth-child(2) { transition-delay: .12s; }
html.hero-text .alizes-hero__titre > :nth-child(3) { transition-delay: .24s; }

/* ---------- Home: one sentence, words light up while scrolling ---------- */
.alizes-phrase { padding: 9rem 1.25rem 9.75rem; }
@media (min-width: 760px) { .alizes-phrase { padding-block: clamp(10.5rem, 19.5vw, 18rem) clamp(12rem, 21vw, 19.5rem); } }
.alizes-phrase p { max-width: 60rem; margin: 0 auto; font: 400 clamp(2rem, 5.2vw, 4.2rem)/1.2 var(--al-titre); text-align: center; }
.motion-on .alizes-phrase .w { opacity: clamp(.14, calc(var(--p, 0) * var(--n, 30) * 2.6 - var(--i, 0) - var(--n, 30) * .25), 1); transition: opacity .2s; }

/* ---------- Home: photo + text ---------- */
.alizes-split { display: grid; gap: 2rem; align-items: center; width: var(--al-wrap); margin-inline: auto; padding-bottom: var(--al-gap); }
.alizes-split__photo { position: relative; overflow: hidden; margin: 0; border-radius: var(--al-r); aspect-ratio: 4 / 3; }
.alizes-split__photo img { width: 100%; height: 115%; object-fit: cover; }
.alizes-split h2 { font-size: clamp(2rem, 4vw, 3.2rem); }
.alizes-split__texte > p:not(.is-style-surtitre) { margin-top: 1.1rem; color: var(--al-encre-douce); font-size: 1.2rem; max-width: 34rem; }
.alizes-split .wp-block-buttons { margin-top: 1.75rem; }
.alizes-split .wp-block-button__link { min-height: 3.5rem; padding-inline: 2rem; font-size: 1.05rem; }
@media (min-width: 900px) { .alizes-split { grid-template-columns: 1.15fr 1fr; gap: 5rem; } .alizes-split__photo { aspect-ratio: 4 / 5; max-height: 40rem; } }
.motion-on .alizes-split__photo { clip-path: inset(14% 12% 14% 12% round 22px); transition: clip-path 1.6s var(--al-ease); }
.motion-on .alizes-split__photo img { opacity: 0; transition: opacity 1.2s var(--al-ease); transform: translateY(calc((var(--p, .5) - .5) * -8%)) scale(1.12); }
.motion-on .alizes-split__photo.is-visible { clip-path: inset(0 0 0 0 round 22px); }
.motion-on .alizes-split__photo.is-visible img { opacity: 1; }
.motion-on .alizes-split__texte > * { opacity: 0; transform: translateY(1.75rem); transition: opacity .9s var(--al-ease), transform .9s var(--al-ease); }
.motion-on .alizes-split__texte.is-visible > * { opacity: 1; transform: none; }
.alizes-split__texte > :nth-child(1) { transition-delay: .35s; }
.alizes-split__texte > :nth-child(2) { transition-delay: .5s; }
.alizes-split__texte > :nth-child(3) { transition-delay: .65s; }
.alizes-split__texte > :nth-child(4) { transition-delay: .8s; }

/* ---------- Gallery that scrolls sideways (pinned on large screens) ---------- */
.alizes-hscroll__sticky { padding-block: 0 2rem; }
.alizes-hscroll__tete { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem; width: var(--al-wrap); margin: 0 auto 2rem; }
.alizes-hscroll__tete h2 { margin: 0; }
.wp-block-gallery.alizes-track {
	display: flex; flex-wrap: nowrap; gap: .9rem; overflow-x: auto; margin: 0; padding: 0 1.25rem 1rem;
	scroll-snap-type: x mandatory; scrollbar-width: none;
}
.wp-block-gallery.has-nested-images.alizes-track figure.wp-block-image:not(#individual-image) {
	flex: none; width: 78vw; height: 62svh; max-height: 34rem; margin: 0; overflow: hidden; border-radius: var(--al-r); scroll-snap-align: center;
}
.wp-block-gallery.alizes-track figure.wp-block-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--al-ease); }
.wp-block-gallery.alizes-track figure.wp-block-image a { display: block; height: 100%; }
.wp-block-gallery.alizes-track figure.wp-block-image a:hover img { transform: scale(1.04); }
.wp-block-gallery.has-nested-images.alizes-track figure.wp-block-image figcaption {
	left: 0; right: 0; bottom: 0; max-height: none; padding: 4rem 1.1rem 1rem; overflow: visible; text-align: left;
	background: linear-gradient(transparent, rgba(10, 30, 34, .55)); color: #fff; font: 700 .75rem/1.3 var(--al-texte); letter-spacing: .14em; text-transform: uppercase;
}
.wp-block-gallery.alizes-track figcaption strong { display: block; margin-bottom: .35rem; font: 400 1.9rem/1 var(--al-titre); letter-spacing: 0; text-transform: none; text-shadow: 0 2px 16px rgba(0, 0, 0, .4); }
@media (min-width: 900px) {
	.motion-on .alizes-hscroll__sticky { position: sticky; top: 0; height: 100svh; display: flex; flex-direction: column; justify-content: center; overflow: hidden; padding: 4.5rem 0 1rem; }
	.motion-on .wp-block-gallery.alizes-track { overflow: visible; will-change: transform; }
	.wp-block-gallery.alizes-track { padding-inline: max(1.25rem, (100vw - 1280px) / 2); }
	.wp-block-gallery.has-nested-images.alizes-track figure.wp-block-image:not(#individual-image) { width: auto; height: 64svh; max-height: none; aspect-ratio: 3 / 2; }
	.wp-block-gallery.has-nested-images.alizes-track figure.wp-block-image:nth-child(odd):not(#individual-image) { aspect-ratio: 4 / 5; }
	.wp-block-gallery.has-nested-images.alizes-track figure.wp-block-image:nth-child(3n):not(#individual-image) { aspect-ratio: 1; }
	.wp-block-gallery.alizes-track figcaption strong { font-size: 2.4rem; }
}

/* ---------- Cards with a round pictogram ---------- */
.alizes-cartes { display: grid; gap: 1rem; margin-top: 3rem; }
.alizes-carte { margin: 0; padding: 1.75rem; border-radius: var(--al-r); background: var(--al-papier); }
.alizes-carte h3 { display: flex; align-items: center; gap: .9rem; margin: 0; font-size: 1.55rem; }
.alizes-carte p { margin: .75rem 0 0; color: var(--al-encre-douce); }
.alizes-carte ul { margin: 1rem 0 0; padding-left: 1.1rem; }
.alizes-carte li { padding: .2rem 0; }
.alizes-carte li::marker { color: var(--al-or); }
/* Pictogram: a sky circle (::before) with the icon drawn in teal through a mask (::after) */
h3[class*="is-style-ico-"] { position: relative; }
h3[class*="is-style-ico-"]::before { content: ""; flex: none; width: 2.9rem; height: 2.9rem; border-radius: 50%; background: var(--al-ciel-clair); }
h3[class*="is-style-ico-"]::after {
	content: ""; position: absolute; left: .65rem; top: 50%; width: 1.6rem; height: 1.6rem; margin-top: -.8rem;
	background: var(--al-bleu); -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat;
}
.is-style-ico-piscine { --ico: url("../images/ico-piscine.svg"); }
.is-style-ico-clim { --ico: url("../images/ico-clim.svg"); }
.is-style-ico-jardin { --ico: url("../images/ico-jardin.svg"); }
.is-style-ico-linge { --ico: url("../images/ico-linge.svg"); }
.is-style-ico-bebe { --ico: url("../images/ico-bebe.svg"); }
.is-style-ico-parking { --ico: url("../images/ico-parking.svg"); }
.is-style-ico-confort { --ico: url("../images/ico-confort.svg"); }
.is-style-ico-cuisine { --ico: url("../images/ico-cuisine.svg"); }
@media (min-width: 760px) { .alizes-cartes { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .alizes-cartes { grid-template-columns: repeat(3, 1fr); gap: 1.5rem; } }

/* ---------- Bedrooms as polaroids ---------- */
.alizes-polaroids { display: grid; gap: 2.25rem; margin-top: 3rem; }
.alizes-chambre { margin: 0; }
.alizes-chambre h3 { margin: 1.25rem 0 0; }
.alizes-chambre p { margin: .3rem 0 0; color: var(--al-encre-douce); }
.wp-block-image.is-style-polaroid { --rot: 0deg; margin: 0; padding: .55rem .55rem 2.2rem; aspect-ratio: 1; background: #fff; box-shadow: 0 14px 34px rgba(31, 43, 44, .14); transform: rotate(var(--rot)); transition: transform .5s var(--al-ease), box-shadow .5s var(--al-ease); }
.wp-block-image.is-style-polaroid img, .wp-block-image.is-style-polaroid a { display: block; width: 100%; height: 100%; object-fit: cover; }
.alizes-chambre:nth-child(1) .is-style-polaroid { --rot: -2deg; }
.alizes-chambre:nth-child(3) .is-style-polaroid { --rot: 2deg; }
.wp-block-image.is-style-polaroid:is(:hover, :focus-within, :active) { transform: rotate(calc(var(--rot) * 2)) translateY(-6px); box-shadow: 0 22px 44px rgba(31, 43, 44, .2); }
@media (min-width: 900px) { .alizes-polaroids { grid-template-columns: repeat(3, 1fr); gap: 3rem; } }

/* Mobile: long stacks become swipe carousels */
@media (max-width: 759px) {
	.alizes-cartes, .alizes-polaroids {
		grid-auto-flow: column; grid-auto-columns: 82%; grid-template-columns: none; overflow-x: auto;
		margin-inline: -1.25rem; padding: 1rem 1.25rem 1.5rem; scroll-snap-type: x mandatory; scroll-padding-inline: 1.25rem; scrollbar-width: none;
	}
	.alizes-cartes > *, .alizes-polaroids > * { scroll-snap-align: start; }
	.alizes-polaroids { grid-auto-columns: 74%; }
}

/* ---------- Review ---------- */
.alizes-avis { display: grid; gap: 2rem; }
.alizes-avis blockquote, .alizes-avis .wp-block-quote { margin: 0; padding: 0; border: 0; }
.alizes-avis .wp-block-quote p { font: 400 clamp(1.8rem, 4vw, 3.3rem)/1.2 var(--al-titre); }
.alizes-avis .wp-block-quote cite { display: block; margin-top: 1.25rem; color: var(--al-encre-douce); font-style: normal; font-size: 1rem; }
.alizes-avis__note { display: flex; flex-wrap: wrap; gap: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--al-or); }
.alizes-avis__note p { margin: 0; }
.alizes-avis__note strong { display: block; color: var(--al-bleu); font: 400 2.8rem/1 var(--al-titre); }
@media (min-width: 900px) { .alizes-avis { grid-template-columns: 1.6fr 1fr; align-items: end; gap: 5rem; } }

/* ---------- Discover: latest articles ---------- */
.alizes-tete-ligne { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem; }
.alizes-tete-ligne h2 { margin: 0; }
.alizes-tete-ligne__fin { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
/* "Scroll: we take you there" only where the map of the places is led by the scroll (large screen, animations). */
.alizes-astuce { display: none; margin: 0; color: var(--al-encre-douce); font-size: .9rem; }
@media (min-width: 900px) { .motion-on .alizes-astuce { display: block; } }
.alizes-lieux .wp-block-post-template { display: grid; grid-auto-flow: column; grid-auto-columns: 76%; gap: 1rem; overflow-x: auto; margin: 2.5rem 0 0; padding: 0 0 1rem; list-style: none; scroll-snap-type: x mandatory; scrollbar-width: none; }
/* Cards in line (D-067): no flow margin on the cards after the first, the summary cut at three lines, the link at
   the bottom of each card. */
.alizes-lieux .wp-block-post-template > * { margin-block: 0; }
.alizes-lieux .wp-block-post { display: flex; flex-direction: column; scroll-snap-align: start; }
.alizes-lieux .wp-block-post-excerpt { display: flex; flex: 1; flex-direction: column; }
.alizes-lieux .wp-block-post-excerpt__excerpt { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; }
.alizes-lieux .wp-block-post-excerpt__more-text { margin-top: auto; padding-top: .75rem; }
.alizes-lieux .wp-block-post-featured-image { margin: 0; overflow: hidden; border-radius: var(--al-r); aspect-ratio: 3 / 2; }
/* An article without a photo keeps the same sand-coloured space, so that the titles stay in line (D-066). */
.alizes-lieux .wp-block-post:not(:has(.wp-block-post-featured-image))::before { content: ""; display: block; aspect-ratio: 3 / 2; border-radius: var(--al-r); background: var(--al-sable); }
.alizes-lieux .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; }
.alizes-lieux .wp-block-post-title { margin: 1.1rem 0 0; font-size: 1.55rem; }
.alizes-lieux .wp-block-post-title a { color: var(--al-encre); text-decoration: none; }
.alizes-lieux .wp-block-post-excerpt { margin-top: .25rem; color: var(--al-encre-douce); }
.alizes-lieux .wp-block-post-excerpt__more-link { color: var(--al-bleu); font-weight: 700; }
@media (min-width: 900px) { .alizes-lieux .wp-block-post-template { grid-auto-flow: row; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; overflow: visible; } }

/* ---------- Questions ---------- */
.alizes-faq { display: grid; gap: 2rem; width: var(--al-wrap); margin-inline: auto; }
.alizes-faq .wp-block-details { margin: 0 0 .6rem; border-radius: 18px; background: var(--al-papier); }
.alizes-faq .wp-block-details summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.15rem 1.35rem; cursor: pointer; font: 400 1.3rem/1.25 var(--al-titre); list-style: none; }
.alizes-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.alizes-faq .wp-block-details summary::after { content: "+"; flex: none; display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: var(--al-ciel-clair); color: var(--al-bleu); font: 600 1.3rem/1 var(--al-texte); transition: transform .3s; }
.alizes-faq .wp-block-details[open] summary::after { transform: rotate(45deg); }
.alizes-faq .wp-block-details > :not(summary) { margin: 0; padding: 0 1.35rem 1.3rem; color: var(--al-encre-douce); }
@media (min-width: 900px) { .alizes-faq { grid-template-columns: 1fr 1.4fr; gap: 5rem; } }

/* ---------- Call to action ---------- */
.alizes-appel { display: grid; overflow: hidden; width: var(--al-wrap); margin-inline: auto; border-radius: var(--al-r); background: var(--al-bleu-fonce); color: var(--al-creme); }
.alizes-appel__photo { position: relative; margin: 0; overflow: hidden; aspect-ratio: 21 / 9; }
.alizes-appel__photo img { position: absolute; inset: 0; width: 100%; height: 115%; object-fit: cover; }
.motion-on .alizes-appel__photo img { transform: translateY(calc((var(--p, .5) - .5) * -12%)); }
.alizes-appel__texte { padding: 1.75rem 1.5rem 2rem; }
.alizes-appel h2 { margin: 0; color: var(--al-creme); font-size: clamp(1.9rem, 3.4vw, 3rem); }
.alizes-appel h2 .it { color: var(--al-or); }
.alizes-appel p { margin: .6rem 0 1.25rem; font-size: 1.1rem; color: rgba(247, 243, 234, .88); }
@media (min-width: 900px) {
	.alizes-appel { grid-template-columns: 1fr 1fr; }
	.alizes-appel__photo { aspect-ratio: auto; min-height: 27rem; }
	.alizes-appel__texte { align-self: center; padding: 4rem 4.5rem; }
	.alizes-appel p { margin: 1rem 0 1.75rem; }
}

/* ---------- La villa: arched window that opens onto the house ---------- */
.alizes-arche__sticky { position: relative; display: grid; justify-items: center; gap: 1.5rem; padding: 2rem 0 1rem; text-align: center; }
.alizes-arche h1 { max-width: 14ch; margin: 0 auto; font-size: clamp(2.8rem, 9vw, 7rem); }
/* The introduction under the title is no longer shown: the photo of the arch covered it (D-066). */
.alizes-arche .alizes-intro { display: none; }
.alizes-arche__fenetre { position: relative; width: min(100% - 2.5rem, 30rem); margin: 0; aspect-ratio: 4 / 5; overflow: hidden; border-radius: 999px 999px var(--al-r) var(--al-r); }
.alizes-arche__fenetre img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 900px) {
	.motion-on .alizes-arche { height: 210svh; }
	.motion-on .alizes-arche__sticky { position: sticky; top: 0; height: 100svh; overflow: hidden; align-content: start; padding-top: 7rem; }
	.motion-on .alizes-arche__texte { position: relative; z-index: 1; transform: translateY(calc(var(--p, 0) * -8rem)); opacity: calc(1 - var(--p, 0) * 3.2); }
	.motion-on .alizes-arche__fenetre {
		position: absolute; left: 50%; bottom: 0; width: calc(28rem + var(--p, 0) * (100vw - 28rem)); height: calc(52svh + var(--p, 0) * 48svh);
		aspect-ratio: auto; transform: translateX(-50%); border-radius: calc((1 - var(--p, 0)) * 999px) calc((1 - var(--p, 0)) * 999px) 0 0;
	}
}
.alizes-sommaire { display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem 1.75rem; margin: 0; padding: 2.5rem 1.25rem 0; list-style: none; }
.alizes-sommaire a { color: var(--al-encre-douce); font-weight: 700; text-decoration: none; }
.alizes-sommaire a:hover { color: var(--al-bleu); }
.alizes-sommaire strong { margin-right: .35rem; color: var(--al-or-fonce); }

/* Chapters: text and three photos */
.alizes-chapitre { display: grid; gap: 2rem; width: var(--al-wrap); margin-inline: auto; padding-block: clamp(3.5rem, 8vw, 7rem); scroll-margin-top: var(--al-entete); }
.alizes-chapitre h2 { margin: .8rem 0 0; font-size: clamp(2.3rem, 5vw, 4rem); }
.alizes-chapitre__texte > p:not(.is-style-surtitre) { margin-top: 1rem; color: var(--al-encre-douce); max-width: 32rem; }
.alizes-chapitre__photos { display: grid; grid-template-columns: 1.4fr 1fr; gap: .8rem; }
.alizes-chapitre__photos > figure { position: relative; margin: 0; overflow: hidden; border-radius: var(--al-r); aspect-ratio: 1; }
.alizes-chapitre__photos > figure:first-child { grid-row: span 2; aspect-ratio: 4 / 5; }
.alizes-chapitre__photos > figure:only-child { grid-column: 1 / -1; grid-row: auto; aspect-ratio: 3 / 2; }
.alizes-chapitre__photos img, .alizes-chapitre__photos a { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 900px) {
	.alizes-chapitre { grid-template-columns: 1fr 1.25fr; align-items: center; gap: 5rem; }
	.alizes-chapitre--inverse .alizes-chapitre__texte { order: 2; }
	.motion-on .alizes-chapitre__photos > figure:not(:first-child) { transform: translateY(calc((var(--p, .5) - .5) * -5rem)); }
}

/* Adjoining studio (not for rent) */
.alizes-studio { display: grid; gap: 1.25rem; align-items: center; width: var(--al-wrap); margin: 1rem auto clamp(3.5rem, 8vw, 7rem); padding: 1.75rem; border-radius: var(--al-r); background: var(--al-ciel-clair); }
.alizes-studio h2 { margin: 0; font-size: clamp(1.8rem, 3.5vw, 2.6rem); }
.alizes-studio p { margin: .6rem 0 0; color: var(--al-encre-douce); max-width: 40rem; }
.alizes-studio p.alizes-studio__pastille { display: inline-flex; align-items: center; gap: .5rem; margin: 0; padding: .45rem .9rem; border-radius: 999px; background: var(--al-papier); color: var(--al-bleu-fonce); font-weight: 700; font-size: .9rem; white-space: nowrap; }
.alizes-studio__pastille::before { content: ""; width: .6rem; height: .6rem; border-radius: 50%; background: var(--al-or-fonce); }
@media (min-width: 900px) { .alizes-studio { grid-template-columns: 1fr auto; padding: 2.5rem 3rem; } }

/* Road book: places with travel time */
.alizes-carnet { max-width: 56rem; margin: 3rem auto 0; }
.alizes-etape { padding: 1.15rem 0; border-bottom: 1px solid rgba(204, 173, 127, .6); }
.alizes-etape__ligne { display: flex; align-items: baseline; gap: .75rem; }
.alizes-etape__ligne h3 { margin: 0; font-size: clamp(1.6rem, 4vw, 2.5rem); }
.alizes-etape__ligne h3 a { color: var(--al-encre); text-decoration: none; }
.alizes-etape__ligne h3 a:hover { color: var(--al-bleu); }
.alizes-etape__ligne::after { content: ""; order: 2; flex: 1; border-bottom: 2px dotted var(--al-or); transform: translateY(-.35em); }
.alizes-etape__ligne p { order: 3; margin: 0; color: var(--al-bleu); font-weight: 700; white-space: nowrap; }
.alizes-etape > p { margin: .25rem 0 0; color: var(--al-encre-douce); }

/* ---------- Inner pages ---------- */
.alizes-page-tete { width: var(--al-wrap); margin-inline: auto; padding: 3rem 0 2rem; }
.alizes-page-tete h1 { margin: 0; font-size: clamp(2.6rem, 8vw, 5.5rem); }
.alizes-page-tete .wp-block-post-excerpt { margin-top: 1rem; max-width: 40rem; color: var(--al-encre-douce); font-size: 1.15rem; }
.alizes-contenu { padding-bottom: var(--al-gap); }
/* A side gutter on phones too (the text touched the edges of the screen). */
.alizes-contenu > * { width: min(760px, 100% - 2.5rem); max-width: none; margin-inline: auto; }
.alizes-contenu > .alignwide { width: min(1280px, 100% - 2.5rem); }
.alizes-contenu > .alignfull { width: 100%; }
.alizes-bloc { width: var(--al-wrap); margin-inline: auto; padding-block: clamp(3rem, 7vw, 5.5rem); scroll-margin-top: var(--al-entete); }
.alizes-bloc + .alizes-bloc { border-top: 1px solid var(--al-sable); }
.alizes-bloc h2 { font-size: clamp(2.2rem, 5vw, 3.6rem); }
/* Disponibilités et tarifs (D-069): Localisation and Contact in two columns on a large screen; the texts on the left,
   the upright map or the form on the right. CSS only, so the page needs no new import. */
@media (min-width: 900px) {
	/* Six rows for the texts, then one that takes the rest of the height of the map or the form. */
	.alizes-bloc:is(#localisation, #contact) { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); grid-template-rows: repeat(6, auto) 1fr; column-gap: clamp(2.5rem, 5vw, 5rem); }
	.alizes-bloc:is(#localisation, #contact) > * { grid-column: 1; }
	#localisation > .alizes-plan, #contact > .alizes-formulaires { grid-column: 2; grid-row: 1 / -1; align-self: start; margin-top: 0; }
	#contact { grid-template-columns: minmax(0, .8fr) minmax(0, 1.4fr); }
}
.alizes-a-venir { padding: 2rem; border: 2px dashed var(--al-or); border-radius: var(--al-r); color: var(--al-encre-douce); text-align: center; }
.alizes-pastilles-liens { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.75rem 0 0; padding: 0; list-style: none; }
.alizes-pastilles-liens a { display: block; padding: .55rem 1.1rem; border-radius: 999px; background: var(--al-papier); color: var(--al-encre); font-weight: 700; text-decoration: none; }
.alizes-pastilles-liens a:hover { background: var(--al-sable); }
.alizes-mail-grand a { color: var(--al-bleu); font: 400 clamp(1.4rem, 3vw, 2rem)/1.2 var(--al-titre); text-decoration: none; border-bottom: 2px solid var(--al-or); word-break: break-word; }

/* Article (Découvrir) */
.alizes-article-image { width: var(--al-wrap); margin: 0 auto; overflow: hidden; border-radius: var(--al-r); aspect-ratio: 16 / 9; }
.alizes-article-image img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Photo viewer (assets/js/visionneuse.js) ---------- */
.alizes-visionneuse { width: 100vw; max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(12, 14, 15, .96); color: #fff; }
.alizes-visionneuse::backdrop { background: rgba(12, 14, 15, .9); }
.alizes-visionneuse__figure { display: grid; place-items: center; height: 100%; margin: 0; padding: 3.5rem .5rem 4.5rem; }
.alizes-visionneuse__img { max-width: 100%; max-height: calc(100dvh - 9rem); object-fit: contain; }
.alizes-visionneuse__legende { margin-top: .75rem; font-size: 1rem; text-align: center; }
.alizes-visionneuse__compteur { position: absolute; top: 1.1rem; left: 1rem; margin: 0; font-size: .9rem; }
.alizes-visionneuse__btn { position: absolute; display: grid; place-items: center; width: 3rem; height: 3rem; border: 1px solid rgba(255, 255, 255, .5); border-radius: 50%; background: rgba(0, 0, 0, .35); color: #fff; font-size: 1.8rem; line-height: 1; cursor: pointer; }
.alizes-visionneuse__btn:hover { background: rgba(255, 255, 255, .15); }
.alizes-visionneuse__btn:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.alizes-visionneuse__fermer { top: .5rem; right: .75rem; }
.alizes-visionneuse__prec, .alizes-visionneuse__suiv { bottom: 1rem; }
.alizes-visionneuse__prec { left: calc(50% - 3.75rem); }
.alizes-visionneuse__suiv { right: calc(50% - 3.75rem); }
@media (min-width: 900px) {
	.alizes-visionneuse__prec, .alizes-visionneuse__suiv { bottom: auto; top: 50%; transform: translateY(-50%); }
	.alizes-visionneuse__prec { left: 1.5rem; }
	.alizes-visionneuse__suiv { right: 1.5rem; }
}
body.alizes-visionneuse-ouverte { overflow: hidden; }

/* ---------- Generic reveal (JS adds .alizes-apparait, then .is-visible) ---------- */
.motion-on .alizes-apparait { opacity: 0; transform: translateY(24px); transition: opacity .8s ease, transform .8s var(--al-ease); }
.motion-on .alizes-apparait.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition: none !important; animation: none !important; }
}
html { scroll-behavior: smooth; scroll-padding-top: var(--al-entete); }

/* Gallery page: photos grouped by space */
.wp-block-gallery.alizes-galerie { gap: .75rem; margin-top: 1.5rem; }
.wp-block-gallery.alizes-galerie figure.wp-block-image { overflow: hidden; border-radius: 16px; }
.wp-block-gallery.alizes-galerie figure.wp-block-image img { transition: transform .9s var(--al-ease); }
.wp-block-gallery.alizes-galerie figure.wp-block-image a:hover img { transform: scale(1.04); }

/* ---------- Blocks of the alizes-core extension (0.3.0) ---------- */
.alizes-contact-reseaux { margin-block: 1.5rem 2.5rem; }
.alizes-carte-lieux { margin-bottom: clamp(3rem, 7vw, 5rem); }
.alizes-contenu--lieu:empty { display: none; }
.alizes-contenu--lieu > * { width: min(760px, 100% - 2.5rem); }
.alizes-pied .alizes-coord a { color: var(--al-creme); }
/* Closing call without photo (templates: articles, Découvrir, archives). */
.alizes-appel--simple { text-align: center; background-image: radial-gradient(circle at 50% 120%, rgba(204, 173, 127, .22), transparent 60%); }
.alizes-appel--simple .alizes-appel__texte { max-width: 46rem; margin-inline: auto; padding: 3rem 1.5rem; }
@media (min-width: 900px) { .alizes-appel.alizes-appel--simple { grid-template-columns: 1fr; } .alizes-appel--simple .alizes-appel__texte { padding: 4.5rem 2rem; } }
.alizes-appel--simple .wp-block-buttons { justify-content: center; }
/* Gallery page: a section with a single photo keeps a landscape shape instead of filling the screen. */
.wp-block-gallery.alizes-galerie figure.wp-block-image:only-child { aspect-ratio: 16 / 9; }
.wp-block-gallery.alizes-galerie figure.wp-block-image:only-child img { height: 100%; object-fit: cover; }

/* ---------- Article Découvrir (composition alizes/article-decouvrir, D-062) ---------- */
/* Fixed shapes: whatever the photo sent, the page keeps the same rhythm. */
.alizes-contenu .alizes-photo-large { margin-block: 2.5rem; overflow: hidden; border-radius: var(--al-r); }
.alizes-contenu .alizes-photo-large img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.alizes-contenu .wp-block-gallery.alizes-duo { margin-block: 2.5rem; }
.alizes-contenu .wp-block-gallery.alizes-duo figure.wp-block-image { overflow: hidden; border-radius: var(--al-r); }
.alizes-contenu .wp-block-gallery.has-nested-images.alizes-duo figure.wp-block-image:not(#individual-image) img { aspect-ratio: 4 / 5; height: auto; object-fit: cover; }
.alizes-contenu > p:empty { display: none; }
.alizes-contenu li:empty { display: none; }
