/* ==========================================================================
   Lead & Lean Synapse — styles du site
   ========================================================================== */

:root {
	--nuit: #0D1B2E;
	--nuit-2: #16294A;
	--nuit-3: #22385C;
	--or: #C49A4A;
	--or-clair: #E3C68E;
	--ocre: #A8692A;
	--beige: #F1E8DA;
	--sable: #F7F4EE;
	--blanc: #FFFFFF;
	--encre: #18222F;
	--gris: #5B6676;
	--ligne: rgba(13, 27, 46, .12);
	--titre: 'Fraunces', Georgia, serif;
	--texte: 'Hanken Grotesk', 'Segoe UI', sans-serif;
	--mono: 'IBM Plex Mono', ui-monospace, monospace;
	--wrap: 1200px;
	--gutter: clamp(20px, 4vw, 40px);
	--radius: 18px;
	--ease: cubic-bezier(.2, .7, .2, 1);
}

html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body {
	margin: 0;
	background: var(--sable);
	color: var(--encre);
	font-family: var(--texte);
	font-size: 17px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
::selection { background: var(--or-clair); color: var(--nuit); }

.lls-main, .lls-main > .wp-block-post-content { margin: 0; }
.lls-main .wp-block-post-content > * + * { margin-block-start: 0; }
.lls-main p, .lls-main h1, .lls-main h2, .lls-main h3, .lls-main ul, .lls-main ol { margin: 0; }
.lls-main :where(.wp-block-group) > * + * { margin-block-start: 0; }

.lls-wrap, .lls-main .lls-wrap { width: min(100% - 2 * var(--gutter), var(--wrap)); margin-inline: auto; }

h1, h2, h3 { font-family: var(--titre); color: var(--nuit); font-weight: 500; letter-spacing: -.015em; font-variation-settings: 'opsz' 100; }
h1 em, h2 em, p em { font-style: italic; color: var(--ocre); font-weight: 400; }

.lls-overline {
	font-family: var(--mono);
	font-size: 12.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--ocre);
	display: inline-flex;
	align-items: center;
	gap: 12px;
}
.lls-overline::before { content: ''; width: 28px; height: 1px; background: currentColor; }

.lls-section { padding-block: clamp(80px, 11vw, 140px); position: relative; }
.lls-head { max-width: 760px; margin-bottom: clamp(40px, 6vw, 64px) !important; }
.lls-h2 { font-size: clamp(32px, 4.2vw, 50px); margin-top: 18px !important; }
.lls-head__lead { margin-top: 20px !important; font-size: 19px; color: var(--gris); max-width: 620px; }

/* ---------- Boutons ---------- */
.wp-block-buttons.lls-ctas { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 36px !important; }
.lls-btn .wp-block-button__link {
	font-family: var(--texte);
	font-weight: 600;
	font-size: 16px;
	padding: 17px 28px;
	border-radius: 999px;
	text-decoration: none;
	transition: transform .3s var(--ease), box-shadow .3s var(--ease), background .3s, color .3s;
	display: inline-block;
}
.lls-btn--gold .wp-block-button__link { background: var(--nuit); color: var(--blanc); box-shadow: 0 10px 30px -12px rgba(13, 27, 46, .6); position: relative; }
.lls-btn--gold .wp-block-button__link::after { content: ''; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--or); margin-left: 12px; vertical-align: 2px; box-shadow: 0 0 0 0 rgba(196, 154, 74, .7); animation: pulse 2.4s infinite; }
.lls-btn--gold .wp-block-button__link:hover { transform: translateY(-2px); background: var(--nuit-2); }
.lls-btn--ghost .wp-block-button__link { background: rgba(247, 244, 238, .85); color: var(--nuit); box-shadow: inset 0 0 0 1px var(--ligne); }
.lls-btn--ghost .wp-block-button__link:hover { box-shadow: inset 0 0 0 1px var(--nuit); }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(196, 154, 74, .7); } 70% { box-shadow: 0 0 0 9px rgba(196, 154, 74, 0); } 100% { box-shadow: 0 0 0 0 rgba(196, 154, 74, 0); } }

/* ---------- En-tête ---------- */
.lls-header-wrap { position: sticky; top: 0; z-index: 50; transition: background .3s, box-shadow .3s; }
.lls-header-wrap.is-scrolled { background: rgba(247, 244, 238, .86); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); box-shadow: 0 1px 0 var(--ligne); }
.lls-header { width: min(100% - 2 * var(--gutter), var(--wrap)); margin-inline: auto; display: flex; align-items: center; gap: 32px; height: 84px; transition: height .3s; }
.is-scrolled .lls-header { height: 70px; }
.lls-logo { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--nuit); margin-right: auto; }
.lls-logo__mark { width: 42px; height: 42px; color: var(--or); }
.lls-logo__text { display: flex; flex-direction: column; line-height: 1; }
.lls-logo__text strong { font-family: var(--titre); font-weight: 600; font-size: 21px; letter-spacing: -.01em; }
.lls-logo__text em { font-style: normal; font-family: var(--mono); font-size: 10.5px; letter-spacing: .42em; text-transform: uppercase; color: var(--ocre); margin-top: 5px; }
.lls-nav { display: flex; gap: 30px; }
.lls-nav a { color: var(--encre); text-decoration: none; font-size: 15px; font-weight: 500; position: relative; padding: 6px 0; }
.lls-nav a::after { content: ''; position: absolute; left: 0; bottom: 0; height: 1px; width: 100%; background: var(--or); transform: scaleX(0); transform-origin: right; transition: transform .35s var(--ease); }
.lls-nav a:hover::after { transform: scaleX(1); transform-origin: left; }
.lls-header__cta { font-size: 14.5px; font-weight: 600; color: var(--nuit); text-decoration: none; padding: 11px 20px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--nuit); transition: background .25s, color .25s; }
.lls-header__cta:hover { background: var(--nuit); color: var(--blanc); }
.lls-burger { display: none; background: none; border: 0; width: 44px; height: 44px; padding: 10px; cursor: pointer; }
.lls-burger span { display: block; height: 1.5px; background: var(--nuit); margin: 6px 0; transition: transform .3s; }
.lls-burger[aria-expanded="true"] span:first-child { transform: translateY(3.75px) rotate(45deg); }
.lls-burger[aria-expanded="true"] span:last-child { transform: translateY(-3.75px) rotate(-45deg); }

/* ---------- Hero ---------- */
.lls-hero { position: relative; overflow: hidden; padding: clamp(40px, 6vw, 70px) 0 clamp(70px, 9vw, 110px); margin-top: -84px !important; padding-top: calc(84px + clamp(40px, 6vw, 70px)); }
.lls-hero::before { content: ''; position: absolute; inset: 0; background: radial-gradient(60% 70% at 85% 30%, rgba(196, 154, 74, .16), transparent 70%), radial-gradient(50% 60% at 0% 100%, rgba(22, 41, 74, .07), transparent 70%); pointer-events: none; }
.lls-hero__net { position: absolute; right: -4%; top: 0; width: 62%; height: 100%; color: var(--or); opacity: .55; pointer-events: none; }
.lls-hero__net path { stroke-dasharray: 900; stroke-dashoffset: 900; animation: draw 3.2s var(--ease) forwards; }
.lls-hero__net .d2 { animation-delay: .4s; } .lls-hero__net .d3 { animation-delay: .7s; } .lls-hero__net .d4 { animation-delay: 1s; } .lls-hero__net .d5 { animation-delay: 1.2s; } .lls-hero__net .d6 { animation-delay: 1.5s; }
.lls-hero__net .nodes circle { fill: var(--or); opacity: 0; animation: pop .6s var(--ease) forwards; animation-delay: 1.6s; }
.lls-hero__net .nodes circle:nth-child(odd) { animation-delay: 2s; }
@keyframes draw { to { stroke-dashoffset: 0; } }
@keyframes pop { from { opacity: 0; transform: scale(.2); } to { opacity: 1; transform: scale(1); } }
.lls-hero__net .nodes circle { transform-box: fill-box; transform-origin: center; }

.lls-hero__grid { position: relative; display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(40px, 6vw, 90px); align-items: center; }
.lls-hero__title { font-size: clamp(40px, 5.6vw, 72px); line-height: 1.04; margin-top: 26px !important; letter-spacing: -.025em; }
.lls-hero__lead { margin-top: 28px !important; font-size: clamp(18px, 1.5vw, 20px); color: var(--gris); max-width: 560px; }
.lls-hero__lead strong { color: var(--nuit); }
.lls-hero__micro { margin-top: 18px !important; font-family: var(--mono); font-size: 12.5px; color: var(--gris); letter-spacing: .04em; }

.lls-hero__text > * { opacity: 0; transform: translateY(18px); animation: rise .9s var(--ease) forwards; }
.lls-hero__text > *:nth-child(2) { animation-delay: .12s; } .lls-hero__text > *:nth-child(3) { animation-delay: .24s; } .lls-hero__text > *:nth-child(4) { animation-delay: .36s; } .lls-hero__text > *:nth-child(5) { animation-delay: .48s; }
@keyframes rise { to { opacity: 1; transform: none; } }

.lls-portrait { position: relative; margin: 0; justify-self: end; width: min(100%, 420px); opacity: 0; animation: rise 1.1s var(--ease) .3s forwards; }
.lls-portrait::before { content: ''; position: absolute; inset: -14px 14px 14px -14px; border: 1px solid var(--or); border-radius: 999px 999px 26px 26px; }
.lls-portrait__frame { position: relative; aspect-ratio: 4 / 5.2; border-radius: 999px 999px 22px 22px; overflow: hidden; background: var(--nuit); box-shadow: 0 40px 80px -40px rgba(13, 27, 46, .55); }
.lls-portrait__frame img, .lls-portrait__ph { width: 100%; height: 100%; object-fit: cover; display: block; }
.lls-portrait__note { position: absolute; left: 50%; bottom: 34%; transform: translateX(-50%); width: 70%; text-align: center; font-family: var(--mono); font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--or-clair); border: 1px dashed rgba(227, 198, 142, .5); border-radius: 10px; padding: 10px 12px; }
.lls-portrait__badge { position: absolute; left: -46px; bottom: 56px; background: var(--blanc); border-radius: 16px; padding: 16px 20px; display: flex; align-items: center; gap: 14px; max-width: 250px; box-shadow: 0 20px 50px -20px rgba(13, 27, 46, .35); }
.lls-portrait__badge strong { font-family: var(--titre); font-size: 40px; font-weight: 500; color: var(--ocre); line-height: 1; }
.lls-portrait__badge span { font-size: 13.5px; line-height: 1.35; color: var(--encre); }
.lls-portrait__card { position: absolute; right: -22px; top: 38px; background: var(--nuit); color: var(--beige); font-size: 13px; line-height: 1.45; padding: 14px 18px; border-radius: 14px; box-shadow: 0 20px 40px -20px rgba(13, 27, 46, .6); }
.lls-portrait__card .dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--or); margin-right: 8px; vertical-align: 1px; }

/* ---------- Bandeau défilant ---------- */
.lls-proof { background: var(--nuit); color: var(--beige); border-block: 1px solid rgba(241, 232, 218, .08); }
.lls-marquee { overflow: hidden; padding: 30px 0; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.lls-main .lls-marquee__track { list-style: none; margin: 0; padding: 0; display: flex; width: max-content; animation: marquee 48s linear infinite; }
.lls-marquee:hover .lls-marquee__track { animation-play-state: paused; }
.lls-marquee__track li { display: flex; align-items: center; gap: 14px; padding: 0 34px; white-space: nowrap; font-family: var(--texte); font-weight: 600; font-size: 14.5px; letter-spacing: .18em; text-transform: uppercase; color: rgba(241, 232, 218, .78); transition: color .3s; }
.lls-marquee__track li::before { content: ''; width: 9px; height: 9px; border-radius: 50%; background: var(--or); box-shadow: 0 0 0 4px rgba(196, 154, 74, .18); flex: none; }
.lls-marquee__track li::after { content: '·'; margin-left: 48px; color: rgba(241, 232, 218, .3); font-weight: 400; }
.lls-marquee__track li:hover { color: var(--or-clair); }
@keyframes marquee { to { transform: translateX(-50%); } }

/* ---------- Curseur personnalisé ---------- */
.lls-cursor, .lls-cursor-dot { position: fixed; top: 0; left: 0; z-index: 9999; pointer-events: none; border-radius: 50%; opacity: 0; transition: opacity .3s, width .35s var(--ease), height .35s var(--ease), margin .35s var(--ease), background .35s, border-color .35s; }
.lls-cursor { width: 38px; height: 38px; margin: -19px 0 0 -19px; border: 1px solid var(--or); }
.lls-cursor-dot { width: 6px; height: 6px; margin: -3px 0 0 -3px; background: var(--or); }
.has-cursor .lls-cursor, .has-cursor .lls-cursor-dot { opacity: 1; }
.lls-cursor.is-hover { width: 64px; height: 64px; margin: -32px 0 0 -32px; background: rgba(196, 154, 74, .16); border-color: rgba(196, 154, 74, .6); }
.lls-cursor.is-down { width: 28px; height: 28px; margin: -14px 0 0 -14px; }
.lls-cursor-dot.is-hover { opacity: 0 !important; }
.has-cursor, .has-cursor a, .has-cursor button { cursor: none; }
.has-cursor input, .has-cursor textarea { cursor: text; }

/* ---------- Défis ---------- */
.lls-cards { display: grid; gap: 22px; }
.lls-cards--3 { grid-template-columns: repeat(3, 1fr); }
.lls-pain { background: var(--blanc); border-radius: var(--radius); padding: 34px 30px 36px; position: relative; box-shadow: 0 1px 0 var(--ligne), 0 24px 50px -36px rgba(13, 27, 46, .3); transition: transform .4s var(--ease), box-shadow .4s var(--ease); }
.lls-pain:hover { transform: translateY(-4px); box-shadow: 0 1px 0 var(--ligne), 0 34px 60px -34px rgba(13, 27, 46, .38); }
.lls-pain__num { position: absolute; top: 28px; right: 28px; font-family: var(--mono); font-size: 12px; color: var(--gris); letter-spacing: .1em; }
.lls-pain__ic { width: 44px; height: 44px; color: var(--ocre); display: block; margin-bottom: 26px; }
.lls-pain p { font-size: 18px; line-height: 1.55; color: var(--encre); }
.lls-pain strong { color: var(--nuit); font-weight: 600; }

.lls-reassure { margin-top: clamp(50px, 7vw, 80px) !important; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, 6vw, 80px); align-items: start; padding-top: clamp(40px, 5vw, 56px); border-top: 1px solid var(--ligne); }
.lls-reassure__quote { font-family: var(--titre); font-size: clamp(26px, 3vw, 36px); line-height: 1.22; color: var(--nuit); letter-spacing: -.015em; }
.lls-reassure__text { font-size: 18px; color: var(--gris); }

/* ---------- Approche (fond nuit) ---------- */
.lls-approach { background: var(--nuit); color: var(--beige); overflow: hidden; }
.lls-approach::before { content: ''; position: absolute; inset: 0; background: radial-gradient(50% 60% at 100% 0%, rgba(196, 154, 74, .09), transparent 70%), radial-gradient(40% 50% at 0% 100%, rgba(34, 56, 92, .7), transparent 70%); pointer-events: none; }
.lls-approach .lls-wrap { position: relative; }
.lls-approach h2, .lls-approach h3 { color: var(--blanc); }
.lls-approach h2 em, .lls-approach p em { color: var(--or-clair); }
.lls-approach .lls-overline { color: var(--or); }
.lls-approach .lls-head__lead { color: rgba(241, 232, 218, .72); }

.lls-fusion { display: grid; grid-template-columns: 1fr 1.1fr 1fr; align-items: center; gap: 30px; padding: 40px clamp(20px, 4vw, 50px); border: 1px solid rgba(241, 232, 218, .12); border-radius: 24px; background: rgba(255, 255, 255, .025); }
.lls-fusion__label { font-family: var(--titre); font-size: 28px; color: var(--blanc); margin-bottom: 14px !important; }
.lls-fusion ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.lls-fusion li { font-size: 14px; padding: 7px 14px; border-radius: 999px; border: 1px solid rgba(241, 232, 218, .18); color: rgba(241, 232, 218, .86); }
.lls-fusion__side--right { text-align: right; }
.lls-fusion__side--right ul { justify-content: flex-end; }
.lls-fusion__core { text-align: center; color: var(--or); }
.lls-fusion__core svg { width: 100%; max-width: 260px; overflow: visible; }
.lls-fusion__core circle { fill: var(--or); }
.lls-fusion__core circle:nth-of-type(2) { animation: glow 3s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
.lls-fusion__core span { display: block; font-family: var(--mono); font-size: 11.5px; letter-spacing: .4em; text-transform: uppercase; color: var(--or-clair); margin-top: 6px; }
@keyframes glow { 50% { transform: scale(1.35); opacity: .75; } }

.lls-steps { list-style: none; padding: 0; margin-top: clamp(50px, 7vw, 80px) !important; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 4vw, 50px); counter-reset: s; }
.lls-steps li { position: relative; padding-top: 28px; border-top: 1px solid rgba(241, 232, 218, .2); }
.lls-steps li::before { content: ''; position: absolute; top: -4px; left: 0; width: 7px; height: 7px; border-radius: 50%; background: var(--or); }
.lls-steps__n { font-family: var(--mono); font-size: 12px; color: var(--or); letter-spacing: .14em; }
.lls-steps h3 { font-size: 30px; margin: 12px 0 10px !important; }
.lls-steps p { color: rgba(241, 232, 218, .74); font-size: 16.5px; }

.lls-approach__quote { margin-top: clamp(60px, 8vw, 96px) !important; max-width: 900px; font-family: var(--titre); font-weight: 400; font-size: clamp(24px, 2.8vw, 34px); line-height: 1.3; color: var(--blanc); letter-spacing: -.01em; }

/* ---------- Services ---------- */
.lls-offer { background: var(--blanc); border-radius: 22px; padding: 38px 32px 34px; display: flex; flex-direction: column; gap: 16px; box-shadow: 0 1px 0 var(--ligne), 0 30px 60px -44px rgba(13, 27, 46, .35); position: relative; transition: transform .4s var(--ease); }
.lls-offer:hover { transform: translateY(-5px); }
.lls-offer > * { margin: 0 !important; }
.lls-offer__tag { font-family: var(--mono); font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--ocre); }
.lls-offer h3 { font-size: 27px; line-height: 1.15; }
.lls-offer p { color: var(--gris); font-size: 16.5px; }
.lls-offer ul { list-style: none; padding: 18px 0 0; border-top: 1px solid var(--ligne); display: grid; gap: 10px; flex: 1; }
.lls-offer li { position: relative; padding-left: 24px; font-size: 15.5px; }
.lls-offer li::before { content: ''; position: absolute; left: 0; top: .62em; width: 12px; height: 1.5px; background: var(--or); }
.lls-offer__link { color: var(--nuit); font-weight: 600; text-decoration: none; font-size: 15.5px; margin-top: 8px !important; }
.lls-offer__link span { display: inline-block; transition: transform .3s var(--ease); color: var(--ocre); }
.lls-offer__link:hover span { transform: translateX(5px); }
.lls-offer--featured { background: var(--beige); box-shadow: inset 0 0 0 1px rgba(196, 154, 74, .45), 0 30px 60px -44px rgba(13, 27, 46, .35); }

.lls-audience { margin-top: 40px !important; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; }
.lls-audience > span { font-family: var(--mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--gris); }
.lls-audience ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.lls-audience li { font-size: 14.5px; padding: 8px 16px; border-radius: 999px; background: var(--blanc); box-shadow: inset 0 0 0 1px var(--ligne); }

/* ---------- À propos ---------- */
.lls-about { background: var(--beige); }
.lls-about__grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(40px, 7vw, 100px); align-items: center; }
.lls-about__text p:not(.lls-overline) { margin-top: 20px !important; font-size: 18px; color: #3B4656; }
.lls-creds { list-style: none; padding: 0; display: grid; gap: 0; background: var(--blanc); border-radius: 22px; padding: 10px 30px !important; box-shadow: 0 30px 60px -44px rgba(13, 27, 46, .35); }
.lls-creds li { display: grid; grid-template-columns: 110px 1fr; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--ligne); font-size: 16.5px; color: var(--nuit); font-weight: 500; }
.lls-creds li:last-child { border-bottom: 0; }
.lls-creds span { font-family: var(--mono); font-size: 11.5px; text-transform: uppercase; letter-spacing: .12em; color: var(--ocre); padding-top: 4px; font-weight: 400; }

/* ---------- Réservation ---------- */
.lls-booking { background: linear-gradient(180deg, var(--sable), #EFE9DF); }
.lls-booking__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 7vw, 100px); align-items: center; }
.lls-call { list-style: none; padding: 0; margin-top: 30px !important; display: grid; gap: 16px; counter-reset: c; }
.lls-call li { counter-increment: c; display: flex; gap: 16px; align-items: baseline; font-size: 18px; }
.lls-call li::before { content: '0' counter(c); font-family: var(--mono); font-size: 12.5px; color: var(--ocre); }
.lls-booking__alt { margin-top: 34px !important; color: var(--gris); font-size: 16px; }
.lls-booking__alt a { color: var(--nuit); font-weight: 600; text-decoration-color: var(--or); text-underline-offset: 4px; }

.lls-cal { background: var(--blanc); border-radius: 22px; box-shadow: 0 40px 80px -46px rgba(13, 27, 46, .5), 0 1px 0 var(--ligne); overflow: hidden; }
.lls-cal p { margin: 0; }
.lls-cal__head { display: flex; gap: 14px; align-items: center; padding: 24px 28px; border-bottom: 1px solid var(--ligne); }
.lls-cal__avatar { width: 46px; height: 46px; border-radius: 50%; background: var(--nuit); color: var(--or-clair); display: grid; place-items: center; font-family: var(--mono); font-size: 12px; letter-spacing: .06em; }
.lls-cal__who { font-size: 13.5px; color: var(--gris); }
.lls-cal__what { font-family: var(--titre); font-size: 21px; color: var(--nuit); }
.lls-cal__body { padding: 22px 28px 10px; }
.lls-cal__month { font-weight: 600; margin-bottom: 14px !important; }
.lls-cal__days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; text-align: center; font-size: 14px; }
.lls-cal__days span { font-family: var(--mono); font-size: 11px; color: var(--gris); padding-bottom: 4px; }
.lls-cal__days i { font-style: normal; color: #B7BDC6; padding: 8px 0; }
.lls-cal__days b { font-weight: 600; color: var(--nuit); background: rgba(196, 154, 74, .14); border-radius: 50%; aspect-ratio: 1; display: grid; place-items: center; max-width: 40px; margin: 0 auto; width: 100%; }
.lls-cal__days b.on { background: var(--nuit); color: var(--blanc); }
.lls-cal__slots { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 18px; }
.lls-cal__slots span { text-align: center; padding: 10px 0; border-radius: 10px; box-shadow: inset 0 0 0 1px var(--nuit); font-weight: 600; font-size: 14px; color: var(--nuit); }
.lls-cal__note { padding: 14px 28px 18px; font-family: var(--mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--gris); }

/* ---------- Pied de page ---------- */
.lls-footer { background: var(--nuit); color: rgba(241, 232, 218, .75); padding: clamp(60px, 8vw, 90px) 0 30px; font-size: 15px; }
.lls-footer p { margin: 0; }
.lls-footer__grid, .lls-footer__bottom { width: min(100% - 2 * var(--gutter), var(--wrap)); margin-inline: auto; }
.lls-footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1.3fr; gap: 40px; padding-bottom: 50px; border-bottom: 1px solid rgba(241, 232, 218, .12); }
.lls-footer__name { font-family: var(--titre); font-size: 28px; color: var(--blanc); margin-bottom: 14px !important; }
.lls-footer__name em { color: var(--or-clair); }
.lls-footer__brand p:not(.lls-footer__name) { max-width: 360px; }
.lls-footer__label { font-family: var(--mono); font-size: 11.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--or); margin-bottom: 16px !important; }
.lls-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.lls-footer a { color: inherit; text-decoration: none; transition: color .2s; }
.lls-footer a:hover { color: var(--or-clair); }
.lls-footer__bottom { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding-top: 26px; font-size: 13.5px; color: rgba(241, 232, 218, .5); }

/* ---------- WhatsApp flottant ---------- */
.lls-wa { position: fixed; right: 22px; bottom: 22px; z-index: 60; display: flex; align-items: center; gap: 10px; background: #25D366; color: #fff; text-decoration: none; border-radius: 999px; padding: 12px; box-shadow: 0 14px 30px -10px rgba(0, 0, 0, .35); font-weight: 600; font-size: 14.5px; transition: transform .3s var(--ease); }
.lls-wa svg { width: 30px; height: 30px; }
.lls-wa span { max-width: 0; overflow: hidden; white-space: nowrap; transition: max-width .4s var(--ease), padding .4s; }
.lls-wa:hover span { max-width: 240px; padding-right: 8px; }
.lls-wa:hover { transform: translateY(-2px); }

/* ---------- Écran mot de passe ---------- */
.lls-locked .lls-nav, .lls-locked .lls-header__cta, .lls-locked .lls-burger, .lls-locked .lls-wa, .lls-locked .lls-footer__grid { display: none; }
.lls-locked .lls-footer { padding-top: 0; }
.lls-locked .lls-footer__bottom { border: 0; }
.lls-gate { min-height: calc(100vh - 160px); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 60px var(--gutter); background: radial-gradient(50% 60% at 50% 40%, rgba(196, 154, 74, .16), transparent 70%); }
.lls-gate__title { font-size: clamp(38px, 5vw, 60px); margin: 18px 0 14px !important; }
.lls-gate__text { color: var(--gris); max-width: 460px; }
.lls-gate__form { display: flex; gap: 10px; margin-top: 30px; flex-wrap: wrap; justify-content: center; }
.lls-gate__form input { font: inherit; padding: 15px 22px; border-radius: 999px; border: 1px solid var(--ligne); background: var(--blanc); min-width: 240px; }
.lls-gate__form input:focus { outline: 2px solid var(--or); outline-offset: 2px; }
.lls-gate__form button { font: inherit; font-weight: 600; padding: 15px 26px; border-radius: 999px; border: 0; background: var(--nuit); color: var(--blanc); cursor: pointer; }
.lls-gate__form button:hover { background: var(--nuit-2); }

/* ---------- Apparition au défilement ---------- */
.js .lls-reveal { opacity: 0; transform: translateY(26px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.js .lls-reveal.is-in { opacity: 1; transform: none; }

:focus-visible { outline: 2px solid var(--or); outline-offset: 3px; }

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
	.lls-nav { gap: 22px; }
	.lls-portrait__badge { left: -20px; }
}
@media (max-width: 960px) {
	.lls-nav, .lls-header__cta { display: none; }
	.lls-burger { display: block; }
	.lls-header-wrap.is-open { background: var(--sable); }
	.is-open .lls-nav { display: flex; flex-direction: column; gap: 4px; position: absolute; top: 100%; left: 0; right: 0; background: var(--sable); padding: 10px var(--gutter) 26px; box-shadow: 0 20px 30px -20px rgba(13, 27, 46, .3); }
	.is-open .lls-nav a { font-size: 19px; padding: 12px 0; border-bottom: 1px solid var(--ligne); }
	.lls-header { position: relative; }

	.lls-hero__grid { grid-template-columns: 1fr; }
	.lls-portrait { justify-self: center; width: min(100%, 360px); margin-top: 10px; }
	.lls-hero__net { width: 100%; right: -30%; opacity: .35; }
	.lls-cards--3, .lls-steps { grid-template-columns: 1fr; }
	.lls-reassure, .lls-about__grid, .lls-booking__grid { grid-template-columns: 1fr; }
	.lls-fusion { grid-template-columns: 1fr; text-align: center; }
	.lls-fusion ul, .lls-fusion__side--right ul { justify-content: center; }
	.lls-fusion__side--right { text-align: center; }
	.lls-fusion__core svg { max-width: 200px; transform: rotate(90deg); margin: 30px 0; }
	.lls-footer__grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
	body { font-size: 16px; }
	.lls-header { height: 72px; }
	.lls-hero { margin-top: -72px !important; padding-top: calc(72px + 30px); }
	.lls-hero__title { font-size: 38px; }
	.lls-btn .wp-block-button__link { width: 100%; text-align: center; box-sizing: border-box; font-size: 14.5px; padding: 17px 16px; }
	.lls-btn--gold .wp-block-button__link::after { display: none; }
	.wp-block-buttons.lls-ctas > .wp-block-button { width: 100%; }
	.lls-portrait__badge { left: -6px; bottom: 30px; padding: 12px 14px; max-width: 210px; }
	.lls-portrait__badge strong { font-size: 32px; }
	.lls-portrait__card { right: -6px; top: 20px; }
	.lls-marquee { padding: 22px 0; }
	.lls-marquee__track li { font-size: 13px; padding: 0 22px; }
	.lls-marquee__track li::after { margin-left: 34px; }
	.lls-creds { padding: 6px 22px !important; }
	.lls-creds li { grid-template-columns: 1fr; gap: 4px; }
	.lls-cal__head, .lls-cal__body { padding-left: 18px; padding-right: 18px; }
	.lls-wa { right: 16px; bottom: 16px; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
	html { scroll-behavior: auto; }
	.lls-hero__net path { stroke-dashoffset: 0; }
	.lls-main .lls-marquee__track { animation: none; flex-wrap: wrap; width: auto; justify-content: center; row-gap: 12px; }
}
