﻿@font-face {
  font-family: 'Futura Std';
  src: url('../fonts/Futura Std/FuturaStd-Light.otf') format('opentype');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Futura Std';
  src: url('../fonts/Futura Std/FuturaStd-LightOblique.otf') format('opentype');
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Futura Std';
  src: url('../fonts/Futura Std/FuturaStd-Book.otf') format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Futura Std';
  src: url('../fonts/Futura Std/FuturaStd-BookOblique.otf') format('opentype');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Futura Std';
  src: url('../fonts/Futura Std/FuturaStd-Medium.otf') format('opentype');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Futura Std';
  src: url('../fonts/Futura Std/FuturaStd-MediumOblique.otf') format('opentype');
  font-weight: 500;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Futura Std';
  src: url('../fonts/Futura Std/FuturaStd-Bold.otf') format('opentype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Futura Std';
  src: url('../fonts/Futura Std/FuturaStd-BoldOblique.otf') format('opentype');
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Futura Std';
  src: url('../fonts/Futura Std/FuturaStd-Heavy.otf') format('opentype');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Futura Std';
  src: url('../fonts/Futura Std/FuturaStd-ExtraBold.otf') format('opentype');
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

:root {
  --color-bg:        #f0f1ec;
  --color-surface:   var(--color-bg);
  --color-text:      #22232b;
  --color-muted:     #7a8a75;
  --color-accent-lt: #dce4d8;
  --color-sage:      #a2b393;
  --font-display: 'Futura Std', sans-serif;
  --font-body:    'Futura Std', sans-serif;
  --sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-6:1.5rem;
  --sp-8:2rem;--sp-12:3rem;--sp-16:4rem;--sp-24:6rem;
  --radius-sm:0;--radius-md:0;--radius-lg:0;
  --shadow-sm:0 1px 3px rgba(0,0,0,0.08);
  --shadow-md:0 4px 16px rgba(0,0,0,0.10);
  --shadow-lg:0 8px 32px rgba(0,0,0,0.12);
  --transition:220ms ease;
  /* Typographic tracking scale — em only, scales with font-size */
  --tracking-display:-0.03em; /* titres > 32px */
  --tracking-body:0em;        /* texte courant 14-18px */
  --tracking-micro:0.02em;    /* micro-copy < 13px */
  --tracking-caps:0.08em;     /* tout texte text-transform:uppercase, quelle que soit sa taille */
  --leading-body:1.6;         /* interligne du texte courant = 160% */
  --max-width:1200px;
  --nav-height:70px;
  --cm:1cm;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px;margin:0;padding:0}
body{font-family:var(--font-body);font-weight:400;line-height:var(--leading-body);letter-spacing:var(--tracking-body);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;margin:0;padding-top:var(--nav-height)}
main{display:block;margin:0;padding:0}
#main-content>section+section{margin-top:10px}

img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font-family:inherit;font-size:inherit}
:focus-visible{outline:2px solid var(--color-text);outline-offset:3px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

h1,h2{font-family:var(--font-display);font-weight:400;line-height:1.2;letter-spacing:var(--tracking-display)}
h3,h4,h5,h6{font-family:var(--font-display);font-weight:400;line-height:1.2;letter-spacing:var(--tracking-body)}
h1{font-size:clamp(2rem,5vw,3.5rem)}h2{font-size:clamp(1.5rem,3vw,2.25rem)}
h3{font-size:clamp(1.1rem,2vw,1.5rem)}h4{font-size:1.125rem}
p{margin-bottom:var(--sp-4)}p:last-child{margin-bottom:0}
.text-muted{color:var(--color-muted)}.text-center{text-align:center}
.text-sm{font-size:.875rem}.text-xs{font-size:.75rem;letter-spacing:var(--tracking-micro)}
.label{font-size:.7rem;font-weight:600;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-muted)}
/* Pages publiques : casse grammaticale normale, pas de majuscules forcees (l'admin garde .label en majuscules) */
.reassurance_label,.page-header_eyebrow,.revendeurs-map-title,.cart-summary_delivery-label,.section-eyebrow{text-transform:none;letter-spacing:var(--tracking-micro)}

.container{width:100%;max-width:var(--max-width);margin-inline:auto;padding-inline:var(--sp-6)}
.section{padding-block:var(--sp-24)}.section--sm{padding-block:var(--sp-12)}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-6)}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-6)}
@media(max-width:900px){.grid-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.grid-3,.grid-2{grid-template-columns:1fr}.container{padding-inline:var(--sp-4)}.section{padding-block:var(--sp-12)}}

/* Navigation */
.nav{position:fixed;top:0;left:0;right:0;z-index:300;height:var(--nav-height);max-height:var(--nav-height);overflow:visible;background:transparent;display:flex;align-items:center;transition:transform 300ms ease,background 220ms ease}
.nav--scrolled{background:transparent}
.nav--hidden{transform:translateY(-100%)}
.nav_inner{display:flex;align-items:center;width:100%}
.nav_logo{display:flex;align-items:center;overflow:visible;height:100%;flex-shrink:0}
.nav_logo-img{height:calc(var(--nav-height) - 16px + 50px);width:auto;display:block;filter:invert(1);transition:filter 220ms ease}
.nav_logo-stars{display:none;height:52px;width:auto;filter:invert(1);transition:filter 220ms ease}
.nav_links{display:flex;align-items:center;gap:var(--sp-8);list-style:none;flex:1}
.nav_links:not(.open) .nav_links-mobile-only{display:none}
.nav_links a{font-size:1.05rem;font-weight:400;letter-spacing:var(--tracking-body);color:#fff;transition:color var(--transition);padding-bottom:3px;border-bottom:1px solid transparent}
.nav_links a:hover,.nav_links a.active{color:#fff;border-bottom-color:#fff}
.nav_actions{display:flex;align-items:center;gap:var(--sp-4);flex:1;justify-content:flex-end}
.nav_burger{display:none;position:relative;background:none;border:none;cursor:pointer;box-sizing:border-box;width:36px;height:36px;padding:8px}
.nav_burger span{position:absolute;left:8px;top:17px;width:20px;height:3px;background:#fff;backface-visibility:hidden;transition:transform .3s ease,opacity .3s ease}
.nav_burger span:nth-child(1){transform:translateY(-9px) translateZ(0)}
.nav_burger span:nth-child(2){transform:translateY(0) translateZ(0)}
.nav_burger span:nth-child(3){transform:translateY(9px) translateZ(0)}
.nav--scrolled .nav_logo-img,.nav--scrolled .nav_logo-stars{filter:none}
.nav--scrolled .nav_links a{color:var(--color-text)}
.nav--scrolled .nav_links a:hover,.nav--scrolled .nav_links a.active{color:var(--color-text);border-bottom-color:var(--color-text)}
.nav--scrolled .nav_burger span{background:var(--color-text)}
.nav_burger[aria-expanded="true"] span:nth-child(1){transform:translateY(0) rotate(45deg)}
.nav_burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav_burger[aria-expanded="true"] span:nth-child(3){transform:translateY(0) rotate(-45deg)}
@media(max-width:768px){.nav_logo-img{display:none}.nav_logo-stars{display:block}.nav_links{display:none}.nav_burger{display:flex}.nav_links.open{display:flex;flex-direction:column;position:fixed;top:var(--nav-height);left:0;right:0;background:var(--color-bg);border-bottom:1px solid var(--color-text);padding:var(--sp-6);gap:var(--sp-4);z-index:99}}

/* Nav icon buttons + tooltips */
.nav_icon-btn,.nav_cart-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;color:#fff;background:none;border:none;padding:0;font:inherit;cursor:pointer;transition:opacity var(--transition),color 220ms ease}
.nav_icon-btn svg,.nav_cart-btn svg{width:28px;height:28px;stroke-width:1.3}
.nav--scrolled .nav_icon-btn,.nav--scrolled .nav_cart-btn{color:var(--color-text)}
.nav_icon-btn:hover,.nav_cart-btn:hover{opacity:.6}
.nav_icon-btn[data-tooltip]::after,.nav_cart-btn[data-tooltip]::after{content:attr(data-tooltip);position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);background:var(--color-text);color:#fff;font-size:.65rem;font-weight:500;letter-spacing:var(--tracking-micro);white-space:nowrap;padding:.3rem .6rem;border-radius:var(--radius-sm);opacity:0;pointer-events:none;transition:opacity var(--transition)}
.nav_icon-btn[data-tooltip]:hover::after,.nav_cart-btn[data-tooltip]:hover::after{opacity:1}
.nav_cart-count{position:absolute;top:4px;right:4px;min-width:19px;height:19px;background:var(--color-text);color:#fff;border-radius:50%;font-size:.65rem;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1;padding:0 4px}

/* Halo blanc diffus derrière les 3 éléments de nav (Accueil + icônes) :
   garde le texte/les icônes — toujours foncés — lisibles quand une image
   sombre défile derrière la barre transparente. Sans forme ni bord net,
   et invisible sur fond clair (blanc sur blanc). */
.nav_links a{text-shadow:0 0 23px rgba(255,255,255,1),0 0 11px rgba(255,255,255,1),0 0 5px rgba(255,255,255,.95)}
.nav_icon-btn svg,.nav_cart-btn svg,.nav_burger span{filter:drop-shadow(0 0 9px rgba(255,255,255,1)) drop-shadow(0 0 7px rgba(255,255,255,1)) drop-shadow(0 0 3px rgba(255,255,255,.9))}

/* Hero */
.hero{margin-top :calc(-1 * var(--nav-height) - 30px);aspect-ratio:618/943;display:flex;flex-direction:column;justify-content:flex-start;padding-top:220px;padding-bottom:var(--sp-16);background:linear-gradient(rgba(0,0,0,0.15),rgba(0,0,0,0.15)),url(../images/bg_hero.jpg) center/cover no-repeat}
.hero_content{max-width:900px;margin-inline:auto;text-align:center}
.hero_content .cta-group{justify-content:center}
.hero .hero_title,.hero .hero_title em{color:var(--color-bg)}
.hero .hero_desc{color:var(--color-bg);text-shadow:none}
.hero .label{color:var(--color-muted)}
.hero .btn--primary{background:var(--color-text);color:var(--color-bg);border-color:var(--color-text)}.hero .btn--primary:hover{background:transparent;color:var(--color-bg);border-color:var(--color-bg)}
.hero_title{margin-bottom:var(--sp-6);color:var(--color-bg);font-size:clamp(calc(2rem + 20px),calc(5vw + 20px),calc(3.5rem + 20px));text-transform:uppercase;letter-spacing:var(--tracking-caps)}.hero_title em{font-style:italic;color:var(--color-bg)}
.hero_desc{font-size:1.05rem;color:var(--color-muted);margin-bottom:var(--sp-8);max-width:480px;margin-inline:auto;text-transform:uppercase;letter-spacing:var(--tracking-caps)}
.hero_logo{height:clamp(78px,calc(4vw + 50px),94px);width:auto;display:block;margin:0 auto var(--sp-12);filter:invert(1)}
@media(max-width:600px){.hero{padding-block:var(--sp-12)}}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:.75rem 1.75rem;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;text-transform:uppercase;letter-spacing:var(--tracking-caps);cursor:pointer;border:1.5px solid transparent;transition:all var(--transition);text-decoration:none;white-space:nowrap}
.btn--primary{background:var(--color-text);color:#fff;border-color:var(--color-text)}.btn--primary:hover{color:var(--color-text);background:var(--color-bg);border-color:var(--color-text)}
.btn--outline{background:transparent;color:var(--color-text);border-color:var(--color-text)}.btn--outline:hover{border-color:var(--color-text);background:var(--color-accent-lt)}
.btn--ghost{background:transparent;color:var(--color-muted);border-color:transparent}.btn--ghost:hover{color:var(--color-text)}
.btn--sm{padding:.5rem 1.125rem;font-size:.8rem}.btn--lg{font-size:1rem;padding:.875rem 1.75rem}.btn--full{width:100%;justify-content:center}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* Customizer */
.customizer{background:var(--color-surface);border-radius:var(--radius-lg);overflow:hidden;display:grid;grid-template-columns:1fr 420px;min-height:600px}
.customizer_preview{background:var(--color-bg);display:flex;align-items:center;justify-content:center;padding:var(--sp-8)}
.customizer_frame{position:relative;display:inline-block;box-shadow:var(--shadow-lg)}
.customizer_frame-border{padding:14px;background:#D4B896;width:8cm;height:12cm}
.customizer_frame-border.noir{background:#1a1a1a}.customizer_frame-border.blanc{background:#f0ede8;border:1px solid #ddd}.customizer_frame-border.dore{background:#C5A028}
.customizer_passe-partout{background:#fff;padding:0.9cm 0.9cm 0;position:relative;display:flex;flex-direction:column;gap:0.5cm;height:100%}
.customizer_photo-zone{width:100%;flex:1;min-height:0;background:#e8e4de;overflow:hidden;cursor:pointer;position:relative;display:flex;align-items:center;justify-content:center;transition:background var(--transition)}
.customizer_photo-zone:hover{background:#ddd9d3}
.customizer_photo-zone img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.customizer_photo-placeholder{position:relative;z-index:1;text-align:center;color:var(--color-muted);pointer-events:none}
.customizer_photo-placeholder svg{margin-bottom:var(--sp-2);opacity:.4}
.customizer_mat-bottom{position:relative;flex:none;height:87px}
.customizer_text-preview{position:absolute;top:8px;right:0;font-family:var(--font-display);font-size:.75rem;line-height:2;color:#3a3530;text-align:right;max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.customizer_panel{display:flex;flex-direction:column;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}
.customizer_panel::-webkit-scrollbar{display:none}
.customizer_panel-section{padding:var(--sp-6)}
.customizer_panel-title{font-size:.7rem;font-weight:600;letter-spacing:var(--tracking-micro);color:var(--color-muted);margin-bottom:var(--sp-4)}
.customizer_panel-price{margin-top:.75rem;font-size:1.4rem;font-weight:700}
.customizer_panel-info{font-size:.9rem;line-height:var(--leading-body)}
.customizer_submit-hint{margin-top:var(--sp-3)}
.customizer_photo-placeholder_text{margin-top:.5rem}
.customizer_photo-placeholder_hint{margin-top:.25rem}
.photo-preview--hidden{display:none;user-select:none;-webkit-user-drag:none}
.photo-move-hint{position:absolute;bottom:7px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.52);color:#fff;font-size:.68rem;letter-spacing:var(--tracking-micro);padding:3px 9px;pointer-events:none;opacity:0;transition:opacity .35s;white-space:nowrap;z-index:3}
.photo-move-hint.visible{opacity:1}
.customizer_photo-zone.has-photo{cursor:grab}
.customizer_photo-zone.is-dragging{cursor:grabbing}
.frame--portrait .customizer_photo-zone{flex:none;height:7.5cm}
.frame--portrait .customizer_mat-bottom{flex:1;height:auto}
.frame--paysage .customizer_photo-zone{flex:none;height:3.8cm}
.frame--paysage .customizer_mat-bottom{flex:1;height:auto}
.frame--carre .customizer_photo-zone{flex:none;height:auto;aspect-ratio:1/1}
.frame--carre .customizer_mat-bottom{flex:1;height:auto}
@media(max-width:900px){.customizer{grid-template-columns:1fr}}
@media(max-width:767px){.customizer_preview{padding:var(--sp-4)}}
/* Le cadre (.customizer_frame-border) fait ~330px de large en cm fixes : en dessous de
   ~370px d'ecran il ne rentre plus. On le reduit en bloc (zoom) pour garder toutes les
   proportions reelles intactes, uniquement quand c'est necessaire. */
@media(max-width:370px){.customizer_frame{zoom:.92}}
@media(max-width:330px){.customizer_frame{zoom:.8}}

/* Filters */
.filter-options{display:flex;gap:var(--sp-2);flex-wrap:wrap}
.filter-btn,.format-btn{padding:.35rem .85rem;border:1.5px solid var(--color-text);border-radius:var(--radius-sm);background:transparent;font-size:.8rem;letter-spacing:var(--tracking-micro);cursor:pointer;color:var(--color-muted);transition:all var(--transition)}
.filter-btn:hover,.filter-btn.active,.format-btn:hover,.format-btn.active{border-color:var(--color-text);color:var(--color-text);background:var(--color-accent-lt)}

/* Forms */
.form-group{margin-bottom:var(--sp-4)}
.form-label{display:block;font-size:.825rem;font-weight:500;color:var(--color-text);margin-bottom:var(--sp-2)}
.form-control{width:100%;padding:.65rem var(--sp-3);border:1.5px solid var(--color-text);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);transition:border-color var(--transition);appearance:none}
.form-control:focus{outline:none;border-color:var(--color-text)}.form-control::placeholder{color:var(--color-muted)}
textarea.form-control{resize:vertical;min-height:100px}
.form-hint{font-size:.75rem;letter-spacing:var(--tracking-micro);color:var(--color-muted);margin-top:var(--sp-1)}
.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}

/* Suggestions de texte (personnaliser) */
.text-suggest{position:relative}
.text-suggest_list{position:absolute;top:calc(100% + 2px);left:0;right:0;z-index:20;list-style:none;margin:0;padding:0;background:var(--color-surface);border:1.5px solid var(--color-text)}
.text-suggest_item{display:block;width:100%;padding:.6rem var(--sp-3);background:none;border:none;font-size:.875rem;color:var(--color-text);text-align:left;cursor:pointer;transition:background var(--transition)}
.text-suggest_item:hover,.text-suggest_item:focus-visible{background:var(--color-accent-lt)}
.text-suggest_item--hidden{display:none}
.form-checkbox-group{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-2)}
.form-checkbox{width:18px;height:18px;cursor:pointer;accent-color:var(--color-text)}
.form-checkbox-label{margin:0;cursor:pointer;font-size:.825rem;color:var(--color-text)}


/* Flash messages : position fixe sous la nav, hors du flux normal, pour
   ne pas décaler le contenu (ex : la marge négative du .hero) quand un
   message est présent, ni provoquer de saut de mise en page à sa disparition. */
#flash-container{position:fixed;top:var(--nav-height);left:0;right:0;z-index:250;pointer-events:none}
.flash{padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-sm);font-size:.875rem;margin-bottom:var(--sp-4);border-left:3px solid;pointer-events:auto}
.flash--success{background:#EBF7EF;color:#1a6b3a;border-color:var(--color-text)}.flash--error{background:#FBEAE9;color:#8b1e1e;border-color:var(--color-text)}.flash--info{background:#EBF0FB;color:#1a3a8b;border-color:#4A6CF7}

/* Footer */
.footer{background:var(--color-text);color:rgba(255,255,255,0.7);padding-block:var(--sp-12);margin-top:var(--sp-24)}
.footer_grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--sp-12)}
.footer_tagline{font-size:.85rem;line-height:var(--leading-body);max-width:280px}
.footer_heading{font-size:.7rem;font-weight:600;letter-spacing:var(--tracking-micro);color:rgba(255,255,255,0.4);margin-bottom:var(--sp-4)}
.footer_links{list-style:none;display:flex;flex-direction:column;gap:var(--sp-2)}.footer_links a{font-size:.875rem;transition:color var(--transition)}.footer_links a:hover{color:#fff}
.footer_bottom{border-top:1px solid rgba(255,255,255,0.1);margin-top:var(--sp-8);padding-top:var(--sp-6);display:flex;justify-content:space-between;align-items:center;font-size:.75rem;letter-spacing:var(--tracking-micro)}
.footer_logo-img{width:min(220px,100%);height:auto;display:block;margin-bottom:var(--sp-4);filter:invert(1)}
.footer_tagline-inner{display:flex;align-items:flex-start;gap:var(--sp-2)}
.footer_tagline-icon{width:9px;height:9px;flex-shrink:0;margin-top:4px;opacity:.4}
.footer_deco-icon{width:12px;height:12px;opacity:.3}
@media(max-width:768px){.footer_grid{grid-template-columns:1fr;gap:var(--sp-8)}.footer_bottom{flex-direction:column;gap:var(--sp-3);text-align:center}}


/* Utilities */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.divider{border:none;border-top:1px solid var(--color-text);margin-block:var(--sp-8)}
.badge{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:20px;font-size:.7rem;font-weight:600;letter-spacing:var(--tracking-micro)}
.badge--green{background:var(--color-accent-lt);color:var(--color-text)}
.fade-up{opacity:0;transform:translateY(20px);transition:opacity 500ms ease,transform 500ms ease}.fade-up.visible{opacity:1;transform:translateY(0)}
.mt-6{margin-top:var(--sp-6)}

/* Section headings */
.section-heading{margin-bottom:var(--sp-12)}
.section-heading_eyebrow{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3)}
.section-cta{text-align:center;margin-top:var(--sp-8)}
.section-cta--lg{text-align:center;margin-top:var(--sp-12)}

/* Page wrappers */
.page-wrapper{padding-block:var(--sp-8)}
.page-wrapper--narrow{padding-block:var(--sp-8);max-width:760px}
.breadcrumb{display:flex;gap:.5rem;list-style:none;font-size:.8rem;letter-spacing:var(--tracking-micro);color:var(--color-muted);margin-bottom:var(--sp-6)}
.breadcrumb_link{color:var(--color-muted)}
.page-title{display:inline-flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-2)}
.page-subtitle{color:var(--color-muted);margin-bottom:var(--sp-8)}
.cta-group{display:flex;gap:1rem;flex-wrap:wrap}
.legal-section{margin-bottom:var(--sp-8)}
.legal-section h2{font-size:1.25rem;margin-bottom:var(--sp-3)}
.legal-section p{line-height:var(--leading-body)}

/* Reassurance band */
.reassurance{background:transparent}
.reassurance_grid{text-align:center}
.reassurance_label{margin-bottom:.5rem}

/* Empty state */
.empty-state--lg{text-align:center;padding:var(--sp-16);background:var(--color-surface);border:1px solid var(--color-accent-lt);border-radius:var(--radius-md)}
.empty-state_icon{font-size:3rem;margin-bottom:var(--sp-4)}
.empty-state_actions{display:flex;gap:var(--sp-3);justify-content:center;flex-wrap:wrap}

/* Comment ca marche */
.how-section{background:transparent}
.how-title{color:var(--color-text);display:inline-flex;align-items:center;gap:var(--sp-3)}
.how-subtitle{color:var(--color-muted);margin-top:.5rem;max-width:500px;margin-inline:auto}
.how-steps{margin-top:var(--sp-12)}
.how-step{text-align:center;padding:var(--sp-6)}
.how-step_number{font-family:var(--font-display);font-size:4rem;color:var(--color-accent-lt);margin-bottom:var(--sp-4)}
.how-step_title{color:var(--color-text);margin-bottom:var(--sp-3)}
.how-step_desc{color:var(--color-muted);font-size:.9rem}

/* Ou nous trouver - home */
.trouver-home{aspect-ratio:1600/1135;display:flex;align-items:center;justify-content:center;color:var(--color-text);background:linear-gradient(rgba(0,0,0,0.15),rgba(0,0,0,0.15)),url(../images/bg_ounoustrouver.jpg) center/cover no-repeat}
.trouver-home_content{text-align:center;padding-inline:var(--sp-6)}
.trouver-home_title{font-size:clamp(calc(2rem + 20px),calc(5vw + 20px),calc(3.5rem + 20px));color:var(--color-bg);line-height:1.05;max-width:900px;margin:0 auto;text-transform:uppercase;letter-spacing:var(--tracking-caps)}
.trouver-home_title span{display:block}
.trouver-home_title span:first-child{margin-bottom:50px;letter-spacing:var(--tracking-caps)}
.trouver-home_title span:last-child{font-size:40px}
.trouver-home_cta{margin-top:var(--sp-8);background:var(--color-text);color:var(--color-bg);border-color:var(--color-text)}.trouver-home_cta:hover{background:transparent;color:var(--color-bg);border-color:var(--color-bg)}

/* Nos revendeurs - page */
.revendeurs-split{display:grid;grid-template-columns:1fr;gap:0;margin-top:var(--sp-8);border:1px solid var(--color-accent-lt)}
.revendeurs-map-col{display:flex;flex-direction:column;overflow:hidden}
.revendeurs-map-title{flex-shrink:0;padding:var(--sp-6) var(--sp-8) 0}
.revendeur-list{list-style:none;padding:var(--sp-3) var(--sp-8) var(--sp-6);display:flex;flex-direction:column;overflow-y:auto;max-height:520px;scrollbar-width:none}
.revendeur-list::-webkit-scrollbar{display:none}
.revendeurs-map-link{flex-shrink:0;align-self:flex-start;margin:var(--sp-4) var(--sp-8) var(--sp-6)}
.revendeur-list-item{display:flex;flex-direction:column;gap:.2rem;padding:var(--sp-4) 0;border-bottom:1px solid var(--color-accent-lt)}
.revendeur-list-item:first-child{border-top:1px solid var(--color-accent-lt)}
.revendeur-list-city{font-size:.7rem;letter-spacing:var(--tracking-micro);color:var(--color-muted)}
.revendeur-list-name{font-size:1rem;font-weight:500}
.revendeur-list-address{font-size:.8rem;letter-spacing:var(--tracking-micro);color:var(--color-muted)}
@media(max-width:900px){.revendeur-list{max-height:300px}}
@media(max-width:600px){.revendeur-list{padding:var(--sp-4)}}

/* Page header */
.page-header{margin-bottom:var(--sp-8)}
.page-header_eyebrow{margin-bottom:var(--sp-2);display:inline-flex;align-items:center;gap:var(--sp-2)}
.page-header_meta{margin-top:var(--sp-2)}

/* Panier */
.panier-layout{display:grid;grid-template-columns:1fr 320px;gap:var(--sp-8);align-items:start}
.panier-title{margin-bottom:var(--sp-6)}
.panier-title_icon{vertical-align:middle;margin-right:var(--sp-2)}
.panier-title_badge{font-size:1rem;vertical-align:middle}
.cart-item{background:var(--color-surface);border:1px solid var(--color-accent-lt);border-radius:var(--radius-md);padding:var(--sp-6);margin-bottom:var(--sp-4);display:grid;grid-template-columns:1fr auto;gap:var(--sp-4)}
.cart-item_name{font-size:1rem;margin-bottom:var(--sp-2)}
.cart-item_badges{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-3)}
.cart-item_text{font-style:italic;margin-bottom:var(--sp-3)}
.cart-item_price{font-size:1.1rem;font-weight:600;color:var(--color-text);margin-top:var(--sp-3)}
.qty-stepper{display:inline-flex;align-items:center;gap:var(--sp-3);margin-top:var(--sp-3);border:1.5px solid var(--color-text);border-radius:var(--radius-sm);padding:.25rem .5rem}
.qty-stepper_btn{width:1.5rem;height:1.5rem;border:none;background:transparent;color:var(--color-text);font-size:1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.qty-stepper_btn:hover:not(:disabled){color:var(--color-muted)}
.qty-stepper_btn:disabled{opacity:.3;cursor:not-allowed}
.qty-stepper_value{min-width:1.25rem;text-align:center;font-weight:500}
.cart-clear-row{text-align:right;margin-top:var(--sp-4)}
.cart-continue-links{display:flex;gap:var(--sp-3);flex-wrap:wrap;margin-top:var(--sp-6);padding-top:var(--sp-6);border-top:1px solid var(--color-accent-lt)}
.cart-summary{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--sp-6);position:sticky;top:calc(var(--nav-height) + 1rem)}
.cart-summary_title{font-size:1.1rem;margin-bottom:var(--sp-6)}
.cart-summary_delivery{margin-bottom:var(--sp-6)}
.cart-summary_delivery-label{margin-bottom:var(--sp-3)}
.delivery-option{display:flex;align-items:flex-start;gap:var(--sp-3);cursor:pointer;margin-bottom:var(--sp-4);padding:var(--sp-3);border-radius:var(--radius-sm)}
.delivery-option--active{border:1px solid var(--color-text)}
.delivery-option--inactive{border:1px solid var(--color-accent-lt)}
.delivery-option_radio{margin-top:3px;flex-shrink:0}
.delivery-option_name{font-size:.9rem}
.delivery-option_subname{font-size:.75rem;font-weight:600;letter-spacing:var(--tracking-micro);color:var(--color-muted)}
.cart-totals_row{display:flex;justify-content:space-between;margin-bottom:var(--sp-3);font-size:.9rem;color:var(--color-muted)}
.cart-totals_total{display:flex;justify-content:space-between;font-size:1.15rem;font-weight:600;margin-bottom:var(--sp-6)}
.cart-login-hint{margin-bottom:var(--sp-4);padding:var(--sp-3);background:var(--color-accent-lt);border-radius:var(--radius-sm)}
.cart-login-btn{margin-bottom:var(--sp-3)}
.cart-checkout-hint{margin-top:var(--sp-4)}
@media(max-width:768px){.panier-layout{grid-template-columns:1fr}}

/* Admin */
.admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-8)}
.admin-header_eyebrow{margin-bottom:var(--sp-2)}
.admin-header_title{font-size:1.75rem}
.admin-month{margin-bottom:var(--sp-8)}
.admin-month_header{display:flex;align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-4)}
.admin-month_title{font-size:1.1rem;text-transform:uppercase;letter-spacing:var(--tracking-caps)}
.admin-month_rule{flex:1;height:1px;background:var(--color-text)}
.admin-table{width:100%;border-collapse:collapse;font-size:.875rem}
.admin-table thead tr{border-bottom:2px solid var(--color-text);text-align:left}
.admin-table th{padding:.5rem .75rem;font-weight:600}
.th--date{width:10%}.th--active{width:8%;text-align:center}.th--actions{width:12%;text-align:right}
.admin-table tbody tr{border-bottom:1px solid var(--color-accent-lt)}
.admin-table td{padding:.65rem .75rem}
.admin-table_date{color:var(--color-muted);white-space:nowrap}
.admin-table_title{font-weight:500}
.admin-table_location{color:var(--color-muted)}
.admin-table_active--center{text-align:center}
.admin-table_active--inactive{color:var(--color-muted)}
.admin-table_actions{text-align:right;white-space:nowrap}
.admin-table_delete-form{display:inline}
.admin-form_title{font-size:1.75rem;margin-bottom:var(--sp-8)}
.admin-form_flash{margin-bottom:var(--sp-6)}
.admin-form_grid{gap:var(--sp-4)}
.admin-form_checkbox-group{display:flex;align-items:center;gap:var(--sp-3)}
.admin-form_checkbox{width:18px;height:18px;cursor:pointer;accent-color:var(--color-text)}
.admin-form_checkbox-label{margin:0;cursor:pointer}
.admin-form_actions{display:flex;gap:var(--sp-3);margin-top:var(--sp-8);padding-top:var(--sp-6);border-top:1px solid var(--color-text)}
.required-star{color:red}
.admin-table_row--past td{opacity:.45}
.admin-places-count{font-size:.8rem;font-weight:600;letter-spacing:var(--tracking-micro)}
.admin-places-count--full{color:var(--color-muted)}
.admin-table_registrations-row td{background:var(--color-accent-lt);padding:var(--sp-3) var(--sp-4)}
.admin-registrations{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);font-size:.8rem;letter-spacing:var(--tracking-micro)}
.admin-registrations_label{font-weight:600;font-size:.7rem;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-muted)}
.admin-registrations_person{background:#fff;border:1px solid var(--color-text);border-radius:20px;padding:.2rem .75rem}
.admin-registrations_email{color:var(--color-muted);margin-left:var(--sp-1)}

/* Admin nav */
.admin-nav{background:var(--color-text);color:var(--color-bg);height:56px;display:flex;align-items:center;position:sticky;top:0;z-index:100}
.admin-nav_inner{width:100%;max-width:var(--max-width);margin-inline:auto;padding-inline:var(--sp-6);display:flex;align-items:center;gap:var(--sp-4)}
.admin-nav_brand{font-weight:600;font-size:.85rem;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-bg);white-space:nowrap;flex-shrink:0}
.admin-nav_badge{background:var(--color-sage);color:var(--color-text);font-size:.6rem;padding:.15em .45em;margin-left:.4rem;font-weight:700;letter-spacing:var(--tracking-micro);vertical-align:middle}
.admin-nav_links{display:flex;list-style:none;gap:0;margin-left:var(--sp-6);flex:1}
.admin-nav_link{color:rgba(240,241,236,.5);font-size:.82rem;font-weight:500;padding:.4rem .75rem;transition:color 150ms,background 150ms;white-space:nowrap;display:block}
.admin-nav_link:hover{color:var(--color-bg);background:rgba(255,255,255,.08)}
.admin-nav_link--active{color:var(--color-bg);background:rgba(255,255,255,.12)}
.admin-nav_logout{margin-left:auto;background:var(--color-bg);color:var(--color-text);font-size:.82rem;padding:.4rem .75rem;border:1px solid rgba(255,255,255,.2);transition:all 150ms;white-space:nowrap;flex-shrink:0}
.admin-nav_logout:hover{background:rgba(240,241,236,.8);border-color:rgba(255,255,255,.5)}

/* Admin layout */
.admin-body{background:var(--color-bg);min-height:100vh;padding-top:0}
.admin-main{padding-block:var(--sp-8)}

/* Admin login */
.admin-login-wrap{min-height:calc(100vh - 56px);display:flex;align-items:center;justify-content:center;padding:var(--sp-8)}
.admin-login-card{width:100%;max-width:380px}
.admin-login-title{font-size:1.5rem;margin-bottom:var(--sp-8)}
.password-field{position:relative}
.password-field .form-control{padding-right:2.75rem}
.password-toggle{position:absolute;top:50%;right:.65rem;transform:translateY(-50%);background:none;border:none;padding:.25rem;display:flex;cursor:pointer;color:var(--color-muted)}
.password-toggle:hover{color:var(--color-text)}

/* Dashboard stats */
.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4);margin-bottom:var(--sp-8)}
.admin-stat{background:#fff;border:1px solid var(--color-accent-lt);border-radius:var(--radius-md);padding:var(--sp-5) var(--sp-6)}
.admin-stat_number{font-size:2rem;font-weight:300;line-height:1;margin-bottom:.25rem}
.admin-stat_label{font-size:.75rem;font-weight:600;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-muted)}
.admin-stat--alert .admin-stat_number{color:var(--color-muted)}

/* Order status */
.order-status{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:var(--tracking-caps);text-transform:uppercase;padding:.2em .6em;border-radius:20px}
.order-status--pending{background:#fff3cd;color:#856404}
.order-status--paid{background:#d1e7dd;color:#0a3622}
.order-status--processing{background:#cfe2ff;color:#084298}
.order-status--shipped{background:#d3d3f7;color:#2d2d8a}
.order-status--delivered{background:#d1e7dd;color:#0a3622}
.order-status--cancelled{background:#f8d7da;color:#842029}

.th--places{width:8%;text-align:center}
.empty-state{text-align:center;padding:var(--sp-16) 0}

@media(max-width:900px){.admin-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.admin-stats{grid-template-columns:1fr}.admin-nav_links{display:none}}


/* Auth pages */
.auth-page{max-width:480px;padding-block:var(--sp-16)}
.auth-header{text-align:center;margin-bottom:var(--sp-8)}
.auth-header_title{font-size:1.75rem}
.auth-tabs{display:flex;border:1px solid var(--color-text);border-radius:var(--radius-sm);margin-bottom:var(--sp-6);overflow:hidden}
.auth-tabs_active{flex:1;padding:.75rem;text-align:center;font-size:.875rem;font-weight:500;background:var(--color-text);color:#fff;display:block}
.auth-tabs_link{flex:1;padding:.75rem;text-align:center;font-size:.875rem;font-weight:500;color:var(--color-muted)}
.auth-footer{margin-top:var(--sp-4)}
.auth-footer_link{color:var(--color-muted)}
.pw-field{position:relative;display:flex;align-items:center}
.pw-field .form-control{padding-right:2.75rem;flex:1}
.pw-toggle{position:absolute;right:.75rem;background:none;border:none;padding:0;cursor:pointer;color:var(--color-muted);display:flex;align-items:center;line-height:1;transition:color var(--transition)}
.pw-toggle:hover{color:var(--color-text)}
.pw-toggle svg{width:18px;height:18px}
.pw-icon--hide{display:none}

/* 404 page */
.page-404{text-align:center;padding-block:var(--sp-24)}
.page-404_code{font-family:var(--font-display);font-size:6rem;color:var(--color-muted);line-height:1;margin-bottom:var(--sp-3)}
.page-404_title{margin-bottom:var(--sp-3)}
.page-404_desc{margin-bottom:var(--sp-8)}

/* Atelier - section home */
.atelier-home{aspect-ratio:1600/1135;display:flex;align-items:center;justify-content:center;color:var(--color-text);background:linear-gradient(rgba(0,0,0,0.15),rgba(0,0,0,0.15)),url(../images/bg_atelier.jpeg) center/cover no-repeat}
.atelier-home_content{text-align:center}
.atelier-home_title{font-size:clamp(calc(2rem + 20px),calc(5vw + 20px),calc(3.5rem + 20px));color:var(--color-bg);line-height:1.05;text-transform:uppercase;letter-spacing:var(--tracking-caps)}
.atelier-home_title em{font-style:italic;color:var(--color-bg)}
.atelier-home_cta{margin-top:var(--sp-8);background:var(--color-text);color:var(--color-bg);border-color:var(--color-text)}.atelier-home_cta:hover{background:transparent;color:var(--color-bg);border-color:var(--color-bg)}

/* Agenda (accueil) */
.agenda-home{aspect-ratio:1600/1135;display:flex;align-items:center;justify-content:center;color:var(--color-text);background:linear-gradient(rgba(0,0,0,0.15),rgba(0,0,0,0.15)),url(../images/bg_agenda.jpeg) center/cover no-repeat}
.agenda-home_content{text-align:center}
.agenda-home_title{font-size:clamp(calc(2rem + 20px),calc(5vw + 20px),calc(3.5rem + 20px));color:var(--color-bg);line-height:1.05;max-width:720px;margin:0 auto;text-transform:uppercase;letter-spacing:var(--tracking-caps)}
.agenda-home_cta{margin-top:var(--sp-8);background:var(--color-text);color:var(--color-bg);border-color:var(--color-text)}.agenda-home_cta:hover{background:transparent;color:var(--color-bg);border-color:var(--color-bg)}
.agenda-home_logo,.atelier-home_logo,.trouver-home_logo{height:clamp(190px,calc(7vw + 128px),230px);width:auto;display:block;margin:var(--sp-6) auto var(--sp-8)}

/* ===== Ajustements TELEFONO uniquement (< 768px) — le computer garde les valeurs ci-dessus ===== */
@media(max-width:767px){
  :root{--nav-height:60px}
  .nav_icon-btn svg,.nav_cart-btn svg{width:18px;height:18px;stroke-width:2}
  .hero,.agenda-home,.atelier-home,.trouver-home{aspect-ratio:unset;height:100vh;height:100svh}
  .hero{padding-top:calc(var(--nav-height) + 100px)}
  .hero_title,.agenda-home_title,.atelier-home_title,.trouver-home_title{font-size:clamp(calc(2rem - 5px),calc(5vw - 5px),calc(3.5rem - 5px));overflow-wrap:normal;word-break:normal;hyphens:none}
  .hero_desc{font-size:.9rem}
  .hero_logo,.agenda-home_logo,.atelier-home_logo,.trouver-home_logo{height:clamp(40px,calc(4vw + 20px),56px);margin:var(--sp-4) auto var(--sp-6)}
  .hero .btn--primary,.trouver-home_cta,.atelier-home_cta,.agenda-home_cta{font-size:.8rem}
  .nav_logo{display:none}
  .nav_actions{gap:0;justify-content:space-between}
  .nav_cart-btn{order:1}
  .nav_icon-btn{order:2}
  .nav_burger{order:3}
}

.addon-option{margin-bottom:var(--sp-4)}
.addon-option .delivery-option{margin-bottom:0}

/* Atelier - page liste des seances */
.atelier-page-header{max-width:680px;margin-bottom:var(--sp-12)}
.atelier-page-header_desc{margin-top:var(--sp-3);margin-bottom:var(--sp-4);line-height:var(--leading-body)}
.atelier-page-header_meta{display:flex;flex-wrap:wrap;gap:var(--sp-3);font-size:.875rem;color:var(--color-muted)}
.atelier-meta-sep{color:var(--color-muted);opacity:.4}
.atelier-grid{display:grid;grid-template-columns:1fr;gap:var(--sp-6)}
.atelier-card{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--sp-6);display:grid;grid-template-columns:64px 1fr auto;gap:var(--sp-6);align-items:start;transition:box-shadow var(--transition),transform var(--transition)}
.atelier-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.atelier-card--full{opacity:.6}
.atelier-card_date-col{text-align:center;padding:var(--sp-2) var(--sp-3)}
.atelier-card_day-num{font-size:1.75rem;font-weight:700;line-height:1}
.atelier-card_month{font-size:.65rem;letter-spacing:var(--tracking-micro);color:var(--color-muted);margin-top:2px}
.atelier-card_year{font-size:.6rem;letter-spacing:var(--tracking-micro);color:var(--color-muted);margin-top:1px}
.atelier-card_title{font-size:1rem;font-weight:500;margin-bottom:var(--sp-3)}
.atelier-card_meta{display:flex;flex-direction:column;gap:var(--sp-1);font-size:.8rem;letter-spacing:var(--tracking-micro);color:var(--color-muted);margin-bottom:var(--sp-4)}
.atelier-card_meta span{display:flex;align-items:center;gap:var(--sp-2)}
.atelier-card_desc{font-size:.85rem;line-height:1.5;color:var(--color-muted);margin-bottom:var(--sp-4)}
.atelier-card_places{margin-bottom:var(--sp-3)}
.atelier-places-bar{height:4px;background:var(--color-accent-lt);overflow:hidden;margin-bottom:var(--sp-1)}
.atelier-places-bar_fill{height:100%;background:var(--color-text);transition:width .4s ease}
.atelier-places-label{font-size:.7rem;font-weight:600;letter-spacing:var(--tracking-micro)}
.atelier-places-label--full{color:var(--color-muted)}
.atelier-card_price{font-size:1.1rem;font-weight:700}
.atelier-card_action{display:flex;flex-direction:column;align-items:flex-end;gap:var(--sp-3);align-self:center}
.atelier-card_registered-badge{font-size:.75rem;font-weight:600;letter-spacing:var(--tracking-micro);color:var(--color-text);background:var(--color-accent-lt);padding:.3rem .7rem;border-radius:20px;white-space:nowrap}

@media(max-width:600px){.atelier-card{grid-template-columns:56px 1fr;grid-template-rows:auto auto}.atelier-card_action{grid-column:1/-1;flex-direction:row;justify-content:flex-end}}
