/* ==========================================================================
   Thème LIP — styles complémentaires (le reste est dans theme.json).
   Direction : beaucoup de blanc, filets fins, un seul accent (Bronze).
   ========================================================================== */

:root {
	--lip-nuit: #0F1D2D;
	--lip-ardoise: #243A57;
	--lip-gris: #5A6065;
	--lip-filet: #E6E1D8;
	--lip-creme: #F8F6F1;
	--lip-bronze: #B08A45;
	--lip-bronze-texte: #7A5C26;
	--lip-sauge: #6E8F86;
	--lip-radius: 14px;
	--lip-section: clamp(4.5rem, 3rem + 6vw, 9rem);
}

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; font-variant-numeric: lining-nums; }
h1, h2, h3, h4 { text-wrap: balance; font-variant-numeric: lining-nums; }
p { text-wrap: pretty; }
::selection { background: var(--lip-bronze); color: var(--lip-nuit); }
:focus-visible { outline: 2px solid var(--lip-bronze); outline-offset: 3px; border-radius: 3px; }
a { text-underline-offset: .2em; text-decoration-thickness: 1px; }

/* ---- Sections ---------------------------------------------------------- */
.lip-section { padding-top: var(--lip-section); padding-bottom: var(--lip-section); }
.lip-section--tight { padding-top: clamp(2.5rem, 2rem + 3vw, 5rem); padding-bottom: clamp(2.5rem, 2rem + 3vw, 5rem); }
.lip-section--flush { padding-top: 0; padding-bottom: var(--lip-section); }
.lip-section > * + * { margin-block-start: clamp(2rem, 1.5rem + 2vw, 3.5rem); }
.lip-section > p + h1, .lip-section > p + h2, .lip-section > h2 + p { margin-block-start: .75rem; }
.wp-block-group.alignwide > p.is-style-surtitre + h1,
.wp-block-group.alignwide > p.is-style-surtitre + h2 { margin-block-start: .6rem; }
.lip-maxw-16 { max-width: 16ch; }
.lip-maxw-18 { max-width: 18ch; }
.lip-maxw-40 { max-width: 40rem; }
.lip-intro { padding-bottom: clamp(2.5rem, 2rem + 3vw, 5rem); }
.lip-intro h1 { font-size: var(--wp--preset--font-size--titre-1); }

/* ---- En-tête ----------------------------------------------------------- */
.lip-header-wrap { position: sticky; top: 0; z-index: 50; }
.admin-bar .lip-header-wrap { top: 32px; }
@media (max-width: 782px) { .admin-bar .lip-header-wrap { top: 46px; } }
.lip-header { background: #fff; border-bottom: 1px solid transparent; transition: border-color .2s ease; } /* pas de backdrop-filter : il casserait le menu mobile plein écran */
.lip-header.is-scrolled { border-bottom-color: var(--lip-filet); }
.lip-brand { gap: .7rem; }
.lip-brand__mark img { display: block; width: 40px; height: 40px; }
.lip-brand__name, .lip-brand__name a { font-family: var(--wp--preset--font-family--serif); font-weight: 700; font-size: 1.75rem; line-height: 1; color: var(--lip-nuit); text-decoration: none; letter-spacing: .03em; margin: 0; }
.lip-brand__full { font-size: .6rem !important; line-height: 1.3; letter-spacing: .16em; text-transform: uppercase; color: var(--lip-gris); margin: .15rem 0 0 !important; max-width: 12rem; }
@media (max-width: 380px) { .lip-brand__full { display: none; } }
.lip-nav a { text-decoration: none; color: var(--lip-nuit); position: relative; }
.lip-nav .wp-block-navigation-item__content:hover { color: var(--lip-bronze-texte); }
.lip-nav .current-menu-item > a, .lip-nav a[aria-current="page"] { color: var(--lip-bronze-texte); }
@media (max-width: 599px) { .lip-header__cta { display: none; } }
.wp-block-navigation__responsive-container.is-menu-open { padding: 2rem 1.5rem; background: #fff !important; color: var(--lip-nuit) !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-family: var(--wp--preset--font-family--serif); font-size: 1.75rem; font-weight: 600; }

/* ---- Styles de blocs --------------------------------------------------- */
p.is-style-surtitre, .is-style-surtitre, .wp-block-post-terms.is-style-surtitre a {
	font-size: .75rem !important; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--lip-bronze-texte); margin-bottom: 0; text-decoration: none;
}
.is-style-surtitre a { color: inherit; text-decoration: none; }
p.is-style-chapo, .is-style-chapo p, .wp-block-post-excerpt.is-style-chapo .wp-block-post-excerpt__excerpt {
	font-size: var(--wp--preset--font-size--chapo); line-height: 1.6; color: var(--lip-gris);
}
p.is-style-source { font-size: .8125rem; color: var(--lip-gris); margin-top: .5rem; }
.wp-block-heading.is-style-chiffre { font-size: var(--wp--preset--font-size--geant); font-weight: 600; line-height: .95; color: var(--lip-bronze); letter-spacing: -.02em; margin-bottom: .5rem; }

.wp-block-group.is-style-carte { background: #fff; border: 1px solid var(--lip-filet); border-radius: var(--lip-radius); padding: clamp(1.5rem, 1.1rem + 1.2vw, 2.25rem); }
.wp-block-column > .wp-block-group.is-style-carte:only-child { height: 100%; }
.has-creme-background-color .wp-block-group.is-style-carte { border-color: #ECE7DD; }
.wp-block-group.is-style-carte h3 { margin-top: 0; }
.wp-block-group.is-style-encadre { background: var(--lip-creme); border-radius: var(--lip-radius); padding: clamp(1.5rem, 1.1rem + 1.2vw, 2.25rem); margin-block: 2.5rem; }
.wp-block-group.is-style-encadre h3 { font-size: 1.35rem; margin-top: 0; }
.wp-block-group.is-style-etape-lip { border-top: 2px solid var(--lip-bronze) !important; padding-top: 1.25rem; }
.lip-card--muted { background: transparent !important; }
.lip-card--cta { display: flex; flex-direction: column; }
.lip-card--cta > .wp-block-buttons { margin-top: auto; padding-top: 1rem; }

ul.is-style-coches, ul.is-style-croix { list-style: none; padding-left: 0; }
ul.is-style-coches li, ul.is-style-croix li { position: relative; padding: .55rem 0 .55rem 2rem; border-bottom: 1px solid var(--lip-filet); }
ul.is-style-coches li:last-child, ul.is-style-croix li:last-child { border-bottom: 0; }
ul.is-style-coches li::before, ul.is-style-croix li::before { position: absolute; left: 0; top: .78rem; width: 1.15rem; height: 1.15rem; border-radius: 50%; display: grid; place-items: center; font: 700 .7rem/1 var(--wp--preset--font-family--sans); }
ul.is-style-coches li::before { content: "✓"; background: var(--lip-nuit); color: #fff; }
ul.is-style-croix li::before { content: "✕"; border: 1px solid #B9BEC3; color: var(--lip-gris); }
.is-style-encadre ul.is-style-coches li { border-color: #E9E3D8; }

.wp-block-quote.is-style-encadre { border-left: 0 !important; padding: clamp(1.75rem, 1.2rem + 2vw, 3rem) !important; background: var(--lip-creme); border-radius: var(--lip-radius); position: relative; }
.wp-block-quote.is-style-encadre::before { content: "«"; position: absolute; top: .25rem; left: 1.25rem; font: 600 4rem/1 var(--wp--preset--font-family--serif); color: var(--lip-bronze); opacity: .5; }
.wp-block-quote cite { display: block; margin-top: 1rem; font: normal 500 .8125rem/1.4 var(--wp--preset--font-family--sans); color: var(--lip-gris); letter-spacing: .02em; font-style: normal; }
.wp-block-quote p { margin: 0; }

.wp-block-button.is-style-lien-fleche .wp-block-button__link { background: transparent !important; color: var(--lip-nuit) !important; padding-left: 0; padding-right: 0; border-radius: 0; text-decoration: none; }
.wp-block-button.is-style-lien-fleche .wp-block-button__link::after { content: " →"; transition: margin .2s ease; }
.wp-block-button.is-style-lien-fleche .wp-block-button__link:hover::after { margin-left: .3rem; }
.wp-block-button.is-style-outline .wp-block-button__link { border: 1px solid var(--lip-nuit); color: var(--lip-nuit); background: transparent; }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--lip-nuit); color: #fff; }
.wp-block-button__link { transition: background .2s ease, color .2s ease; }

/* ---- Accroche ---------------------------------------------------------- */
.lip-hero { padding-top: clamp(3rem, 2rem + 5vw, 7rem); }
.lip-hero__title { margin-block: .75rem 1.25rem; }
.lip-hero .is-style-chapo { max-width: 36rem; }
.lip-hero .wp-block-buttons { margin-top: 2rem; gap: 1.5rem; align-items: center; }
.lip-hero__meta { font-size: .8125rem; color: var(--lip-gris); margin-top: 2rem !important; letter-spacing: .02em; }
.lip-hero__compass { max-width: 420px; margin-inline: auto !important; }
.lip-hero__compass img { width: 100%; height: auto; }
@media (prefers-reduced-motion: no-preference) {
	.lip-hero__compass img { animation: lip-drift 14s ease-in-out infinite; transform-origin: 50% 50%; }
	@keyframes lip-drift { 0%, 100% { transform: rotate(0); } 50% { transform: rotate(-4deg); } }
}
@media (max-width: 781px) { .lip-hero__compass { max-width: 260px; } }

/* ---- Étapes « avant / après la porte » -------------------------------- */
.lip-steps { gap: clamp(1rem, .5rem + 2vw, 2.5rem) !important; }
.lip-steps > .wp-block-column { border-top: 1px solid var(--lip-filet); padding-top: 1.25rem; }
.lip-steps > .wp-block-column:has(.is-style-etape-lip) { border-top: 0; padding-top: 0; }
.lip-steps .is-style-etape-lip { height: 100%; }
p.lip-step__num { font-size: .75rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--lip-bronze-texte); margin-bottom: .4rem; }
.lip-step__title { font-size: 1.5rem !important; margin: 0 0 .35rem; }

/* ---- Chiffres --------------------------------------------------------- */
.lip-stats { gap: clamp(1.5rem, 1rem + 3vw, 4rem) !important; }
.lip-stats > .wp-block-column > p:not(.is-style-source) { font-size: 1.0625rem; }

/* ---- Boussole --------------------------------------------------------- */
.lip-compass-small { max-width: 220px; margin-block: 2rem !important; }
.lip-routes { gap: 1rem !important; margin-bottom: 1rem !important; }
.lip-route h3 { font-size: 1.6rem; margin: .25rem 0 .35rem; }
.lip-route__dir { font-size: .75rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--lip-gris); display: flex; align-items: baseline; gap: .5rem; margin: 0; }
.lip-route__letter { font: 600 2rem/1 var(--wp--preset--font-family--serif); color: var(--lip-bronze); letter-spacing: 0; }

/* ---- Trios, piliers, frise -------------------------------------------- */
.lip-trio { gap: clamp(1.5rem, 1rem + 3vw, 3.5rem) !important; }
p.lip-roman { font: 600 2.4rem/1 var(--wp--preset--font-family--serif); color: var(--lip-bronze); margin-bottom: .75rem; }
.lip-pillar { border-top: 1px solid var(--lip-filet); padding-block: 1.5rem; }
.lip-pillar:last-child { border-bottom: 1px solid var(--lip-filet); }
.lip-pillar h3 { margin: .25rem 0 .4rem; font-size: 1.6rem; }
.lip-pillar p:last-child { margin-bottom: 0; color: var(--lip-gris); }
.lip-formula { gap: 1rem !important; }
.lip-formula__term { font-size: 2.2rem !important; color: var(--lip-nuit); margin: 0 0 .5rem !important; }
.lip-timeline { position: relative; padding-left: 2rem; }
.lip-timeline::before { content: ""; position: absolute; left: .45rem; top: .5rem; bottom: .5rem; border-left: 1px dashed #C9C2B5; }
.lip-timeline__item { position: relative; padding-bottom: 1.75rem; }
.lip-timeline__item:last-child { padding-bottom: 0; }
.lip-timeline__item::before { content: ""; position: absolute; left: -1.95rem; top: .3rem; width: .8rem; height: .8rem; background: var(--lip-sauge); }
.lip-timeline__item:last-child::before { background: var(--lip-bronze); }
.lip-timeline__item h3 { font-size: 1.4rem; margin: .2rem 0 .3rem; }
.lip-timeline__item p:last-child { margin-bottom: 0; color: var(--lip-gris); }

/* ---- Équipe ----------------------------------------------------------- */
.lip-person { border-top: 1px solid #E4DED3; padding-top: 1.5rem; }
p.lip-avatar { width: 4rem; height: 4rem; border-radius: 50%; background: var(--lip-nuit); color: #fff; display: grid; place-items: center; font: 600 1.35rem/1 var(--wp--preset--font-family--serif); letter-spacing: .04em; margin-bottom: 1.25rem; }
.lip-person h3 { margin: .35rem 0 .5rem; }
.lip-person p:last-child { color: var(--lip-gris); }

/* ---- FAQ -------------------------------------------------------------- */
.lip-faq .wp-block-details { border-top: 1px solid var(--lip-filet); padding-block: 1.1rem; }
.lip-faq .wp-block-details:last-child { border-bottom: 1px solid var(--lip-filet); }
.lip-faq summary { cursor: pointer; font: 600 1.35rem/1.3 var(--wp--preset--font-family--serif); list-style: none; position: relative; padding-right: 2rem; }
.lip-faq summary::-webkit-details-marker { display: none; }
.lip-faq summary::after { content: "+"; position: absolute; right: 0; top: 0; font: 400 1.5rem/1 var(--wp--preset--font-family--sans); color: var(--lip-bronze-texte); }
.lip-faq details[open] summary::after { content: "–"; }
.lip-faq details p { color: var(--lip-gris); margin-top: .75rem; }

/* ---- Appel à l'action ------------------------------------------------- */
.lip-cta { background: var(--lip-creme); border-radius: 20px; padding: clamp(2rem, 1.5rem + 3vw, 4rem); }
.lip-cta h2 { margin: .5rem 0 .75rem; }
.lip-cta p:last-child { margin-bottom: 0; }
@media (max-width: 781px) { .lip-cta .wp-block-buttons { justify-content: flex-start !important; } }
.lip-engagement h2 { margin-top: .6rem; }

/* ---- Blog : cartes et article ----------------------------------------- */
.lip-post-card { border-top: 1px solid var(--lip-filet); padding-top: 1.5rem; height: 100%; }
.lip-post-card .wp-block-post-title { margin: 0; line-height: 1.2; }
.lip-post-card .wp-block-post-title a { text-decoration: none; color: var(--lip-nuit); }
.lip-post-card .wp-block-post-title a:hover { color: var(--lip-bronze-texte); }
.lip-post-card .wp-block-post-excerpt p { margin: 0; }
.lip-post-card__meta, .lip-post-card__meta p { margin: 0 !important; color: var(--lip-gris); }
.wp-block-post-template.is-layout-grid { gap: clamp(1.5rem, 1rem + 3vw, 3rem); }
.lip-article .wp-block-post-title { margin: .75rem 0 1rem; }
.lip-article__meta, .lip-article__meta p { margin: 0 !important; color: var(--lip-gris); font-size: .875rem; }
.lip-article__meta .wp-block-shortcode { font-size: .875rem; }
.lip-article__meta { border-top: 1px solid var(--lip-filet); border-bottom: 1px solid var(--lip-filet); padding-block: .9rem; }
.lip-article__content { font-size: 1.125rem; line-height: 1.75; }
.lip-article__content > h2 { font-size: 2rem; margin-top: 3rem; }
.lip-article__content > p:first-of-type::first-letter { font: 600 3.6em/.8 var(--wp--preset--font-family--serif); float: left; margin: .12em .1em 0 0; color: var(--lip-bronze); }
.lip-author { background: var(--lip-creme); border-radius: var(--lip-radius); padding: 1.75rem 2rem; }
.lip-author .wp-block-post-author__name { font: 600 1.4rem/1.2 var(--wp--preset--font-family--serif); margin-top: .4rem; }
.lip-author .wp-block-post-author__bio { color: var(--lip-gris); font-size: .9375rem; margin-top: .4rem; }
.wp-block-query-pagination a { text-decoration: none; }

/* ---- Pied de page ----------------------------------------------------- */
.lip-footer { font-size: .9375rem; }
.lip-footer .lip-footer__list { list-style: none; padding: 0; display: grid; gap: .5rem; margin-top: 1rem; }
.lip-footer a { color: var(--lip-nuit); text-decoration: none; }
.lip-footer a:hover { color: var(--lip-bronze-texte); text-decoration: underline; }
.lip-footer .wp-block-separator { border-color: #E4DED3; margin-block: 3rem 1.25rem; }
p.lip-coords { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: .75rem !important; letter-spacing: .08em; color: var(--lip-bronze-texte); }

/* ---- Pages de texte (mentions, confidentialité) ----------------------- */
mark.lip-todo { background: rgba(176,138,69,.18); color: inherit; padding: 0 .2em; border-bottom: 1px dashed var(--lip-bronze-texte); }
.wp-block-post-content > h2.wp-block-heading { font-size: 1.9rem; margin-top: 2.75rem; }
.wp-block-post-content > h3.wp-block-heading { font-size: 1.4rem; margin-top: 1.75rem; }

/* ---- Responsive ------------------------------------------------------- */
@media (max-width: 781px) {
	.wp-block-columns { gap: 2rem !important; }
	.lip-routes { flex-wrap: wrap !important; }
	.wp-block-post-template.is-layout-grid { grid-template-columns: 1fr !important; }
}
@media (min-width: 600px) and (max-width: 1023px) {
	.lip-stats, .lip-trio, .lip-steps { flex-wrap: wrap !important; }
	.lip-stats > .wp-block-column, .lip-trio > .wp-block-column, .lip-steps > .wp-block-column { flex-basis: calc(50% - 1.5rem) !important; }
	.wp-block-post-template.is-layout-grid { grid-template-columns: 1fr 1fr !important; }
}
@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; } }

/* ---- Gabarits ---------------------------------------------------------- */
.lip-main { padding-top: clamp(3rem, 2rem + 4vw, 6rem); padding-bottom: var(--lip-section); }
.lip-main--listing .lip-listing-head { max-width: 760px; margin-bottom: clamp(2.5rem, 2rem + 3vw, 5rem); }
.lip-listing-head > * + * { margin-top: .6rem; }
.lip-page-title { margin-bottom: clamp(2rem, 1.5rem + 2vw, 3.5rem); }
.lip-small-muted, p.lip-small-muted, .lip-small-muted p, .lip-small-muted a { font-size: .875rem; color: var(--lip-gris); margin: 0; }
.lip-strong { font-weight: 600; font-size: .875rem; }
.lip-post-card__meta { gap: .4rem; }
.lip-article__kicker { gap: .75rem; }
.lip-article .wp-block-post-date { font-size: .875rem; color: var(--lip-gris); }
.lip-article__meta { gap: .5rem; margin-block: 1.75rem 2.5rem; }
.lip-article__meta .wp-block-shortcode, .lip-lecture { font-size: .875rem; color: var(--lip-gris); }
.lip-author { margin-top: clamp(3rem, 2rem + 3vw, 5rem); }
.lip-pagination { margin-top: clamp(2.5rem, 2rem + 2vw, 4rem); }
.lip-header { padding-block: .9rem; }
.lip-header__right { gap: 1.75rem; }
.lip-nav .wp-block-navigation__container { gap: 1.6rem; }
.lip-brand__text { gap: 0; }
.lip-footer { background: var(--lip-creme); padding-top: clamp(3rem, 2rem + 4vw, 6rem); padding-bottom: 2rem; }
.lip-footer__baseline { font: italic 400 1.4rem/1.3 var(--wp--preset--font-family--serif); color: var(--lip-bronze-texte); margin-top: 1.25rem; }
.lip-footer__bottom { gap: 1rem; }
/* Marges latérales garanties sur toutes les sections pleine largeur (mobile compris) */
.lip-section.alignfull { padding-left: var(--wp--style--root--padding-left) !important; padding-right: var(--wp--style--root--padding-right) !important; }
@media (max-width: 599px) { .lip-header .lip-header__cta { display: none !important; } }
@media (min-width: 600px) and (max-width: 1023px) {
	.lip-header .lip-header__cta { display: none !important; }
	.lip-nav .wp-block-navigation__container { gap: 1.1rem; }
	.lip-brand__full { display: none; }
}
.lip-nav__autotest { display: none !important; }
.wp-block-navigation__responsive-container.is-menu-open .lip-nav__autotest { display: flex !important; }
.wp-block-navigation__responsive-container.is-menu-open .lip-nav__autotest a { color: var(--lip-bronze-texte) !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start !important; }
