/* Wove — woveaac.com
   Design source of truth: QA v1.2 (hero option A), approved 24 Sep 2026.
   Tokens match Wove App v3.5.3. */

@font-face{font-family:'Rubik';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/rubik-400.woff2) format('woff2')}
@font-face{font-family:'Rubik';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/rubik-500.woff2) format('woff2')}
@font-face{font-family:'Rubik';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/rubik-700.woff2) format('woff2')}
@font-face{font-family:'Rubik';font-style:normal;font-weight:800;font-display:swap;src:url(/assets/fonts/rubik-800.woff2) format('woff2')}
@font-face{font-family:'Rubik';font-style:normal;font-weight:900;font-display:swap;src:url(/assets/fonts/rubik-900.woff2) format('woff2')}

:root{
  --aubergine:#2A1F33; --aubergine-deep:#1E1626;
  --pearl:#F5F0EA; --card:#FFFFFF; --hair:#E6DDD0;
  --ink:#2A1F33; --ink-mid:#5C5263; --ink-soft:#6B6477;
  --saffron:#E3A23C; --saffron-tint:#E9BD78; --amber-deep:#8C6425;
  --periwinkle:#7E83C4;
  --on-dark:#F5F0EA; --on-dark-soft:#CDC4CC; --on-dark-quiet:#A89FB0;
  --radius:20px;
  --maxw:1160px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;font-family:'Rubik',system-ui,-apple-system,'Segoe UI',sans-serif;font-size:1.125rem;line-height:1.7;color:var(--ink);background:var(--pearl);-webkit-font-smoothing:antialiased}
h1,h2,h3{margin:0;color:inherit;letter-spacing:-.02em;line-height:1.08}
p{margin:0}
a{color:inherit}
img,svg{display:block}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}

/* Skip link: hidden until focused */
.skip{position:absolute;left:16px;top:-100px;z-index:100;background:var(--aubergine);color:var(--pearl);padding:12px 18px;border-radius:12px;font-weight:700;text-decoration:none}
.skip:focus{top:16px}
:focus-visible{outline:3px solid var(--saffron);outline-offset:3px;border-radius:10px}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* Brand */
.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;min-height:44px}
.brand .bind{width:44px;height:auto;flex:none}
.brand .word{font-weight:900;font-size:1.625rem;letter-spacing:-.03em;line-height:1}
.on-dark .brand .word{color:var(--on-dark)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border-radius:999px;
  font:700 1.0625rem/1 'Rubik',system-ui,sans-serif;text-decoration:none;border:0;cursor:pointer;white-space:nowrap}
.btn svg{flex:none}
.btn-primary{background:var(--saffron);color:var(--aubergine)}
.btn-primary:hover{background:var(--saffron-tint)}
.btn-dark{background:var(--aubergine);color:var(--pearl)}
.btn-dark:hover{background:#3A2D47}
.btn-quiet{background:transparent;color:var(--ink);border:1.5px solid var(--hair)}
.btn-quiet:hover{border-color:var(--ink-soft)}
.btn-sm{min-height:44px;padding:0 20px;font-size:1rem}
.textlink{font-weight:700;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px;padding:10px 0}
.on-dark .textlink{color:var(--on-dark);text-decoration-color:var(--saffron)}

/* Header */
.site-header{position:relative;padding:22px 0}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px}
.on-dark{background:var(--aubergine);color:var(--on-dark)}
.light-header{border-bottom:1px solid var(--hair);background:var(--pearl)}
.light-header .brand .bind{width:40px}
.backlink{font-weight:700;font-size:1rem;text-decoration:none;display:inline-flex;align-items:center;gap:8px;min-height:44px}

/* The Weave — a single faint Saffron thread on dark bands */
.thread{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}

/* Hero */
.hero{position:relative;overflow:hidden}
.hero-in{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center;padding:56px 32px 104px}
.hero h1{font-weight:900;font-size:clamp(2.875rem,6.2vw,5rem);line-height:1.02;letter-spacing:-.035em}
.hero h1 em{font-style:normal;color:var(--saffron)}
.hero .line{margin-top:24px;font-size:1.3125rem;line-height:1.6;color:var(--on-dark);text-wrap:balance}
.hero .actions{margin-top:36px;display:flex;align-items:center;gap:28px;flex-wrap:wrap}

/* Wove App moment (cropped from the approved "Ready to talk" screen) */
.app-moment{margin:0;border-radius:28px;overflow:hidden;background:var(--pearl);box-shadow:0 0 0 1px rgba(245,240,234,.10),0 40px 80px rgba(0,0,0,.45)}
.app-moment img{width:100%;height:auto}

/* Sections */
.sec{padding:112px 0}
.eyebrow{font-weight:700;font-size:.875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--amber-deep);margin-bottom:18px}

/* The Weave — four threads on Pearl (v3.5.3) */
.weave{display:block;width:100%;max-width:620px;height:auto;margin:-16px auto 48px}

.why-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:end}
.why h2{font-weight:800;font-size:clamp(2.125rem,4.2vw,3.25rem);line-height:1.1;text-wrap:balance}
.why p{font-size:1.25rem;color:var(--ink-mid);max-width:36ch;text-wrap:pretty}

.app{background:var(--card);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.app-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:56px;align-items:start}
.app h2{font-weight:800;font-size:clamp(2.125rem,4.2vw,3.25rem)}
.app .body{font-size:1.25rem;color:var(--ink-mid);text-wrap:pretty}
.principles{margin:64px 0 0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.pcard{background:var(--pearl);border:1px solid var(--hair);border-radius:var(--radius);padding:28px 28px 30px}
.pcard .ic{width:48px;height:48px;border-radius:14px;background:var(--card);border:1px solid var(--hair);display:flex;align-items:center;justify-content:center;margin-bottom:22px}
.pcard h3{font-weight:700;font-size:1.3125rem;letter-spacing:-.01em;line-height:1.25;margin-bottom:10px}
.pcard p{font-size:1.0625rem;color:var(--ink-mid);line-height:1.65;text-wrap:pretty}
.avail{margin-top:40px;display:flex;gap:14px;align-items:flex-start;font-size:1.03rem;color:var(--ink-mid);max-width:68ch}
.avail a{font-weight:700;color:var(--ink)}
.avail .dot{width:10px;height:10px;border-radius:50%;background:var(--periwinkle);margin-top:9px;flex:none}

.contact{position:relative;overflow:hidden}
.contact .wrap{position:relative;text-align:center}
.contact h2{font-weight:900;font-size:clamp(2.5rem,5vw,4rem)}
.contact p{margin:22px auto 0;max-width:40ch;font-size:1.25rem;color:var(--on-dark);text-wrap:balance}
.contact .btn{margin-top:38px;min-height:58px;font-size:1.1875rem;padding:0 32px}

/* Footer */
.site-footer{background:var(--aubergine-deep);color:var(--on-dark-soft);padding:44px 0 40px;font-size:.97rem}
.site-footer .row{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.site-footer .brand .bind{width:34px}
.site-footer .brand .word{font-size:1.375rem;color:var(--on-dark)}
.site-footer .tag{color:var(--on-dark-soft);font-weight:500;margin-left:6px}
.site-footer nav{display:flex;gap:26px;align-items:center;flex-wrap:wrap}
.site-footer nav a{color:var(--on-dark);font-weight:500;text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.site-footer nav a:hover{text-decoration:underline;text-underline-offset:4px}
.social{display:flex;gap:10px}
.social a{width:44px;height:44px;border-radius:12px;background:rgba(245,240,234,.08);display:flex;align-items:center;justify-content:center}
.social a:hover{background:rgba(245,240,234,.16)}
.site-footer .legal{margin-top:28px;padding-top:22px;border-top:1px solid rgba(245,240,234,.12);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--on-dark-quiet)}
.site-footer .legal a{color:var(--on-dark-quiet);text-decoration:none}
.site-footer .legal a:hover{text-decoration:underline}

/* Legal pages */
.doc{max-width:720px;margin:0 auto;padding:88px 32px 112px}
.doc h1{font-weight:800;font-size:clamp(2.375rem,5vw,3.375rem)}
.doc .updated{margin-top:14px;color:var(--ink-soft);font-size:1rem}
.doc h2{font-weight:700;font-size:1.4375rem;margin:44px 0 12px;letter-spacing:-.01em}
.doc p,.doc li{color:var(--ink-mid);font-size:1.125rem}
.doc p+p{margin-top:14px}
.doc ul{padding-left:22px;margin:10px 0 0}
.doc li{margin-bottom:6px}
.doc a{font-weight:700;color:var(--ink)}

/* 404 — a thread came loose */
.nf{display:flex;align-items:center;justify-content:center;padding:72px 0 96px;text-align:center;min-height:60vh}
.nf .loose{display:block;width:100%;max-width:440px;height:auto;margin:0 auto 28px}
.nf .eyebrow{margin-bottom:16px}
.nf h1{font-weight:800;font-size:clamp(2.125rem,4.6vw,3.25rem)}
.nf .lead{margin:16px auto 0;max-width:40ch;font-size:1.1875rem;color:var(--ink-mid)}
.hear{margin-top:22px;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:999px;border:1.5px solid var(--hair);background:var(--card);color:var(--ink);font:600 1rem/1 'Rubik',system-ui,sans-serif;cursor:pointer}
.hear:hover{border-color:var(--ink-soft)}
.hear[hidden]{display:none}
.nf-actions{margin-top:30px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* Responsive */
/* Get in touch paragraph: two lines on desktop */
@media (min-width:901px){.contact p{max-width:64ch}}

@media (max-width:900px){
  body{font-size:1.0625rem}
  .wrap{padding:0 20px}
  .hero-in{grid-template-columns:1fr;gap:44px;padding:28px 20px 72px}
  .hero .line{font-size:1.1875rem}
  .hero .actions{gap:22px}
  .sec{padding:76px 0}
  .why-grid,.app-head{grid-template-columns:1fr;gap:22px}
  .principles{grid-template-columns:1fr;margin-top:40px;gap:14px}
  .weave{margin:-8px auto 32px}
  .why p,.app .body,.contact p{font-size:1.125rem}
  .app-moment{border-radius:20px}
  .site-footer .row{flex-direction:column;align-items:flex-start}
  .doc{padding:56px 20px 80px}
  .nf .loose{max-width:300px}
  .nf-actions{flex-direction:column;align-items:stretch;max-width:320px;margin-left:auto;margin-right:auto}
}
@media (max-width:360px){
  .site-header .btn-sm{padding:0 14px}
  .brand .word{font-size:1.375rem}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
