/* ============================================================
   GEOMINES ASSISTANCE SARL — GLOBAL STYLESHEET
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,600;0,700;1,400;1,600&family=DM+Sans:wght@300;400;500;600;700&display=swap');

/* ── TOKENS ── */
:root {
  --c-deep:    #1C0F06;
  --c-brown:   #3E2208;
  --c-mid:     #6B3D14;
  --c-warm:    #9A5C28;
  --c-gold:    #C9981A;
  --c-gold-lt: #E8B830;
  --c-sand:    #F2DEB8;
  --c-sand-lt: #FAF3E7;
  --c-cream:   #FFFCF6;
  --c-white:   #FFFFFF;
  --c-navy:    #162030;
  --c-slate:   #3A4D5C;
  --c-muted:   #7A6A58;
  --c-border:  rgba(62,34,8,.12);
  --c-border2: rgba(62,34,8,.06);

  --ff-display: 'Cormorant Garamond', Georgia, serif;
  --ff-body:    'DM Sans', system-ui, sans-serif;

  --shadow-sm: 0 2px 12px rgba(28,15,6,.07);
  --shadow-md: 0 8px 32px rgba(28,15,6,.10);
  --shadow-lg: 0 20px 60px rgba(28,15,6,.14);

  --radius: 0px;
  --transition: .3s cubic-bezier(.25,.46,.45,.94);
}

/* ── RESET & BASE ── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; }
body {
  font-family: var(--ff-body);
  background: var(--c-cream);
  color: var(--c-deep);
  line-height: 1.6;
  overflow-x: hidden;
}
img { max-width:100%; height:auto; display:block; }
a { text-decoration:none; color:inherit; }

/* ── TYPOGRAPHY ── */
h1,h2,h3,h4 { font-family:var(--ff-display); font-weight:700; line-height:1.1; }
h1 { font-size: clamp(2.8rem, 6vw, 5.5rem); }
h2 { font-size: clamp(2rem, 4vw, 3.2rem); }
h3 { font-size: clamp(1.3rem, 2.5vw, 1.7rem); }

/* ── TOPBAR ── */
.topbar {
  background: var(--c-deep);
  border-bottom: 2px solid var(--c-gold);
  padding: .5rem 0;
  position: fixed; top: 0; width: 100%; z-index: 901;
}
.topbar-inner {
  max-width: 1280px; margin: 0 auto;
  padding: 0 2rem;
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; flex-wrap: wrap;
}
.topbar-items {
  display: flex; align-items: center; gap: 2rem; flex-wrap: wrap;
}
.topbar-item {
  display: inline-flex; align-items: center; gap: .5rem;
  font-size: .72rem; font-weight: 600;
  letter-spacing: .06em;
  color: rgba(242,222,184,.75);
  text-decoration: none;
  transition: color var(--transition);
  white-space: nowrap;
}
.topbar-item i {
  color: var(--c-gold);
  font-size: .85rem;
  flex-shrink: 0;
}
.topbar-item:hover { color: var(--c-gold); }
.topbar-right {
  display: flex; align-items: center; gap: 1rem;
}
.topbar-wa {
  display: inline-flex; align-items: center; gap: .45rem;
  background: var(--c-gold);
  color: var(--c-deep);
  font-size: .68rem; font-weight: 800;
  letter-spacing: .12em; text-transform: uppercase;
  padding: .35rem .9rem;
  text-decoration: none;
  transition: background var(--transition);
}
.topbar-wa:hover { background: var(--c-gold-lt); color: var(--c-deep); }
@media (max-width: 768px) {
  .topbar-items { gap: 1rem; }
  .topbar-item:nth-child(3) { display: none; }
}
@media (max-width: 480px) {
  .topbar-item:nth-child(2) { display: none; }
  .topbar-inner { justify-content: space-between; }
}

/* ── NAVBAR ── */
.navbar {
  background: rgba(255,252,246,.96);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--c-border);
  padding: .75rem 0;
  position: fixed; top: 38px; width:100%; z-index:900;
  transition: box-shadow var(--transition);
}
.navbar.scrolled { box-shadow: var(--shadow-md); }
.nav-inner {
  max-width: 1280px; margin: 0 auto;
  padding: 0 2rem;
  display: flex; align-items:center; justify-content:space-between;
}
.nav-brand { display:flex; align-items:center; gap:.9rem; }
.nav-brand img { height:44px; width:auto; object-fit:contain; }
.nav-brand-text strong {
  font-family: var(--ff-display);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--c-brown);
  display: block;
  line-height:1;
}
.nav-brand-text span {
  font-family: var(--ff-body);
  font-size: .6rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--c-warm);
}
.nav-menu { display:flex; align-items:center; gap:.25rem; list-style:none; }
.nav-menu a {
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--c-mid);
  padding: .55rem 1rem;
  display: block;
  position: relative;
  transition: color var(--transition);
}
.nav-menu a::after {
  content: '';
  position: absolute; bottom:0; left:1rem; right:1rem; height:2px;
  background: var(--c-gold);
  transform: scaleX(0);
  transition: transform var(--transition);
}
.nav-menu a:hover, .nav-menu a.active { color:var(--c-brown); }
.nav-menu a:hover::after, .nav-menu a.active::after { transform:scaleX(1); }
.nav-cta {
  background: var(--c-brown);
  color: var(--c-cream) !important;
  padding: .6rem 1.5rem !important;
  font-size: .78rem !important;
  transition: background var(--transition) !important;
}
.nav-cta::after { display:none !important; }
.nav-cta:hover { background: var(--c-mid) !important; color: #fff !important; }
.nav-toggle {
  display: none;
  flex-direction: column;
  gap:5px; cursor:pointer;
  padding:.4rem;
}
.nav-toggle span {
  width:24px; height:2px;
  background:var(--c-brown);
  transition: var(--transition);
  display:block;
}

/* ── PAGE HEADER ── */
.page-header {
  min-height: 460px;
  display: flex; align-items: flex-end;
  padding: 160px 0 64px;
  position: relative;
  overflow: hidden;
  background: var(--c-brown);
}
.page-header .ph-bg {
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  opacity:.25;
}
.page-header .ph-overlay {
  position:absolute; inset:0;
  background: linear-gradient(135deg, rgba(28,15,6,.9) 0%, rgba(62,34,8,.7) 100%);
}
.page-header .ph-content { position:relative; z-index:2; }
.page-header .ph-eyebrow {
  display:inline-flex; align-items:center; gap:.6rem;
  font-size:.72rem; font-weight:700; letter-spacing:.25em;
  text-transform:uppercase; color:var(--c-gold);
  margin-bottom:1rem;
}
.page-header .ph-eyebrow::before {
  content:''; width:28px; height:2px; background:var(--c-gold);
}
.page-header h1 { color:#fff; margin-bottom:.75rem; }
.page-header p { color:rgba(255,255,255,.65); font-size:1.05rem; max-width:560px; line-height:1.7; }
.ph-breadcrumb {
  display:flex; align-items:center; gap:.5rem;
  margin-top:1.5rem;
  font-size:.78rem; font-weight:600;
  letter-spacing:.06em; text-transform:uppercase;
}
.ph-breadcrumb a { color:rgba(255,255,255,.5); transition:color var(--transition); }
.ph-breadcrumb a:hover { color:var(--c-gold); }
.ph-breadcrumb span { color:var(--c-gold); }
.ph-breadcrumb i { color:rgba(255,255,255,.3); font-size:.7rem; }

/* ── CONTAINER ── */
.container { max-width:1280px; margin:0 auto; padding:0 2rem; }
.container-sm { max-width:900px; margin:0 auto; padding:0 2rem; }

/* ── SECTION COMMONS ── */
.section { padding: 96px 0; }
.section-sm { padding: 64px 0; }
.section-bg-sand { background: var(--c-sand-lt); }
.section-bg-dark { background: var(--c-brown); }
.section-bg-white { background: var(--c-white); }

.label {
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.7rem; font-weight:700; letter-spacing:.25em;
  text-transform:uppercase; color:var(--c-gold);
  margin-bottom:.8rem;
}
.label::before { content:''; width:22px; height:2px; background:var(--c-gold); }
.section-title { color:var(--c-brown); margin-bottom:1rem; }
.section-title-white { color:#fff; }
.divider { width:48px; height:3px; background:var(--c-gold); margin:.75rem 0 1.75rem; }
.divider-center { margin-left:auto; margin-right:auto; }
.lead { font-size:1.05rem; color:var(--c-muted); line-height:1.75; font-weight:400; }

/* ── BUTTONS ── */
.btn {
  display:inline-flex; align-items:center; gap:.6rem;
  font-family:var(--ff-body);
  font-size:.82rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase;
  padding:1rem 2.2rem;
  border:none; cursor:pointer;
  transition: all var(--transition);
  text-decoration:none;
}
.btn-primary {
  background:var(--c-brown);
  color:#fff;
}
.btn-primary:hover { background:var(--c-mid); color:#fff; transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn-gold {
  background:var(--c-gold);
  color:var(--c-deep);
}
.btn-gold:hover { background:var(--c-gold-lt); color:var(--c-deep); transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn-outline {
  background:transparent;
  color:var(--c-brown);
  border:2px solid var(--c-brown);
  padding:.9rem 2rem;
}
.btn-outline:hover { background:var(--c-brown); color:#fff; transform:translateY(-2px); }
.btn-outline-white {
  background:transparent;
  color:#fff;
  border:2px solid rgba(255,255,255,.5);
  padding:.9rem 2rem;
}
.btn-outline-white:hover { background:#fff; color:var(--c-brown); }
.btn-sm { padding:.65rem 1.4rem; font-size:.76rem; }

/* ── CARDS ── */
.card {
  background:#fff;
  border:1px solid var(--c-border);
  border-top:4px solid transparent;
  padding:2rem;
  height:100%;
  transition: border-top-color var(--transition), box-shadow var(--transition), transform var(--transition);
}
.card:hover { border-top-color:var(--c-gold); box-shadow:var(--shadow-lg); transform:translateY(-5px); }
.card-icon {
  width:54px; height:54px;
  background:var(--c-sand);
  display:flex; align-items:center; justify-content:center;
  font-size:1.4rem; color:var(--c-warm);
  margin-bottom:1.25rem;
  transition: background var(--transition), color var(--transition);
}
.card:hover .card-icon { background:var(--c-gold); color:var(--c-deep); }
.card h3 {
  font-family:var(--ff-body);
  font-size:.9rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.07em;
  color:var(--c-brown); margin-bottom:.75rem;
}
.card p { color:var(--c-muted); font-size:.9rem; line-height:1.7; }
.card-list { list-style:none; margin-top:1rem; padding:0; }
.card-list li {
  color:var(--c-muted); font-size:.84rem;
  padding:.32rem 0;
  border-bottom:1px solid var(--c-border2);
  display:flex; align-items:flex-start; gap:.5rem;
}
.card-list li:last-child { border:none; }
.card-list li::before { content:'◆'; color:var(--c-gold); font-size:.5rem; margin-top:5px; flex-shrink:0; }

/* ── STATS ROW ── */
.stats-row {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border:1px solid var(--c-border);
}
.stat-item {
  padding:2.5rem 2rem;
  border-right:1px solid var(--c-border);
  text-align:center;
}
.stat-item:last-child { border-right:none; }
.stat-num {
  font-family:var(--ff-display);
  font-size:3.2rem; font-weight:700;
  color:var(--c-gold);
  line-height:1;
  display:block;
}
.stat-label {
  font-size:.72rem; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--c-muted); margin-top:.4rem;
}

/* ── QUOTE ── */
.quote-block {
  background:var(--c-sand);
  border-left:5px solid var(--c-gold);
  padding:2rem 2.5rem;
}
.quote-block p {
  font-family:var(--ff-display);
  font-size:1.3rem; font-style:italic;
  color:var(--c-brown); line-height:1.65;
}
.quote-block cite {
  display:block; margin-top:.9rem;
  font-family:var(--ff-body); font-style:normal;
  font-size:.75rem; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--c-warm);
}

/* ── RUNNING BAND ── */
.band {
  background:var(--c-deep);
  padding:1.1rem 0;
  overflow:hidden;
}
.band-track {
  display:flex; gap:3rem; align-items:center;
  animation:marquee 26s linear infinite;
  white-space:nowrap;
}
@keyframes marquee { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.band-item {
  font-size:.72rem; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase;
  color:rgba(242,222,184,.7);
  display:inline-flex; align-items:center; gap:.65rem;
  flex-shrink:0;
}
.band-item i { color:var(--c-gold); font-size:.9rem; }

/* ── FOOTER ── */
.footer {
  background:var(--c-deep);
  padding:64px 0 0;
}
.footer-grid {
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1fr;
  gap:3rem;
  padding-bottom:48px;
  border-bottom:1px solid rgba(255,255,255,.07);
}
.footer-logo-img { height:52px; filter:brightness(0) invert(1); opacity:.8; margin-bottom:1rem; }
.footer-brand-name {
  font-family:var(--ff-display);
  font-size:1.4rem; color:#fff; font-weight:700;
  margin-bottom:.25rem;
}
.footer-brand-sub {
  font-size:.65rem; font-weight:700;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--c-gold);
}
.footer-about { color:rgba(255,255,255,.45); font-size:.88rem; line-height:1.7; margin-top:1rem; }
.footer-col h5 {
  font-family:var(--ff-body);
  font-size:.72rem; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--c-gold); margin-bottom:1.25rem;
}
.footer-links { list-style:none; }
.footer-links li { margin-bottom:.6rem; }
.footer-links a {
  color:rgba(255,255,255,.45);
  font-size:.88rem; font-weight:500;
  transition:color var(--transition);
  display:inline-flex; align-items:center; gap:.4rem;
}
.footer-links a:hover { color:var(--c-gold); }
.footer-links a i { font-size:.7rem; }
.footer-contact-item {
  display:flex; align-items:flex-start; gap:.75rem;
  margin-bottom:.9rem;
}
.footer-contact-item i { color:var(--c-gold); margin-top:3px; flex-shrink:0; }
.footer-contact-item span { color:rgba(255,255,255,.45); font-size:.86rem; line-height:1.5; }
.footer-bottom {
  padding:1.5rem 0;
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:1rem;
}
.footer-bottom p { color:rgba(255,255,255,.25); font-size:.78rem; }
.footer-social { display:flex; gap:.75rem; }
.footer-social a {
  width:36px; height:36px;
  background:rgba(255,255,255,.06);
  display:flex; align-items:center; justify-content:center;
  color:rgba(255,255,255,.4);
  font-size:.95rem;
  transition: background var(--transition), color var(--transition);
}
.footer-social a:hover { background:var(--c-gold); color:var(--c-deep); }

/* ── REVEAL ANIMATION ── */
.reveal { opacity:0; transform:translateY(30px); transition:opacity .7s ease, transform .7s ease; }
.reveal.delay-1 { transition-delay:.1s; }
.reveal.delay-2 { transition-delay:.2s; }
.reveal.delay-3 { transition-delay:.3s; }
.reveal.delay-4 { transition-delay:.4s; }
.reveal.in { opacity:1; transform:none; }

/* ── GALLERY ── */
.gal-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-auto-rows:220px;
  gap:8px;
}
.gal-item { overflow:hidden; position:relative; cursor:pointer; }
.gal-item.tall { grid-row:span 2; }
.gal-item.wide { grid-column:span 2; }
.gal-item img { width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.gal-item:hover img { transform:scale(1.07); }
.gal-overlay {
  position:absolute; inset:0;
  background:rgba(28,15,6,0);
  transition:background var(--transition);
  display:flex; align-items:center; justify-content:center;
}
.gal-overlay span {
  background:var(--c-gold); color:var(--c-deep);
  width:46px; height:46px;
  display:flex; align-items:center; justify-content:center;
  font-size:1.1rem;
  opacity:0; transform:scale(.5);
  transition:opacity var(--transition), transform var(--transition);
}
.gal-item:hover .gal-overlay { background:rgba(28,15,6,.5); }
.gal-item:hover .gal-overlay span { opacity:1; transform:scale(1); }
.gal-caption {
  position:absolute; bottom:0; left:0; right:0;
  background:linear-gradient(to top, rgba(28,15,6,.8) 0%, transparent 100%);
  padding:1.5rem 1rem .75rem;
  color:#fff; font-size:.78rem; font-weight:600;
  letter-spacing:.06em; text-transform:uppercase;
  opacity:0; transform:translateY(8px);
  transition:opacity var(--transition), transform var(--transition);
}
.gal-item:hover .gal-caption { opacity:1; transform:none; }

/* ── LIGHTBOX ── */
.lightbox {
  display:none; position:fixed; inset:0;
  background:rgba(15,8,3,.97); z-index:9999;
  align-items:center; justify-content:center;
}
.lightbox.open { display:flex; }
.lb-img { max-width:90vw; max-height:86vh; object-fit:contain; }
.lb-close {
  position:absolute; top:1.5rem; right:2rem;
  color:#fff; font-size:2.2rem; cursor:pointer;
  line-height:1; transition:color var(--transition);
}
.lb-close:hover { color:var(--c-gold); }
.lb-prev, .lb-next {
  position:absolute; top:50%; transform:translateY(-50%);
  background:rgba(255,255,255,.08);
  color:#fff; font-size:1.5rem;
  width:50px; height:50px;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  transition:background var(--transition);
}
.lb-prev { left:1rem; }
.lb-next { right:1rem; }
.lb-prev:hover, .lb-next:hover { background:var(--c-gold); color:var(--c-deep); }
.lb-counter {
  position:absolute; bottom:1.5rem; left:50%;
  transform:translateX(-50%);
  color:rgba(255,255,255,.5); font-size:.8rem;
  font-weight:600; letter-spacing:.12em;
}

/* ── CONTACT ── */
.contact-info-item {
  display:flex; align-items:flex-start; gap:1.2rem;
  padding:1.4rem 0;
  border-bottom:1px solid var(--c-border2);
}
.contact-info-item:last-child { border:none; }
.c-ico {
  width:48px; height:48px; min-width:48px;
  background:var(--c-sand);
  display:flex; align-items:center; justify-content:center;
  font-size:1.15rem; color:var(--c-warm);
  flex-shrink:0;
  transition:background var(--transition), color var(--transition);
}
.contact-info-item:hover .c-ico { background:var(--c-gold); color:var(--c-deep); }
.c-lbl { font-size:.68rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--c-muted); }
.c-val { font-size:1rem; font-weight:600; color:var(--c-brown); margin-top:.15rem; }
.c-val a { color:var(--c-brown); transition:color var(--transition); }
.c-val a:hover { color:var(--c-gold); }

/* ── TIMELINE ── */
.timeline { position:relative; padding-left:2.5rem; }
.timeline::before {
  content:''; position:absolute;
  left:.6rem; top:0; bottom:0;
  width:2px; background:var(--c-border);
}
.tl-item { position:relative; margin-bottom:2.5rem; }
.tl-dot {
  position:absolute; left:-2.5rem; top:.2rem;
  width:14px; height:14px;
  background:var(--c-gold);
  border:3px solid var(--c-cream);
  box-shadow:0 0 0 2px var(--c-gold);
  border-radius:50%;
}
.tl-year {
  font-size:.72rem; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--c-gold); margin-bottom:.35rem;
}
.tl-item h4 {
  font-family:var(--ff-body);
  font-size:.95rem; font-weight:700;
  color:var(--c-brown); margin-bottom:.4rem;
}
.tl-item p { color:var(--c-muted); font-size:.88rem; line-height:1.6; }

/* ── TEAM CARD ── */
.team-card { background:#fff; border:1px solid var(--c-border); overflow:hidden; }
.team-img { height:300px; overflow:hidden; }
.team-img img { width:100%; height:100%; object-fit:cover; object-position:top; transition:transform .5s ease; }
.team-card:hover .team-img img { transform:scale(1.05); }
.team-info { padding:1.5rem; }
.team-info h3 { font-family:var(--ff-display); font-size:1.4rem; color:var(--c-brown); margin-bottom:.25rem; }
.team-info .role { font-size:.72rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--c-gold); margin-bottom:.75rem; }
.team-info p { color:var(--c-muted); font-size:.88rem; line-height:1.6; }

/* ── PROCESS STEPS ── */
.process-step {
  display:flex; gap:1.5rem;
  padding:1.75rem 0;
  border-bottom:1px solid var(--c-border2);
}
.process-step:last-child { border:none; }
.step-num {
  font-family:var(--ff-display);
  font-size:3.5rem; font-weight:700;
  color:rgba(201,152,26,.2); line-height:1;
  min-width:60px; flex-shrink:0;
  transition:color var(--transition);
}
.process-step:hover .step-num { color:var(--c-gold); }
.step-content h4 {
  font-family:var(--ff-body);
  font-size:.9rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.09em;
  color:var(--c-brown); margin-bottom:.4rem;
}
.step-content p { color:var(--c-muted); font-size:.88rem; line-height:1.6; }

/* ── PARTNER BADGE ── */
.partner-wrap {
  background:#fff;
  border:2px solid var(--c-gold);
  padding:1.5rem 2rem;
  display:inline-flex; align-items:center; gap:1.25rem;
}
.partner-wrap i { font-size:2rem; color:var(--c-gold); }
.partner-wrap .ptxt span { font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--c-muted); display:block; }
.partner-wrap .ptxt strong { font-size:1rem; color:var(--c-brown); display:block; margin-top:.2rem; }

/* ── FORM ── */
.form-field { margin-bottom:1.25rem; }
.form-field label {
  display:block; font-size:.72rem; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--c-warm); margin-bottom:.5rem;
}
.form-field input,
.form-field textarea,
.form-field select {
  width:100%; padding:.85rem 1rem;
  border:1px solid var(--c-border);
  background:#fff;
  font-family:var(--ff-body); font-size:.92rem;
  color:var(--c-deep);
  outline:none;
  transition:border-color var(--transition), box-shadow var(--transition);
  appearance:none;
}
.form-field input:focus,
.form-field textarea:focus,
.form-field select:focus {
  border-color:var(--c-gold);
  box-shadow:0 0 0 3px rgba(201,152,26,.12);
}
.form-field textarea { resize:vertical; min-height:130px; }


/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE — MOBILE FIRST OVERRIDES
   ═══════════════════════════════════════════════════════════════ */

/* ── UTILITY: responsive grids used across views ── */
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem; }
.grid-hero { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.grid-sticky { display:grid; grid-template-columns:1fr 2fr; gap:4rem; align-items:start; }
.grid-contact { display:grid; grid-template-columns:1fr 1.4fr; gap:5rem; align-items:start; }
.flex-between { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1.5rem; }
.flex-cta { display:grid; grid-template-columns:1fr auto; align-items:center; gap:3rem; }

/* ── TOPBAR ── */
@media (max-width:900px) {
  .topbar-item:nth-child(2) { display:none; }
}
@media (max-width:600px) {
  .topbar-item:nth-child(3) { display:none; }
  .topbar-inner { justify-content:space-between; }
}

/* ── NAVBAR ── */
.nav-toggle { display:none; }
@media (max-width:900px) {
  .topbar { position:fixed; top:0; z-index:902; }
  .navbar { top:38px; }
  .nav-menu {
    display:none; flex-direction:column;
    position:absolute; top:100%; left:0; right:0;
    background:rgba(255,252,246,.98);
    padding:.75rem; border-bottom:2px solid var(--c-gold);
    box-shadow:var(--shadow-md);
  }
  .nav-menu.open { display:flex; }
  .nav-menu a { padding:.75rem 1.25rem; border-radius:0; }
  .nav-toggle { display:flex; }
  .nav-cta { margin:.4rem 1.25rem; text-align:center; justify-content:center; }
}

/* ── HERO CAROUSEL ── */
@media (max-width:768px) {
  .hc-content { padding-top:140px; padding-bottom:120px; }
  .hc-content h1 { font-size:2.4rem; }
  .hc-content p { font-size:.9rem; }
  .hc-prev { left:.75rem; }
  .hc-next { right:.75rem; }
  .hc-arrow { width:40px; height:40px; font-size:1rem; }
  .hc-counter { display:none; }
  .hc-dots { bottom:2rem; }
}
@media (max-width:480px) {
  .hc-content h1 { font-size:1.9rem; }
  .hc-btns { flex-direction:column; }
  .hc-btns .btn { justify-content:center; }
}

/* ── PAGE HEADER ── */
@media (max-width:900px) {
  .page-header { min-height:360px; padding:130px 0 48px; }
  .page-header h1 { font-size:2.2rem; }
}
@media (max-width:600px) {
  .page-header { min-height:300px; padding:120px 0 40px; }
  .page-header h1 { font-size:1.8rem; }
  .page-header p { font-size:.9rem; }
}

/* ── SECTIONS ── */
section { padding:72px 0; }
@media (max-width:768px) {
  section { padding:56px 0; }
}
@media (max-width:480px) {
  section { padding:48px 0; }
}

/* ── CONTAINER ── */
.container { max-width:1280px; margin:0 auto; padding:0 2rem; }
.container-sm { max-width:900px; margin:0 auto; padding:0 2rem; }
@media (max-width:600px) {
  .container, .container-sm { padding:0 1.25rem; }
}

/* ── STATS ROW ── */
.stats-row { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--c-border); }
@media (max-width:900px) {
  .stats-row { grid-template-columns:repeat(2,1fr); }
  .stats-row .stat-item:nth-child(2) { border-right:none; }
  .stats-row .stat-item:nth-child(3) { border-top:1px solid var(--c-border); }
  .stats-row .stat-item:nth-child(4) { border-top:1px solid var(--c-border); border-right:none; }
}
@media (max-width:480px) {
  .stats-row { grid-template-columns:1fr 1fr; }
  .stat-item { padding:1.5rem 1rem; }
  .stat-num { font-size:2.4rem; }
}

/* ── GALLERY ── */
.gal-grid { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:220px; gap:8px; }
@media (max-width:1000px) {
  .gal-grid { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:700px) {
  .gal-grid { grid-template-columns:repeat(2,1fr); grid-auto-rows:180px; }
  .gal-item.wide { grid-column:span 1; }
  .gal-item.tall { grid-row:span 1; }
}
@media (max-width:430px) {
  .gal-grid { grid-template-columns:1fr 1fr; grid-auto-rows:150px; }
}

/* ── FOOTER ── */
.footer-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:3rem; padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,.07); }
@media (max-width:1100px) {
  .footer-grid { grid-template-columns:1fr 1fr; gap:2rem; }
}
@media (max-width:600px) {
  .footer-grid { grid-template-columns:1fr; gap:1.5rem; }
  .footer-bottom { flex-direction:column; text-align:center; gap:.75rem; }
}

/* ── INLINE GRID OVERRIDES FOR VIEWS ── */
/* All 2-col grids in views → stack on tablet/mobile */
@media (max-width:900px) {
  /* Hero / About / Services alternating grids */
  [style*="grid-template-columns:1fr 1fr"],
  [style*="grid-template-columns: 1fr 1fr"] {
    grid-template-columns: 1fr !important;
    gap: 2.5rem !important;
  }
  [style*="grid-template-columns:1fr 2fr"],
  [style*="grid-template-columns: 1fr 2fr"] {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
  }
  [style*="grid-template-columns:1fr 1.4fr"],
  [style*="grid-template-columns: 1fr 1.4fr"] {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
  }
  [style*="grid-template-columns:1fr auto"],
  [style*="grid-template-columns: 1fr auto"] {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
  }
  /* sticky sidebar collapses */
  [style*="position:sticky"] { position:relative !important; top:auto !important; }
  /* Frame decorations */
  [style*="position:absolute"][style*="border:4px solid"] { display:none !important; }
  [style*="position:absolute"][style*="background:var(--c-sand)"] { display:none !important; }
}

/* 3-col value grids → 2 col on tablet, 1 col on mobile */
@media (max-width:900px) {
  [style*="grid-template-columns:repeat(3,1fr)"],
  [style*="grid-template-columns: repeat(3,1fr)"],
  [style*="grid-template-columns:repeat(3, 1fr)"] {
    grid-template-columns: repeat(2,1fr) !important;
    gap: 1rem !important;
  }
}
@media (max-width:500px) {
  [style*="grid-template-columns:repeat(3,1fr)"],
  [style*="grid-template-columns: repeat(3,1fr)"],
  [style*="grid-template-columns:repeat(3, 1fr)"] {
    grid-template-columns: 1fr !important;
  }
}

/* Service cards 2-col → 1 col on mobile */
@media (max-width:600px) {
  [style*="grid-template-columns:1fr 1fr"][style*="gap:1.25rem"] {
    grid-template-columns: 1fr !important;
  }
}

/* Gerant image full width on mobile */
@media (max-width:900px) {
  [style*="height:520px"],
  [style*="height:540px"],
  [style*="height:480px"] {
    height:320px !important;
  }
  [style*="height:420px"] { height:280px !important; }
}

/* Contact / Footer flex rows → column */
@media (max-width:768px) {
  [style*="display:flex"][style*="justify-content:space-between"] {
    flex-direction:column;
    align-items:flex-start !important;
    gap:1.5rem !important;
  }
}

/* CTA 1fr auto → 1fr */
@media (max-width:768px) {
  [style*="grid-columns:1fr auto"] { grid-template-columns:1fr !important; }
  .btn { width:100%; justify-content:center; }
  .btn + .btn { margin-top:.5rem; }
}

/* Quote box */
@media (max-width:600px) {
  .quote-block { padding:1.25rem 1.25rem; }
  .quote-block p { font-size:.95rem; }
}

/* Timeline */
@media (max-width:600px) {
  .timeline { padding-left:1.75rem; }
}

/* Band */
@media (max-width:480px) {
  .band-item { font-size:.65rem; gap:.5rem; }
}

/* Topbar on mobile: stack */
@media (max-width:480px) {
  .topbar-item:nth-child(n+2) { display:none; }
  .topbar-right .topbar-wa { font-size:.68rem; }
}

/* ── ADMIN RESPONSIVE ── */
@media (max-width:768px) {
  :root { --sidebar-w:0px; }
  .adm-sidebar {
    position:fixed; top:0; left:0;
    transform:translateX(-100%);
    transition:transform .3s ease;
    z-index:1100; width:260px;
  }
  .adm-sidebar.open { transform:translateX(0); }
  .adm-main { margin-left:0; }
  .adm-topbar { left:0; padding:0 1rem; }
  .adm-content { padding:1rem; }
  .adm-topbar .adm-menu-toggle {
    display:flex; align-items:center; justify-content:center;
    width:36px; height:36px; cursor:pointer;
    background:none; border:none; font-size:1.4rem; color:var(--brown);
  }
  /* Admin overlay */
  .adm-overlay {
    display:none; position:fixed; inset:0;
    background:rgba(0,0,0,.5); z-index:1099;
  }
  .adm-overlay.open { display:block; }
}
@media (max-width:480px) {
  .row.g-3 > [class*="col-xl-3"] { flex:0 0 50%; max-width:50%; }
  .adm-table { font-size:.8rem; }
  .adm-table td, .adm-table th { padding:.5rem .6rem; }
  .btn-gold-adm, .btn-outline-adm, .btn-danger-adm { font-size:.72rem; padding:.4rem .7rem; }
}

/* ── ABOUT VALEURS 3-col ── */
@media (max-width:900px) {
  .valeurs-grid { grid-template-columns:repeat(2,1fr) !important; }
}
@media (max-width:500px) {
  .valeurs-grid { grid-template-columns:1fr !important; }
}

/* ── TYPOGRAPHY ── */
@media (max-width:600px) {
  h1 { font-size:2.2rem; }
  h2 { font-size:1.75rem; }
  .section-title { font-size:1.75rem; }
  .lead { font-size:.95rem; }
  .label { font-size:.65rem; }
  .stat-num { font-size:2.2rem; }
}


/* ── HERO CAROUSEL ── */
#hero-carousel{background:var(--c-deep);}
.hc-slides{position:absolute;inset:0;}
.hc-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.1s cubic-bezier(.4,0,.2,1),transform 1.1s cubic-bezier(.4,0,.2,1);transform:scale(1.04);}
.hc-slide.active{opacity:1;transform:scale(1);}
.hc-slide.exit{opacity:0;transform:scale(.97);}
.hc-overlay{position:absolute;inset:0;background:linear-gradient(105deg,rgba(28,15,6,.88) 0%,rgba(28,15,6,.65) 55%,rgba(28,15,6,.25) 100%);}
.hc-content{position:relative;z-index:5;display:flex;flex-direction:column;justify-content:center;height:100vh;padding-top:120px;padding-bottom:80px;max-width:700px;}
.hc-eyebrow{display:inline-flex;align-items:center;gap:.6rem;font-size:.7rem;font-weight:700;letter-spacing:.25em;text-transform:uppercase;color:rgba(242,222,184,.8);background:rgba(255,255,255,.07);border:1px solid rgba(201,152,26,.35);padding:.45rem 1.1rem;margin-bottom:1.5rem;backdrop-filter:blur(6px);width:fit-content;opacity:0;transform:translateY(20px);transition:opacity .6s ease .2s,transform .6s ease .2s;}
.hc-slide.active .hc-eyebrow{opacity:1;transform:none;}
.hc-dot{width:6px;height:6px;background:var(--c-gold);border-radius:50%;display:inline-block;flex-shrink:0;}
.hc-content h1{font-size:clamp(2.8rem,6vw,5.5rem);color:#fff;line-height:1.0;margin-bottom:1.25rem;opacity:0;transform:translateY(28px);transition:opacity .7s ease .4s,transform .7s ease .4s;}
.hc-slide.active .hc-content h1{opacity:1;transform:none;}
.hc-content h1 em{color:var(--c-gold);font-style:normal;display:block;}
.hc-content p{font-size:1.02rem;color:rgba(255,255,255,.72);line-height:1.75;max-width:520px;margin-bottom:2.5rem;opacity:0;transform:translateY(24px);transition:opacity .7s ease .6s,transform .7s ease .6s;}
.hc-slide.active .hc-content p{opacity:1;transform:none;}
.hc-btns{display:flex;gap:1rem;flex-wrap:wrap;opacity:0;transform:translateY(20px);transition:opacity .6s ease .8s,transform .6s ease .8s;}
.hc-slide.active .hc-btns{opacity:1;transform:none;}
.hc-arrow{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;z-index:20;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:#fff;font-size:1.3rem;display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(6px);transition:background .25s,border-color .25s,transform .25s;}
.hc-arrow:hover{background:var(--c-gold);border-color:var(--c-gold);color:var(--c-deep);transform:translateY(-50%) scale(1.08);}
.hc-prev{left:1.5rem;}.hc-next{right:1.5rem;}
.hc-dots{position:absolute;bottom:3rem;left:50%;transform:translateX(-50%);display:flex;gap:.6rem;z-index:20;}
.hc-dot-btn{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.3);border:none;cursor:pointer;transition:background .3s,width .3s,border-radius .3s;padding:0;}
.hc-dot-btn.active{background:var(--c-gold);width:28px;border-radius:5px;}
.hc-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:rgba(255,255,255,.12);z-index:20;}
.hc-progress-bar{height:100%;width:0%;background:var(--c-gold);transition:width linear;}
.hc-counter{position:absolute;bottom:2.85rem;right:2rem;font-family:var(--ff-display);font-size:1rem;color:rgba(255,255,255,.45);z-index:20;letter-spacing:.1em;}
.hc-counter #hc-cur{color:var(--c-gold);font-size:1.4rem;}
.hc-sep{margin:0 .2rem;}

/* ── RESPONSIVE GRID UTILITY CLASSES (used in views) ── */
.resp-grid-hero    { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.resp-grid-sticky  { display:grid; grid-template-columns:1fr 2fr; gap:4rem; align-items:start; }
.resp-grid-contact { display:grid; grid-template-columns:1fr 1.4fr; gap:5rem; align-items:start; }
.resp-grid-cta     { display:grid; grid-template-columns:1fr auto; align-items:center; gap:3rem; }
.resp-grid-3       { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.resp-flex-between { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:1.5rem; }
.resp-flex-center  { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }

@media (max-width:960px) {
  .resp-grid-hero    { grid-template-columns:1fr; gap:2.5rem; }
  .resp-grid-sticky  { grid-template-columns:1fr; gap:2rem; }
  .resp-grid-contact { grid-template-columns:1fr; gap:2rem; }
  .resp-grid-cta     { grid-template-columns:1fr; }
  .resp-grid-3       { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:540px) {
  .resp-grid-3 { grid-template-columns:1fr; }
  .resp-flex-between { flex-direction:column; align-items:flex-start; }
  .resp-grid-cta > div:last-child { display:flex; flex-direction:column; gap:.75rem; width:100%; }
  .resp-grid-cta .btn { width:100%; }
}

/* ── IMAGE HEIGHT RESPONSIVE ── */
@media (max-width:960px) {
  img[style*="height:520px"] { height:340px !important; }
  img[style*="height:540px"] { height:340px !important; }
  img[style*="height:480px"] { height:300px !important; }
  img[style*="height:420px"] { height:280px !important; }
  img[style*="height:320px"] { height:240px !important; }
  /* decorative frame lines */
  div[style*="border:4px solid var(--c-gold)"] { display:none !important; }
  div[style*="background:var(--c-sand)"][style*="position:absolute"] { display:none !important; }
}

/* ── BUTTONS FULL WIDTH ON SMALL SCREENS ── */
@media (max-width:480px) {
  .btn { width:100%; justify-content:center; }
  .hc-btns { flex-direction:column; }
  .hc-btns .btn { width:auto; }
}

/* ── PROCESS STEPS ── */
@media (max-width:600px) {
  .process-step { flex-direction:column; gap:.5rem; }
  .step-num { font-size:2.5rem; }
}

/* ── QUOTE BLOCK ── */
@media (max-width:600px) {
  .quote-block { padding:1.2rem 1.25rem; }
  .quote-block p { font-size:.95rem; }
}

/* ── PARTNER SECTION ── */
@media (max-width:768px) {
  [style*="display:flex"][style*="align-items:center"][style*="justify-content:space-between"] {
    flex-direction:column !important;
    align-items:flex-start !important;
  }
}

/* ── GALERIE FULL GRID (galerie.php) ── */
@media (max-width:768px) {
  [style*="grid-template-columns:repeat(3,1fr)"][style*="gap:10px"] {
    grid-template-columns:repeat(2,1fr) !important;
  }
  [class*="feature"][style*="height:380px"] { height:200px !important; }
  [class*="feature"][style*="height:260px"] { height:200px !important; }
  div.gal-item[style*="height:260px"] { height:170px !important; }
}
@media (max-width:480px) {
  [style*="grid-template-columns:repeat(3,1fr)"][style*="gap:10px"] {
    grid-template-columns:1fr 1fr !important;
  }
}

/* ── STATS BAND (contact page) ── */
@media (max-width:600px) {
  [style*="display:flex"][style*="gap:3rem"][style*="flex-wrap:wrap"] {
    gap:1.5rem !important;
  }
}

/* ── GALERIE PAGE GRID ── */
.resp-gal-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
}
.resp-gal-grid .gal-item { height:260px; overflow:hidden; position:relative; cursor:pointer; }
.resp-gal-grid .gal-item.wide { grid-column:span 2; height:380px; }
@media (max-width:900px) {
  .resp-gal-grid { grid-template-columns:repeat(2,1fr); }
  .resp-gal-grid .gal-item.wide { grid-column:span 2; height:260px; }
  .resp-gal-grid .gal-item { height:200px; }
}
@media (max-width:540px) {
  .resp-gal-grid { grid-template-columns:1fr 1fr; gap:6px; }
  .resp-gal-grid .gal-item.wide { grid-column:span 2; height:200px; }
  .resp-gal-grid .gal-item { height:160px; }
}
