/* ═══════════════════════════════════════════════════════════════
   Plume — Brand Shared Styles
   Loaded on every marketing page. Defines design tokens, base
   typography, nav + footer + button components. Page-specific
   CSS should reference var(--*) and override only what's unique.
   ═══════════════════════════════════════════════════════════════ */

/* ─── Fonts (Fraunces variable w/ SOFT axis + DM Sans + DM Mono) ─ */
@import url("https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght,SOFT@9..144,300..700,0..100&family=DM+Mono:ital,wght@0,300;0,400;0,500;1,400&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&display=swap");

/* ─── Tokens ─────────────────────────────────────────────────── */
:root {
  /* Surfaces */
  --bg-base:        #F7F9FB;
  --bg-surface:     #F2F4F6;
  --bg-elevated:    #FFFFFF;
  --bg-subtle:      #ECEEF0;
  --bg-inverse:     #191C1E;

  /* Brand — editorial blue */
  --brand-primary:  #1A56DB;
  --brand-container:#2E6DEA;
  --brand-hover:    #2463E3;
  --brand-accent:   #103FA8;
  --brand-dim:      #E4ECFA;
  --brand-text:     #1A56DB;
  --brand-border:   rgba(26, 86, 219, 0.22);
  --brand-glow:     rgba(26, 86, 219, 0.16);
  --brand-primary-rgb: 26, 86, 219;
  --text-primary-rgb:  25, 28, 30;

  /* Text */
  --text-primary:   #191C1E;
  --text-secondary: #505F76;
  --text-muted:     #717783;
  --text-on-dark:   #EFF1F3;
  --text-on-brand:  #FFFFFF;

  /* Borders */
  --border-subtle:  rgba(193, 199, 211, 0.30);
  --border-default: rgba(193, 199, 211, 0.60);
  --border-strong:  rgba(193, 199, 211, 0.90);
  --border-brand:   var(--brand-border);

  /* Semantic */
  --success:        #1A7F5A;
  --success-bg:     #EDFAF4;
  --warning:        #A05E00;
  --error:          #C0392B;
  --error-bg:       #FDEEEC;
  --error-border:   rgba(192, 57, 43, 0.20);

  /* Shadows — warm-neutral */
  --shadow-xs:  0 1px 2px  rgba(25, 28, 30, 0.04);
  --shadow-sm:  0 1px 4px  rgba(25, 28, 30, 0.06);
  --shadow-md:  0 4px 16px rgba(25, 28, 30, 0.08);
  --shadow-lg:  0 12px 40px rgba(25, 28, 30, 0.10);
  --shadow-brand: 0 4px 18px rgba(26, 86, 219, 0.14);

  /* Typography */
  --font-display: 'Fraunces', Georgia, 'Times New Roman', serif;
  --font-body:    'DM Sans', sans-serif;
  --font-ui:      'DM Sans', sans-serif;
  --font-code:    'DM Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  --text-xs:   0.6875rem;
  --text-sm:   0.8125rem;
  --text-base: 0.9375rem;
  --text-lg:   1.0625rem;
  --text-xl:   1.25rem;
  --text-2xl:  1.5rem;
  --text-3xl:  2rem;
  --text-4xl:  2.75rem;
  --text-5xl:  3.75rem;

  /* Spacing (4px base) */
  --space-1:  0.25rem;
  --space-2:  0.5rem;
  --space-3:  0.75rem;
  --space-4:  1rem;
  --space-5:  1.25rem;
  --space-6:  1.5rem;
  --space-7:  1.75rem;
  --space-8:  2rem;
  --space-9:  2.25rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;
  --space-32: 8rem;

  /* Motion */
  --ease-out-expo: cubic-bezier(0.19, 1, 0.22, 1);
  --ease-in-out:   cubic-bezier(0.65, 0, 0.35, 1);
  --ease-sharp:    cubic-bezier(0.4, 0, 0.2, 1);
  --duration-instant: 80ms;
  --duration-fast:    130ms;
  --duration-normal:  200ms;
  --duration-slow:    340ms;
  --duration-reveal:  600ms;

  /* Floating nav metrics (consumed by body padding) */
  --nav-height: 60px;
  --nav-offset: 18px;
  --nav-footprint: 92px;         /* 18 top + 60 nav + 14 breathing */
  --nav-footprint-mobile: 74px;  /* 10 top + 56 nav + 8 breathing */
}

/* ─── Reset ──────────────────────────────────────────────────── */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{overflow-x:hidden;max-width:100%}
body{
  font-family:var(--font-body);
  background:var(--bg-base);
  color:var(--text-primary);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
  padding-top:var(--nav-footprint);
}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}

/* Headings default to Fraunces with breathing variation settings */
h1,h2,h3,h4,h5,h6{
  font-family:var(--font-display);
  font-weight:400;
  letter-spacing:0;
  line-height:1.25;
  color:var(--text-primary);
  font-variation-settings:"opsz" 96,"SOFT" 50;
}

/* ─── Buttons ────────────────────────────────────────────────── */
.btn{font-family:var(--font-ui);display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0.7rem 1.4rem;border-radius:8px;font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:background var(--duration-fast),border-color var(--duration-fast),color var(--duration-fast),box-shadow var(--duration-fast);white-space:nowrap;border:1px solid transparent;line-height:1.2;text-decoration:none}
.btn-ghost{background:transparent;border-color:var(--border-default);color:var(--text-primary)}
.btn-ghost:hover{background:var(--bg-surface);border-color:var(--border-strong)}
.btn-secondary{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-default)}
.btn-secondary:hover{background:var(--bg-subtle);border-color:var(--border-strong)}
.btn-primary{background:var(--brand-primary);color:var(--text-on-brand);border:1px solid var(--brand-primary)}
.btn-primary:hover{background:var(--brand-hover);border-color:var(--brand-hover)}
.btn-primary:active{background:var(--brand-accent)}
.btn-primary:focus-visible{outline:none;box-shadow:0 0 0 3px var(--brand-glow)}
.btn-lg{padding:0.95rem 1.75rem;font-size:var(--text-base);border-radius:10px}
.btn-nav{padding:0.55rem 1.1rem;font-size:var(--text-sm);border-radius:8px}

/* ─── Nav — floating glass pill, 3-col flex ─────────────────── */
nav{position:fixed;top:var(--nav-offset);left:50%;transform:translateX(-50%);width:calc(100% - 32px);max-width:1120px;height:var(--nav-height);display:flex;align-items:center;padding:0 10px 0 22px;gap:var(--space-4);background:rgba(255,255,255,0.62);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid rgba(255,255,255,0.85);border-radius:100px;box-shadow:0 1px 0 rgba(255,255,255,0.9) inset,0 10px 40px rgba(25,28,30,0.08),0 2px 8px rgba(25,28,30,0.04);z-index:100}
.nav-logo{flex-shrink:0;display:inline-flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;letter-spacing:-.01em;color:var(--text-primary);text-decoration:none;transition:color var(--duration-fast);font-variation-settings:"opsz" 40,"SOFT" 50}
.nav-logo-mark{width:32px;height:32px;display:block;flex-shrink:0;border-radius:8px;object-fit:contain}
.nav-logo:hover{color:var(--brand-primary)}
.nav-links{flex:1;display:flex;justify-content:center;gap:2px;align-items:center;min-width:0}
.nav-cta{flex-shrink:0;display:flex;gap:8px;align-items:center}

.nav-link-plain{position:relative;font-family:var(--font-ui);font-size:var(--text-sm);color:var(--text-secondary);font-weight:500;padding:8px 14px;border-radius:999px;transition:color var(--duration-fast),background var(--duration-fast)}
.nav-link-plain:hover{color:var(--text-primary);background:rgba(255,255,255,0.5)}

.nav-item{position:relative;display:inline-flex;align-items:center}
.nav-dropdown-btn{position:relative;font-family:var(--font-ui);background:none;border:none;font-size:var(--text-sm);color:var(--text-secondary);font-weight:500;padding:8px 14px;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:color var(--duration-fast),background var(--duration-fast);line-height:1}
.nav-dropdown-btn:hover{color:var(--text-primary);background:rgba(255,255,255,0.5)}
.nav-dropdown-btn::after{content:'';display:inline-block;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform var(--duration-fast);margin-left:2px}
.nav-dropdown-btn.open::after{transform:rotate(-135deg) translateY(2px)}
.nav-dropdown{display:none;position:absolute;top:calc(100% + 12px);left:0;background:var(--bg-base);border:1px solid var(--border-default);border-radius:10px;box-shadow:var(--shadow-md);min-width:180px;padding:6px;z-index:300}
.nav-dropdown.open{display:block}
.nav-dropdown a{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:6px;font-size:var(--text-sm);color:var(--text-secondary);transition:all var(--duration-fast);white-space:nowrap;font-family:var(--font-ui)}
.nav-dropdown a:hover{background:rgba(var(--brand-primary-rgb),.06);color:var(--brand-accent)}

/* Lang toggle (injected by nav.js) */
.lang-toggle{display:flex;gap:4px;align-items:center}
.lang-btn{font-family:var(--font-ui);background:transparent;border:1px solid transparent;color:var(--text-muted);font-size:var(--text-xs);font-weight:700;padding:6px 9px;border-radius:999px;cursor:pointer;transition:all var(--duration-fast);line-height:1;min-height:28px;letter-spacing:.02em}
.lang-btn.active{background:rgba(var(--brand-primary-rgb),.10);border-color:transparent;color:var(--brand-primary)}
.lang-btn:hover:not(.active){color:var(--brand-primary)}

/* Burger (mobile) */
.burger{display:none;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;padding:6px;border-radius:6px;width:36px;height:36px;flex-shrink:0}
.burger span{display:block;width:22px;height:2px;background:var(--text-primary);border-radius:2px;transition:transform .25s,opacity .25s}
.burger.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}

.mobile-nav{display:none;position:fixed;top:74px;left:0;right:0;bottom:0;background:var(--bg-base);z-index:99;padding:var(--space-4) 5% var(--space-8);overflow-y:auto;flex-direction:column}
.mobile-nav.open{display:flex}
.mobile-nav a:not(.btn),.mobile-nav-plain{font-family:var(--font-ui);font-size:var(--text-base);color:var(--text-secondary);font-weight:500;padding:15px 0;border-bottom:1px solid var(--border-subtle);display:block;transition:color var(--duration-fast)}
.mobile-nav a:hover,.mobile-nav-plain:hover{color:var(--brand-accent)}
.mobile-nav-section{font-family:var(--font-ui);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:var(--space-5) 0 var(--space-2);border-bottom:none}
.mobile-nav-actions{display:flex;flex-direction:column;gap:var(--space-3);padding-top:var(--space-5)}

/* ─── Footer (shared) ─────────────────────────────────────────── */
footer{position:relative;z-index:1;border-top:1px solid var(--border-subtle);padding:var(--space-12) 5% var(--space-8);background:var(--bg-surface)}
.footer-inner{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:var(--space-10);max-width:1180px;margin:0 auto var(--space-10)}
.footer-logo{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-display);font-weight:600;font-size:var(--text-base);margin-bottom:var(--space-3);color:var(--text-primary);font-variation-settings:"opsz" 40,"SOFT" 50}
.footer-logo-mark{width:26px;height:26px;display:block;flex-shrink:0;border-radius:6px;object-fit:contain}
.footer-tagline{font-family:var(--font-ui);font-size:var(--text-sm);color:var(--text-muted);line-height:1.6;max-width:260px}
.footer-col-title{font-family:var(--font-ui);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:var(--space-3)}
.footer-links{display:flex;flex-direction:column;gap:var(--space-2)}
.footer-links a{font-family:var(--font-ui);font-size:var(--text-sm);color:var(--text-secondary);transition:color var(--duration-fast)}
.footer-links a:hover{color:var(--brand-accent)}
.footer-bottom{max-width:1180px;margin:0 auto;border-top:1px solid var(--border-subtle);padding-top:var(--space-6);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-2);font-family:var(--font-ui);font-size:var(--text-xs);color:var(--text-muted)}
.footer-bottom a{color:var(--text-muted);transition:color var(--duration-fast)}
.footer-bottom a:hover{color:var(--brand-accent)}

/* ─── Responsive ─────────────────────────────────────────────── */
@media (max-width: 900px){
  .nav-links{display:none}
}
@media (max-width: 700px){
  body{padding-top:var(--nav-footprint-mobile)}
  nav{position:fixed;top:10px;left:10px;right:10px;width:auto;max-width:none;transform:none;height:56px;padding:0 14px 0 18px;border-radius:100px}
  .nav-logo{font-size:var(--text-base)}
  .nav-logo-mark{width:28px;height:28px;border-radius:7px}
  .nav-cta{display:none}
  .burger{display:flex}
  .mobile-nav{top:74px}
  .footer-inner{grid-template-columns:1fr;gap:var(--space-6)}
}
