/* ============================================================
   VIRA Redesign — base styles
   Anchored on /redesign/foundations.css (tokens imported below)
   ============================================================ */
@import url("./foundations.css");

/* ============================================================
   GLOBAL RESET & PAGE
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background: var(--page);
  color: var(--ink);
  font: var(--t-body);
  overflow-x: hidden;
  transition: background 320ms var(--ease-out), color 320ms var(--ease-out);
}

/* Themable surface variables (driven by [data-theme] on <html>) */
:root,
:root[data-theme="light"] {
  --page:       var(--vira-paper);
  --ink:        var(--n-900);
  --ink-2:      var(--n-700);
  --ink-3:      var(--n-500);
  --surface:    var(--vira-cream);
  --surface-2:  var(--vira-paper-warm);
  --line:       rgba(20,32,43,0.10);
  --line-strong:rgba(20,32,43,0.22);
  --on-dark-1:  #f2eee5;
  --on-dark-2:  #c8c1b1;
  --footer-bg:  var(--vira-navy);
  --footer-ink: var(--on-dark-1);
  --hero-bg:    var(--vira-navy);
  --hero-ink:   var(--on-dark-1);
  --accent:     var(--vira-coral);
  --accent-ink: #fff;
}
:root[data-theme="dark"] {
  --page:       #0e1820;
  --ink:        #f2eee5;
  --ink-2:      #c8c1b1;
  --ink-3:      #8c8474;
  --surface:    #16222d;
  --surface-2:  #1b2a37;
  --line:       rgba(242,238,229,0.10);
  --line-strong:rgba(242,238,229,0.22);
  --footer-bg:  #0a141c;
  --footer-ink: #f2eee5;
  --hero-bg:    #0a141c;
  --hero-ink:   #f2eee5;
  --accent:     var(--vira-coral);
  --accent-ink: #fff;
}
:root[data-theme="navy"] {
  /* Cream page, but the hero/banded sections stay navy (current vibe) */
  --page:       var(--vira-paper-warm);
  --ink:        var(--n-900);
  --ink-2:      var(--n-700);
  --ink-3:      var(--n-500);
  --surface:    var(--vira-paper);
  --surface-2:  var(--vira-cream);
  --line:       rgba(20,32,43,0.12);
  --line-strong:rgba(20,32,43,0.24);
  --footer-bg:  var(--vira-navy);
  --footer-ink: #f2eee5;
  --hero-bg:    var(--vira-navy);
  --hero-ink:   #f2eee5;
  --accent:     var(--vira-coral);
  --accent-ink: #fff;
}

/* Density */
:root[data-density="cozy"]     { --pad-section: clamp(80px, 9vw, 140px); }
:root[data-density="compact"]  { --pad-section: clamp(56px, 6vw, 96px);  }
:root[data-density="spacious"] { --pad-section: clamp(112px, 12vw, 200px); }

img { max-width: 100%; display: block; }
button { font-family: inherit; cursor: pointer; }

/* ============================================================
   ATOMS
   ============================================================ */
.container { max-width: 1320px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 56px); }
.container.narrow { max-width: 920px; }
.container.wide   { max-width: 1480px; }

.eyebrow {
  font: 500 11px/1.4 var(--font-sans);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.eyebrow::before {
  content: ""; display: inline-block; width: 28px; height: 2px;
  background: var(--accent);
}
.eyebrow.bare::before { display: none; }

.rule { width: 56px; height: 2px; background: var(--accent); margin: 12px 0 24px; border: 0; }

.section { padding: var(--pad-section) 0; position: relative; }
.section.band { background: var(--surface-2); }
.section.dark { background: var(--hero-bg); color: var(--hero-ink); }
.section.dark .eyebrow { color: var(--vira-coral); }
.section.tight { padding: clamp(40px, 6vw, 80px) 0; }

/* Buttons */
.btn {
  --bg: var(--accent); --fg: var(--accent-ink); --bd: var(--accent);
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 22px; min-height: 48px;
  background: var(--bg); color: var(--fg); border: 1px solid var(--bd);
  font: 500 13px/1 var(--font-sans); letter-spacing: 0.04em;
  text-transform: lowercase; text-decoration: none;
  border-radius: var(--r-pill);
  transition: background 160ms var(--ease-out), color 160ms var(--ease-out),
              border-color 160ms var(--ease-out), transform 80ms var(--ease-out);
}
.btn:hover { background: var(--vira-coral-deep); border-color: var(--vira-coral-deep); color: #fff; }
.btn:active { transform: translateY(1px); }
.btn .arr { display: inline-block; transition: transform 220ms var(--ease-out); }
.btn:hover .arr { transform: translateX(4px); }

.btn.ghost {
  --bg: transparent; --fg: var(--ink); --bd: var(--line-strong);
}
.btn.ghost:hover { --bg: transparent; --fg: var(--accent); --bd: var(--accent); }
.section.dark .btn.ghost { --fg: var(--hero-ink); --bd: rgba(242,238,229,0.4); }
.section.dark .btn.ghost:hover { --fg: var(--accent); --bd: var(--accent); }

.btn.dark { --bg: var(--vira-navy); --fg: #fff; --bd: var(--vira-navy); }
.btn.dark:hover { --bg: var(--vira-charcoal); --bd: var(--vira-charcoal); }

.chip {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 10px; border: 1px solid var(--line); border-radius: var(--r-pill);
  font: 500 11px/1 var(--font-sans); color: var(--ink-2);
  letter-spacing: 0.1em; text-transform: uppercase;
}

/* Icon sizing */
[data-lucide] { width: 18px; height: 18px; stroke-width: 1.5; flex: none; }

/* Headings */
h1, h2, h3, h4, h5 { margin: 0; color: var(--ink); font-family: var(--font-serif); font-weight: 600; letter-spacing: -0.012em; }

/* ============================================================
   NAVIGATION
   ============================================================ */
.nav {
  position: sticky; top: 0; z-index: 50;
  background: var(--vira-navy); color: var(--on-dark-1);
  border-bottom: 1px solid rgba(242,238,229,0.08);
}
.nav-row { display: flex; align-items: center; justify-content: space-between; gap: 32px; height: 74px; }
.brand { display: flex; align-items: center; gap: 14px; color: inherit; text-decoration: none; border: 0; }
.brand:hover { color: var(--accent); }
.brand .mark { width: 36px; height: 36px; color: var(--accent); }
.brand .mark-img { width: 42px; height: 42px; object-fit: contain; display: block; }
.brand .wm-main { font: 700 18px/1 var(--font-sans); letter-spacing: 0.16em; display: inline-flex; align-items: baseline; gap: 8px; }
.brand .wm-main .wm-svc { font-weight: 800; }
.brand .wm-sub  { display: block; font: 500 9px/1 var(--font-sans); letter-spacing: 0.22em; opacity: 0.6; margin-top: 4px; text-transform: uppercase; }

.nav-links { display: flex; align-items: center; gap: 4px; }
.nav-link {
  color: var(--on-dark-2); text-decoration: none; border: 0;
  padding: 10px 14px; font: 500 13px/1 var(--font-sans); letter-spacing: 0.04em;
  border-radius: var(--r-2); position: relative;
  transition: color 160ms var(--ease-out);
}
.nav-link:hover { color: #fff; }
.nav-link.active { color: #fff; }
.nav-link.active::after {
  content: ""; position: absolute; left: 14px; right: 14px; bottom: 4px;
  height: 2px; background: var(--accent);
}
.nav-right { display: flex; align-items: center; gap: 12px; }
.lang-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 12px; border-radius: var(--r-pill);
  background: rgba(255,255,255,0.06); color: var(--on-dark-1);
  border: 1px solid rgba(242,238,229,0.12);
  font: 600 12px/1 var(--font-sans); letter-spacing: 0.08em;
}
.lang-btn:hover { background: rgba(255,255,255,0.1); }
.lang-btn svg { width: 18px; height: 12px; border-radius: 2px; }

/* ============================================================
   FOOTER
   ============================================================ */
.footer { background: var(--footer-bg); color: var(--footer-ink); padding: 80px 0 36px; margin-top: 80px; }
.footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.2fr; gap: 48px; padding-bottom: 56px; border-bottom: 1px solid rgba(242,238,229,0.10); }
.footer h5 { color: #fff; font: 500 11px/1 var(--font-sans); letter-spacing: 0.22em; text-transform: uppercase; margin-bottom: 20px; }
.footer ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.footer ul a { color: var(--on-dark-2); text-decoration: none; border: 0; font-size: 14px; }
.footer ul a:hover { color: var(--accent); }
.footer .nl { color: var(--on-dark-2); font-size: 14px; max-width: 320px; margin: 16px 0 16px; line-height: 1.6; }
.footer-form { display: flex; gap: 8px; max-width: 360px; }
.footer-form input {
  flex: 1; background: transparent; border: 1px solid rgba(242,238,229,0.18); border-radius: var(--r-pill);
  color: #fff; padding: 12px 16px; font: 400 13px/1 var(--font-sans);
}
.footer-form input::placeholder { color: var(--on-dark-2); }
.footer-form button {
  background: var(--accent); color: #fff; border: 0; border-radius: var(--r-pill);
  padding: 0 18px; font: 500 12px/1 var(--font-sans); letter-spacing: 0.06em; text-transform: lowercase;
}
.footer-bottom { display: flex; justify-content: space-between; gap: 24px; padding-top: 24px; font-size: 12px; color: var(--on-dark-2); }
.footer-social { display: flex; gap: 10px; margin-top: 16px; }
.footer-social a {
  width: 36px; height: 36px; border: 1px solid rgba(242,238,229,0.18); border-radius: 50%;
  display: inline-grid; place-items: center; color: var(--on-dark-1); border-bottom: 1px solid rgba(242,238,229,0.18);
}
.footer-social a:hover { color: var(--accent); border-color: var(--accent); }

/* ============================================================
   ROUTE TRANSITION
   ============================================================ */
.route-anim {
  opacity: 1;
}
/* Subtle fade-in on route change (skip if frozen) */
@supports not (animation-timeline: scroll()) { /* always true */ }
@keyframes route-in {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ============================================================
   COMMON SECTION HEADS
   ============================================================ */
.shead { max-width: 760px; }
.shead.center { margin: 0 auto; text-align: center; }
.shead.center .eyebrow { display: inline-flex; }
.shead.center .rule { margin-left: auto; margin-right: auto; }
.shead h2 { font: 600 clamp(32px, 4vw, 56px)/1.12 var(--font-serif); text-wrap: balance; letter-spacing: -0.014em; }
.shead .lede { color: var(--ink-2); font: 400 17px/1.6 var(--font-sans); margin-top: 16px; max-width: 60ch; text-wrap: pretty; }
.shead.center .lede { margin-left: auto; margin-right: auto; }

/* ============================================================
   PHOTO PLACEHOLDER — enriched (lines + circles + accent dot)
   ============================================================ */
.photo { position: relative; overflow: hidden; background: var(--surface-2); border-radius: var(--r-2); border: 1px solid var(--line); }
.photo .ph-grad { position: absolute; inset: 0;
  background:
    radial-gradient(120% 80% at 80% 10%, rgba(247,55,96,0.22), transparent 55%),
    radial-gradient(80% 60% at 20% 100%, rgba(20,32,43,0.40), transparent 60%),
    linear-gradient(180deg, #4d493f, #1b2a37);
  filter: saturate(0.85);
}
.photo .ph-grain { position: absolute; inset: 0; opacity: 0.14;
  background-image: radial-gradient(rgba(255,255,255,0.5) 1px, transparent 1px);
  background-size: 4px 4px; mix-blend-mode: overlay;
}
.photo::after {
  /* faint architectural line guides */
  content: ""; position: absolute; inset: 12% 14% 14% 12%;
  border: 1px solid rgba(255,255,255,0.10);
  border-top: 1px solid rgba(255,255,255,0.16);
  pointer-events: none;
}
.photo .ph-accent {
  position: absolute; right: 28px; top: 28px; width: 14px; height: 14px;
  border-radius: 50%; background: var(--vira-coral); box-shadow: 0 0 0 6px rgba(247,55,96,0.18);
}
.photo .ph-label {
  position: absolute; left: 18px; bottom: 16px;
  color: rgba(255,255,255,0.78); font: 500 10px/1 var(--font-sans);
  letter-spacing: 0.18em; text-transform: uppercase;
}

/* variants */
.photo.team {
  background: linear-gradient(135deg, #2a3340 0%, #14202b 50%, #1b2a37 100%);
}
.photo.team .ph-grad {
  background:
    radial-gradient(60% 40% at 30% 30%, rgba(247,55,96,0.30), transparent 60%),
    radial-gradient(50% 50% at 70% 70%, rgba(255,255,255,0.06), transparent 60%);
}
.photo.boardroom {
  background: linear-gradient(140deg, #34322c, #14202b 60%);
}
.photo.boardroom .ph-grad {
  background:
    radial-gradient(70% 50% at 75% 20%, rgba(247,55,96,0.22), transparent 60%),
    radial-gradient(60% 60% at 25% 90%, rgba(20,32,43,0.45), transparent 60%);
}

/* Tweaks panel branding */
.tp-panel { font-family: var(--font-sans) !important; }
