/* ═══════════════════════════════════════════════
   Pierre Dabadie — Main Stylesheet
   ═══════════════════════════════════════════════ */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --w:       #ffffff;
  --g0:      #f5f5f7;
  --g1:      #e8e8ed;
  --g2:      #c7c7cc;
  --g3:      #86868b;
  --ink:     #1d1d1f;
  --ink2:    #3a3a3c;

  --red:     #e8391f;
  --blue:    #0066cc;
  --green:   #1a9e3f;
  --amber:   #d97706;
  --violet:  #7c3aed;

  --gr-red:    linear-gradient(120deg,#e8391f,#ff6040);
  --gr-blue:   linear-gradient(120deg,#0066cc,#34aadc);
  --gr-green:  linear-gradient(120deg,#1a9e3f,#34c759);
  --gr-amber:  linear-gradient(120deg,#d97706,#f59e0b);
  --gr-violet: linear-gradient(120deg,#7c3aed,#a855f7);

  --f: 'Plus Jakarta Sans', -apple-system, 'Helvetica Neue', sans-serif;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --tr: 0.45s var(--ease);
  --tr-f: 0.25s var(--ease);
}

html { scroll-behavior: smooth; }
body {
  font-family: var(--f);
  background: var(--w);
  color: var(--ink);
  font-weight: 400;
  line-height: 1.6;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
@media (pointer: fine) {
  body { cursor: none; }
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; color: inherit; }

/* ─── CURSEUR ─────────────────────────────── */
#cur {
  display: none; /* caché par défaut, activé seulement en pointer:fine */
  position: fixed; top: 0; left: 0; z-index: 9999;
  width: 10px; height: 10px;
  background: var(--red); border-radius: 50%;
  pointer-events: none;
  transform: translate(-50%,-50%);
  transition: width .3s var(--ease), height .3s var(--ease), background .3s;
}
@media (pointer: fine) {
  #cur { display: block; }
}
#cur.h { width: 42px; height: 42px; background: rgba(232,57,31,0.12); }

/* ─── NAV ─────────────────────────────────── */
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 500;
  height: 64px;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 clamp(1.5rem,5vw,5rem);
  background: rgba(255,255,255,0.82);
  backdrop-filter: saturate(180%) blur(20px);
  border-bottom: 1px solid rgba(0,0,0,0.06);
}
.nav__logo {
  font-size: 1rem; font-weight: 700;
  letter-spacing: -0.03em; color: var(--ink);
}
.nav__logo img { height: 36px; width: auto; }
.nav__links {
  display: flex; align-items: center; gap: 2rem; list-style: none;
}
.nav__links a {
  font-size: 0.78rem; font-weight: 400;
  color: var(--ink2); transition: color var(--tr-f);
}
.nav__links a:hover { color: var(--ink); }
.nav__cta {
  font-size: 0.75rem; font-weight: 600;
  color: var(--blue) !important; transition: opacity var(--tr-f);
}
.nav__cta:hover { opacity: 0.65; }

.burger { display:none; flex-direction:column; gap:4px; }
.burger span { display:block; width:18px; height:1.5px; background:var(--ink); transition:var(--tr-f); transform-origin:center; }
.burger.open span:nth-child(1){ transform:rotate(45deg) translate(4px,4px); }
.burger.open span:nth-child(2){ opacity:0; }
.burger.open span:nth-child(3){ transform:rotate(-45deg) translate(4px,-4px); }

.mob-nav {
  position:fixed;inset:0;background:rgba(255,255,255,.97);backdrop-filter:blur(20px);z-index:490;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.8rem;
  opacity:0;pointer-events:none;transition:opacity .4s;
}
.mob-nav.open{opacity:1;pointer-events:all;}
.mob-nav ul { list-style:none; text-align:center; }
.mob-nav a, .mob-nav .ml {
  font-size:clamp(2rem,6vw,3rem);font-weight:700;letter-spacing:-.04em;
  color:var(--ink);transition:color var(--tr-f); display:block; padding:.3rem 0;
}
.mob-nav a:hover, .mob-nav .ml:hover { color:var(--blue); }

/* ─── HERO ────────────────────────────────── */
.hero {
  min-height: 100vh;
  padding-top: 64px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  position: relative;
  overflow: hidden;
  background: var(--g0);
}
.hero::before {
  content:'';position:absolute;top:-20%;right:-5%;
  width:55vw;height:90vh;
  background:radial-gradient(ellipse at center,rgba(0,102,204,0.07) 0%,transparent 70%);
  pointer-events:none;
}
.hero__left {
  display:flex;flex-direction:column;justify-content:center;
  padding:clamp(3rem,8vw,8rem) clamp(2rem,5vw,5rem) clamp(3rem,8vw,8rem) clamp(1.5rem,5vw,5rem);
  position:relative;z-index:2;
}
.hero__watermark {
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  font-size:clamp(16rem,28vw,28rem);font-weight:800;letter-spacing:-0.08em;
  color:rgba(0,0,0,0.025);line-height:1;pointer-events:none;user-select:none;
}
.hero__tag {
  display:inline-flex;align-items:center;gap:.5rem;
  font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:var(--g3);margin-bottom:2.5rem;
}
.hero__tag::before { content:'';width:2rem;height:1.5px;background:var(--red); }
.hero__title { font-size:clamp(3.2rem,7vw,7rem);line-height:.95;letter-spacing:-.04em;margin-bottom:2rem; }
.hero__title .bold  { font-weight:800;color:var(--ink);display:block; }
.hero__title .light { font-weight:200;color:var(--g3);display:block; }
.hero__title .color-red  { font-weight:800;background:var(--gr-red); -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:block; }
.hero__title .color-blue { font-weight:800;background:var(--gr-blue);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:block; }
.hero__sub { font-size:clamp(.9rem,1.2vw,1.05rem);font-weight:300;color:var(--ink2);max-width:38ch;line-height:1.75;margin-bottom:3rem; }
.hero__btns { display:flex;align-items:center;gap:1rem;flex-wrap:wrap; }
.hero__stats { display:flex;gap:2.5rem;margin-top:3.5rem;padding-top:2.5rem;border-top:1px solid var(--g1); }
.hero__stat strong { display:block;font-size:2rem;font-weight:800;letter-spacing:-.05em;line-height:1; }
.hero__stat:nth-child(1) strong { color:var(--red); }
.hero__stat:nth-child(2) strong { color:var(--blue); }
.hero__stat:nth-child(3) strong { color:var(--green); }
.hero__stat span { font-size:.68rem;font-weight:500;color:var(--g3);margin-top:.2rem;display:block; }
.hero__right { position:relative;display:flex;align-items:flex-end; }
.hero__img-wrap { position:relative;width:100%;padding:0 0 3rem 0;margin-top:-3rem; }
.hero__img {
  width:100%;aspect-ratio:3/4;object-fit:cover;
  border-radius:24px 0 0 24px;
  background:radial-gradient(ellipse at 60% 40%,#c06040 0%,#602010 50%,#180808 100%);
  box-shadow:-24px 24px 80px rgba(0,0,0,0.15);
  overflow:hidden;
}
.hero__img img { width:100%;height:100%;object-fit:cover; }
.hero__img--placeholder { height:500px; }
.hero__badge {
  position:absolute;bottom:5rem;left:-2.5rem;
  background:rgba(255,255,255,0.92);backdrop-filter:blur(12px);
  border-radius:16px;padding:1rem 1.4rem;
  box-shadow:0 8px 32px rgba(0,0,0,0.12);
}
.hero__badge-label { font-size:.58rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--g3);margin-bottom:.3rem; }
.hero__badge-val   { font-size:1rem;font-weight:700;letter-spacing:-.03em;color:var(--ink); }
.hero__badge-sub   { font-size:.68rem;color:var(--g3); }

/* ─── SHARED COMPONENTS ──────────────────── */
.btn {
  display:inline-flex;align-items:center;gap:.5rem;
  font-size:.8rem;font-weight:600;
  padding:.8rem 1.8rem;border-radius:100px;
  transition:opacity var(--tr-f),transform .4s var(--ease),box-shadow var(--tr-f);
  letter-spacing:-.01em;
}
.btn--blue { background:var(--blue);color:#fff; }
.btn--blue:hover { opacity:.85;transform:translateY(-2px);box-shadow:0 10px 28px rgba(0,102,204,.3); }
.btn--ghost { border:1.5px solid var(--g1);color:var(--blue); }
.btn--ghost:hover { background:var(--g0);border-color:var(--g2); }

.mix-title { font-size:clamp(2.4rem,5vw,4.5rem);letter-spacing:-.04em;line-height:1.0; }
.mix-title .b { font-weight:800;color:var(--ink); }
.mix-title .l { font-weight:200;color:var(--g3); }
.mix-title .gr { font-weight:800;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }
.mix-title .gr-red    { background:var(--gr-red); }
.mix-title .gr-blue   { background:var(--gr-blue); }
.mix-title .gr-green  { background:var(--gr-green); }
.mix-title .gr-amber  { background:var(--gr-amber); }
.mix-title .gr-violet { background:var(--gr-violet); }

.overline { font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--g3);display:block;margin-bottom:.8rem; }

/* ─── GALERIE ─────────────────────────────── */
.galerie {
  padding:clamp(5rem,10vw,9rem) 0 clamp(5rem,10vw,9rem) clamp(1.5rem,5vw,5rem);
  background:var(--w);overflow:hidden;
}
.galerie__head {
  display:flex;align-items:flex-end;justify-content:space-between;
  margin-bottom:3rem;padding-right:clamp(1.5rem,5vw,5rem);gap:2rem;flex-wrap:wrap;
}
.filtres { display:flex;gap:.4rem;flex-wrap:wrap; }
.filtre {
  font-size:.72rem;font-weight:500;padding:.45rem 1.1rem;border-radius:100px;
  border:1.5px solid var(--g1);color:var(--g3);
  display:flex;align-items:center;gap:.5rem;transition:var(--tr-f);
}
.filtre .d { width:7px;height:7px;border-radius:50%;background:var(--g3); }
.filtre[data-f="tout"]      .d { background:var(--ink); }
.filtre[data-f="huile"]     .d { background:var(--red); }
.filtre[data-f="aquarelle"] .d { background:var(--blue); }
.filtre[data-f="pastel"]    .d { background:var(--green); }
.filtre[data-f="dessin"]    .d { background:var(--amber); }
.filtre:hover { border-color:var(--g2);color:var(--ink);background:var(--g0); }
.filtre.on { background:var(--ink);border-color:var(--ink);color:#fff; }
.filtre.on .d { background:#fff !important; }

.grid-asym {
  display:grid;
  grid-template-columns:2fr 1.2fr 1.5fr 1fr 1.8fr;
  grid-template-rows:440px 320px 380px;
  gap:10px;
}
.card {
  position:relative;overflow:hidden;border-radius:16px;cursor:pointer;
  background:var(--g0);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);
}
.card:hover { transform:translateY(-6px);box-shadow:0 24px 60px rgba(0,0,0,0.12); }
.card:nth-child(1) { grid-column:1;grid-row:1/3; }
.card:nth-child(2) { grid-column:2;grid-row:1; }
.card:nth-child(3) { grid-column:3/5;grid-row:1; }
.card:nth-child(4) { grid-column:5;grid-row:1/3;border-radius:16px 0 0 16px; }
.card:nth-child(5) { grid-column:2/4;grid-row:2; }
.card:nth-child(6) { grid-column:1/3;grid-row:3; }
.card:nth-child(7) { grid-column:3/6;grid-row:3;border-radius:16px 0 0 16px; }

.card__bg {
  position:absolute;inset:0;transition:transform .7s var(--ease);
  background-size:cover;background-position:top center;
}
.card:hover .card__bg { transform:scale(1.06); }
.card:nth-child(1) .card__bg { background-color:#8a2010; }
.card:nth-child(2) .card__bg { background-color:#1050a0; }
.card:nth-child(3) .card__bg { background-color:#1a6828; }
.card:nth-child(4) .card__bg { background-color:#a06800; }
.card:nth-child(5) .card__bg { background-color:#882050; }
.card:nth-child(6) .card__bg { background-color:#285880; }
.card:nth-child(7) .card__bg { background-color:#785010; }

.card__ov {
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.8) 0%,transparent 50%);
  opacity:0;transition:opacity .35s;
  display:flex;flex-direction:column;justify-content:flex-end;padding:1.4rem;
}
.card:hover .card__ov { opacity:1; }
.card__name { font-size:clamp(.9rem,1.5vw,1.15rem);font-weight:700;letter-spacing:-.03em;color:#fff;margin-bottom:.2rem;transform:translateY(8px);transition:transform .35s var(--ease); }
.card:hover .card__name { transform:translateY(0); }
.card__meta { font-size:.6rem;font-weight:400;color:rgba(255,255,255,.5);letter-spacing:.06em;transform:translateY(8px);transition:transform .35s var(--ease) .04s; }
.card:hover .card__meta { transform:translateY(0); }
.card__prix {
  position:absolute;top:.9rem;right:.9rem;
  background:rgba(255,255,255,.95);color:var(--ink);
  font-size:.68rem;font-weight:700;padding:.3rem .85rem;border-radius:100px;
  opacity:0;transform:translateY(-4px);
  transition:opacity .3s,transform .35s var(--ease);
  box-shadow:0 2px 10px rgba(0,0,0,.15);
}
.card:hover .card__prix { opacity:1;transform:translateY(0); }

.galerie__more { padding:2.5rem clamp(1.5rem,5vw,5rem) 0;text-align:center; }
.no-results { padding:2rem;text-align:center;color:var(--g3);font-size:.9rem; }

/* ─── ABOUT ───────────────────────────────── */
.about {
  background:var(--g0);padding:clamp(5rem,10vw,9rem) clamp(1.5rem,5vw,5rem);
  display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(3rem,7vw,8rem);align-items:start;
}
.about__text { padding-top:1rem; }
.about__big-quote {
  font-size:clamp(1.5rem,3vw,2.5rem);font-weight:200;color:var(--g3);line-height:1.4;
  margin:1.8rem 0 2.2rem;padding-left:1.5rem;border-left:3px solid var(--red);
}
.about__big-quote strong { font-weight:800;color:var(--ink); }
.about__body { font-size:.92rem;font-weight:300;color:var(--ink2);line-height:1.85;margin-bottom:1rem; }
.about__stats { display:flex;gap:0;margin-top:2.5rem;border-top:1px solid var(--g1);padding-top:2rem; }
.about__stat { flex:1;padding-right:2rem;border-right:1px solid var(--g1); }
.about__stat:last-child { border-right:none; }
.about__stat strong { display:block;font-size:2.2rem;font-weight:800;letter-spacing:-.05em;line-height:1; }
.about__stat:nth-child(1) strong { color:var(--red); }
.about__stat:nth-child(2) strong { color:var(--blue); }
.about__stat:nth-child(3) strong { color:var(--green); }
.about__stat span { font-size:.68rem;font-weight:500;color:var(--g3);margin-top:.2rem;display:block; }
.about__visual { position:relative;margin-top:-5rem; }
.about__img { width:100%;aspect-ratio:3/4;border-radius:20px;overflow:hidden;background:radial-gradient(ellipse at 60% 40%,#c06040 0%,#602010 50%,#180808 100%);box-shadow:0 32px 80px rgba(0,0,0,0.16); }
.about__img img { width:100%;height:100%;object-fit:cover; }
.about__img-placeholder { width:100%;height:400px;border-radius:20px;background:radial-gradient(ellipse at 60% 40%,#c06040 0%,#602010 50%,#180808 100%); }
.about__widget {
  position:absolute;bottom:2rem;left:-2rem;
  background:rgba(255,255,255,.93);backdrop-filter:blur(12px);
  border-radius:14px;padding:.9rem 1.2rem;box-shadow:0 8px 28px rgba(0,0,0,.1);
}
.about__widget-label { font-size:.58rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--g3);margin-bottom:.3rem; }
.about__widget-val { font-size:1.5rem;font-weight:800;letter-spacing:-.04em;color:var(--blue);line-height:1; }
.about__widget-sub { font-size:.65rem;font-weight:400;color:var(--g3); }

/* ─── TECHNIQUES ──────────────────────────── */
.tech { background:var(--w);padding:clamp(5rem,10vw,9rem) clamp(1.5rem,5vw,5rem); }
.tech__head { margin-bottom:4rem; }
.tech__row { display:grid;grid-template-columns:repeat(4,1fr);align-items:start;gap:1.5rem; }
.tech__card {
  border-radius:20px;padding:2rem;border:1.5px solid var(--g1);cursor:pointer;
  transition:border-color var(--tr-f),transform .5s var(--ease),box-shadow .5s var(--ease);background:var(--w);
}
.tech__card:hover { border-color:var(--g2);transform:translateY(-6px);box-shadow:0 16px 48px rgba(0,0,0,0.07); }
.tech__card:nth-child(1) { margin-top:0; }
.tech__card:nth-child(2) { margin-top:2.5rem; }
.tech__card:nth-child(3) { margin-top:5rem; }
.tech__card:nth-child(4) { margin-top:2.5rem; }
.tech__icon { width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;margin-bottom:1.2rem; }
.tech__card:nth-child(1) .tech__icon { background:rgba(232,57,31,.1); }
.tech__card:nth-child(2) .tech__icon { background:rgba(0,102,204,.1); }
.tech__card:nth-child(3) .tech__icon { background:rgba(26,158,63,.1); }
.tech__card:nth-child(4) .tech__icon { background:rgba(217,119,6,.1); }
.tech__name { font-size:1.1rem;line-height:1.2;margin-bottom:.7rem; }
.tech__name .b { font-weight:800;color:var(--ink); }
.tech__name .l { font-weight:200;color:var(--g3); }
.tech__desc { font-size:.82rem;font-weight:300;color:var(--g3);line-height:1.75; }

/* ─── EXPOSITIONS ─────────────────────────── */
.expos {
  background:var(--g0);padding:clamp(5rem,10vw,9rem) clamp(1.5rem,5vw,5rem);
  display:grid;grid-template-columns:1fr 1.8fr;gap:clamp(3rem,6vw,7rem);align-items:start;
}
.expos__sticky { position:sticky;top:70px; }
.expo-list { display:flex;flex-direction:column;gap:0; }
.expo-item { display:grid;grid-template-columns:5rem 1fr;gap:1.5rem;padding:1.8rem 0;border-bottom:1px solid var(--g1);transition:padding-left var(--tr-f); }
.expo-item:hover { padding-left:.5rem; }
.expo-num { font-size:2rem;font-weight:800;letter-spacing:-.05em;line-height:1;align-self:flex-start; }
.expo-type { font-size:.62rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--g3);margin-bottom:.3rem; }
.expo-titre { font-size:1rem;margin-bottom:.25rem; }
.expo-titre .b { font-weight:700;color:var(--ink); }
.expo-titre .l { font-weight:300;color:var(--g3); }
.expo-lieu { font-size:.78rem;font-weight:300;color:var(--g3); }

/* ─── BLOG ────────────────────────────────── */
section.blog { background:var(--w);padding:clamp(5rem,10vw,9rem) clamp(1.5rem,5vw,5rem); }
.blog__head { display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:3rem;flex-wrap:wrap;gap:2rem; }
.blog__grid { display:grid;grid-template-columns:1.6fr 1fr 1.2fr;gap:1rem;align-items:start; }

.post { background:var(--g0);border-radius:20px;overflow:hidden;cursor:pointer;transition:transform .5s var(--ease),box-shadow .5s var(--ease); }
.post:hover { transform:translateY(-6px);box-shadow:0 20px 56px rgba(0,0,0,.09); }
.post:nth-child(1) { grid-row:span 2; }
.post:nth-child(2) { margin-top:2rem; }
.post:nth-child(4) { margin-top:-1rem; }
.post__img { width:100%;aspect-ratio:16/9;position:relative;overflow:hidden; }
.post:nth-child(1) .post__img { aspect-ratio:4/3; }
.post__img-bg { position:absolute;inset:0;transition:transform .7s var(--ease);background:var(--g1);background-size:cover;background-position:center; }
.post:hover .post__img-bg { transform:scale(1.04); }
.post__cat {
  position:absolute;bottom:.9rem;left:.9rem;
  font-size:.58rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:#fff;background:rgba(0,0,0,.38);padding:.25rem .65rem;border-radius:100px;backdrop-filter:blur(6px);
}
.post__body { padding:1.3rem 1.5rem 1.6rem; }
.post__date { font-size:.65rem;font-weight:500;color:var(--g3);margin-bottom:.4rem; }
.post__titre { font-size:clamp(.95rem,1.4vw,1.1rem);line-height:1.3;margin-bottom:.5rem; }
.post__titre .b { font-weight:700;color:var(--ink); }
.post__titre .l { font-weight:300;color:var(--g3); }
.post__extrait { font-size:.78rem;font-weight:300;color:var(--g3);line-height:1.65;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden; }
.post:nth-child(1) .post__extrait { -webkit-line-clamp:3; }
.post__lire { display:inline-flex;align-items:center;gap:.4rem;font-size:.72rem;font-weight:600;color:var(--blue);margin-top:.8rem;transition:gap var(--tr-f); }
.post:hover .post__lire { gap:.8rem; }

/* ─── CONTACT ─────────────────────────────── */
.contact {
  background:var(--g0);padding:clamp(5rem,10vw,9rem) clamp(1.5rem,5vw,5rem);
  display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(3rem,6vw,7rem);align-items:start;
}
.contact__left { padding-top:1rem; }
.contact__body { font-size:.92rem;font-weight:300;color:var(--g3);line-height:1.85;margin:1.5rem 0 2.5rem; }
.contact__items { display:flex;flex-direction:column;gap:1rem; }
.contact__item { display:flex;align-items:center;gap:1rem;font-size:.85rem;font-weight:400;color:var(--ink2);transition:transform var(--tr-f); }
.contact__item:hover { transform:translateX(4px); }
.contact__ico { width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0; }
.contact__ico.r { background:rgba(232,57,31,.09); }
.contact__ico.b { background:rgba(0,102,204,.09); }
.contact__ico.g { background:rgba(26,158,63,.09); }
.contact__form-wrap { margin-top:3rem; }
.form { background:var(--w);border-radius:22px;padding:2.5rem;box-shadow:0 4px 24px rgba(0,0,0,.06),0 1px 0 rgba(0,0,0,.03); }
.form__title { font-size:1.4rem;line-height:1.15;margin-bottom:1.6rem; }
.form__title .b { font-weight:800;color:var(--ink); }
.form__title .l { font-weight:200;color:var(--g3); }
.form__row { display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin-bottom:.8rem; }
.field { position:relative;margin-bottom:.8rem; }
.field label {
  position:absolute;left:1rem;top:50%;transform:translateY(-50%);
  font-size:.82rem;font-weight:400;color:var(--g3);
  pointer-events:none;background:var(--w);padding:0 .3rem;transition:all .2s ease;
}
.field textarea~label { top:1rem;transform:none; }
.field input:focus~label,.field input:not(:placeholder-shown)~label,
.field textarea:focus~label,.field textarea:not(:placeholder-shown)~label,
.field select:valid~label,.field select:focus~label {
  top:0;transform:translateY(-50%);font-size:.6rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);
}
.field input,.field textarea,.field select {
  width:100%;font-family:var(--f);font-size:.88rem;font-weight:400;color:var(--ink);
  background:var(--g0);border:1.5px solid transparent;border-radius:10px;
  padding:.9rem 1rem;outline:none;transition:border-color .2s,background .2s;
}
.field input:focus,.field textarea:focus { border-color:var(--blue);background:var(--w); }
.field textarea { resize:vertical;min-height:110px; }
.form__submit {
  width:100%;font-family:var(--f);font-size:.82rem;font-weight:700;
  color:#fff;background:var(--blue);padding:1rem;border-radius:12px;margin-top:.5rem;
  transition:opacity var(--tr-f),transform .4s var(--ease),box-shadow var(--tr-f);
}
.form__submit:hover { opacity:.88;transform:translateY(-2px);box-shadow:0 10px 28px rgba(0,102,204,.3); }
.form__feedback { font-size:.8rem;margin-top:.8rem;text-align:center;min-height:1.2em; }
.form__feedback.success { color:var(--green); }
.form__feedback.error   { color:var(--red); }

/* ─── FOOTER ──────────────────────────────── */
.footer { background:var(--ink);padding:5rem clamp(1.5rem,5vw,5rem) 2.5rem; }
.footer__top { display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:4rem;padding-bottom:4rem;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:2rem; }
.footer__logo { font-size:1.4rem;line-height:1.1;margin-bottom:.3rem; }
.footer__logo .b { font-weight:800;color:#fff; }
.footer__logo .l { font-weight:200;color:rgba(255,255,255,.6); }
.footer__sub { font-size:.62rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--red);margin-bottom:1.2rem; }
.footer__desc { font-size:.8rem;font-weight:300;color:rgba(255,255,255,.8);line-height:1.8;max-width:28ch; }
.footer__socials { display:flex;gap:.5rem;margin-top:1.8rem; }
.footer__soc { width:34px;height:34px;border-radius:8px;border:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;font-size:.65rem;color:rgba(255,255,255,.65);transition:var(--tr-f); }
.footer__soc:hover { background:var(--blue);border-color:var(--blue);color:#fff; }
.footer__col-t { font-size:.62rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:1.2rem; }
.footer__links { display:flex;flex-direction:column;gap:.65rem;list-style:none; }
.footer__links a { font-size:.82rem;font-weight:300;color:rgba(255,255,255,.75);transition:color var(--tr-f); }
.footer__links a:hover { color:#fff; }
.footer__bot { display:flex;align-items:center;justify-content:space-between;font-size:.63rem;font-weight:300;color:rgba(255,255,255,.55);flex-wrap:wrap;gap:1rem; }
.footer__bot a { color:rgba(0,102,204,.7); }
.footer__bot a:hover { color:var(--blue); }

/* ─── LIGHTBOX ────────────────────────────── */
.lb {
  position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.88);
  backdrop-filter:blur(16px) saturate(180%);
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transition:opacity .4s;
}
.lb.open { opacity:1;pointer-events:all; }
.lb__close {
  position:absolute;top:1.5rem;right:2rem;width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;
  font-size:1rem;color:rgba(255,255,255,.55);cursor:pointer;transition:background var(--tr-f);
}
.lb__close:hover { background:rgba(255,255,255,.2);color:#fff; }
.lb__inner { display:flex;gap:3rem;align-items:center;max-width:min(90vw,940px);padding:2rem; }
.lb__img { flex-shrink:0;width:min(50vw,480px);height:min(68vh,540px);border-radius:18px;overflow:hidden;background:#111;display:flex;align-items:center;justify-content:center; }
.lb__img>div { width:100%;height:100%;display:flex;align-items:center;justify-content:center; }
.lb__img>div img { max-width:100%;max-height:100%;object-fit:contain;display:block;border-radius:inherit; }
.lb__info { min-width:200px; }
.lb__cat { display:inline-flex;align-items:center;gap:.4rem;font-size:.65rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.35);margin-bottom:1rem; }
.lb__cat-dot { width:6px;height:6px;border-radius:50%; }
.lb__titre { font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.05;margin-bottom:1rem; }
.lb__titre .b { font-weight:800;color:#fff; }
.lb__titre .l { font-weight:200;color:rgba(255,255,255,.4); }
.lb__detail { font-size:.8rem;font-weight:300;color:rgba(255,255,255,.38);line-height:2; }
.lb__prix { font-size:2.2rem;font-weight:800;letter-spacing:-.05em;color:#fff;margin:1.2rem 0; }
.lb__cta { display:inline-flex;align-items:center;gap:.5rem;font-size:.78rem;font-weight:600;color:var(--ink);background:#fff;padding:.75rem 1.8rem;border-radius:100px;transition:opacity var(--tr-f),transform .4s var(--ease); }
.lb__cta:hover { opacity:.9;transform:scale(1.02); }

/* ─── SCROLL REVEAL ───────────────────────── */
.rv { opacity:0;transform:translateY(28px);transition:opacity .75s ease,transform .75s var(--ease); }
.rv.in { opacity:1;transform:translateY(0); }
.rv[data-d="1"] { transition-delay:.1s; }
.rv[data-d="2"] { transition-delay:.2s; }
.rv[data-d="3"] { transition-delay:.3s; }
.rv[data-d="4"] { transition-delay:.45s; }

/* ─── ARCHIVE PAGES ───────────────────────── */
.archive-header {
  padding: calc(64px + 4rem) clamp(1.5rem,5vw,5rem) 3rem;
  background:var(--g0);
}
.archive-grid {
  display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;
  padding:3rem clamp(1.5rem,5vw,5rem);
  grid-auto-rows:380px;
}
.archive-grid .card { height:100%; }

/* ─── SINGLE POST ─────────────────────────── */
.single-content {
  max-width:720px;margin:0 auto;
  padding:calc(64px + 4rem) clamp(1.5rem,5vw,5rem) 6rem;
}

/* ─── RESPONSIVE ──────────────────────────── */
@media(max-width:1200px){
  .grid-asym { grid-template-columns:repeat(3,1fr);grid-template-rows:auto;grid-auto-rows:300px; }
  .card:nth-child(n) { grid-column:span 1;grid-row:auto;border-radius:16px;min-height:300px; }
}
@media(max-width:1000px){
  .hero { grid-template-columns:1fr;min-height:auto;padding-bottom:3rem;padding-top:64px; }
  .hero__left { padding:2rem clamp(1.5rem,5vw,3rem) 1rem; }
  .hero__right { display:none; }
  .about { grid-template-columns:1fr; }
  .about__visual { margin-top:0;max-width:380px; }
  .tech__row { grid-template-columns:1fr 1fr; }
  .tech__card { margin-top:0!important; }
  .blog__grid { grid-template-columns:1fr 1fr; }
  .post:nth-child(1) { grid-row:auto;grid-column:span 2; }
  .post:nth-child(n) { margin-top:0; }
  .contact { grid-template-columns:1fr; }
  .contact__form-wrap { margin-top:0; }
  .expos { grid-template-columns:1fr; }
  .expos__sticky { position:static; }
  .footer__top { grid-template-columns:1fr 1fr;gap:2.5rem; }
}
@media(max-width:768px){
  .nav__links { display:none; }
  .burger { display:flex; }
  .grid-asym { grid-template-columns:1fr 1fr;grid-auto-rows:260px; }
  .card:nth-child(n) { min-height:260px; }
  .blog__grid { grid-template-columns:1fr; }
  .post:nth-child(1) { grid-column:auto; }
  .footer__top { grid-template-columns:1fr;gap:2rem; }
  .lb__inner { flex-direction:column; }
  .lb__img { width:90vw; }
  .form__row { grid-template-columns:1fr; }
  .rv { opacity:1;transform:none;transition:none; }
  article.single-content { display:block !important; }
}
@media(max-width:480px){
  .grid-asym { grid-template-columns:1fr;grid-auto-rows:240px; }
  .card:nth-child(n) { min-height:240px; }
  .tech__row { grid-template-columns:1fr; }
  .about__stats { flex-direction:column;gap:1.5rem; }
  .about__stat { border-right:none;border-bottom:1px solid var(--g1);padding:0 0 1.5rem; }
}

/* ─── ACCESSIBILITY ───────────────────────── */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after { animation-duration:.01ms!important;transition-duration:.01ms!important; }
  .rv { opacity:1;transform:none; }
}
.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0; }

/* ─── PAGINATION ──────────────────────────── */
.nav-links { display:flex;align-items:center;justify-content:center;gap:.5rem;flex-wrap:wrap; }
.page-numbers {
  display:inline-flex;align-items:center;justify-content:center;
  min-width:44px;height:44px;padding:0 .6rem;
  border-radius:12px;font-size:.85rem;font-weight:500;
  color:var(--g3);border:1.5px solid var(--g1);
  transition:var(--tr-f);text-decoration:none;
}
.page-numbers:hover { color:var(--ink);border-color:var(--g2);background:var(--g0); }
.page-numbers.current { background:var(--ink);color:#fff;border-color:var(--ink);font-weight:700; }
.page-numbers.prev,.page-numbers.next {
  font-size:1.1rem;min-width:48px;height:48px;
  background:var(--g0);border-color:var(--g1);color:var(--ink2);
}
.page-numbers.prev:hover,.page-numbers.next:hover { background:var(--ink);color:#fff;border-color:var(--ink); }
.page-numbers.dots { border:none;background:none;pointer-events:none;color:var(--g3);min-width:auto; }

/* ─── ZOOM IMAGE OEUVRE ───────────────────── */
.single-content .wp-post-image { cursor: zoom-in; }
