/* ============================================================
   MALIMBA — Design System v2.0
   Bonapriso · Douala · Cameroun
   ============================================================ */

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

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

:root {
  --gold:       #C9A84C;
  --gold-light: #E8C97A;
  --gold-pale:  #F5E6C2;
  --black:      #0A0A0A;
  --black-mid:  #111111;
  --black-soft: #1A1A1A;
  --black-card: #141414;
  --white:      #FDFAF4;
  --white-muted:#B8B0A0;
  --fd: 'Cormorant Garamond', serif;
  --fb: 'Montserrat', sans-serif;
}

html { scroll-behavior: smooth; }
body { background: var(--black); color: var(--white); font-family: var(--fb); font-weight: 300; overflow-x: hidden; cursor: none; }

/* ---- CURSOR ---- */
.cursor      { width:8px;height:8px;background:var(--gold);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:width .3s,height .3s,background .3s; }
.cursor-ring { width:36px;height:36px;border:1px solid rgba(201,168,76,.5);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);transition:border-color .3s; }
body:has(a:hover) .cursor, body:has(button:hover) .cursor { width:14px;height:14px;background:var(--gold-light); }
body:has(a:hover) .cursor-ring, body:has(button:hover) .cursor-ring { border-color:rgba(201,168,76,.9); }

/* ---- NAV ---- */
nav { position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:1.8rem 5vw;background:linear-gradient(to bottom,rgba(10,10,10,.96) 0%,transparent 100%);transition:background .5s,padding .3s; }
nav.scrolled { background:rgba(10,10,10,.97);border-bottom:1px solid rgba(201,168,76,.15);padding:1.2rem 5vw; }
.nav-logo { font-family:var(--fd);font-size:1.8rem;font-weight:300;letter-spacing:.25em;color:var(--gold);text-decoration:none; }
.nav-links { display:flex;gap:2.5rem;list-style:none; }
.nav-links a { font-size:.7rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--white-muted);text-decoration:none;transition:color .3s;position:relative; }
.nav-links a::after { content:'';position:absolute;bottom:-4px;left:0;right:0;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .3s ease; }
.nav-links a:hover, .nav-links a.active { color:var(--gold); }
.nav-links a:hover::after, .nav-links a.active::after { transform:scaleX(1);transform-origin:left; }
.nav-cta { font-size:.65rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--black);background:var(--gold);padding:.7rem 1.6rem;text-decoration:none;transition:background .3s;border:none;cursor:pointer; }
.nav-cta:hover { background:var(--gold-light); }

/* Hamburger */
.nav-hamburger { display:none;flex-direction:column;gap:5px;background:transparent;border:none;cursor:pointer;padding:4px;z-index:201; }
.nav-hamburger span { display:block;width:24px;height:1.5px;background:var(--gold);transition:transform .3s,opacity .3s; }
.nav-hamburger.open span:nth-child(1) { transform:translateY(6.5px) rotate(45deg); }
.nav-hamburger.open span:nth-child(2) { opacity:0; }
.nav-hamburger.open span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }

/* Mobile menu overlay */
.mobile-menu { position:fixed;inset:0;background:rgba(10,10,10,.98);z-index:150;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;transform:translateX(100%);transition:transform .4s cubic-bezier(.77,0,.18,1);pointer-events:none; }
.mobile-menu.open { transform:translateX(0);pointer-events:all; }
.mobile-menu a { font-family:var(--fd);font-size:2.5rem;font-weight:300;color:var(--white-muted);text-decoration:none;letter-spacing:.08em;transition:color .3s; }
.mobile-menu a:hover, .mobile-menu a.active { color:var(--gold); }
.mobile-menu-sub { display:flex;flex-direction:column;align-items:center;gap:1rem;margin-top:.5rem; }
.mobile-menu-sub a { font-size:1.1rem;letter-spacing:.06em; }
.mobile-divider { width:40px;height:1px;background:rgba(201,168,76,.3); }
.mobile-tel { font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-top:.5rem; }

/* ---- PAGE HERO ---- */
.page-hero { padding:14rem 5vw 6rem;position:relative;overflow:hidden; }
.page-hero-bg { position:absolute;inset:0;background:radial-gradient(ellipse at 30% 60%,rgba(201,168,76,.05) 0%,transparent 60%),var(--black); }
.page-hero-lines { position:absolute;inset:0;background-image:linear-gradient(rgba(201,168,76,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(201,168,76,.03) 1px,transparent 1px);background-size:80px 80px;mask-image:radial-gradient(ellipse at 30% 50%,black 20%,transparent 70%); }
.page-hero-inner { position:relative; }
.breadcrumb { font-size:.6rem;letter-spacing:.25em;text-transform:uppercase;color:var(--white-muted);margin-bottom:1.5rem; }
.breadcrumb a { color:var(--gold);text-decoration:none; }
.breadcrumb span { margin:0 .6rem;color:rgba(184,176,160,.3); }
.page-title { font-family:var(--fd);font-size:clamp(3rem,7vw,7rem);font-weight:300;line-height:1.05;color:var(--white); }
.page-title em { font-style:italic;color:var(--gold); }
.page-lead { font-family:var(--fd);font-style:italic;font-size:clamp(1rem,1.8vw,1.3rem);color:var(--white-muted);margin-top:1.5rem;max-width:600px;line-height:1.6; }
.gold-rule { width:80px;height:1px;background:linear-gradient(to right,var(--gold),transparent);margin:2.5rem 0; }

/* ---- UTILS ---- */
.section-label { font-size:.6rem;font-weight:500;letter-spacing:.35em;text-transform:uppercase;color:var(--gold);margin-bottom:1.2rem; }
.section-title { font-family:var(--fd);font-size:clamp(2.2rem,4.5vw,4rem);font-weight:300;line-height:1.1;color:var(--white); }
.section-title em { font-style:italic;color:var(--gold); }
.section-body { font-size:.85rem;line-height:1.9;color:var(--white-muted);letter-spacing:.03em; }
.btn-primary { display:inline-block;padding:1.1rem 2.5rem;background:var(--gold);color:var(--black);text-decoration:none;font-size:.65rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;border:none;cursor:pointer;transition:background .3s; }
.btn-primary:hover { background:var(--gold-light); }
.btn-secondary { display:inline-block;padding:1.1rem 2.5rem;border:1px solid rgba(201,168,76,.4);color:var(--gold);text-decoration:none;font-size:.65rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;background:transparent;cursor:pointer;transition:border-color .3s,background .3s; }
.btn-secondary:hover { border-color:var(--gold);background:rgba(201,168,76,.05); }

/* ---- CTA BAND ---- */
.cta-band { background:var(--black-soft);border-top:1px solid rgba(201,168,76,.15);border-bottom:1px solid rgba(201,168,76,.15);padding:5rem 5vw;display:flex;align-items:center;justify-content:space-between;gap:3rem; }
.cta-actions { display:flex;flex-direction:column;gap:1rem;min-width:200px; }

/* ---- FOOTER ---- */
footer { background:var(--black-mid);padding:5rem 5vw 3rem;border-top:1px solid rgba(201,168,76,.1); }
.footer-grid { display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:4rem;margin-bottom:4rem; }
.footer-brand .nav-logo { display:block;margin-bottom:1.2rem; }
.footer-tagline { font-family:var(--fd);font-style:italic;font-size:1rem;color:var(--white-muted);line-height:1.6; }
.footer-col h4 { font-size:.6rem;font-weight:500;letter-spacing:.25em;text-transform:uppercase;color:var(--gold);margin-bottom:1.5rem; }
.footer-col ul { list-style:none;display:flex;flex-direction:column;gap:.8rem; }
.footer-col a { font-size:.78rem;color:var(--white-muted);text-decoration:none;letter-spacing:.04em;transition:color .3s; }
.footer-col a:hover { color:var(--gold); }
.footer-contact p { font-size:.78rem;color:var(--white-muted);line-height:1.9; }
.footer-contact a { color:var(--gold);text-decoration:none; }
.footer-bottom { border-top:1px solid rgba(201,168,76,.1);padding-top:2rem;display:flex;justify-content:space-between;align-items:center;font-size:.65rem;color:rgba(184,176,160,.5);letter-spacing:.06em;flex-wrap:wrap;gap:1rem; }
.lang-toggle { display:flex;gap:1.5rem; }
.lang-toggle a { color:rgba(184,176,160,.5);text-decoration:none;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;transition:color .3s; }
.lang-toggle a:hover, .lang-toggle a.active { color:var(--gold); }

/* ---- SCROLL REVEAL ---- */
.reveal { opacity:0;transform:translateY(30px);transition:opacity .9s ease,transform .9s ease; }
.reveal.visible { opacity:1;transform:translateY(0); }
.reveal-delay-1 { transition-delay:.15s; }
.reveal-delay-2 { transition-delay:.3s; }
.reveal-delay-3 { transition-delay:.45s; }

/* ---- SVG ILLUSTRATIONS ---- */
.malimba-img { width:100%;height:100%;object-fit:cover;display:block; }
.img-frame { position:relative;overflow:hidden; }
.img-frame svg { width:100%;height:100%;display:block; }

/* ============================================================
   MOBILE — max-width: 768px
   ============================================================ */
@media (max-width: 768px) {
  body { cursor:auto; }
  .cursor, .cursor-ring { display:none; }

  /* NAV */
  nav { padding:1.1rem 5vw; }
  .nav-logo { font-size:1.5rem; }
  .nav-links, .nav-cta { display:none; }
  .nav-hamburger { display:flex; }

  /* PAGE HERO */
  .page-hero { padding:9rem 6vw 4rem; }
  .page-title { font-size:clamp(2.4rem,10vw,4rem); }
  .page-lead { font-size:clamp(.9rem,3.5vw,1.1rem);margin-top:1rem; }
  .gold-rule { margin:1.5rem 0; }

  /* CTA BAND */
  .cta-band { flex-direction:column;padding:3.5rem 6vw;gap:2rem;align-items:flex-start; }
  .cta-actions { width:100%;min-width:unset; }
  .btn-primary, .btn-secondary { width:100%;text-align:center;padding:.9rem 1rem;display:block; }

  /* FOOTER */
  footer { padding:3rem 6vw 3rem; }
  .footer-grid { grid-template-columns:1fr 1fr;gap:2.5rem;margin-bottom:2rem; }
  .footer-bottom { flex-direction:column;align-items:flex-start;gap:.8rem; }
}

/* ---- LANGUAGE SWITCHER ---- */
.lang-switcher { display:flex;gap:.3rem;align-items:center;margin-right:.8rem; }
.ls-btn { font-size:.58rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--white-muted);text-decoration:none;padding:.3rem .5rem;border:1px solid transparent;transition:color .3s,border-color .3s; }
.ls-btn:hover { color:var(--gold); }
.ls-btn.ls-active { color:var(--gold);border-color:rgba(201,168,76,.35); }

/* Mobile lang in overlay */
.mobile-lang { display:flex;gap:1.5rem;align-items:center; }
.mobile-lang a { font-size:.75rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--white-muted);text-decoration:none;padding:.3rem .6rem;border:1px solid transparent;transition:color .3s,border-color .3s; }
.mobile-lang a:hover,.mobile-lang a.ml-active { color:var(--gold);border-color:rgba(201,168,76,.4); }

@media(max-width:768px) {
  .lang-switcher { display:none; }
  nav { padding:1.1rem 5vw; }
  .nav-logo { font-size:1.5rem; }
  .nav-links, .nav-cta { display:none; }
  .nav-hamburger { display:flex; }
}
