/* 1.5.2 — self-hosted Archivo variable (latin subset), SIL Open Font License 1.1 — see ../fonts/OFL-Archivo.txt */
@font-face { font-family:"Archivo"; src:url("../fonts/archivo-var-latin.woff2") format("woff2-variations"), url("../fonts/archivo-var-latin.woff2") format("woff2"); font-weight:100 900; font-stretch:62% 125%; font-style:normal; font-display:swap }
/* Libre Style — one mobile-first system: 480 / 768 / 1024 / 1440.
   Spacing uses an 8px scale. Borders, focus strokes, type and image ratios are
   separate design tokens. WordPress's 782px toolbar boundary is a core exception. */
:root {
  --bg:#050505; --bg-2:#0a0a0a; --surface:#0e0e0f; --surface-2:#141415;
  --text:#f5f3ef; --muted:#a3a3a3; --subtle:#8a8a8a;
  --red:#ED172D; --red-hover:#FF213B; --red-2:var(--red-hover);
  --line:rgba(255,255,255,.11); --line-strong:rgba(255,255,255,.22);
  --space-1:8px; --space-2:16px; --space-3:24px; --space-4:32px;
  --space-5:40px; --space-6:48px; --space-7:56px; --space-8:64px;
  --space-9:72px; --space-10:80px; --space-11:88px; --space-12:96px;
  --space-13:104px; --space-14:112px; --space-15:120px; --space-16:128px;
  --radius-sm:var(--space-1); --radius:var(--space-2); --radius-lg:var(--space-3);
  --stroke:1px; --focus-stroke:2px; --focus-offset:4px;
  --content-max:1440px; --max:var(--content-max); --reading-width:65ch;
  --page-gutter:var(--space-2); --section-space:var(--space-7);
  --grid-gap:var(--space-2); --card-space:var(--space-3); --tariff-inset:var(--space-2);
  --header-h:var(--space-8); --logo-h:var(--space-4); --admin-offset:0px;
  --dock-h:var(--space-8); --dock-clearance:calc(var(--dock-h) + var(--space-2) + env(safe-area-inset-bottom,0px));
  --type-0:1rem; --type-ratio:1.25; --type-micro:calc(var(--type-0) / var(--type-ratio));
  --type-1:calc(var(--type-0) * var(--type-ratio)); --type-2:calc(var(--type-1) * var(--type-ratio));
  --type-3:calc(var(--type-2) * var(--type-ratio)); --type-4:calc(var(--type-3) * var(--type-ratio));
  --type-5:calc(var(--type-4) * var(--type-ratio)); --type-6:calc(var(--type-5) * var(--type-ratio));
  --type-7:calc(var(--type-6) * var(--type-ratio)); --type-8:calc(var(--type-7) * var(--type-ratio));
  --display-size:clamp(var(--type-4),13.5vw,var(--type-5));
  --title-size:clamp(var(--type-3),7vw,var(--type-4));
  --card-title-size:var(--type-2); --body-size:var(--type-0); --lead-size:var(--type-0); --micro-size:var(--type-micro);
  --body-leading:1.625; --heading-leading:1.08; --display-leading:.96;
  --font-display-width:116; --font-display-weight:780;
  --ease:cubic-bezier(.22,.76,.2,1); --fast:.2s; --slow:.45s;
  --lift:2px; --shadow:0 var(--space-3) var(--space-10) rgba(0,0,0,.36);
}
* { box-sizing:border-box }
html { background:var(--bg); color-scheme:dark; scroll-behavior:smooth }
body { margin:0; padding-bottom:var(--dock-clearance); background:var(--bg); color:var(--text); font-family:"Archivo","Avenir Next","Helvetica Neue",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; font-size:var(--body-size); line-height:var(--body-leading); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility }
body.admin-bar { --admin-offset:32px }
#wpadminbar { position:fixed }
img,video { display:block; max-width:100%; height:auto }
button,input,select,textarea { font:inherit }
button { color:inherit }
a { color:inherit; text-decoration:none }
button,a,input,select,textarea { -webkit-tap-highlight-color:transparent }
h1,h2,h3,h4,p { margin:0; word-break:normal; overflow-wrap:normal; hyphens:none }
h1,h2,h3 { font-variation-settings:"wdth" var(--font-display-width),"wght" var(--font-display-weight); font-weight:780; letter-spacing:-.015em; text-wrap:balance }
p { max-width:var(--reading-width); text-wrap:pretty }
::selection { background:var(--red); color:#fff }
:focus-visible { outline:var(--focus-stroke) solid var(--red); outline-offset:var(--focus-offset) }
[hidden] { display:none!important }
.sr-only,.screen-reader-text { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0 }
.skip-link { position:fixed; z-index:100001; left:var(--page-gutter); top:calc(-1 * var(--space-16)); padding:var(--space-2); background:#fff; color:#050505; border-radius:var(--radius-sm) }
.skip-link:focus { top:calc(var(--admin-offset) + var(--space-1)) }
.container { width:min(var(--content-max),calc(100% - var(--page-gutter) * 2)); margin-inline:auto }
.narrow { width:min(var(--reading-width),calc(100% - var(--page-gutter) * 2)); margin-inline:auto }
.container > *, .narrow > *, .section-head > *, .content-grid > *, .salon-info-grid > *, .article-grid > *, .footer-top > * { min-width:0 }
.display,.display-sm { font-size:var(--display-size); line-height:var(--display-leading); font-weight:780 }
.red { color:var(--red) }
.muted { color:var(--muted) }
.lead { font-size:var(--lead-size); line-height:var(--body-leading); color:#b1b1b1; max-width:var(--reading-width) }
.eyebrow,.kicker { display:flex; align-items:center; gap:var(--space-1); font-size:var(--micro-size); font-weight:700; font-variation-settings:"wdth" 106,"wght" 700; letter-spacing:.12em; text-transform:uppercase; color:var(--muted) }
.eyebrow { margin-bottom:var(--space-2) }
.eyebrow i { flex:none; width:var(--space-1); height:var(--space-1); border-radius:50%; background:var(--red) }
.kicker { margin-bottom:var(--space-2) }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:var(--space-1); min-height:var(--space-6); max-width:100%; padding:var(--space-1) var(--space-2); border:var(--stroke) solid var(--line); border-radius:var(--radius-sm); background:rgba(12,12,12,.9); color:#fff; font-size:var(--micro-size); font-weight:700; font-variation-settings:"wdth" 106,"wght" 700; line-height:1.25; letter-spacing:.04em; text-transform:uppercase; text-align:center; white-space:normal; cursor:pointer; transition:transform var(--fast) var(--ease),background var(--fast),border-color var(--fast) }
.btn:hover { transform:translateY(calc(-1 * var(--lift))); border-color:var(--line-strong) }
.btn:active { transform:none }
.btn-primary { background:var(--red); border-color:var(--red); color:#fff }
.btn-primary:hover,.btn-primary:focus-visible { background:var(--red-hover); border-color:var(--red-hover); color:#fff; filter:brightness(1.08) }
.btn-light { background:#f4f2ee; color:#050505; border-color:#f4f2ee }
.btn[disabled],.btn[aria-disabled="true"] { opacity:.45; cursor:not-allowed; transform:none; filter:none }
.icon-arrow { font-size:var(--body-size) }
.link-tertiary,.card-cta,.mini-rdv { display:inline-flex; align-items:center; min-height:var(--space-6); gap:var(--space-1); font-size:var(--micro-size); line-height:1.4; letter-spacing:.08em; text-transform:uppercase; color:#cfcfcf }
.link-tertiary,.card-cta { text-decoration:underline; text-decoration-color:var(--line-strong); text-underline-offset:var(--space-1) }
.link-tertiary:hover,.card-cta:hover { color:#fff; text-decoration-color:var(--red) }
.mini-rdv { border:var(--stroke) solid var(--line-strong); border-radius:var(--space-6); padding:var(--space-1) var(--space-2); white-space:nowrap }
.mini-rdv:hover { color:#fff; border-color:var(--red) }
/* Header: fixed dimensions; the logo never changes size on scroll. */
.site-header { position:fixed; z-index:200; inset:var(--admin-offset) 0 auto; height:var(--header-h); border-bottom:var(--stroke) solid transparent; background:linear-gradient(rgba(5,5,5,.94),rgba(5,5,5,.8)); transition:background var(--fast),border-color var(--fast) }
.site-header.scrolled,.site-header.menu-open { background:rgba(5,5,5,.96); border-color:var(--line); backdrop-filter:blur(var(--space-2)) }
.header-inner { height:var(--header-h); display:flex; align-items:center; gap:var(--space-1) }
.brand { display:flex; align-items:center; flex-shrink:1; min-width:0; margin-right:auto }
.logo-img { display:block; height:var(--logo-h); width:auto; max-width:100%; object-fit:contain }
.header-cta { display:flex; align-items:center; flex:none }
.header-cta .btn { padding-inline:var(--space-1); letter-spacing:0; white-space:nowrap }
.menu-toggle { position:relative; display:flex; flex:none; align-items:center; justify-content:center; width:var(--space-6); height:var(--space-6); border:var(--stroke) solid var(--line); border-radius:var(--radius-sm); background:#0c0c0c; cursor:pointer }
.menu-toggle span,.menu-toggle:before,.menu-toggle:after { content:""; position:absolute; display:block; width:var(--space-3); height:var(--stroke); background:#fff }
.menu-toggle:before { transform:translateY(calc(-1 * var(--space-1))) }
.menu-toggle:after { transform:translateY(var(--space-1)) }
.main-nav { display:none; position:absolute; left:0; right:0; top:var(--header-h); height:calc(100svh - var(--admin-offset) - var(--header-h)); height:calc(100dvh - var(--admin-offset) - var(--header-h)); overflow-y:auto; overscroll-behavior:contain; flex-direction:column; align-items:stretch; gap:var(--space-1); padding:var(--space-3) var(--page-gutter) calc(var(--space-3) + env(safe-area-inset-bottom,0px)); background:var(--bg); border:0; border-radius:0 }
.menu-open .main-nav { display:flex }
.mobile-menu-open { overflow:hidden }
.menu-open .menu-toggle span { opacity:0 }
.menu-open .menu-toggle:before { transform:rotate(45deg) }
.menu-open .menu-toggle:after { transform:rotate(-45deg) }
.main-nav > a,.nav-drop-btn { display:flex; align-items:center; min-height:var(--space-6); padding:var(--space-1) 0; border:0; background:none; color:var(--muted); font-size:var(--micro-size); font-variation-settings:"wdth" 106,"wght" 640; letter-spacing:.08em; line-height:1.4; text-transform:uppercase; cursor:pointer }
.main-nav a:hover,.main-nav a:focus-visible,.nav-drop-btn:hover,.nav-drop-btn:focus-visible,.nav-item.open .nav-drop-btn { color:var(--text) }
.nav-item { position:relative; display:flex; flex-direction:column }
.nav-drop-btn { gap:var(--space-1); width:100%; text-align:left }
.chev { transition:transform var(--fast) }
.nav-item.open .chev { transform:rotate(180deg) }
.nav-drop { display:grid; padding:0 0 var(--space-2); border:0; gap:0 }
.nav-drop-btn:disabled { opacity:1; cursor:default; color:var(--text) }
.nav-drop-btn:disabled .chev { display:none }
.nav-item.open .nav-drop { display:grid }
.nav-drop a { display:flex; align-items:center; min-height:var(--space-6); padding:var(--space-1); font-size:var(--micro-size); line-height:1.4; color:var(--muted); border-radius:var(--radius-sm) }
.nav-drop a:hover,.nav-drop a:focus-visible { color:var(--text); background:var(--surface-2) }
.nav-drop .drop-all { border-top:var(--stroke) solid var(--line); border-radius:0; margin-top:var(--space-1); color:var(--red) }
/* Hero: media and type occupy separate zones on small screens. */
.hero { position:relative; display:flex; align-items:flex-end; min-height:calc(100svh - var(--admin-offset)); padding-block:calc(var(--header-h) + var(--space-8)) var(--space-2); background:var(--bg); isolation:isolate }
.hero-media { position:absolute; z-index:-1; top:0; left:0; width:100%; height:66.666667%; overflow:hidden }
.hero-media img { width:100%; height:100%; object-fit:cover; object-position:50% 20%; opacity:.67 }
.hero-media:after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(5,5,5,.15),transparent 48%,rgba(5,5,5,.5) 80%,#050505) }
.hero-content { position:relative; padding:0 }
.hero-title { max-width:100%; font-size:var(--display-size); line-height:var(--display-leading) }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-1); margin-top:var(--space-3) }
.hero .hero-actions .btn { width:auto }
.hero .lead { margin-top:var(--space-3) }
/* Sections and editorial grids. */
.section { padding-block:var(--section-space) }
.section-line { border-top:var(--stroke) solid var(--line) }
.section-head { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-3); align-items:end; margin-bottom:var(--space-4) }
.section-title { font-size:var(--title-size); line-height:var(--heading-leading) }
.section-copy { color:var(--muted); max-width:var(--reading-width) }
.section-head-single { grid-template-columns:minmax(0,1fr) }
.section-head > :only-child { grid-column:1/-1; max-width:100% }
.content-grid,.salon-info-grid,.article-grid,.intent-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--grid-gap) }
.content-card,.info-card,.article-card { border:var(--stroke) solid var(--line); border-radius:var(--radius-lg); padding:var(--card-space); background:var(--surface); min-width:0 }
.content-card h2,.info-card h2,.article-card h3 { font-size:var(--card-title-size); line-height:var(--heading-leading); margin-bottom:var(--space-2) }
.content-card p,.article-card p { color:var(--muted) }
.content-card .btn { margin-top:var(--space-3) }
.article-card { display:flex; flex-direction:column; align-items:flex-start; gap:var(--space-3); position:relative }
.article-card > :last-child { margin-top:auto }
.article-link { display:block; text-decoration:underline; text-decoration-color:var(--line-strong); text-underline-offset:var(--space-1) }
.article-link:hover { text-decoration-color:var(--red) }
.article-link:after { content:""; position:absolute; inset:0 }
.article-card .btn { position:relative; z-index:1 }
.article-card > .article-link { display:flex; align-items:center; min-height:var(--space-6); font-size:var(--micro-size); text-transform:uppercase; letter-spacing:.08em }
.intent-list,.expertise-index { border-top:var(--stroke) solid var(--line) }
.intent-row { display:grid; grid-template-columns:var(--space-3) minmax(0,1fr) var(--space-3); gap:var(--space-2); align-items:center; width:100%; min-height:var(--space-6); padding:var(--space-3) 0; text-align:left; border:0; border-bottom:var(--stroke) solid var(--line); background:none; cursor:pointer; transition:background var(--fast) }
.intent-row:hover,.intent-row:focus-visible,.exp-line:hover,.exp-line:focus-visible { background:rgba(255,255,255,.025) }
.intent-row .num,.intent-card .num { font-size:var(--micro-size); color:var(--muted); letter-spacing:.08em }
.intent-title { display:block; font-size:var(--card-title-size); line-height:var(--heading-leading); font-variation-settings:"wdth" var(--font-display-width),"wght" var(--font-display-weight); letter-spacing:-.015em }
.intent-desc { display:block; margin-top:var(--space-1); color:var(--muted); font-size:var(--body-size); max-width:var(--reading-width) }
.go { flex:none; font-size:1.25em; color:var(--subtle) }
.intent-row:hover .go,.exp-line:hover .go { color:var(--red) }
.exp-line { display:flex; align-items:center; justify-content:space-between; gap:var(--space-3); min-height:var(--space-6); padding:var(--space-3) 0; border-bottom:var(--stroke) solid var(--line); transition:background var(--fast) }
.exp-line h3 { font-size:var(--card-title-size); line-height:var(--heading-leading) }
.intent-card { display:grid; grid-template-columns:minmax(0,1fr) var(--space-3); align-items:center; gap:var(--space-2); min-height:var(--space-6); padding:var(--space-3) 0; border:0; border-bottom:var(--stroke) solid var(--line); background:none; text-align:left; cursor:pointer }
.intent-card h3 { font-size:var(--card-title-size); line-height:var(--heading-leading); margin-bottom:var(--space-1) }
.intent-card p { color:var(--muted) }
/* Salon cards: the same photographic ratio in every column configuration. */
.salon-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--grid-gap) }
.salon-card { position:relative; display:flex; flex-direction:column; aspect-ratio:4/5; min-width:0; overflow:hidden; border:var(--stroke) solid var(--line); border-radius:var(--radius-lg); background:var(--surface) }
.salon-photo { position:absolute; inset:0; display:block; overflow:hidden; aspect-ratio:4/5 }
.salon-card:after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.18) 36%,rgba(0,0,0,.95)) }
.salon-card:not(:has(.salon-photo)) { aspect-ratio:auto }
.salon-photo img { display:block; width:100%; height:100%; object-fit:cover; filter:saturate(1.02) contrast(1.02); transition:transform .8s var(--ease) }
.salon-card:hover img { transform:scale(1.035) }
.salon-info { position:relative; z-index:1; display:flex; flex-direction:column; margin-top:auto; min-width:0; padding:var(--card-space) }
.salon-info .city { font-size:var(--card-title-size); line-height:var(--heading-leading); margin-bottom:var(--space-2) }
.salon-meta { display:flex; flex-direction:column; gap:var(--space-1); color:var(--muted); font-size:var(--micro-size) }
.salon-actions { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:var(--space-1); padding-top:var(--space-3); margin-top:auto }
/* Salon pages and real data. */
.salon-hero { position:relative; min-height:calc(80svh - var(--admin-offset)); display:flex; align-items:flex-end; padding-block:calc(var(--header-h) + var(--space-8)) var(--space-5); isolation:isolate }
.salon-hero > img { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; filter:grayscale(75%) }
.salon-hero:after { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,rgba(5,5,5,.95),rgba(5,5,5,.58) 46%,rgba(5,5,5,.2)),linear-gradient(180deg,rgba(5,5,5,.22),transparent 38%,rgba(5,5,5,.8)) }
.salon-hero .display-sm { font-size:var(--title-size); max-width:22ch }
.salon-hero .lead { margin-top:var(--space-3) }
.info-card > p + p { margin-top:var(--space-2) }
.info-card a[href^="mailto:"],.footer-col a[href^="mailto:"] { overflow-wrap:anywhere }
.hours { display:grid; gap:var(--space-1); margin-top:var(--space-3); font-variant-numeric:tabular-nums }
.hours > div { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:var(--space-1); padding-block:var(--space-1); border-bottom:var(--stroke) solid var(--line); font-size:var(--micro-size) }
.hours span:last-child { color:var(--muted); white-space:nowrap }
.map { min-height:var(--space-16); aspect-ratio:4/3; overflow:hidden; border:var(--stroke) solid var(--line); border-radius:var(--radius-lg) }
.map iframe { display:block; width:100%; height:100%; border:0; filter:grayscale(95%) invert(92%) contrast(88%) }
.salon-gallery-image { width:100%; aspect-ratio:3/2; height:auto; object-fit:cover; border-radius:var(--radius-lg) }
.tariff-wrap { border:var(--stroke) solid var(--line); border-radius:var(--radius-lg); overflow:hidden; background:var(--surface) }
.tariff-tabs { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); border-bottom:var(--stroke) solid var(--line) }
.tariff-tab { min-width:0; min-height:var(--space-6); padding:var(--space-2) var(--space-1); border:0; background:none; color:var(--muted); font-size:var(--micro-size); font-weight:700; line-height:1.4; cursor:pointer }
.tariff-tab.active { color:#fff; background:var(--surface-2); box-shadow:inset 0 calc(-1 * var(--focus-stroke)) var(--red) }
.tariff-group + .tariff-group { border-top:var(--stroke) solid var(--line) }
[data-tariff-mode="tabs"] .tariff-group { border-top:0 }
.tariff-summary { display:flex; align-items:center; justify-content:space-between; gap:var(--space-2); min-height:var(--space-6); padding:var(--space-3); font-size:var(--card-title-size); font-weight:700; cursor:pointer; list-style:none }
.tariff-summary::-webkit-details-marker { display:none }
.tariff-summary:after { content:"+"; flex:none; color:var(--red) }
.tariff-group[open] > .tariff-summary:after { content:"−" }
.tariff-panel { padding:0 var(--tariff-inset) var(--tariff-inset) }
.tariff-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,40%); align-items:start; gap:var(--space-2); padding-block:var(--space-2); border-bottom:var(--stroke) solid var(--line); font-size:var(--body-size); line-height:1.5 }
.tariff-row:last-child { border-bottom:0 }
.tariff-row span:first-child { color:#c7c7c7 }
.tariff-row span:last-child { text-align:right; font-weight:700; font-variant-numeric:tabular-nums }
.tariff-note { margin-top:var(--space-2); font-size:var(--micro-size); color:var(--muted) }
.tariff-wrap > .tariff-note { margin:0 var(--tariff-inset) var(--tariff-inset) }
.faq { border-top:var(--stroke) solid var(--line) }
.faq details { border-bottom:var(--stroke) solid var(--line) }
.faq summary { display:flex; align-items:center; justify-content:space-between; gap:var(--space-2); min-height:var(--space-6); padding-block:var(--space-3); font-weight:700; cursor:pointer; list-style:none }
.faq summary::-webkit-details-marker { display:none }
.faq summary:after { content:"+"; color:var(--red); flex:none }
.faq details[open] summary:after { content:"−" }
.faq p { margin-bottom:var(--space-3); color:var(--muted) }
.local-cta { display:flex; flex-direction:column; align-items:flex-start; gap:var(--space-3); padding:var(--card-space); border:var(--stroke) solid var(--line); border-radius:var(--radius-lg); background:linear-gradient(135deg,#131313,#080808) }
.local-cta h2 { font-size:var(--title-size); line-height:var(--heading-leading) }
.local-cta .salon-actions { padding:0; margin:0; justify-content:flex-start }
.local-cta p { margin-top:var(--space-2); color:var(--muted) }
/* Articles, lists and genuine partner names. */
.page-hero,.section-first { padding-block:calc(var(--header-h) + var(--section-space)) var(--section-space); border-bottom:var(--stroke) solid var(--line) }
.page-hero .display-sm { max-width:24ch }
.page-hero .lead { margin-top:var(--space-3) }
.breadcrumb { display:flex; flex-wrap:wrap; gap:var(--space-1); margin-bottom:var(--space-3); font-size:var(--micro-size); color:var(--muted) }
.breadcrumb a { text-decoration:underline; text-underline-offset:var(--space-1) }
.article-body { line-height:var(--body-leading) }
.article-body p { margin-bottom:var(--space-3); color:#cfcbc5; font-size:var(--body-size) }
.article-body .article-intro { color:var(--text) }
.article-body h2 { margin-block:var(--space-5) var(--space-2); font-size:var(--card-title-size); line-height:var(--heading-leading) }
.article-body h2:first-child { margin-top:0 }
.article-cta { display:flex; flex-wrap:wrap; gap:var(--space-2); margin-top:var(--space-5) }
.partner-slim { padding-block:var(--space-4) }
/* One spacing interval between adjacent editorial sections. The next section
   carries it; the sticky film and hero retain their independent geometry. */
main > :is(.section,.page-hero):has(+ .section) { padding-bottom:0 }
main > .section:last-child { padding-bottom:0 }
/* Keep the partner/footer divider inset, sharing one --section-space interval. */
main > .partner-slim:last-child { padding-bottom:var(--space-4) }
main:has(> .partner-slim:last-child) + .site-footer { padding-top:calc(var(--section-space) - var(--space-4)) }
.partner-head { margin-bottom:var(--space-3) }
.partner-strip { display:flex; flex-wrap:wrap; gap:var(--space-1) }
.partner { border:var(--stroke) solid var(--line); border-radius:var(--space-6); padding:var(--space-1) var(--space-2); color:var(--muted); font-size:var(--micro-size); letter-spacing:.08em; text-transform:uppercase }
.anchor-offset { display:block; height:0; pointer-events:none }
:where([id]),.anchor-offset { scroll-margin-top:calc(var(--header-h) + var(--admin-offset)) }
/* Footer: one set of links at every size. */
.site-footer { padding-block:var(--section-space) var(--space-4); border-top:var(--stroke) solid var(--line); background:var(--bg) }
.footer-top { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-4) }
.footer-brand .logo-img { height:var(--space-4); margin-bottom:var(--space-3) }
.footer-brand p { color:var(--muted); max-width:45ch; font-size:var(--micro-size) }
.footer-col h4 { margin-bottom:var(--space-2); color:var(--muted); font-size:var(--micro-size); line-height:1.5; letter-spacing:.12em; text-transform:uppercase }
.footer-col a { display:flex; align-items:center; min-height:var(--space-6); font-size:var(--micro-size); color:var(--muted) }
.footer-col a:hover { color:#fff }
.footer-col span { display:block; font-size:var(--micro-size); color:var(--muted) }
.footer-bottom { display:flex; flex-direction:column; gap:var(--space-2); padding-top:var(--space-3); margin-top:var(--space-5); border-top:var(--stroke) solid var(--line); color:var(--muted); font-size:var(--micro-size) }
.footer-bottom nav { display:flex; flex-wrap:wrap; gap:var(--space-1) var(--space-2) }
.footer-bottom a { display:flex; align-items:center; min-height:var(--space-6); text-decoration:underline; text-underline-offset:var(--space-1) }
/* Diagnostic drawer: no fixed content height; accessible controls remain in flow. */
.drawer { position:fixed; overflow:clip; z-index:300; inset:var(--admin-offset) 0 0; visibility:hidden; pointer-events:none; transition:visibility 0s var(--slow) }
.drawer.open { visibility:visible; pointer-events:auto; transition-delay:0s }
.drawer-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.72); backdrop-filter:blur(var(--space-2)); opacity:0; transition:opacity var(--fast) }
.drawer.open .drawer-backdrop { opacity:1 }
.drawer-panel { position:absolute; top:0; bottom:0; right:0; width:min(100%,640px); padding:var(--space-3) var(--page-gutter) calc(var(--space-3) + env(safe-area-inset-bottom,0px)); overflow:auto; overscroll-behavior:contain; background:#0b0b0c; border-left:var(--stroke) solid var(--line); transform:translateX(100%); transition:transform var(--slow) var(--ease) }
.drawer.open .drawer-panel { transform:none }
.drawer-head { display:flex; align-items:center; justify-content:space-between; gap:var(--space-2); margin-bottom:var(--space-4) }
.drawer-head .logo-img { height:var(--space-4) }
.drawer-close { flex:none; width:var(--space-6); height:var(--space-6); border:var(--stroke) solid var(--line); border-radius:50%; background:#111; color:#fff; font-size:var(--type-2); cursor:pointer }
.drawer h2 { font-size:var(--title-size); line-height:var(--heading-leading); margin-bottom:var(--space-3) }
.drawer-lead { margin-bottom:var(--space-3); color:var(--muted) }
.diagnostic-options,.choice-row { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-1) }
.diag-option,.choice-btn { min-height:var(--space-6); min-width:0; padding:var(--space-2); text-align:left; border:var(--stroke) solid var(--line); border-radius:var(--radius); background:#111; cursor:pointer }
.diag-option b { display:block; margin-bottom:var(--space-1); font-size:var(--body-size) }
.diag-option span,.diag-context { font-size:var(--micro-size); color:var(--muted) }
.diag-option:hover,.choice-btn:hover { border-color:var(--line-strong) }
.choice-btn.selected { border-color:var(--red); box-shadow:inset 0 0 0 var(--stroke) var(--red) }
.diag-step { display:none }
.diag-step.active { display:block }
.drawer-actions { display:flex; flex-wrap:wrap; gap:var(--space-1); margin-top:var(--space-3) }
.plugin-slot { display:flex; flex-wrap:wrap; gap:var(--space-2); margin-top:var(--space-3); padding:var(--card-space); border:var(--stroke) solid var(--line); border-radius:var(--radius-lg); background:linear-gradient(145deg,#111,#090909) }
.plugin-slot strong,.plugin-slot p { flex-basis:100% }
.plugin-slot p { color:var(--muted) }
.diag-context { margin-top:var(--space-2) }
.diag-price { color:#cfcbc5 }
.drawer [tabindex="-1"]:focus { outline:none }
.drawer [tabindex="-1"]:focus-visible { outline:var(--focus-stroke) solid var(--red); outline-offset:var(--focus-offset) }
.mobile-dock { position:fixed; z-index:180; left:var(--page-gutter); right:var(--page-gutter); bottom:0; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:var(--space-1); min-height:var(--dock-h); padding:var(--space-1) var(--space-1) calc(var(--space-1) + env(safe-area-inset-bottom,0px)); border:var(--stroke) solid var(--line); border-radius:var(--radius) var(--radius) 0 0; background:rgba(7,7,7,.96); backdrop-filter:blur(var(--space-2)); box-shadow:var(--shadow) }
.mobile-dock .btn { min-width:0; padding-inline:var(--space-1) }
.mobile-dock .book { min-width:var(--space-8); background:#fff; color:#050505 }
.mobile-menu-open .mobile-dock { display:none }
.reveal { opacity:1; transform:none }
/* Four thresholds, five ranges. */
@media (min-width:480px) {
  :root { --page-gutter:var(--space-3); --section-space:var(--space-8); --header-h:var(--space-9); --display-size:clamp(var(--type-5),10vw,var(--type-6)); --title-size:clamp(var(--type-4),6vw,var(--type-5)) }
  .header-inner { gap:var(--space-2) }
  .header-cta .btn { padding-inline:var(--space-2); letter-spacing:.04em }
  .footer-top { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .footer-brand,.footer-col:last-child { grid-column:1/-1 }
  .diagnostic-options,.choice-row { grid-template-columns:repeat(2,minmax(0,1fr)) }
}
@media (min-width:768px) {
  :root { --page-gutter:var(--space-4); --section-space:var(--space-10); --grid-gap:var(--space-3); --tariff-inset:var(--space-3); --display-size:clamp(var(--type-6),8vw,var(--type-7)); --title-size:clamp(var(--type-5),5vw,var(--type-6)); --card-title-size:var(--type-3); --lead-size:var(--type-1) }
  .salon-grid,.content-grid,.salon-info-grid,.intent-grid { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .salon-info-grid > :only-child,.content-grid > :last-child:nth-child(odd) { grid-column:1/-1 }
  .article-grid { grid-template-columns:repeat(3,minmax(0,1fr)) }
  .article-card { padding:var(--space-3) }
  .article-card h3 { font-size:var(--type-2) }
  .intent-row { grid-template-columns:var(--space-6) minmax(0,1fr) var(--space-3); padding-block:var(--space-4); gap:var(--space-3) }
  .intent-card { display:flex; flex-direction:column; align-items:flex-start; gap:var(--space-3); border:var(--stroke) solid var(--line); border-radius:var(--radius-lg); padding:var(--card-space); background:linear-gradient(145deg,#121213,#090909) }
  .intent-card .go { margin-top:auto; color:var(--red) }
  .footer-top { grid-template-columns:repeat(3,minmax(0,1fr)) }
  .footer-col:last-child { grid-column:auto }
  .footer-brand { grid-column:1/-1 }
}
@media (min-width:1024px) {
  :root { --header-h:var(--space-10); --logo-h:var(--space-5); --section-space:var(--space-12); --dock-clearance:0px; --display-size:clamp(var(--type-6),5.6vw,var(--type-8)); --title-size:clamp(var(--type-5),5vw,var(--type-7)) }
  .header-inner { gap:var(--space-3) }
  .menu-toggle,.mobile-dock { display:none }
  .main-nav { position:static; display:flex; flex-direction:row; align-items:center; flex:none; gap:var(--space-3); height:auto; max-height:none; overflow:visible; padding:0; border:0; border-radius:0; background:none; box-shadow:none }
  .main-nav > a,.nav-drop-btn { position:relative; padding-block:var(--space-2); white-space:nowrap }
  .nav-item { flex-direction:row; align-items:center }
  .nav-drop { display:none; position:absolute; z-index:1; top:100%; left:0; min-width:240px; padding:var(--space-1); background:#0d0d0e; border:var(--stroke) solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow) }
  .nav-drop a { padding:var(--space-1) var(--space-2) }
  .hero { padding-bottom:var(--space-4) }
  .hero-media { left:auto; right:max(var(--page-gutter),calc((100% - var(--content-max)) / 2)); width:min(calc((100% - var(--page-gutter) * 2) * .68),calc(var(--content-max) * .68)); height:100% }
  .hero-media img { object-position:50% 40% }
  .hero-media:after { background:linear-gradient(90deg,#050505,rgba(5,5,5,.4) 26%,transparent 55%,rgba(5,5,5,.3)),linear-gradient(180deg,rgba(5,5,5,.15),transparent 55%,rgba(5,5,5,.65)) }
  .hero-title { max-width:50% }
  .hero .hero-actions { max-width:50% }
  .section-head { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:var(--space-6); margin-bottom:var(--space-5) }
  /* end is the fallback; last baseline aligns the actual final lines, whose
     leading differs between the heading and the introductory paragraph. */
  @supports (align-items:last baseline) { .section-head { align-items:last baseline } }
  .section-head-single { grid-template-columns:minmax(0,1fr) }
  .salon-grid { grid-template-columns:repeat(4,minmax(0,1fr)) }
  .salon-info { padding:var(--space-2) }
  .salon-info .city { font-size:var(--type-2); font-variation-settings:"wdth" 100,"wght" var(--font-display-weight) }
  /* The longest real postal address needs two lines in the compact four-card
     grid. Give each card that same text row without changing the photo ratio. */
  .salon-meta .cp { min-block-size:calc(2em * var(--body-leading)) }
  .salon-actions { gap:var(--space-1) }
  .salon-actions .mini-rdv { padding-inline:var(--space-1) }
  .salon-info-grid { grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr) }
  .map { aspect-ratio:auto; min-height:var(--space-16) }
  .intent-grid { grid-template-columns:repeat(4,minmax(0,1fr)) }
  .intent-card h3 { font-size:var(--type-2) }
  .local-cta { flex-direction:row; align-items:center; justify-content:space-between; gap:var(--space-4) }
  .local-cta .salon-actions { flex-shrink:0; max-width:40%; margin-top:0 }
  .footer-top { grid-template-columns:minmax(0,1.2fr) repeat(3,minmax(0,1fr)); gap:var(--space-4) }
  .footer-brand { grid-column:auto }
  .footer-bottom { flex-direction:row; align-items:center; justify-content:space-between }
}
@media (min-width:1440px) {
  :root { --page-gutter:var(--space-6); --header-h:var(--space-11); --section-space:var(--space-14); --card-space:var(--space-4); --display-size:clamp(var(--type-7),5.6vw,var(--type-8)); --title-size:var(--type-7); --lead-size:var(--type-1) }
  .header-inner,.main-nav { gap:var(--space-4) }
  .hero { padding-bottom:var(--space-5) }
  .salon-info { padding:var(--space-3) }
  .salon-info .city { font-size:var(--type-3); font-variation-settings:"wdth" var(--font-display-width),"wght" var(--font-display-weight) }
  .salon-meta .cp { min-block-size:0 }
  .salon-actions .mini-rdv { padding-inline:var(--space-2) }
  .article-card h3,.intent-card h3 { font-size:var(--card-title-size) }
  .footer-top { gap:var(--space-6) }
}
/* WordPress core toolbar switches at 783px independently of the site's grid. */
@media (max-width:782px) { body.admin-bar { --admin-offset:46px } }
/* Progressive enhancement: links stay usable without JavaScript. */
html:not(.js) .site-header { position:relative; top:0; height:auto; background:var(--bg) }
html:not(.js) .header-inner { height:auto; min-height:var(--header-h); flex-wrap:wrap; padding-block:var(--space-2) }
html:not(.js) .main-nav { position:static; display:flex; flex-direction:row; flex-wrap:wrap; flex-basis:100%; height:auto; padding:0; max-height:none; overflow:visible; border:0; background:none; box-shadow:none }
html:not(.js) .nav-item { flex-direction:column; align-items:flex-start }
html:not(.js) .nav-drop { position:static; display:grid; min-width:0; border:0; border-left:var(--stroke) solid var(--line); box-shadow:none }
html:not(.js) .menu-toggle { display:none }
@media (prefers-reduced-motion:no-preference) { .js .reveal.visible { animation:contentReveal .55s var(--ease) both } }
@keyframes contentReveal { from { transform:translateY(var(--space-1)) } to { transform:none } }
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto }
  *,*:before,*:after { scroll-behavior:auto!important; animation:none!important; transition:none!important }
  .reveal { opacity:1; transform:none }
}

/* Booking is the primary action; each card keeps an identical action stack. */
.salon-card .salon-actions { align-items:stretch; flex-direction:column }
.salon-card .salon-actions > .btn { width:100%; margin:0 }
.salon-card .salon-actions > .card-cta { justify-content:center }
.partner img { max-height:var(--space-5); max-width:var(--space-16); width:auto; object-fit:contain }

/* A visible, editable project context; each step has one principal action. */
.journey-context { border:var(--stroke) solid var(--line-strong); border-radius:var(--radius); padding:var(--space-2); margin-block:var(--space-3); background:var(--surface) }
.journey-context-items { display:grid; gap:var(--space-1) }
.journey-context-items > div { display:flex; align-items:center; justify-content:space-between; gap:var(--space-2); min-width:0 }
.journey-context-items > div > span { display:block; color:var(--muted); font-size:var(--micro-size); min-width:0 }
.journey-context-items strong { display:block; color:var(--text); font-size:var(--body-size); line-height:1.4 }
.journey-edit { display:inline-flex; flex-shrink:0; align-items:center; min-height:var(--space-6); padding:var(--space-1); background:none; border:0; color:var(--text); cursor:pointer; font-size:var(--micro-size); text-align:right; text-decoration:underline; text-underline-offset:var(--focus-offset) }
.journey-edit:hover { text-decoration-color:var(--red) }
.journey-fallback { padding:var(--space-3); border:var(--stroke) solid var(--line); border-radius:var(--radius); background:var(--surface) }
.journey-fallback h2 { font-size:var(--card-title-size); line-height:var(--heading-leading) }
.journey-fallback p { margin-top:var(--space-2); color:var(--muted) }
.journey-fallback .btn { margin-top:var(--space-3) }
.journey-context-drawer { margin-block:0 var(--space-4) }
@media(min-width:1024px){ .journey-context:not(.journey-context-drawer) .journey-context-items { grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-3) } }

.journey-context-items > .journey-context-item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:0 var(--space-1); align-items:center }
.journey-context-item > span { grid-column:1 }
.journey-context-item > strong { grid-column:1; min-width:0 }
.journey-context-item > .journey-edit { grid-column:2; grid-row:1 / span 2 }
.journey-admin-note { margin-top:var(--space-3); border-left:var(--focus-stroke) solid var(--red); padding:var(--space-2); color:var(--muted) }
.journey-admin-note a { text-decoration:underline }
.journey-entry > p { color:var(--muted); margin-bottom:var(--space-3) }
/* A single native link covers each salon card; booking remains a separate target. */
.salon-card .salon-info,.salon-card-link { position:static }
.salon-card-link::after { content:""; position:absolute; inset:0; z-index:1; border-radius:var(--radius-lg) }
.salon-card .salon-actions > [data-ls-booking] { position:relative; z-index:2 }
.salon-card-link:focus-visible::after { outline:var(--focus-stroke) solid var(--red); outline-offset:calc(-1 * var(--focus-offset)) }
.salon-team-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-3) }
.salon-team-card { border:var(--stroke) solid var(--line); border-radius:var(--radius-lg); background:var(--surface); overflow:hidden; min-width:0 }
.salon-team-photo { display:block; width:100%; aspect-ratio:4/5; object-fit:cover }
.salon-team-body { padding:var(--space-3) }
.salon-team-name { font-size:var(--card-title-size); line-height:var(--heading-leading) }
.salon-team-skills { margin-top:var(--space-2); padding-left:var(--space-2); color:var(--muted) }
.salon-team-skills li + li { margin-top:var(--space-1) }
.ls-module-booking { margin-top:var(--space-4) }
@media(min-width:768px) { .salon-team-grid { grid-template-columns:repeat(2,minmax(0,1fr)) } }
@media(min-width:1024px) { .salon-team-grid { grid-template-columns:repeat(4,minmax(0,1fr)) } }

.diag-option[aria-pressed="true"],.choice-btn[aria-pressed="true"] { border-color:var(--red); box-shadow:inset 0 0 0 var(--stroke) var(--red) }
/* The entry asks one question at a time; summary appears only when ready. */
.diag-step[hidden],.journey-back[hidden] { display:none!important }
.journey-entry { max-width:var(--reading-width); margin-inline:auto }
.journey-entry .diag-step > h2 { font-size:var(--card-title-size); line-height:var(--heading-leading) }
.journey-back { display:inline-flex; align-items:center; min-height:var(--space-6); padding:var(--space-1) 0; margin-bottom:var(--space-2); background:none; border:0; color:var(--muted); cursor:pointer; font:inherit }
.journey-back:hover { color:var(--text) }
.journey-summary { margin-block:var(--space-3); border-block:var(--stroke) solid var(--line); padding-block:var(--space-2) }
.journey-summary-items { display:grid; gap:var(--space-1) }
.journey-summary-item { display:flex; align-items:center; justify-content:space-between; gap:var(--space-2); min-width:0 }
.journey-summary-item > span { color:var(--muted); font-size:var(--micro-size) }
.journey-summary-item strong { display:block; color:var(--text); font-size:var(--body-size) }
.journey-context-compact { margin-top:0 }

/* 1.5.1 — panneau : titres calés sur la largeur du panneau, jamais coupés */
.drawer-panel { container-type:inline-size }
.drawer h2 { font-size:clamp(2rem, 5vw, 3rem); font-size:clamp(2rem, 8.5cqi, 3rem); overflow-wrap:break-word; hyphens:auto; -webkit-hyphens:auto }
.drawer .drawer-lead { margin-top:calc(-1 * var(--space-1)) }
/* 1.5.1 — réservation sous le résultat IA */
.ls-module-booking.is-in-result { margin:var(--space-3) 0 var(--space-1) }
.ls-module-booking.is-in-result .btn { min-height:48px }
@media (max-width:767px) {
  .ls-module-booking.is-in-result .btn { width:100% }
  .ls-result-ready .mobile-dock .js-diagnostic { display:none }
  .ls-result-ready .mobile-dock { grid-template-columns:minmax(0,1fr) }
  .mobile-dock { transition:transform .25s ease, opacity .25s ease }
  .ls-result-cta-visible .mobile-dock { transform:translateY(calc(100% + var(--space-2))); opacity:0; pointer-events:none }
}
@media (prefers-reduced-motion:reduce) { .mobile-dock { transition:none } }

/* 1.5.2 — Google Maps behind an explicit action (no request to Google before it). */
.map { position:relative }
.map-consent { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--space-3, 12px); padding:var(--space-5, 20px); text-align:center; background:var(--surface, #111) }
.map-consent p { margin:0; max-width:34ch; font-size:14px; line-height:1.5; color:var(--muted, #a6a19a) }
.map.is-loaded .map-consent { display:none }
.map-consent .map-directions { font-size:14px; text-decoration:underline }
.footer-cookie-settings { background:none; border:0; padding:0; color:inherit; font:inherit; text-decoration:underline; cursor:pointer }
.footer-cookie-settings[hidden] { display:none }

/* 1.5.2 — social icons (subset of WordPress Dashicons, GPLv2+: assets/fonts/LICENSE-dashicons.txt) */
@font-face { font-family:"ls-social"; src:url("../fonts/ls-social.woff2") format("woff2"); font-weight:normal; font-style:normal; font-display:block }
.ls-social-links { display:inline-flex; flex-wrap:wrap; align-items:center; gap:10px }
.ls-social-link { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border:1px solid rgba(255,255,255,.22); border-radius:999px; color:#f4f1ec; text-decoration:none !important; transition:color .2s ease, border-color .2s ease, background-color .2s ease }
.ls-social-link::before { font-family:"ls-social"; font-size:20px; line-height:1; speak:never; -webkit-font-smoothing:antialiased }
.ls-icon-facebook::before { content:"\f304" }
.ls-icon-instagram::before { content:"\f12d" }
.ls-social-link:hover, .ls-social-link:focus-visible { color:#fff; border-color:#ED172D; background-color:#ED172D }
.salon-social { margin-top:4px }
.footer-col span.ls-social-links { display:flex; flex-direction:row; flex-wrap:wrap; gap:10px; margin-top:var(--space-2, 8px) }
.footer-col a.ls-social-link { display:inline-flex; min-height:44px; color:#f4f1ec }
.footer-col a.ls-social-link:hover, .footer-col a.ls-social-link:focus-visible { color:#fff }
/* 1.5.2 — admin bar: the theme's anchor offset already includes it; cancel WordPress's extra scroll padding (logged-in only). */
html:has(body.admin-bar) { scroll-padding-top:0 }
/* 1.5.2 — window close buttons: the X is drawn in CSS and geometrically centred
   (iOS Safari offsets the "×" font glyph). Size, colours and borders are unchanged. */
button.drawer-close { position:relative; padding:0; font-size:0; line-height:0 }
button.booking-close { padding:0; font-size:0; line-height:0 }
button.booking-close > span { display:none }
button.drawer-close::before, button.drawer-close::after,
button.booking-close::before, button.booking-close::after {
  content:""; position:absolute; top:50%; left:50%; width:18px; height:2px; border-radius:1px; background:currentColor; pointer-events:none }
button.drawer-close::before, button.booking-close::before { transform:translate(-50%,-50%) rotate(45deg) }
button.drawer-close::after, button.booking-close::after { transform:translate(-50%,-50%) rotate(-45deg) }
