/* ============================================================
   WARITOMA — Brand & Design System (consolidated)
   Source: Claude Design handoff bundle "waritoma-nigeria".
   fonts + colour + typography + spacing tokens in one file.
   ============================================================ */

/* --- Fonts (self-hosted, latin) ---
   Schibsted Grotesk → display & UI · Hanken Grotesk → body · Newsreader → editorial accent.
   woff2 files in assets/fonts/, @font-face rules in fonts.css (no Google dependency). */
@import url('./fonts.css');

/* ============================================================
   COLOUR SYSTEM
   Master: deep heritage green · Health: vital teal · Properties: brass gold
   ============================================================ */
:root {
  /* Brand: Waritoma Green */
  --green-950: #08251B; --green-900: #0B3023; --green-800: #0F3D2D;
  --green-700: #114A36;   /* PRIMARY brand green */
  --green-600: #185C44; --green-500: #1F7355; --green-400: #3A9272;
  --green-300: #74B7A0; --green-200: #AED7C8; --green-100: #DCEDE6; --green-50: #EEF6F2;

  /* Health: Vital Teal */
  --teal-700: #0B6E63; --teal-600: #0E8576;   /* HEALTH accent */
  --teal-500: #149C89; --teal-400: #34B6A2; --teal-200: #A9E0D7;
  --teal-100: #DCF1ED; --teal-50: #ECF8F5;

  /* Properties: Brass Gold */
  --gold-800: #8A6520; --gold-700: #A57E2A; --gold-600: #C0962F;   /* PROPERTIES accent */
  --gold-500: #D4AC4A; --gold-400: #E1C176; --gold-300: #E8CD8C;
  --gold-200: #F0DEAC; --gold-100: #F8EFD6; --gold-50: #FCF7EA;

  /* Warm neutrals */
  --ink-950: #14160F; --ink-900: #1B1E16; --ink-800: #2A2D24; --ink-700: #3D4035;
  --ink-600: #555950; --ink-500: #717568; --ink-400: #969A8D; --ink-300: #C2C5B9;
  --ink-200: #DDDDD2; --ink-150: #E7E6DC; --ink-100: #F0EFE7;
  --paper: #F7F4EC; --paper-raised: #FCFAF3; --white: #FFFFFF;

  /* Semantic */
  --success: #1F7355; --warning: #C0962F; --danger: #B5482F; --info: #2C6E8F;

  /* Semantic aliases */
  --brand: var(--green-700); --brand-strong: var(--green-800); --brand-soft: var(--green-50);
  --on-brand: #F7F4EC;
  --accent-health: var(--teal-600); --accent-health-soft: var(--teal-50);
  --accent-properties: var(--gold-600); --accent-properties-soft: var(--gold-50);
  --text-strong: var(--ink-950); --text-body: var(--ink-800); --text-muted: var(--ink-600);
  --text-faint: var(--ink-400); --text-on-dark: #ECF1EC; --text-on-dark-muted: #A9B6AC;
  --surface-page: var(--paper); --surface-card: var(--white); --surface-raised: var(--paper-raised);
  --surface-sunken: var(--ink-100); --surface-inverse: var(--green-900);
  --border-hairline: var(--ink-200); --border-strong: var(--ink-300); --border-brand: var(--green-200);
  --focus-ring: var(--teal-500);
}

/* ============================================================
   TYPOGRAPHY
   ============================================================ */
:root {
  --font-display: 'Schibsted Grotesk', system-ui, sans-serif;
  --font-body:    'Hanken Grotesk', system-ui, sans-serif;
  --font-serif:   'Newsreader', Georgia, serif;

  --w-light: 300; --w-regular: 400; --w-medium: 500; --w-semibold: 600;
  --w-bold: 700; --w-extrabold: 800; --w-black: 900;

  --t-display: clamp(3rem, 1.6rem + 6vw, 6rem);
  --t-h1: clamp(2.25rem, 1.4rem + 3.6vw, 3.75rem);
  --t-h2: clamp(1.75rem, 1.2rem + 2.2vw, 2.75rem);
  --t-h3: clamp(1.375rem, 1.1rem + 1.1vw, 1.875rem);
  --t-h4: 1.25rem;
  --t-lead: clamp(1.125rem, 1rem + 0.5vw, 1.375rem);
  --t-body: 1.0625rem; --t-small: 0.9375rem; --t-caption: 0.8125rem; --t-overline: 0.75rem;

  --lh-tight: 1.05; --lh-snug: 1.18; --lh-normal: 1.5; --lh-relaxed: 1.65;
  --ls-tight: -0.02em; --ls-snug: -0.01em; --ls-normal: 0; --ls-wide: 0.04em; --ls-overline: 0.16em;
}

/* ============================================================
   SPACING · RADII · SHADOWS · LAYOUT · MOTION  (8px grid)
   ============================================================ */
:root {
  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px; --space-5: 24px;
  --space-6: 32px; --space-7: 48px; --space-8: 64px; --space-9: 96px; --space-10: 128px;

  --r-xs: 4px; --r-sm: 8px; --r-md: 12px; --r-lg: 18px; --r-xl: 28px; --r-pill: 999px;

  --shadow-xs: 0 1px 2px rgba(20,22,15,.06);
  --shadow-sm: 0 2px 8px rgba(20,22,15,.06), 0 1px 2px rgba(20,22,15,.05);
  --shadow-md: 0 8px 24px rgba(20,22,15,.08), 0 2px 6px rgba(20,22,15,.05);
  --shadow-lg: 0 20px 48px rgba(11,48,35,.12), 0 6px 14px rgba(20,22,15,.06);
  --shadow-brand: 0 16px 40px rgba(17,74,54,.22);

  --container: 1200px; --container-narrow: 760px; --gutter: clamp(20px, 5vw, 64px);

  --ease-out: cubic-bezier(0.16, 0.84, 0.44, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-fast: 140ms; --dur: 240ms; --dur-slow: 520ms;
}

/* ============================================================
   BASE + SHARED COMPONENTS (nav, buttons, footer, wa-float)
   Shared across every Waritoma page. Page-specific section
   styles live inline in each page.
   ============================================================ */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font-body);font-size:var(--t-body);line-height:var(--lh-relaxed);color:var(--text-body);background:var(--surface-page);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--text-strong);letter-spacing:var(--ls-tight);line-height:var(--lh-tight);margin:0;font-weight:var(--w-bold)}
p{margin:0 0 1em;text-wrap:pretty}
a{text-decoration:none;color:inherit}
img,svg{display:block;max-width:100%}
.wrap{max-width:var(--container);margin:0 auto;padding-inline:var(--gutter)}
.overline{font-family:var(--font-display);font-size:var(--t-overline);font-weight:var(--w-bold);letter-spacing:var(--ls-overline);text-transform:uppercase;color:var(--text-faint);display:flex;align-items:center;gap:12px;margin:0 0 16px}
.overline::before{content:"";width:28px;height:2px;background:var(--accent-properties)}
.overline.teal::before{background:var(--accent-health)}
.section-head{max-width:62ch;margin-bottom:var(--space-7)}
.section-head h2{font-size:clamp(1.9rem,3.6vw,2.7rem);margin-bottom:12px}
.section-head p{color:var(--text-muted);font-size:var(--t-lead)}

/* buttons */
.btn{font-family:var(--font-display);font-weight:600;font-size:.95rem;border-radius:var(--r-md);padding:11px 20px;border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;gap:9px;transition:transform .14s var(--ease-out),background .24s,box-shadow .24s,color .24s;white-space:nowrap}
.btn svg{width:18px;height:18px;flex:none}
.btn:active{transform:scale(.98)}
.btn-wa{background:#1F7355;color:#fff}.btn-wa:hover{background:#1a5f47;box-shadow:var(--shadow-md)}
.btn-primary{background:var(--brand);color:var(--on-brand)}.btn-primary:hover{background:var(--brand-strong);box-shadow:var(--shadow-md)}
.btn-teal{background:var(--accent-health);color:#fff}.btn-teal:hover{background:var(--teal-700)}
.btn-gold{background:var(--accent-properties);color:#2A1F05}.btn-gold:hover{background:var(--gold-700);color:#fff}
.btn-outline{background:transparent;border-color:var(--border-strong);color:var(--text-strong)}.btn-outline:hover{border-color:var(--brand);color:var(--brand)}
.btn-ghost-light{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.22)}.btn-ghost-light:hover{background:rgba(255,255,255,.16)}

/* nav */
.nav{position:sticky;top:0;z-index:50;background:rgba(247,244,236,.85);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-hairline)}
.nav .wrap{display:flex;align-items:center;gap:24px;height:72px}
.brand{display:flex;align-items:center;gap:11px}
.brand img{width:36px;height:36px;border-radius:8px}
.brand .wm{font-family:var(--font-display);font-weight:800;font-size:1.3rem;letter-spacing:-.03em;color:var(--text-strong)}
.navlinks{display:flex;gap:28px;align-items:center;margin-left:auto}
.navlinks a:not(.btn){font-family:var(--font-display);font-size:.95rem;font-weight:600;color:var(--text-muted);transition:color .2s;white-space:nowrap}
.navlinks a:not(.btn):hover,.navlinks a.active{color:var(--brand)}
.nav-actions{display:flex;align-items:center;gap:10px}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:6px;color:var(--text-strong);align-items:center;justify-content:center}
.nav-toggle svg{width:26px;height:26px}
@media (max-width:880px){
  .nav-toggle{display:inline-flex}
  .navlinks{position:fixed;inset:72px 0 auto 0;margin:0;flex-direction:column;align-items:stretch;gap:0;background:var(--paper-raised);border-bottom:1px solid var(--border-hairline);padding:8px var(--gutter) 18px;transform:translateY(-135%);transition:transform .3s var(--ease-out);box-shadow:var(--shadow-md)}
  .navlinks.open{transform:none}
  .navlinks a:not(.btn){display:block;padding:14px 2px;border-bottom:1px solid var(--border-hairline);color:var(--text-strong)}
}

/* footer */
.site-footer{background:#0A2A1F;color:var(--text-on-dark-muted);padding-block:var(--space-8) var(--space-6)}
.fgrid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--space-6);padding-bottom:var(--space-7);border-bottom:1px solid rgba(255,255,255,.1)}
@media (max-width:760px){.fgrid{grid-template-columns:1fr 1fr}}
@media (max-width:460px){.fgrid{grid-template-columns:1fr}}
.site-footer .wm{color:#fff;font-family:var(--font-display);font-weight:800;font-size:1.3rem}
.site-footer h5{font-family:var(--font-display);color:#fff;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;margin:0 0 16px;font-weight:700}
.site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:11px}
.site-footer ul a{font-size:.92rem;color:var(--text-on-dark-muted);display:flex;align-items:center;gap:9px}
.site-footer ul a:hover{color:#fff}
.site-footer ul li{display:flex;align-items:center;gap:9px;font-size:.92rem}
.site-footer ul li svg,.site-footer ul a svg{width:16px;height:16px;flex:none;color:var(--gold-400)}
.fbottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;padding-top:var(--space-5);font-size:var(--t-caption)}

/* floating whatsapp */
.wa-float{position:fixed;right:22px;bottom:22px;z-index:60;width:58px;height:58px;border-radius:50%;background:#1F7355;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg);transition:transform .2s var(--ease-out)}
.wa-float:hover{transform:scale(1.06)}
.wa-float svg{width:30px;height:30px}

/* shared CTA band + value cards (used on multiple pages) */
.cta-band{padding-block:var(--space-9)}
.cta-inner{background:var(--surface-inverse);border-radius:var(--r-xl);padding:clamp(40px,6vw,72px);color:#fff;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap}
.cta-inner::after{content:"";position:absolute;inset:0;background:radial-gradient(70% 130% at 100% 0%,rgba(192,150,47,.2),transparent 60%)}
.cta-inner>*{position:relative;z-index:1}
.cta-inner h2{color:#fff;font-size:clamp(1.8rem,4vw,2.7rem);max-width:18ch}
.cta-inner p{color:var(--text-on-dark-muted);margin-top:10px;max-width:46ch}

/* reveal-on-scroll */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ============================================================
   INNER-PAGE COMPONENTS (shared by Healthcare/Real Estate/About/Contact)
   ============================================================ */
/* page hero */
.phero{background:var(--surface-inverse);color:var(--text-on-dark);position:relative;overflow:hidden;padding-block:clamp(56px,9vh,104px)}
.phero::after{content:"";position:absolute;inset:0;pointer-events:none;background:
   radial-gradient(110% 90% at 90% 0%,rgba(192,150,47,.16),transparent 55%),
   radial-gradient(90% 90% at 0% 80%,rgba(14,133,118,.16),transparent 55%)}
.phero.health::after{background:radial-gradient(120% 90% at 88% 0%,rgba(14,133,118,.26),transparent 58%),radial-gradient(90% 90% at 0% 90%,rgba(192,150,47,.10),transparent 55%)}
.phero.props::after{background:radial-gradient(120% 90% at 88% 0%,rgba(192,150,47,.24),transparent 58%),radial-gradient(90% 90% at 0% 90%,rgba(14,133,118,.10),transparent 55%)}
.phero .wrap{position:relative;z-index:1}
.phero .eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:var(--t-caption);font-weight:700;letter-spacing:var(--ls-overline);text-transform:uppercase;color:var(--gold-300);margin-bottom:20px}
.phero.health .eyebrow{color:var(--teal-200)}
.phero .eyebrow .pip{width:8px;height:8px;border-radius:50%;background:var(--accent-health)}
.phero.props .eyebrow .pip{background:var(--accent-properties)}
.phero h1{color:#fff;font-size:clamp(2.1rem,4.6vw,3.5rem);font-weight:800;max-width:18ch}
.phero .lead{color:var(--text-on-dark-muted);font-size:var(--t-lead);max-width:56ch;margin-top:20px}
.phero .cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}

/* sections */
.section{padding-block:var(--space-9)}
.section.alt{background:var(--surface-raised);border-block:1px solid var(--border-hairline)}
.section.tint-teal{background:var(--accent-health-soft)}
.section.tint-gold{background:var(--accent-properties-soft)}

/* card grids */
.grid{display:grid;gap:var(--space-5)}
.grid.c2{grid-template-columns:repeat(2,1fr)}
.grid.c3{grid-template-columns:repeat(3,1fr)}
.grid.c4{grid-template-columns:repeat(4,1fr)}
@media (max-width:880px){.grid.c4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:780px){.grid.c3{grid-template-columns:1fr}.grid.c2{grid-template-columns:1fr}}
@media (max-width:560px){.grid.c4{grid-template-columns:1fr}}
.card{background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--r-lg);padding:var(--space-6);box-shadow:var(--shadow-sm);transition:transform .24s var(--ease-out),box-shadow .24s}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.card .ci{width:48px;height:48px;border-radius:12px;background:var(--brand-soft);color:var(--brand);display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.card.teal .ci{background:var(--accent-health-soft);color:var(--accent-health)}
.card.gold .ci{background:var(--accent-properties-soft);color:var(--gold-700)}
.card .ci svg{width:24px;height:24px}
.card h3{font-size:1.15rem;margin-bottom:8px}
.card p{color:var(--text-muted);font-size:var(--t-small);margin:0}
/* card with photo header */
.card .cimg{margin:calc(-1 * var(--space-6)) calc(-1 * var(--space-6)) var(--space-5);height:160px;overflow:hidden;border-radius:var(--r-lg) var(--r-lg) 0 0}
.card .cimg img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s var(--ease-out)}
.card:hover .cimg img{transform:scale(1.05)}
.bg-cover{background-size:cover !important;background-position:center center !important;background-repeat:no-repeat !important}

/* checklist */
.checks{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:14px}
.checks li{display:flex;gap:12px;align-items:flex-start;color:var(--text-body)}
.checks li svg{width:21px;height:21px;flex:none;margin-top:2px;color:var(--brand)}
.checks.teal li svg{color:var(--accent-health)}
.checks.gold li svg{color:var(--gold-700)}

/* split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,64px);align-items:center}
@media (max-width:860px){.split{grid-template-columns:1fr;gap:32px}}
.split-media{border-radius:var(--r-xl);min-height:340px;box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.92)}
.split-media.teal{background:linear-gradient(150deg,var(--teal-600),var(--teal-700))}
.split-media.gold{background:linear-gradient(150deg,var(--gold-600),var(--gold-800))}
.split-media.green{background:linear-gradient(150deg,var(--green-600),var(--green-900))}
.split-media svg{width:34%;height:auto;opacity:.92}
@media (max-width:860px){.split-media{min-height:220px;order:-1}}

/* stat band */
.statband{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-5);text-align:center}
@media (max-width:680px){.statband{grid-template-columns:1fr 1fr}}
.statband .n{font-family:var(--font-display);font-weight:800;font-size:1.5rem;color:var(--brand);letter-spacing:-.01em}
.statband .l{color:var(--text-muted);font-size:var(--t-small);margin-top:6px}

/* real-estate listings */
.listing{background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .24s var(--ease-out),box-shadow .24s}
.listing:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.listing .img{height:190px;background:linear-gradient(150deg,var(--gold-600),var(--gold-800));position:relative;display:flex;align-items:center;justify-content:center}
.listing .img svg{width:64px;height:64px;color:rgba(255,255,255,.5)}
.listing .badge{position:absolute;top:14px;left:14px;background:var(--paper);color:var(--gold-800);font-family:var(--font-display);font-weight:700;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;padding:6px 12px;border-radius:var(--r-pill)}
.listing .lb{padding:var(--space-5)}
.listing .price{font-family:var(--font-display);font-weight:800;color:var(--brand);font-size:1.25rem}
.listing h3{font-size:1.1rem;margin:8px 0 4px}
.listing .meta{display:flex;gap:16px;color:var(--text-muted);font-size:var(--t-caption);margin-top:12px;flex-wrap:wrap}

/* contact */
.contact-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(32px,5vw,56px);align-items:start}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr;gap:32px}}
.contact-list{display:grid;gap:18px;margin-top:8px}
.contact-item{display:flex;gap:15px;align-items:flex-start}
.contact-item .ci{width:46px;height:46px;border-radius:12px;background:var(--brand-soft);color:var(--brand);display:flex;align-items:center;justify-content:center;flex:none}
.contact-item .ci svg{width:22px;height:22px}
.contact-item .k{font-family:var(--font-display);font-weight:700;color:var(--text-strong)}
.contact-item .v{color:var(--text-muted)}
.form{background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--r-lg);padding:var(--space-6);box-shadow:var(--shadow-sm)}
.field{margin-bottom:16px}
.field label{display:block;font-family:var(--font-display);font-weight:600;font-size:.9rem;color:var(--text-strong);margin-bottom:7px}
.field input,.field select,.field textarea{width:100%;padding:12px 14px;border:1px solid var(--border-strong);border-radius:var(--r-md);font-family:var(--font-body);font-size:1rem;color:var(--text-body);background:var(--surface-card);transition:border-color .2s,box-shadow .2s}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--green-50)}
.field textarea{min-height:120px;resize:vertical}
.form .note{font-size:var(--t-caption);color:var(--text-faint);margin:12px 0 0;text-align:center}
