/* Geneura AI — shared design tokens & components */

:root{
  /* Backgrounds — approx. 70% of the page should live in this neutral range */
  --bg:#F8F5ED;        /* Luminous Ivory — primary background */
  --bg-alt:#F1EDE3;    /* Warm Cream — alternating sections */
  --bg-card:#FCFBF7;   /* Soft White — cards, forms, content areas */

  /* Typography */
  --ink:#10201D;       /* Geneura Ink — headlines, logo, primary type */
  --ink-soft:#333936;  /* Warm Charcoal — body copy */
  --ink-faint:#6B726C; /* muted labels/fine print, derived from Warm Charcoal */

  /* Geneura greens — invitation/action vs. foundation, per brand principle */
  --sage:#4F7D57;        /* Geneura Sage Green — primary CTA/buttons */
  --sage-hover:#416C4B;  /* Hover Green — button hover/active state */
  --deep-green:#163F32;  /* Geneura Deep Green — foundational/high-contrast sections only */
  --sage-tint:#E9F0E9;   /* light sage wash for hovers/focus rings */

  /* Legacy aliases so existing component rules keep working */
  --teal:var(--ink-soft);
  --teal-dark:var(--deep-green);
  --teal-light:var(--sage-tint);
  --gold:var(--sage);
  --gold-dark:var(--sage-hover);

  /* Pathway / subtle accent colors — supporting, not competing, brand colors */
  --soft-sage:#DDE8DA;
  --mist-blue:#DDE5E7;
  --blush:#EFE0D9;
  --sand:#EFE4C7;
  --lavender:#E4E1E9;

  /* Crisis/safety signaling — intentionally outside the brand palette so it always reads as urgent */
  --crisis-red:#C0442A;
  --crisis-red-dark:#8A2E1B;
  --crisis-bg:#FBEAE5;

  --line:rgba(16,32,29,.14);
  --line-soft:rgba(16,32,29,.08);
  --cream-on-dark:#EFF3EF;
  --radius-s:12px;
  --radius-m:20px;
  --radius-l:32px;
  --shadow-card:0 1px 2px rgba(16,32,29,.05), 0 20px 44px -24px rgba(16,32,29,.35);
  --shadow-card-hover:0 1px 2px rgba(16,32,29,.06), 0 28px 56px -20px rgba(16,32,29,.4);
  --font-display:'Fraunces', Georgia, serif;
  --font-body:'Work Sans', system-ui, sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;font-family:var(--font-body);background:var(--bg);color:var(--ink);}
a{color:inherit;}
.hidden{display:none !important;}

.container{max-width:1180px;margin:0 auto;padding:0 40px;}
@media (max-width:720px){.container{padding:0 22px;}}

/* Nav */
.nav{position:sticky;top:0;z-index:60;background:rgba(248,245,237,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line-soft);}
.nav-inner{position:relative;display:flex;align-items:center;justify-content:space-between;max-width:1320px;margin:0 auto;padding:18px 32px;gap:8px;}
.wordmark{display:flex;align-items:baseline;gap:6px;text-decoration:none;}
.wordmark-main{font-family:var(--font-display);font-weight:600;font-size:21px;letter-spacing:.01em;color:var(--ink);}
.wordmark-sub{font-family:var(--font-body);font-weight:700;font-size:11px;letter-spacing:.14em;color:var(--gold-dark);text-transform:uppercase;}
.nav-links{display:flex;align-items:center;gap:2px;}
.nav-cta-mobile-wrap{display:none;align-items:center;gap:8px;flex-shrink:0;}
.nav-cta-desktop{margin-left:6px;padding:10px 16px;font-size:12.5px;white-space:nowrap;flex-shrink:0;}
.nav-cta-mobile{padding:9px 14px;font-size:12px;white-space:nowrap;}
.nav-link{font-family:var(--font-body);font-size:12.5px;font-weight:600;color:var(--ink-soft);text-decoration:none;padding:7px 8px;border-radius:999px;transition:color .18s ease,background .18s ease;white-space:nowrap;}
.nav-link.is-muted{font-size:12px;}
.nav-link:hover{color:var(--ink);background:var(--teal-light);}
.nav-link.is-active{color:var(--ink);background:var(--teal-light);}
.nav-link.is-muted{color:var(--ink-faint);cursor:default;}
.nav-link.is-muted:hover{background:none;color:var(--ink-faint);}
.tag-soon{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;background:var(--line-soft);color:var(--ink-faint);padding:2px 6px;border-radius:999px;margin-left:7px;vertical-align:middle;}
.btn-primary .tag-soon{background:rgba(255,255,255,.28);color:var(--bg-card);}

.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:4px;width:38px;height:38px;border-radius:10px;border:1px solid var(--line-soft);background:#fff;cursor:pointer;flex-shrink:0;}
.nav-toggle span{display:block;width:16px;height:2px;background:var(--ink);margin:0 auto;transition:transform .18s ease,opacity .18s ease;}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

@media (max-width:1260px){
  .nav-inner{padding:14px 22px;}
  .nav-toggle{display:flex;}
  .nav-cta-mobile-wrap{display:flex;}
  .nav-cta-desktop{display:none;}
  .nav-links{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:2px;background:var(--bg);border-bottom:1px solid var(--line-soft);padding:8px 16px 18px;box-shadow:0 16px 30px -20px rgba(20,24,22,.3);}
  .nav-links.is-open{display:flex;}
  .nav-link{padding:12px 10px;border-radius:8px;}
}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--font-body);font-weight:700;font-size:15px;padding:15px 27px;border-radius:999px;text-decoration:none;border:2px solid transparent;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease;cursor:pointer;}
.btn-primary{background:var(--sage);color:var(--bg-card);}
.btn-primary:hover{background:var(--sage-hover);transform:translateY(-2px);box-shadow:0 16px 30px -14px rgba(65,108,75,.5);}
.btn-primary:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none;}
.btn-outline{background:transparent;color:var(--sage-hover);border-color:var(--sage);}
.btn-outline:hover{background:var(--sage);color:var(--bg-card);border-color:var(--sage);transform:translateY(-2px);}

/* Type helpers */
.eyebrow{font-family:var(--font-body);font-weight:700;font-size:12.5px;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-soft);}
.eyebrow-light{color:var(--soft-sage);}
.h1{font-family:var(--font-display);font-weight:600;line-height:1.03;letter-spacing:-.01em;color:var(--ink);margin:0;}
.h1-light{color:var(--bg-card);}
.h2{font-family:var(--font-display);font-weight:600;line-height:1.08;letter-spacing:-.005em;color:var(--ink);margin:0;}
.h2-light{color:var(--bg-card);}
.lede{font-family:var(--font-display);font-style:italic;font-weight:400;color:var(--ink-soft);margin:0;}
.lede-light{color:var(--cream-on-dark);}
.body-l{font-family:var(--font-body);font-size:18px;line-height:1.65;color:var(--ink-soft);margin:0;}
.body{font-family:var(--font-body);font-size:16px;line-height:1.7;color:var(--ink-soft);margin:0;}
.body-light{color:var(--cream-on-dark);}
.section-label{font-family:var(--font-body);font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:var(--teal);}

/* Cards */
.card{background:var(--bg-card);border:1px solid var(--line-soft);border-radius:var(--radius-m);box-shadow:var(--shadow-card);}
.door-card{cursor:pointer;transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease,border-color .28s ease,opacity .3s ease;border:2px solid var(--line-soft);text-decoration:none;display:block;opacity:.85;}
.door-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-card-hover);opacity:1;}
.door-card.is-active{border-color:var(--gold);box-shadow:0 22px 48px -18px rgba(65,108,75,.4);transform:translateY(-7px);opacity:1;}
.door-card.is-dimmed{opacity:.4;}
.door-card.is-dimmed:hover{opacity:.7;}

.pulse-ring{animation:pulseRing 1.8s ease-out infinite;}
@keyframes pulseRing{0%{box-shadow:0 0 0 0 rgba(79,125,87,.45);}70%{box-shadow:0 0 0 16px rgba(79,125,87,0);}100%{box-shadow:0 0 0 0 rgba(79,125,87,0);}}

.chip{display:inline-flex;align-items:center;text-align:left;font-family:var(--font-body);font-size:13.5px;font-weight:600;color:var(--ink);background:var(--teal-light);padding:9px 16px;border-radius:999px;border:1.5px solid transparent;cursor:pointer;transition:all .16s ease;line-height:1.3;}
.chip:hover{border-color:var(--gold);background:var(--sage-tint);}
.chip.is-selected{background:var(--sage);color:var(--bg-card);border-color:var(--sage);}

.step-num{font-family:var(--font-display);font-weight:600;color:var(--ink-soft);}

.flow-node{background:var(--bg-card);border:1px solid var(--line-soft);border-radius:999px;padding:12px 22px;font-family:var(--font-body);font-weight:700;font-size:14px;color:var(--ink);white-space:nowrap;box-shadow:var(--shadow-card);}
.flow-arrow{color:var(--ink-faint);font-size:20px;flex-shrink:0;}

.role-card{border:1px solid var(--line-soft);border-radius:var(--radius-m);padding:28px;background:var(--bg-card);transition:border-color .2s ease,transform .2s ease;}
.role-card:hover{border-color:var(--gold);transform:translateY(-3px);}

.faq-item{border-bottom:1px solid var(--line);}
.faq-q{width:100%;text-align:left;background:none;border:none;padding:22px 0;font-family:var(--font-display);font-size:19px;font-weight:600;color:var(--ink);display:flex;justify-content:space-between;align-items:center;cursor:pointer;}
.faq-a{padding:0 0 22px 0;display:none;}
.faq-item.is-open .faq-a{display:block;}
.faq-symbol{font-size:22px;color:var(--ink-soft);font-family:var(--font-display);}

.timeline-row{display:flex;gap:20px;align-items:flex-start;}
.timeline-dot{width:38px;height:38px;border-radius:50%;background:var(--teal-light);color:var(--ink);font-family:var(--font-display);font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:15px;}
.timeline-line{width:1px;flex:1;background:var(--line);margin:6px auto;min-height:18px;}

/* Footer */
.site-footer{background:var(--teal-dark);color:var(--cream-on-dark);}
.footer-cols{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr 1fr;gap:32px;}
.footer-heading{font-family:var(--font-body);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#9FB6AF;margin:0 0 14px 0;}
.footer-link{display:block;color:var(--cream-on-dark);text-decoration:none;font-family:var(--font-body);font-size:14.5px;margin-bottom:10px;opacity:.92;}
.footer-link:hover{opacity:1;text-decoration:underline;}
.footer-fine{font-family:var(--font-body);font-size:12.5px;color:#9FB6AF;line-height:1.7;}

.badge-dot{width:7px;height:7px;border-radius:50%;background:var(--gold);display:inline-block;}

.mosaic-tile{display:inline-flex;align-items:center;font-family:var(--font-body);font-weight:600;font-size:14px;line-height:1.3;padding:11px 18px;border-radius:14px;border:1.5px solid transparent;cursor:pointer;transition:all .16s ease;}
.mosaic-tile-a{background:var(--soft-sage);color:var(--deep-green);}
.mosaic-tile-b{background:var(--sand);color:#7A5A16;}
.mosaic-tile-c{background:var(--blush);color:#8A4A32;}
button.mosaic-tile:hover{border-color:var(--gold);transform:translateY(-1px);}
button.mosaic-tile.is-selected{border-color:currentColor;box-shadow:inset 0 0 0 1.5px currentColor;}
button.mosaic-tile.is-selected::before{content:"✓ ";}

.begin-card{background:var(--bg-card);border:1px solid var(--line-soft);border-radius:var(--radius-l);box-shadow:var(--shadow-card);}

.intent-banner-match{display:flex;flex-direction:column;gap:14px;background:var(--sage-tint);border:1px solid var(--sage);border-radius:18px;padding:18px 20px;}
.intent-banner-crisis{display:flex;flex-direction:column;gap:12px;background:var(--crisis-bg);border:2px solid var(--crisis-red);border-radius:18px;padding:22px 24px;}

.field{padding:14px 16px;border-radius:10px;border:1.5px solid rgba(28,26,22,.16);font-family:var(--font-body);font-size:15px;width:100%;}
textarea.field{resize:vertical;}

/* Reset native form-control chrome (iOS Safari in particular draws its own
   borders/shadows on top of custom ones unless appearance is reset). */
input[type="text"],
input[type="email"],
textarea,
button{
  -webkit-appearance:none;
  appearance:none;
  font-family:inherit;
  color:inherit;
}
textarea:focus,
input[type="text"]:focus,
input[type="email"]:focus{
  outline:2px solid var(--gold);
  outline-offset:1px;
}

/* Layout helpers used across pages */
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;}
.flex-row{display:flex;}
.flex-col{display:flex;flex-direction:column;}
.flow-wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px;}

.hero-decor{pointer-events:none;}
@media (max-width:640px){
  .hero-decor{display:none;}
}

@media (max-width:900px){
  .grid-3,.grid-4{grid-template-columns:repeat(2,minmax(0,1fr));}
  .footer-cols{grid-template-columns:1fr 1fr;}
}
@media (max-width:600px){
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr;}
  .footer-cols{grid-template-columns:1fr;}
  .h1{font-size:38px !important;}
}

/* Hero and other ad-hoc two-column grids (inline grid-template-columns) must
   stack on narrow screens — the copy and any accompanying visual should not
   be squeezed side by side into a mobile-width rectangle. */
@media (max-width:760px){
  .container[style*="grid-template-columns"]{grid-template-columns:1fr !important;}
}

/* ---------- Discovery modal ("What matters to you?") ---------- */
.discovery-overlay{position:fixed;inset:0;z-index:200;background:rgba(16,32,29,.55);display:flex;align-items:center;justify-content:center;padding:24px;}
.discovery-overlay.hidden{display:none;}
.discovery-panel{background:var(--bg-card);border-radius:var(--radius-l);max-width:640px;width:100%;max-height:88vh;overflow-y:auto;padding:44px 40px 36px;position:relative;box-shadow:0 40px 90px -30px rgba(16,32,29,.5);}
.discovery-close{position:absolute;top:16px;right:16px;background:none;border:none;font-size:26px;line-height:1;color:var(--ink-faint);cursor:pointer;padding:8px;}
.discovery-progress{height:4px;background:var(--line-soft);border-radius:99px;margin-bottom:26px;overflow:hidden;}
.discovery-progress span{display:block;height:100%;width:16.66%;background:var(--sage);border-radius:99px;transition:width .3s ease;}
.discovery-step{display:none;flex-direction:column;gap:16px;}
.discovery-step.is-active{display:flex;}
.discovery-textarea{min-height:110px;}
.discovery-actions{display:flex;gap:12px;margin-top:6px;flex-wrap:wrap;}
.discovery-options{display:flex;flex-direction:column;gap:10px;}
.discovery-option{display:flex;align-items:center;gap:10px;font-family:var(--font-body);font-size:15px;padding:12px 14px;border:1.5px solid var(--line-soft);border-radius:12px;cursor:pointer;transition:border-color .15s ease,background .15s ease;}
.discovery-option:has(input:checked){border-color:var(--sage);background:var(--sage-tint);}
@media (max-width:640px){
  .discovery-panel{padding:36px 22px 28px;max-height:94vh;}
}

/* ---------- Illustrative mosaic badges (Home — "Understand" section) ---------- */
.mosaic-badge-row{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;}
.mosaic-badge{width:104px;height:104px;border-radius:50%;border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;text-align:center;font-family:var(--font-body);font-weight:700;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);padding:8px;background:var(--bg-card);}
.mosaic-badge-sage{border-color:var(--soft-sage);}
.mosaic-badge-blush{border-color:var(--blush);}
.mosaic-badge-mist{border-color:var(--mist-blue);}
.mosaic-badge-sand{border-color:var(--sand);}
.mosaic-badge-lavender{border-color:var(--lavender);}
@media (max-width:600px){
  .mosaic-badge{width:84px;height:84px;font-size:10.5px;}
}

/* ---------- Photography placeholder (swap in approved single-person photography) ---------- */
.photo-placeholder{position:relative;border-radius:var(--radius-l);overflow:hidden;background:linear-gradient(150deg,var(--soft-sage) 0%,var(--bg-alt) 55%,var(--blush) 100%);display:flex;align-items:center;justify-content:center;min-height:340px;}
.photo-placeholder-label{font-family:var(--font-body);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);background:rgba(252,251,247,.75);padding:10px 18px;border-radius:999px;text-align:center;max-width:80%;}
.photo-frame{position:relative;border-radius:var(--radius-l);overflow:hidden;box-shadow:var(--shadow-card);}
.photo-frame img{display:block;width:100%;height:100%;object-fit:cover;}
.photo-frame.is-contain{background:var(--bg-alt);}
.photo-frame.is-contain img{object-fit:contain;}

/* ---------- Pathway cards (Home) ---------- */
.pathway-card{background:var(--bg-card);border:1px solid var(--line-soft);border-radius:var(--radius-m);padding:30px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow-card);transition:transform .2s ease,box-shadow .2s ease;}
.pathway-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card-hover);}
.pathway-card.is-soon{opacity:.72;}

/* ---------- Scroll reveal ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1);}
.reveal.is-visible{opacity:1;transform:translateY(0);}
.reveal-1.is-visible{transition-delay:.1s;}
.reveal-2.is-visible{transition-delay:.22s;}
.reveal-3.is-visible{transition-delay:.34s;}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;}
}

/* ---------- Screen (full-viewport narrative sections) ---------- */
.screen{min-height:100vh;display:flex;flex-direction:column;justify-content:center;}
@media (max-width:760px){
  .screen{min-height:auto;padding-top:64px;padding-bottom:64px;}
}

/* ---------- Fragment mosaic badge (screen 2) ---------- */
.fragment-badge{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;background:var(--bg-card);border:1px solid var(--line-soft);font-family:var(--font-body);font-weight:600;font-size:14px;color:var(--ink-soft);box-shadow:var(--shadow-card);}

/* ---------- Giant question type ---------- */
.giant-question{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em;line-height:1.02;color:var(--deep-green);font-size:64px;}
@media (max-width:760px){
  .giant-question{font-size:38px;}
}
