/*
 * hero/accroche — transposition de `.hero` (accueil) et `.lp-hero` (landings) de la maquette Les
 * Jolies Clés. Engagement 5 : aucun hexadécimal, valeurs de repli comprises. Le voile n'a aucun fond
 * par défaut : la famille `background` l'écrit elle-même (voir hero/plein).
 */
.ivy-hero--accroche {
	position: relative;
	display: grid;
	min-height: var( --ivy-hero-min-height, 100vh );
	overflow: hidden;
	isolation: isolate;
	background: var( --ivy-deep, rgb( 37 29 23 ) );
	color: var( --ivy-on-deep, rgb( 251 248 242 ) );
}
.ivy-hero--accroche .ivy-hero__media,
.ivy-hero--accroche .ivy-hero__overlay,
.ivy-hero--accroche .ivy-hero__base { position: absolute; z-index: -2; inset: 0; }
.ivy-hero--accroche .ivy-hero__overlay,
.ivy-hero--accroche .ivy-hero__base { z-index: -1; }
.ivy-hero--accroche .ivy-hero__image { display: block; inline-size: 100%; block-size: 100%; object-fit: cover; object-position: var( --ivy-hero-focus, 50% 60% ); border-radius: inherit; }

/* Le point focal : `center` vaut les 60 % de la maquette (le bas de la terrasse reste dans le cadre). */
.ivy-hero--accroche.ivy-hero--focus-top-left { --ivy-hero-focus: 0% 0%; }
.ivy-hero--accroche.ivy-hero--focus-top { --ivy-hero-focus: 50% 0%; }
.ivy-hero--accroche.ivy-hero--focus-top-right { --ivy-hero-focus: 100% 0%; }
.ivy-hero--accroche.ivy-hero--focus-left { --ivy-hero-focus: 0% 50%; }
.ivy-hero--accroche.ivy-hero--focus-right { --ivy-hero-focus: 100% 50%; }
.ivy-hero--accroche.ivy-hero--focus-bottom-left { --ivy-hero-focus: 0% 100%; }
.ivy-hero--accroche.ivy-hero--focus-bottom { --ivy-hero-focus: 50% 100%; }
.ivy-hero--accroche.ivy-hero--focus-bottom-right { --ivy-hero-focus: 100% 100%; }

/* La boîte du site : 1240 px de contenu, gouttière fluide. Le bloc se cale au milieu, en haut ou en bas de la photo. */
.ivy-hero--accroche .ivy-hero__inner {
	box-sizing: border-box;
	inline-size: 100%;
	max-inline-size: calc( 1240px + 2 * clamp( 20px, 5vw, 64px ) );
	margin-inline: auto;
	padding: calc( var( --ivy-navbar-h, 88px ) + 24px ) clamp( 20px, 5vw, 64px );
}
.ivy-hero--accroche.ivy-hero--pos-end .ivy-hero__media { inset: -4% 0; }
.ivy-hero--accroche.ivy-hero--pos-center .ivy-hero__inner { align-self: center; }
.ivy-hero--accroche.ivy-hero--pos-start .ivy-hero__inner { align-self: start; }
.ivy-hero--accroche.ivy-hero--pos-end .ivy-hero__inner { align-self: end; padding-block: calc( var( --ivy-navbar-h, 88px ) + 48px ) clamp( 64px, 10vw, 128px ); }
.ivy-hero--accroche .ivy-hero__content { display: flex; flex-direction: column; align-items: flex-start; max-inline-size: 920px; text-align: left; }
.ivy-hero--accroche.ivy-hero--pos-center .ivy-hero__content { max-inline-size: none; }

.ivy-hero--accroche .ivy-hero__eyebrow { display: block; margin-bottom: 18px; font-size: var( --ivy-font-label ); font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var( --ivy-eyebrow-color, var( --ivy-gold-light, rgb( 230 214 168 ) ) ); }
.ivy-hero--accroche .ivy-hero__title { inline-size: fit-content; max-inline-size: 100%; margin: 0; color: var( --ivy-title-color, var( --ivy-on-deep, rgb( 251 248 242 ) ) ); line-height: 1.12; }
.ivy-hero--accroche .ivy-hero__line { display: block; overflow: hidden; padding-bottom: .08em; margin-bottom: -.08em; }
.ivy-hero--accroche .ivy-hero__line > span { display: block; }
.ivy-hero--accroche .ivy-hero__text { margin: 18px 0 0; color: var( --ivy-text-color, var( --ivy-on-deep, rgb( 251 248 242 ) ) ); font-family: var( --ivy-font-titre, inherit ); line-height: 1.4; }
.ivy-hero--accroche .ivy-hero__text p { margin: 0; font: inherit; }
.ivy-hero--accroche .ivy-hero__actions { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; margin-top: 34px; }
:where( .ivy-hero--accroche ) .ivy-hero__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-block-size: 52px;
	padding: 14px 30px;
	border: 1px solid var( --ivy-cta-border-color, var( --ivy-accent, rgb( 184 151 90 ) ) );
	border-radius: var( --ivy-radius-action, 4px );
	background: var( --ivy-cta-background-color, var( --ivy-accent, rgb( 184 151 90 ) ) );
	color: var( --ivy-cta-color, var( --ivy-on-accent, rgb( 37 29 23 ) ) );
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: .14em;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	transition: background-color 250ms cubic-bezier( .2, .7, .2, 1 ), border-color 250ms cubic-bezier( .2, .7, .2, 1 );
}
:where( .ivy-hero--accroche ) .ivy-hero__cta:hover { background: var( --ivy-gold-dark, rgb( 163 132 74 ) ); border-color: var( --ivy-gold-dark, rgb( 163 132 74 ) ); }
:where( .ivy-hero--accroche ) .ivy-hero__cta:focus-visible { outline: 2px solid currentcolor; outline-offset: 3px; }
.ivy-hero--accroche .ivy-hero__note { margin: 0; color: var( --ivy-note-color, var( --ivy-on-deep, rgb( 251 248 242 ) ) ); line-height: 1.6; }
@media ( min-width: 900px ) { .ivy-hero--accroche .ivy-hero__note { white-space: nowrap; } }

.ivy-hero--accroche .ivy-hero__scroll-hint { position: absolute; left: 50%; bottom: 28px; inline-size: 1px; block-size: 56px; overflow: hidden; background: color-mix( in srgb, var( --ivy-scroll_hint-color, var( --ivy-on-deep, rgb( 251 248 242 ) ) ) 30%, transparent ); }
.ivy-hero--accroche .ivy-hero__scroll-hint::after { content: ''; position: absolute; inset: 0; background: var( --ivy-scroll_hint-color, var( --ivy-gold-light, rgb( 230 214 168 ) ) ); transform: translateY( -100% ); }

@media ( prefers-reduced-motion: no-preference ) {
	.ivy-hero--accroche .ivy-hero__image { animation: ivy-accroche-zoom 2600ms cubic-bezier( .2, .7, .2, 1 ) both; }
	.ivy-hero--accroche .ivy-hero__line > span { animation: ivy-accroche-monter 500ms cubic-bezier( .2, .7, .2, 1 ) both; animation-delay: calc( var( --i, 0 ) * 90ms + 150ms ); }
	.ivy-hero--accroche .ivy-hero__appear { animation: ivy-accroche-apparait 500ms cubic-bezier( .2, .7, .2, 1 ) both; animation-delay: 420ms; }
	.ivy-hero--accroche .ivy-hero__scroll-hint::after { animation: ivy-accroche-defiler 2200ms 1200ms cubic-bezier( .2, .7, .2, 1 ) infinite; }
}
@keyframes ivy-accroche-zoom { from { transform: scale( 1.07 ); } }
@keyframes ivy-accroche-monter { from { transform: translateY( 105% ); } }
@keyframes ivy-accroche-apparait { from { opacity: 0; transform: translateY( 12px ); } }
@keyframes ivy-accroche-defiler { 0% { transform: translateY( -100% ); } 60%, 100% { transform: translateY( 100% ); } }

@media ( max-width: 899px ) { .ivy-hero--accroche { --ivy-navbar-h: 72px; } }
/* Téléphone : le titre coule librement, boutons pleine largeur. */
@media ( max-width: 599px ) {
	/* Le héros des landings (bloc calé en bas) centre sa mention sur téléphone ; celui de l'accueil la garde à gauche. */
	.ivy-hero--accroche.ivy-hero--pos-end .ivy-hero__note { text-align: center; }
	.ivy-hero--accroche .ivy-hero__line,
	.ivy-hero--accroche .ivy-hero__line > span { display: inline; }
	.ivy-hero--accroche .ivy-hero__line { overflow: visible; padding-bottom: 0; margin-bottom: 0; }
	.ivy-hero--accroche .ivy-hero__title { animation: ivy-accroche-apparait 500ms cubic-bezier( .2, .7, .2, 1 ) 150ms both; }
	.ivy-hero--accroche .ivy-hero__line > span { animation: none; }
	.ivy-hero--accroche .ivy-hero__actions { align-items: stretch; align-self: stretch; }
	.ivy-hero--accroche .ivy-hero__cta { inline-size: 100%; padding-inline: 16px; letter-spacing: .08em; }
}
@media ( prefers-reduced-motion: reduce ) {
	.ivy-hero--accroche .ivy-hero__title { animation: none; }
}
