/* ============================================================
   Maz.zhair — Saint-Omer · barbershop N&B graphique
   Anton (display) + Bricolage Grotesque (corps)
   ============================================================ */

:root{
  --ink:#0d0d0f;
  --ink-2:#161619;
  --paper:#f4f2ee;
  --paper-dim:rgba(244,242,238,.70);
  --paper-faint:rgba(244,242,238,.45);
  --brass:#c79a3e;
  --brass-lo:#e0c079;
  --line:rgba(244,242,238,.14);
  --line-strong:rgba(244,242,238,.28);
  --nav-h:74px;
  --maxw:1180px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 12px);-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  font-family:"Bricolage Grotesque",system-ui,-apple-system,sans-serif;
  background:var(--ink);
  color:var(--paper);
  line-height:1.65;
  overflow-x:hidden;
}
body.no-scroll,body.menu-open{overflow:hidden}

img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

.container{width:min(var(--maxw),92%);margin-inline:auto}

/* Typo helpers */
.eyebrow{
  font-size:.74rem;letter-spacing:.28em;text-transform:uppercase;
  font-weight:600;color:var(--brass);margin-bottom:1rem;
}
.eyebrow--light{color:var(--brass-lo)}

h1,h2{
  font-family:"Anton",Impact,sans-serif;font-weight:400;
  text-transform:uppercase;letter-spacing:.01em;line-height:.98;
}
h2{font-size:clamp(1.9rem,4.6vw,3rem);margin-bottom:1rem}

.accent-line{color:var(--brass)}

.sec-head{max-width:640px;margin-bottom:2.6rem}
.sec-sub{color:var(--paper-dim);font-size:1.03rem;margin-top:.4rem}

.section{padding:3.5rem 0}
.board{background:var(--ink-2)}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  font-family:"Bricolage Grotesque",sans-serif;font-weight:600;
  font-size:.98rem;letter-spacing:.02em;
  padding:.85rem 1.6rem;border-radius:2px;border:1.5px solid transparent;
  cursor:pointer;transition:transform .15s ease,background .2s ease,color .2s ease,border-color .2s ease;
  white-space:nowrap;
}
.btn--sm{padding:.6rem 1.1rem;font-size:.9rem}
.btn--primary{background:var(--brass);color:#1a1406;border-color:var(--brass)}
.btn--primary:hover{background:var(--brass-lo);border-color:var(--brass-lo);transform:translateY(-2px)}
.btn--ghost{background:transparent;color:var(--paper);border-color:var(--line-strong)}
.btn--ghost:hover{border-color:var(--paper);transform:translateY(-2px)}

a:focus-visible,button:focus-visible,.gallery__btn:focus-visible{
  outline:2px solid var(--brass-lo);outline-offset:3px;border-radius:2px;
}

/* ---------- NAV ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:50;height:var(--nav-h);
  background:rgba(13,13,15,.82);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  transform:translateZ(0);will-change:transform;
}
.nav__inner{height:100%;display:flex;align-items:center;justify-content:space-between}
.brand{display:inline-flex;align-items:center;gap:.55rem}
.brand__check{
  width:22px;height:22px;flex:0 0 auto;border-radius:3px;
  background-color:var(--paper);
  background-image:
    linear-gradient(45deg,var(--ink) 25%,transparent 25%),
    linear-gradient(-45deg,var(--ink) 25%,transparent 25%),
    linear-gradient(45deg,transparent 75%,var(--ink) 75%),
    linear-gradient(-45deg,transparent 75%,var(--ink) 75%);
  background-size:11px 11px;
  background-position:0 0,0 5.5px,5.5px -5.5px,-5.5px 0;
}
.brand__name{font-family:"Anton",sans-serif;font-size:1.35rem;letter-spacing:.02em;text-transform:uppercase}
.brand .dot{color:var(--brass)}

.nav__links{display:flex;align-items:center;gap:1.7rem}
.nav__links a{font-size:.94rem;font-weight:500;color:var(--paper-dim);transition:color .2s ease}
.nav__links a:hover{color:var(--paper)}
.nav__links a.nav__cta{color:#1a1406;padding:.6rem 1.2rem}
.nav__links a.nav__cta:hover{color:#1a1406}

.nav__burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px}
.nav__burger span{width:26px;height:2px;background:var(--paper);transition:transform .25s ease,opacity .2s ease}

/* ---------- HERO ---------- */
.hero{padding-top:calc(var(--nav-h) + 3.5rem);padding-bottom:3.5rem}
.hero__grid{
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(2rem,5vw,4rem);align-items:center;
}
.hero__title{font-size:clamp(2.9rem,8vw,5.6rem);margin:.4rem 0 1.3rem}
.accent-line{position:relative}
.hero__lead{font-size:1.12rem;color:var(--paper-dim);max-width:34ch;margin-bottom:1.9rem}
.hero__lead strong{color:var(--paper);font-weight:600}
.hero__stats{display:flex;gap:1.8rem;margin-bottom:2rem;flex-wrap:wrap}
.stat{display:flex;flex-direction:column}
.stat__num{font-family:"Anton",sans-serif;font-size:1.9rem;line-height:1;color:var(--brass)}
.stat__lbl{font-size:.8rem;letter-spacing:.05em;color:var(--paper-faint);text-transform:uppercase;margin-top:.35rem}
.hero__cta{display:flex;gap:.9rem;flex-wrap:wrap}

.framed{position:relative;padding:12px;border:1px solid var(--line-strong)}
.framed::after{content:"";position:absolute;inset:-1px;border:1px solid transparent;pointer-events:none}
.framed img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}

/* ---------- CHECKERBOARD BAND ---------- */
.check-band{
  height:26px;width:100%;
  background-color:var(--paper);
  background-image:
    linear-gradient(45deg,var(--ink) 25%,transparent 25%),
    linear-gradient(-45deg,var(--ink) 25%,transparent 25%),
    linear-gradient(45deg,transparent 75%,var(--ink) 75%),
    linear-gradient(-45deg,transparent 75%,var(--ink) 75%);
  background-size:26px 26px;
  background-position:0 0,0 13px,13px -13px,-13px 0;
}

/* ---------- SPLIT (Le salon) ---------- */
.split{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(1.8rem,4vw,3.5rem);align-items:center}
.split__media img{width:100%;aspect-ratio:4/5;object-fit:cover;border:1px solid var(--line-strong)}
.split__text p{color:var(--paper-dim);margin-bottom:1rem}
.split__text strong{color:var(--paper)}
.ticks{list-style:none;margin-top:1.4rem;display:grid;gap:.6rem}
.ticks li{position:relative;padding-left:1.7rem;color:var(--paper-dim)}
.ticks li::before{
  content:"";position:absolute;left:0;top:.55em;width:10px;height:10px;
  background:var(--brass);transform:rotate(45deg);
}

/* ---------- TARIF BOARD ---------- */
.pricelist{list-style:none;max-width:760px;margin:0 auto}
.price{display:flex;align-items:baseline;gap:1rem;padding:1.05rem 0;border-bottom:1px solid var(--line)}
.price:first-child{border-top:1px solid var(--line)}
.price__name{
  font-family:"Anton",sans-serif;text-transform:uppercase;letter-spacing:.02em;
  font-size:clamp(1.15rem,2.4vw,1.6rem);color:var(--paper);
}
.price__dots{flex:1;border-bottom:2px dotted var(--line-strong);transform:translateY(-5px);min-width:20px}
.price__val{font-family:"Anton",sans-serif;font-size:clamp(1.15rem,2.4vw,1.6rem);color:var(--brass);white-space:nowrap}
.board__cta{text-align:center;margin-top:2.4rem}

/* ---------- GALLERY ---------- */
.gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem}
.gallery__btn{padding:0;border:0;background:none;cursor:pointer;overflow:hidden;display:block}
.gallery__btn img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .4s ease,filter .3s ease;filter:grayscale(.1)}
.gallery__btn:hover img{transform:scale(1.06);filter:grayscale(0)}

/* ---------- REVIEWS ---------- */
.reviews{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem}
.review{border:1px solid var(--line);padding:1.8rem;position:relative;background:rgba(244,242,238,.02)}
.review::before{content:"\201C";font-family:"Anton",serif;position:absolute;top:.4rem;left:1rem;font-size:3.4rem;color:var(--brass);opacity:.5;line-height:1}
.review blockquote{color:var(--paper-dim);font-size:.98rem;margin:1.4rem 0 1.1rem;position:relative}
.review figcaption{font-weight:600;font-size:.9rem;color:var(--paper);letter-spacing:.02em}

/* ---------- CONTACT ---------- */
.contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.8rem,4vw,3.2rem);align-items:start}
.contact__line{font-size:1.05rem;margin-bottom:.5rem}
.contact__line a{color:var(--paper);border-bottom:1px solid var(--line-strong);transition:border-color .2s ease}
.contact__line a:hover{border-color:var(--brass)}
.hours{border-collapse:collapse;width:100%;max-width:360px;margin:1.6rem 0 1.8rem}
.hours th,.hours td{text-align:left;padding:.5rem .2rem;border-bottom:1px solid var(--line);font-weight:400}
.hours th{color:var(--paper);font-weight:500}
.hours td{color:var(--paper-dim);text-align:right}
.contact__cta{display:flex;gap:.9rem;flex-wrap:wrap}

.contact__map{min-height:340px;height:100%}
.map-consent{
  height:100%;min-height:340px;display:flex;align-items:center;justify-content:center;
  text-align:center;padding:2rem;border:1px solid var(--line);
  background:
    linear-gradient(rgba(13,13,15,.6),rgba(13,13,15,.6)),
    repeating-conic-gradient(var(--ink-2) 0% 25%,#0a0a0c 0% 50%) 0/44px 44px;
}
.map-consent__txt{color:var(--paper-dim);max-width:34ch;font-size:.95rem}
.contact__map iframe{
  display:block;width:100%;height:100%;min-height:340px;border:0;
  filter:invert(90%) hue-rotate(180deg) brightness(95%) contrast(90%);
}

/* ---------- FOOTER ---------- */
.footer{background:var(--ink-2);border-top:1px solid var(--line);padding:3rem 0 2rem}
.footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2rem}
.brand--footer{margin-bottom:.6rem}
.footer__tag{color:var(--paper-faint);font-size:.9rem}
.footer__col p{margin-bottom:.5rem}
.footer__col a{color:var(--paper-dim);transition:color .2s ease;font-size:.95rem}
.footer__col a:hover{color:var(--brass)}
.footer__credit{text-align:center;color:var(--paper-faint);font-size:.82rem;margin-top:2.4rem;padding-top:1.4rem;border-top:1px solid var(--line)}
.footer__credit a{color:var(--paper-dim)}
.footer__credit a:hover{color:var(--brass)}

/* ---------- REVEAL ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1 !important;transform:none !important;transition:none}}

/* ---------- LIGHTBOX ---------- */
.lightbox{
  position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;
  background:rgba(8,8,10,.94);padding:4vw;
}
.lightbox.open{display:flex}
.lightbox__img{max-width:92vw;max-height:86vh;object-fit:contain;border:1px solid var(--line-strong)}
.lightbox__close,.lightbox__nav{
  position:absolute;background:rgba(244,242,238,.1);color:var(--paper);
  border:1px solid var(--line-strong);width:46px;height:46px;border-radius:50%;
  font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background .2s ease;line-height:1;
}
.lightbox__close:hover,.lightbox__nav:hover{background:rgba(244,242,238,.24)}
.lightbox__close{top:4vw;right:4vw}
.lightbox__nav{top:50%;transform:translateY(-50%)}
.lightbox__prev{left:3vw}
.lightbox__next{right:3vw}
body.no-scroll .nav{display:none}

/* ---------- COOKIE BANNER ---------- */
.cookie{
  position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:60;max-width:640px;margin-inline:auto;
  background:var(--ink-2);border:1px solid var(--line-strong);border-radius:4px;
  padding:1rem 1.2rem;display:flex;gap:1rem;align-items:center;justify-content:space-between;flex-wrap:wrap;
  box-shadow:0 12px 40px rgba(0,0,0,.5);
}
.cookie[hidden]{display:none}
.cookie p{font-size:.86rem;color:var(--paper-dim);flex:1;min-width:220px}
.cookie strong{color:var(--paper)}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:900px){
  .hero__grid{grid-template-columns:minmax(0,1fr);gap:2.2rem}
  .hero__media{order:-1}
  .split{grid-template-columns:minmax(0,1fr)}
  .split__media{max-width:420px}
  .contact{grid-template-columns:minmax(0,1fr)}
  .reviews{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer__grid{grid-template-columns:1fr 1fr}
}

@media (max-width:720px){
  .nav__burger{display:flex}
  .nav__links{
    position:fixed;top:var(--nav-h);left:0;right:0;
    flex-direction:column;align-items:flex-start;gap:0;
    background:var(--ink-2);border-bottom:1px solid var(--line);
    padding:.5rem 6vw 1.4rem;
    transform:translateY(-140%);transition:transform .3s ease;
  }
  body.menu-open .nav__links{transform:translateY(0)}
  .nav__links a{width:100%;padding:.9rem 0;border-bottom:1px solid var(--line)}
  .nav__links a.nav__cta{margin-top:1rem;width:100%;padding:.85rem;border-bottom:0}
}

@media (max-width:560px){
  .section{padding:3rem 0}
  .reviews{grid-template-columns:minmax(0,1fr)}
  .footer__grid{grid-template-columns:1fr}
  .hero__stats{gap:1.3rem}
  .btn{font-size:.92rem;padding:.8rem 1.25rem;letter-spacing:0}
  .price{gap:.6rem}
}
