/* =========================================================
   Naruka Law Associates — Mobile-first CSS (Home & About)
   ========================================================= */

/* ---- Variables ---- */
:root{
  --ink:#0a0a0a;
  --muted:#6b6b6b;
  --line:#e8e8e8;
  --soft:#f7f7f7;
  --radius:14px;

  --container:1200px;
  --shadow:0 10px 30px rgba(0,0,0,.08);
  --shadow-lg:0 24px 80px rgba(0,0,0,.18);

  /* header height (can vary by breakpoint) */
  --header-h:72px;
}
@media (max-width:980px){
  :root{ --header-h:84px; } /* taller header on mobile */
}

/* ---- Base ---- */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font:16px/1.6 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;
  color:var(--ink); background:#fff;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--ink);text-decoration:none}
a:hover{text-decoration:underline}
.container{width:min(var(--container),92vw);margin-inline:auto}
.section{padding:56px 0}
h1,h2,h3{margin:0 0 10px;line-height:1.2}
h1{font-size:clamp(28px,5vw,46px)}
h2{font-size:clamp(22px,3.2vw,28px)}
h3{font-size:clamp(18px,2.6vw,22px)}
.meta{color:var(--muted);font-size:14px}

/* =========================================================
   HEADER / NAV (logo left, menu right)
   ========================================================= */
.header{
  position:sticky; top:0; background:#fff;
  border-bottom:1px solid var(--line);
  z-index:10001;
}
.nav{
  min-height:var(--header-h);
  display:flex; align-items:center; justify-content:space-between;
  gap:18px;
  position:relative; z-index:10002;
}

/* Brand: NEVER shrink/collapse */
.nav > *{ min-width:0; }
.brand{
  display:flex; align-items:center; gap:12px;
  flex:0 0 auto; flex-shrink:0 !important;
  min-width:fit-content;
}
.brand .logo{
  display:block !important;
  height:50px !important;  /* desktop default */
  width:auto !important;
  visibility:visible !important;
  opacity:1 !important;
  object-fit:contain;
}
@media (max-width:979.98px){
  .brand .logo{ height:56px !important; }       /* bigger on mobile */
  .brand .logo.secondary{ height:20px !important; }
}

/* Desktop menu */
.menu{
  display:none; align-items:center; gap:22px; white-space:nowrap;
  flex:1 1 auto; justify-content:flex-end;
}
.menu a{ padding:10px 12px; border-radius:10px }
.menu a:hover{ background:var(--soft); text-decoration:none }
.menu .cta{ border:1px solid #000; border-radius:999px; padding:10px 16px }
.menu .cta:hover{ background:#000; color:#fff }
@media (min-width:980px){ .menu{ display:flex } }
@media (max-width:979.98px){ .menu{ display:none !important; } } /* no leaks on mobile */

/* Burger (mobile only) — never shrink */
.burger{
  display:inline-flex; flex-direction:column; gap:4px;
  background:#fff; border:1px solid var(--line); padding:8px; border-radius:12px;
  flex:0 0 auto; flex-shrink:0 !important;
}
.burger span{ width:20px; height:2px; background:#000; display:block }
@media (min-width:980px){ .burger{ display:none } }

/* Drawer (mobile menu) — fully invisible when closed */
.drawer{
  position:fixed; left:0; right:0; top:var(--header-h);
  background:#fff; border-bottom:1px solid var(--line);
  transform:translateY(-110%); transition:transform .25s ease;
  z-index:10000;
  visibility:hidden; pointer-events:none;
}
.drawer.show{
  transform:translateY(0);
  visibility:visible; pointer-events:auto;
}
.drawer .list{ display:grid; gap:10px; padding:14px 4vw 16px }
.drawer a{ display:block; padding:10px 0 }
@media (min-width:980px){
  .drawer{ display:none !important; transform:none !important; }
}

/* =========================================================
   HERO
   ========================================================= */
.hero{position:relative;background:#000;aspect-ratio:16/9}
.hero .banner{position:absolute;inset:0;background:center/cover no-repeat;filter:grayscale(100%) contrast(105%)}
.hero .overlay{
  position:absolute;inset:0;display:grid;place-items:center;padding:20px;
  background:linear-gradient(to top,rgba(0,0,0,.55),rgba(0,0,0,.25))
}
.hero .copy{color:#fff;text-align:center;width:min(840px,92vw)}
.hero .copy p{color:#eaeaea}
.actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:12px}
.btn{display:inline-block;padding:12px 16px;border-radius:12px;border:1px solid #fff;color:#fff}
.btn.dark{background:#000;border-color:#000}
.btn.light{background:transparent}
.btn:hover{transform:translateY(-1px)}
@media(max-width:540px){ .hero{aspect-ratio:auto;min-height:320px} }

/* =========================================================
   GRID / CARDS
   ========================================================= */
.grid{display:grid;gap:18px}
.grid.cols-3{grid-template-columns:1fr}
@media(min-width:680px){ .grid.cols-3{grid-template-columns:repeat(2,1fr)} }
@media(min-width:980px){ .grid.cols-3{grid-template-columns:repeat(3,1fr)} }

.card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:18px;transition:box-shadow .15s,transform .15s;box-shadow:var(--shadow)
}
.card:hover{box-shadow:0 16px 40px rgba(0,0,0,.06);transform:translateY(-2px)}
.icon{
  width:44px;height:44px;border-radius:10px;background:#000;color:#fff;
  display:grid;place-items:center;font-weight:800
}
.card h3{margin:12px 0 6px}

/* =========================================================
   TESTIMONIAL SLIDER
   ========================================================= */
.slider{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
.slide-track{display:flex;transition:transform .5s ease}
.slide{min-width:100%;padding:28px}
.quote{font-size:18px}
.cite{margin-top:8px;color:var(--muted)}
.slider .nav{
  position:absolute;left:10px;right:10px;bottom:12px;
  display:flex;gap:8px;justify-content:flex-end
}
.slider button{border:1px solid #000;background:#000;color:#fff;border-radius:10px;padding:8px 10px;cursor:pointer}
.slider button.secondary{background:#fff;color:#000}

/* =========================================================
   ABOUT PAGE
   ========================================================= */
.about-grid{display:grid;gap:24px;align-items:flex-start}
@media(min-width:900px){ .about-grid{grid-template-columns:360px 1fr} }
.profile-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff}
.profile-card img{display:block;width:100%;height:auto}
.profile-body{padding:16px}
.c-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.c-list li{display:flex;gap:10px;align-items:flex-start}
.c-list i{width:18px;text-align:center;color:#000;margin-top:2px}
.chiprow{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0}
.chip{border:1px solid var(--line);border-radius:999px;padding:6px 10px;font-size:14px;background:#fff}
.about-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.btn-outline{border:1px solid #000;background:#fff;color:#000;border-radius:12px;padding:10px 14px}
.btn-dark{border:1px solid #000;background:#000;color:#fff;border-radius:12px;padding:10px 14px}

/* =========================================================
   FOOTER
   ========================================================= */
.footer{border-top:1px solid var(--line);background:#fff}
.footer-top{
  display:flex;gap:24px;justify-content:space-between;align-items:flex-start;
  flex-wrap:wrap;padding:28px 0
}
.footer-col{flex:1 1 240px;min-width:240px}
.small{color:#7a7a7a;font-size:13px;margin-top:10px}
.quick ul{list-style:none;margin:0;padding:0;columns:2}
.quick li{margin:8px 0}
@media(max-width:720px){ .quick ul{columns:1} }
.contact-list{list-style:none;margin:0;padding:0}
.contact-list li{display:flex;gap:10px;align-items:flex-start;margin:8px 0}
.contact-list i{width:16px;text-align:center;color:#000}

/* =========================================================
   CONSENT (centered modal) — z-index < header so logo visible
   ========================================================= */
/* ===================== CONSENT (centered, mobile-friendly) ===================== */
/* Layer: HIDDEN by default; visible only with .show */
.consent-layer{
  position:fixed;
  inset:0;
  display:none;                 /* hidden by default */
  place-items:center;
  background:rgba(0,0,0,.45);
  z-index:99999;
  padding:16px;                 /* breathing room on small screens */
}
.consent-layer.show{ display:grid; }

/* Modal: scrolls independently on small screens */
.consent{
  width:min(560px,92vw);
  max-height:90vh;              /* never exceed viewport height */
  overflow:auto;                /* modal scrolls, not the page */
  -webkit-overflow-scrolling:touch;
  background:#fff;
  border:1px solid var(--line);
  box-shadow:0 24px 80px rgba(0,0,0,.25);
  border-radius:14px;
  padding:16px;
}

/* Sticky action row so Accept stays visible */
.consent .row{
  position:sticky; bottom:0;
  display:flex; gap:10px; justify-content:flex-end; flex-wrap:wrap;
  background:linear-gradient(180deg, transparent, #fff 40%);
  padding-top:12px; margin-top:12px;
}

/* Buttons */
.btn-ghost{border:1px solid #000;background:#fff;color:#000;border-radius:12px;padding:10px 14px}
.btn-fill{border:1px solid #000;background:#000;color:#fff;border-radius:12px;padding:10px 14px}
#acceptBtn{ min-width:96px; padding:12px 16px; border-radius:12px }

/* (Optional) legacy bottom bar style, if you ever use the non-layer version */
.consent:not(.consent-layer .consent){
  position:fixed;left:16px;right:16px;bottom:16px;display:none;z-index:9999;
  background:#fff;border:1px solid var(--line);box-shadow:0 20px 50px rgba(0,0,0,.15);border-radius:14px;padding:16px
}
.consent.show{display:block}



/* =========================================================
   FLOATING ACTION BUTTONS
   ========================================================= */
.fab{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:10px;z-index:60}
.fab a{
  width:46px;height:46px;display:grid;place-items:center;border-radius:50%;
  background:#000;color:#fff;border:1px solid #000;box-shadow:var(--shadow)
}
.fab a.call{background:#fff;color:#000}

/* =========================================================
   UTILITIES
   ========================================================= */
.hidden{display:none!important}
.center{text-align:center}