/*
Theme Name: LuxBook
Author: Spline Online
Description: Thème WordPress vitrine haut de gamme pour LuxBook — cabinet comptable & conseil financier d'exception. Palette anthracite/or, en-tête et pied de page pilotés par les catégories WordPress, image de fond et TOUS les textes modifiables depuis Apparence → Personnaliser. Responsive (mobile-first), logo via le Personnalisateur.
Version: 1.0.0
Requires at least: 5.5
Tested up to: 6.6
Requires PHP: 7.2
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: luxbook
Tags: business, finance, custom-logo, custom-menu, featured-images, responsive, dark
*/

/* =========================================================
   1. VARIABLES
   ========================================================= */
:root{
	--lux-bg:        #0B111A;
	--lux-bg-2:      #101927;
	--lux-header:    #0E1622;
	--lux-panel:     #1B2532;
	--lux-panel-2:   #222E3E;
	--lux-gold:      #C9A961;
	--lux-gold-lite: #E7D3A0;
	--lux-gold-dark: #9A7F3F;
	--lux-text:      #E9E7E2;
	--lux-muted:     #A6ADB8;
	--lux-line:      rgba(201,169,97,.26);
	--lux-line-soft: rgba(255,255,255,.09);

	--lux-serif: "Cormorant Garamond", "Marcellus", Georgia, "Times New Roman", serif;
	--lux-sans:  "Jost", "Helvetica Neue", Arial, sans-serif;

	--lux-wrap:  1200px;
	--lux-head-h: 104px;
	--lux-radius: 4px;
	--lux-shadow: 0 18px 50px rgba(0,0,0,.45);
}

/* =========================================================
   2. RESET & BASE
   ========================================================= */
*,*::before,*::after{ box-sizing:border-box; }

html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }

body{
	margin:0;
	background:var(--lux-bg);
	color:var(--lux-text);
	font-family:var(--lux-sans);
	font-size:17px;
	font-weight:300;
	line-height:1.7;
	overflow-x:hidden;
}

img{ max-width:100%; height:auto; display:block; }

a{ color:var(--lux-gold); text-decoration:none; transition:color .25s ease, opacity .25s ease; }
a:hover{ color:var(--lux-gold-lite); }

h1,h2,h3,h4{
	font-family:var(--lux-serif);
	font-weight:500;
	line-height:1.15;
	margin:0 0 .6em;
	letter-spacing:.02em;
}

h1{ font-size:clamp(2rem,5.2vw,3.6rem); }
h2{ font-size:clamp(1.6rem,3.4vw,2.5rem); }
h3{ font-size:clamp(1.15rem,2vw,1.5rem); }

p{ margin:0 0 1.2em; }

ul,ol{ padding-left:1.2em; }

blockquote{
	margin:1.6em 0;
	padding:.2em 0 .2em 1.4em;
	border-left:2px solid var(--lux-gold);
	font-family:var(--lux-serif);
	font-size:1.25rem;
	color:var(--lux-gold-lite);
}

code,pre{ background:var(--lux-panel); color:var(--lux-gold-lite); border-radius:var(--lux-radius); }
pre{ padding:1em; overflow:auto; }
code{ padding:.15em .4em; }

table{ width:100%; border-collapse:collapse; margin:1.5em 0; }
th,td{ padding:.7em .8em; border-bottom:1px solid var(--lux-line-soft); text-align:left; }
th{ color:var(--lux-gold); font-weight:400; letter-spacing:.08em; text-transform:uppercase; font-size:.82rem; }

.lux-wrap{ width:100%; max-width:var(--lux-wrap); margin:0 auto; padding:0 24px; }

.screen-reader-text{
	position:absolute!important; width:1px; height:1px; overflow:hidden;
	clip:rect(1px,1px,1px,1px); white-space:nowrap;
}

.lux-skip{
	position:absolute; left:-9999px; top:0; z-index:9999;
	background:var(--lux-gold); color:#0B111A; padding:.7em 1.2em;
}
.lux-skip:focus{ left:12px; top:12px; }

:focus-visible{ outline:2px solid var(--lux-gold); outline-offset:3px; }

/* =========================================================
   3. BOUTONS
   ========================================================= */
.lux-btn{
	display:inline-block;
	font-family:var(--lux-sans);
	font-size:.92rem;
	font-weight:500;
	letter-spacing:.13em;
	text-transform:uppercase;
	padding:1em 2.2em;
	color:#12171F;
	background:linear-gradient(180deg,var(--lux-gold-lite) 0%,var(--lux-gold) 52%,var(--lux-gold-dark) 100%);
	border:1px solid var(--lux-gold-lite);
	border-radius:2px;
	cursor:pointer;
	transition:transform .25s ease, box-shadow .25s ease, filter .25s ease;
	box-shadow:0 8px 24px rgba(0,0,0,.35);
}
.lux-btn:hover{
	color:#12171F;
	filter:brightness(1.07);
	transform:translateY(-2px);
	box-shadow:0 12px 30px rgba(201,169,97,.28);
}
.lux-btn--ghost{
	background:transparent;
	color:var(--lux-gold);
	border:1px solid var(--lux-line);
	box-shadow:none;
}
.lux-btn--ghost:hover{ color:var(--lux-gold-lite); border-color:var(--lux-gold); }
.lux-btn--sm{ padding:.8em 1.6em; font-size:.8rem; }

/* =========================================================
   4. EN-TÊTE
   ========================================================= */
.lux-header{
	position:sticky; top:0; z-index:900;
	background:var(--lux-header);
	border-bottom:1px solid var(--lux-line);
	transition:background .3s ease, box-shadow .3s ease;
}
.lux-header.is-stuck{ background:rgba(14,22,34,.96); box-shadow:0 10px 30px rgba(0,0,0,.4); backdrop-filter:blur(8px); }

.lux-header__inner{
	display:flex; align-items:center; gap:20px;
	min-height:var(--lux-head-h);
}

.lux-brand{ display:flex; align-items:center; gap:12px; order:1; }
.lux-brand img{ max-height:84px; width:auto; }
.lux-brand__text{
	font-family:var(--lux-serif);
	font-size:2.2rem;
	letter-spacing:.18em;
	text-transform:uppercase;
	color:var(--lux-gold-lite);
	line-height:1;
}
.lux-brand__tag{
	display:block;
	font-family:var(--lux-sans);
	font-size:.62rem;
	letter-spacing:.3em;
	color:var(--lux-muted);
	margin-top:.45em;
}

/* Ordre sur grand écran : logo · menu centré · bouton à droite. */
.lux-nav{ order:2; margin:0 auto; }
.lux-nav ul{ display:flex; align-items:center; gap:34px; list-style:none; margin:0; padding:0; }
.lux-nav a{
	color:var(--lux-text);
	font-size:1rem;
	font-weight:300;
	letter-spacing:.03em;
	position:relative;
	padding:.4em 0;
	display:inline-block;
}
.lux-nav a::after{
	content:""; position:absolute; left:0; right:100%; bottom:0;
	height:1px; background:var(--lux-gold);
	transition:right .3s ease;
}
.lux-nav a:hover{ color:var(--lux-gold-lite); }
.lux-nav a:hover::after{ right:0; }
.lux-nav .current-menu-item > a{ color:var(--lux-gold); }
.lux-nav .current-menu-item > a::after{ right:0; }

.lux-header__cta{ order:3; margin-left:14px; white-space:nowrap; }

.lux-burger{
	display:none;
	width:46px; height:40px;
	background:transparent;
	border:1px solid var(--lux-line);
	border-radius:2px;
	padding:0;
	cursor:pointer;
}
.lux-burger span{
	display:block; width:22px; height:1px; margin:5px auto;
	background:var(--lux-gold-lite);
	transition:transform .3s ease, opacity .3s ease;
}
.lux-burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.lux-burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.lux-burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

/* =========================================================
   5. HÉROS
   ========================================================= */
.lux-hero{
	position:relative;
	display:flex; align-items:center; justify-content:center;
	/* --lux-hero-h est posé en inline par le gabarit (réglage « Hauteur du
	   bandeau ») ; les media queries plus bas gardent la priorité.
	   INVARIANT : la remontée des cartes (.lux-cards margin-top) doit rester
	   INFÉRIEURE à ce padding-bas, sinon les cartes recouvrent le bouton
	   quand on baisse la hauteur du bandeau. */
	min-height:var(--lux-hero-h,660px);
	padding:54px 0 230px;
	text-align:center;
	overflow:hidden;
	/* Repli si aucune image : dégradé anthracite + reflet doré */
	background-color:#0F1620;
	background-image:
		radial-gradient(120% 90% at 18% 12%, rgba(201,169,97,.20) 0%, rgba(201,169,97,0) 55%),
		linear-gradient(150deg,#16202D 0%,#0C121B 60%,#0A0F16 100%);
	background-size:cover;
	background-position:center;
}
.lux-hero__media{
	position:absolute; inset:0;
	background-size:cover;
	background-repeat:no-repeat;
	background-position:center;
	z-index:0;
}
.lux-hero__veil{
	position:absolute; inset:0; z-index:1;
	background:
		linear-gradient(180deg, rgba(8,12,18,.55) 0%, rgba(8,12,18,.18) 38%, rgba(8,12,18,.86) 100%);
}
.lux-hero__inner{ position:relative; z-index:2; max-width:900px; }

.lux-hero__title{
	font-family:var(--lux-serif);
	font-size:clamp(1.9rem,6vw,4.2rem);
	line-height:1.08;
	letter-spacing:.04em;
	text-transform:uppercase;
	margin:0 0 .5em;
	color:var(--lux-gold-lite);
	background:linear-gradient(180deg,#F2E4BE 0%,var(--lux-gold) 62%,var(--lux-gold-dark) 100%);
	-webkit-background-clip:text;
	background-clip:text;
	-webkit-text-fill-color:transparent;
	text-shadow:0 2px 24px rgba(0,0,0,.35);
}
.lux-hero__title span{ display:block; }
.lux-hero__sub{
	max-width:620px; margin:0 auto 1.7em;
	font-size:clamp(1rem,1.9vw,1.22rem);
	color:#E4E2DC;
	text-shadow:0 1px 12px rgba(0,0,0,.5);
}

/* =========================================================
   6. CARTES SERVICES (chevauchent le héros)
   ========================================================= */
/* -210px < 230px de padding-bas du héros : les cartes chevauchent l'image
   sans jamais mordre sur le bouton (cf. invariant dans .lux-hero). */
.lux-cards{ position:relative; z-index:3; margin-top:-210px; padding-bottom:84px; }
.lux-cards__grid{
	display:grid;
	/* --lux-cols est posé en inline par le gabarit (1 à 3 cartes) ; les media
	   queries plus bas gardent la priorité car elles ciblent la propriété. */
	grid-template-columns:repeat(var(--lux-cols,3),1fr);
	gap:18px;
}
.lux-card{
	background:linear-gradient(180deg,rgba(34,46,62,.94) 0%,rgba(24,33,45,.94) 100%);
	border:1px solid var(--lux-line);
	border-radius:var(--lux-radius);
	padding:34px 26px 30px;
	text-align:center;
	box-shadow:var(--lux-shadow);
	transition:transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.lux-card:hover{ transform:translateY(-6px); border-color:var(--lux-gold); box-shadow:0 24px 60px rgba(0,0,0,.55); }
.lux-card__icon{ margin:0 auto 18px; width:52px; height:52px; color:var(--lux-gold); }
.lux-card__icon svg{ width:100%; height:100%; display:block; }
.lux-card__title{
	font-family:var(--lux-sans);
	font-size:1.02rem;
	font-weight:500;
	letter-spacing:.09em;
	text-transform:uppercase;
	color:#F1EFEA;
	margin:0 0 .5em;
	line-height:1.4;
}
.lux-card__text{ color:var(--lux-muted); font-size:.95rem; margin:0; }
.lux-card__more{
	display:inline-block; margin-top:1em;
	font-size:.78rem; letter-spacing:.14em; text-transform:uppercase;
}

/* =========================================================
   7. SECTIONS GÉNÉRIQUES
   ========================================================= */
.lux-section{ padding:78px 0; }
.lux-section--alt{ background:var(--lux-bg-2); border-top:1px solid var(--lux-line-soft); border-bottom:1px solid var(--lux-line-soft); }

.lux-section__head{ text-align:center; max-width:760px; margin:0 auto 46px; }
.lux-eyebrow{
	display:block;
	font-size:.74rem; letter-spacing:.28em; text-transform:uppercase;
	color:var(--lux-gold); margin-bottom:1em;
}
.lux-section__head p{ color:var(--lux-muted); margin:0; }

.lux-divider{
	width:70px; height:1px; margin:1.4em auto;
	background:linear-gradient(90deg,transparent,var(--lux-gold),transparent);
}

/* Grille articles (Insights) */
.lux-posts{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.lux-post{
	background:var(--lux-panel);
	border:1px solid var(--lux-line-soft);
	border-radius:var(--lux-radius);
	overflow:hidden;
	transition:transform .3s ease, border-color .3s ease;
	display:flex; flex-direction:column;
}
.lux-post:hover{ transform:translateY(-5px); border-color:var(--lux-line); }
.lux-post__thumb{ aspect-ratio:16/10; overflow:hidden; background:var(--lux-panel-2); }
.lux-post__thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.lux-post:hover .lux-post__thumb img{ transform:scale(1.05); }
.lux-post__body{ padding:22px 22px 24px; flex:1; display:flex; flex-direction:column; }
.lux-post__meta{ font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--lux-gold); margin-bottom:.7em; }
.lux-post__title{ font-size:1.28rem; margin:0 0 .5em; }
.lux-post__title a{ color:#F1EFEA; }
.lux-post__title a:hover{ color:var(--lux-gold-lite); }
.lux-post__excerpt{ color:var(--lux-muted); font-size:.93rem; margin:0 0 1.1em; }
.lux-post__link{ margin-top:auto; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; }

/* Bandeau appel à l'action */
.lux-cta{
	text-align:center;
	padding:74px 0;
	background:linear-gradient(180deg,rgba(201,169,97,.10),rgba(201,169,97,0));
	border-top:1px solid var(--lux-line);
}
.lux-cta h2{ color:var(--lux-gold-lite); }
.lux-cta p{ color:var(--lux-muted); max-width:600px; margin:0 auto 2em; }

/* =========================================================
   8. CONTENU (pages & articles)
   ========================================================= */
.lux-page-head{
	padding:64px 0 40px;
	text-align:center;
	border-bottom:1px solid var(--lux-line-soft);
	background:linear-gradient(180deg,#101927,var(--lux-bg));
}
.lux-page-head h1{ color:var(--lux-gold-lite); margin-bottom:.3em; }
.lux-page-head p{ color:var(--lux-muted); margin:0; }

.lux-content{ padding:56px 0 84px; }
.lux-article{ max-width:820px; margin:0 auto; }
.lux-article__thumb{ margin-bottom:34px; border:1px solid var(--lux-line-soft); border-radius:var(--lux-radius); overflow:hidden; }
.lux-article h2,.lux-article h3{ color:var(--lux-gold-lite); margin-top:1.8em; }
.lux-article a{ text-decoration:underline; text-underline-offset:3px; }

.lux-meta{ font-size:.76rem; letter-spacing:.16em; text-transform:uppercase; color:var(--lux-gold); margin-bottom:1.6em; }

.lux-pagination{ display:flex; justify-content:center; gap:10px; margin-top:48px; flex-wrap:wrap; }
.lux-pagination .page-numbers{
	display:inline-block; padding:.55em 1em;
	border:1px solid var(--lux-line-soft); border-radius:2px;
	color:var(--lux-text); font-size:.9rem;
}
.lux-pagination .page-numbers.current,
.lux-pagination .page-numbers:hover{ border-color:var(--lux-gold); color:var(--lux-gold); }

.lux-empty{ text-align:center; color:var(--lux-muted); padding:40px 0 70px; }

/* Alignements WordPress */
.alignleft{ float:left; margin:0 1.6em 1.2em 0; }
.alignright{ float:right; margin:0 0 1.2em 1.6em; }
.aligncenter{ margin:0 auto 1.4em; }
.wp-caption-text{ font-size:.82rem; color:var(--lux-muted); text-align:center; }
.sticky,.gallery-caption,.bypostauthor{ position:relative; }

/* =========================================================
   9. PIED DE PAGE
   ========================================================= */
.lux-footer{ background:var(--lux-bg); border-top:1px solid var(--lux-line); }

.lux-fstrip{
	display:flex;
	align-items:center;
	gap:0;
	padding:30px 0 26px;
	border-top:1px solid var(--lux-line-soft);
}

.lux-fcontact{
	display:grid; grid-template-columns:1fr 1fr; gap:0;
	flex:1 1 auto;
}
.lux-fcontact__item{
	display:flex; align-items:center; gap:12px;
	padding:12px 22px;
	font-size:.88rem;
	color:var(--lux-muted);
	border-right:1px solid var(--lux-line-soft);
}
.lux-fcontact__item:nth-child(2n){ border-right:1px solid var(--lux-line-soft); }
.lux-fcontact__item svg{ width:17px; height:17px; flex:0 0 17px; color:var(--lux-gold); }
.lux-fcontact__item a{ color:var(--lux-muted); }
.lux-fcontact__item a:hover{ color:var(--lux-gold-lite); }

.lux-fbrand{ text-align:center; padding:0 40px; }
.lux-fbrand img{ max-height:88px; width:auto; margin:0 auto; }
.lux-fbrand__text{
	font-family:var(--lux-serif);
	font-size:1.5rem; letter-spacing:.2em; text-transform:uppercase;
	color:var(--lux-gold-lite);
}

.lux-foffices{ flex:0 0 auto; }
.lux-pills__label{ display:block; text-align:center; margin-bottom:.9em; }

/* --- Pastilles « activités » (drapeau + nom) --- */
.lux-pills{ display:flex; flex-wrap:wrap; gap:14px; align-items:flex-start; justify-content:center; }
.lux-pill-wrap{ text-align:center; }

.lux-pill{
	display:inline-flex; align-items:center; gap:9px;
	padding:.5em 1.05em .5em .75em;
	border:1px solid var(--lux-line);
	border-radius:999px;
	background:linear-gradient(180deg,rgba(34,46,62,.92),rgba(22,31,43,.92));
	color:#EFEDE8;
	font-size:.86rem; font-weight:400; letter-spacing:.09em; text-transform:uppercase;
	white-space:nowrap;
	transition:border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
a.lux-pill:hover{ color:#FFF; border-color:var(--lux-gold); transform:translateY(-2px); box-shadow:0 8px 22px rgba(0,0,0,.35); }

.lux-pill__flag{
	display:inline-flex; align-items:center;
	border-radius:2px; overflow:hidden;
	box-shadow:0 1px 4px rgba(0,0,0,.45);
	flex:0 0 auto;
}
.lux-pill__flag svg{ display:block; }
.lux-pill__city{ line-height:1; }
.lux-pill__addr{
	margin:.65em 0 0;
	font-size:.78rem; line-height:1.5; font-style:italic;
	color:var(--lux-muted); white-space:pre-line;
}

/* --- Variante « place » : drapeau + emblème doré, nom dessous (pied de page) --- */
.lux-pills--place{ gap:0; align-items:stretch; }
.lux-pills--place .lux-pill-wrap{
	padding:6px 34px;
	border-left:1px solid var(--lux-line-soft);
	text-align:center;
}
.lux-pills--place .lux-pill{
	display:flex; flex-direction:column; align-items:center; gap:12px;
	padding:0; border:0; border-radius:0; background:none;
	font-family:var(--lux-serif);
	font-size:1.12rem; letter-spacing:.14em;
	color:#F1EFEA;
}
.lux-pills--place a.lux-pill:hover{ color:var(--lux-gold-lite); transform:none; box-shadow:none; }
.lux-pills--place .lux-pill__marks{
	display:flex; align-items:center; justify-content:center; gap:22px;
	min-height:36px;
}
.lux-pills--place .lux-pill__flag svg{ width:44px; height:29px; }
.lux-pill__emblem{ display:inline-flex; align-items:center; color:var(--lux-gold); }
.lux-pill__emblem .lux-emblem{ height:38px; width:auto; display:block; }
.lux-emblem--img{ height:38px; width:auto; max-width:52px; object-fit:contain; }
.lux-pills--place .lux-pill__addr{ margin-top:.55em; }

/* Pastilles posées sur le bandeau d'accueil */
.lux-pills--hero{ margin-top:26px; }
.lux-pills--hero .lux-pill{
	background:rgba(10,15,22,.55);
	backdrop-filter:blur(6px);
	border-color:rgba(231,211,160,.4);
}
.lux-pills--inline{ justify-content:flex-start; margin:1.5em 0; }

.lux-fnav{ padding:26px 0; border-top:1px solid var(--lux-line-soft); }
.lux-fnav ul{
	display:flex; flex-wrap:wrap; justify-content:center; gap:12px 30px;
	list-style:none; margin:0; padding:0;
}
.lux-fnav a{
	color:var(--lux-muted); font-size:.86rem; letter-spacing:.06em;
}
.lux-fnav a:hover{ color:var(--lux-gold); }

.lux-fbottom{
	border-top:1px solid var(--lux-line-soft);
	padding:18px 0 26px;
	display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px;
	font-size:.78rem; color:#6E7684;
}
.lux-fbottom__legal{ display:flex; flex-wrap:wrap; gap:10px 20px; margin-left:auto; list-style:none; padding:0; }
.lux-fbottom__legal a{ color:#8A919B; text-decoration:underline; text-underline-offset:3px; }
.lux-fbottom__legal a:hover{ color:var(--lux-gold); }
.lux-signature{ color:#8A919B; }
.lux-signature a{ color:var(--lux-gold-dark); }
.lux-signature a:hover{ color:var(--lux-gold); }

/* =========================================================
   9 bis. RECHERCHE, COMMENTAIRES & BLOCS RÉUTILISÉS (shortcodes)
   ========================================================= */
.lux-search{ display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin:0 auto 1.5em; max-width:520px; }
.lux-search input[type="search"]{
	flex:1 1 220px;
	background:var(--lux-panel);
	border:1px solid var(--lux-line-soft);
	border-radius:2px;
	color:var(--lux-text);
	font-family:var(--lux-sans);
	font-size:1rem;
	padding:.85em 1em;
}
.lux-search input[type="search"]::placeholder{ color:#79808C; }
.lux-search input[type="search"]:focus{ border-color:var(--lux-gold); outline:none; }

/* Champs de formulaire génériques (commentaires, plugins de contact) */
input[type="text"],input[type="email"],input[type="tel"],input[type="url"],input[type="number"],
input[type="password"],input[type="date"],select,textarea{
	width:100%;
	background:var(--lux-panel);
	border:1px solid var(--lux-line-soft);
	border-radius:2px;
	color:var(--lux-text);
	font-family:var(--lux-sans);
	font-size:1rem;
	padding:.8em 1em;
}
input:focus,select:focus,textarea:focus{ border-color:var(--lux-gold); outline:none; }
label{ display:block; font-size:.86rem; color:var(--lux-muted); margin:1em 0 .4em; letter-spacing:.04em; }
input[type="submit"],button[type="submit"]{ width:auto; }

.lux-comments{ margin-top:56px; padding-top:34px; border-top:1px solid var(--lux-line-soft); }
.lux-comment-list{ list-style:none; padding:0; margin:0 0 2em; }
.lux-comment-list li{ border-bottom:1px solid var(--lux-line-soft); padding:18px 0; }
.lux-comment-list .children{ list-style:none; padding-left:24px; }

.lux-archive-desc{ color:var(--lux-muted); max-width:720px; margin:0 auto; }

/* Version « dans le contenu » du bloc coordonnées (shortcode) */
.lux-fcontact--inline{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); margin:1.5em 0; }
.lux-fcontact--inline .lux-fcontact__item{ border-right:0; border-bottom:1px solid var(--lux-line-soft); }

/* =========================================================
   10. RESPONSIVE
   ========================================================= */
@media (max-width:1080px){
	.lux-nav ul{ gap:22px; }
	.lux-nav a{ font-size:.94rem; }
	.lux-fstrip{ flex-direction:column; gap:28px; align-items:center; }
	.lux-fbrand{ padding:0; }
	.lux-fcontact{ width:100%; max-width:560px; }
	.lux-pills--place .lux-pill-wrap:first-child{ border-left:0; }
}

@media (max-width:900px){
	.lux-cards__grid{ grid-template-columns:1fr; max-width:460px; margin:0 auto; }
	.lux-cards{ margin-top:-120px; padding-bottom:60px; }
	.lux-posts{ grid-template-columns:repeat(2,1fr); }
}

@media (max-width:860px){
	:root{ --lux-head-h:84px; }

	.lux-burger{ display:block; order:3; }
	.lux-header__inner{ flex-wrap:wrap; }

	.lux-nav{
		order:4;
		flex:0 0 100%;
		margin:0;
		max-height:0; overflow:hidden;
		transition:max-height .35s ease;
	}
	.lux-nav.is-open{ max-height:70vh; overflow-y:auto; }
	.lux-nav ul{
		flex-direction:column; align-items:stretch; gap:0;
		padding:10px 0 18px;
	}
	.lux-nav li{ border-top:1px solid var(--lux-line-soft); }
	.lux-nav a{ display:block; padding:.95em .2em; font-size:1.02rem; }
	.lux-nav a::after{ display:none; }

	.lux-header__cta{ order:2; margin-left:0; }
	.lux-header__cta .lux-btn{ padding:.7em 1.15em; font-size:.72rem; letter-spacing:.09em; }

	.lux-brand{ margin-right:auto; }
	.lux-brand img{ max-height:66px; }
	.lux-brand__text{ font-size:1.65rem; letter-spacing:.13em; }

	/* Mobile : -120px de remontée des cartes < 150px de padding-bas. */
	.lux-hero{ padding:56px 0 150px; min-height:auto; }
	.lux-section{ padding:56px 0; }

	.lux-fcontact{ grid-template-columns:1fr; }
	.lux-fcontact__item{ border-right:0; border-bottom:1px solid var(--lux-line-soft); justify-content:center; }
	.lux-foffices{ width:100%; text-align:center; }
	.lux-pills{ gap:18px; }
	.lux-pills--place{ justify-content:center; }
	.lux-pills--place .lux-pill-wrap{ padding:6px 20px; }
	.lux-pills--place .lux-pill{ font-size:1rem; }
	.lux-fbottom{ flex-direction:column; text-align:center; }
	.lux-fbottom__legal{ margin:0 auto; justify-content:center; }
}

@media (max-width:600px){
	body{ font-size:16px; }
	.lux-wrap{ padding:0 18px; }
	.lux-posts{ grid-template-columns:1fr; }
	.lux-btn{ padding:.95em 1.6em; font-size:.82rem; }

	/* Logo · bouton · burger doivent tenir sur UNE ligne (sinon le burger
	   passe en dessous et l'en-tête double de hauteur). */
	.lux-header__inner{ gap:12px; }
	.lux-brand img{ max-height:56px; }
	.lux-brand__text{ font-size:1.4rem; letter-spacing:.1em; }
	.lux-header__cta .lux-btn{ padding:.6em .85em; font-size:.66rem; letter-spacing:.06em; }
}

/* Écrans très étroits : le bouton de l'en-tête s'effacerait sur le burger —
   il reste accessible via le bandeau d'accueil et le menu. */
@media (max-width:400px){
	.lux-header__cta{ display:none; }
	.lux-brand__text{ font-size:1.55rem; }
}

@media (prefers-reduced-motion:reduce){
	*{ animation:none!important; transition:none!important; }
	html{ scroll-behavior:auto; }
}

/* Impression */
@media print{
	.lux-header,.lux-footer,.lux-cta{ display:none; }
	body{ background:#fff; color:#000; }
}
