/*
 * powrplatform.com landing-page styles.
 * Extracted from the former inline <style> in index.html so the page can run
 * under a strict Content-Security-Policy (style-src 'self', no 'unsafe-inline').
 * Fonts are self-hosted from /fonts/ (was @import url(fonts.googleapis.com)) so
 * the page has zero third-party origins and leaks nothing to Google.
 */

/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/fonts/rP2Hp2ywxg089UriCZ2IHSeH.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/fonts/rP2Hp2ywxg089UriCZOIHQ.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/rP2Hp2ywxg089UriCZ2IHSeH.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/rP2Hp2ywxg089UriCZOIHQ.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/rP2Hp2ywxg089UriCZ2IHSeH.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/rP2Hp2ywxg089UriCZOIHQ.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
  font-family: 'Instrument Serif';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/jizHRFtNs2ka5fXjeivQ4LroWlx-6zAjgn7MsNo.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Instrument Serif';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/jizHRFtNs2ka5fXjeivQ4LroWlx-6zAjjH7M.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
  font-family: 'Instrument Serif';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/jizBRFtNs2ka5fXjeivQ4LroWlx-6zsTjmbI.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Instrument Serif';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/jizBRFtNs2ka5fXjeivQ4LroWlx-6zUTjg.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
  font-family: 'Playfair Display SC';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/ke85OhoaMkR6-hSn7kbHVoFf7ZfgMPr_lbcMEPM2.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Playfair Display SC';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/ke85OhoaMkR6-hSn7kbHVoFf7ZfgMPr_lbkMEA.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
  font-family: 'Playfair Display SC';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/ke80OhoaMkR6-hSn7kbHVoFf7ZfgMPr_nQIpBcIXLrIU.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Playfair Display SC';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/ke80OhoaMkR6-hSn7kbHVoFf7ZfgMPr_nQIpBcwXLg.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* In-page smooth scrolling (replaces the removed inline scrollIntoView handlers) */
html { scroll-behavior: smooth; }

/* CTA anchors styled as buttons (converted from <button onclick> to <a href>
   so the page runs zero JavaScript) */
a.btn-primary, a.btn-primary-lg, a.btn-outline { text-decoration: none; display: inline-block; }

/* Utility (replaces the one inline style="margin-bottom:0") */
.mb-0 { margin-bottom: 0; }

    * { box-sizing: border-box; margin: 0; padding: 0; }

    :root {
      --powr-blue:      #3b5e82;
      --powr-blue-dark: #1f3c59;
      --surface-page:   #f4f5f0;
      --surface-card:   #ffffff;
      --surface-panel:  #eeeee6;
      --text-primary:   #1a1a16;
      --text-secondary: #5a5a54;
      --text-muted:     #8a8a82;
      --border:         rgba(26,26,22,0.10);
      --border-strong:  rgba(26,26,22,0.18);
    }

    body {
      font-family: 'DM Sans', system-ui, sans-serif;
      background: var(--surface-page);
      color: var(--text-primary);
      font-size: 15px;
      line-height: 1.6;
      -webkit-font-smoothing: antialiased;
    }

    /* ── Announcement bar ── */
    .announcement-bar {
      background: var(--powr-blue-dark);
      color: rgba(255,255,255,0.8);
      text-align: center;
      padding: 10px 48px;
      font-size: 12px;
      letter-spacing: 0.03em;
    }
    .announcement-bar strong { color: #fff; font-weight: 500; }

    /* ── Nav ── */
    nav {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 14px 48px;
      border-bottom: 0.5px solid var(--border);
      background: var(--surface-page);
    }
    .nav-logo-wrap { display: flex; flex-direction: column; gap: 3px; }
    .nav-logo-wrap img { height: 70px; width: auto; }
    .nav-byline {
      font-family: 'Playfair Display SC', serif;
      font-size: 9px;
      color: var(--text-muted);
      letter-spacing: 0.06em;
      font-weight: 400;
    }
    .nav-links { display: flex; gap: 36px; list-style: none; }
    .nav-links a {
      text-decoration: none;
      color: var(--text-secondary);
      font-size: 14px;
    }
    .btn-primary {
      background: var(--powr-blue-dark);
      color: #fff;
      border: none;
      padding: 9px 20px;
      border-radius: 6px;
      font-size: 14px;
      font-weight: 500;
      font-family: 'DM Sans', sans-serif;
      cursor: pointer;
    }
    .btn-primary-lg {
      background: var(--powr-blue-dark);
      color: #fff;
      border: none;
      padding: 12px 26px;
      border-radius: 6px;
      font-size: 15px;
      font-weight: 500;
      font-family: 'DM Sans', sans-serif;
      cursor: pointer;
    }
    .btn-outline {
      background: transparent;
      color: var(--powr-blue-dark);
      border: 1px solid var(--powr-blue);
      padding: 11px 24px;
      border-radius: 6px;
      font-size: 15px;
      font-weight: 400;
      font-family: 'DM Sans', sans-serif;
      cursor: pointer;
    }

    /* ── Hero ── */
    .hero { padding: 76px 48px 60px; max-width: 780px; }
    .hero-eyebrow {
      font-size: 11px;
      font-weight: 500;
      letter-spacing: 0.09em;
      text-transform: uppercase;
      color: var(--powr-blue);
      margin-bottom: 20px;
    }
    .hero h1 {
      font-family: 'Instrument Serif', serif;
      font-size: 54px;
      line-height: 1.07;
      letter-spacing: -1.5px;
      color: var(--text-primary);
      margin-bottom: 26px;
      font-weight: 400;
    }
    .hero h1 em { font-style: italic; color: var(--powr-blue); }
    .hero-sub {
      font-size: 17px;
      line-height: 1.65;
      color: var(--text-secondary);
      max-width: 520px;
      margin-bottom: 14px;
      font-weight: 300;
    }
    .hero-note {
      font-size: 13px;
      color: var(--text-muted);
      margin-bottom: 38px;
      font-style: italic;
    }
    .hero-actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }

    /* ── Divider ── */
    .divider { height: 0.5px; background: var(--border-strong); margin: 0 48px; }

    /* ── Definition section ── */
    .definition-section {
      padding: 64px 48px;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0;
      border-bottom: 0.5px solid var(--border-strong);
    }
    .definition-left {
      padding-right: 56px;
      border-right: 0.5px solid var(--border-strong);
    }
    .definition-right { padding-left: 56px; }
    .definition-left img { height: 36px; width: auto; margin-bottom: 20px; display: block; }
    .definition-label {
      font-size: 11px;
      font-weight: 500;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--text-muted);
      margin-bottom: 10px;
    }
    .definition-expand {
      font-family: 'Instrument Serif', serif;
      font-size: 22px;
      color: var(--text-primary);
      line-height: 1.3;
      letter-spacing: -0.3px;
      font-weight: 400;
      margin-bottom: 16px;
    }
    .definition-expand em { font-style: italic; color: var(--powr-blue); }
    .definition-body {
      font-size: 14px;
      color: var(--text-secondary);
      line-height: 1.7;
      font-weight: 300;
    }
    .definition-pillars { display: flex; flex-direction: column; gap: 20px; padding-top: 4px; }
    .pillar { display: flex; gap: 14px; align-items: flex-start; }
    .pillar-icon {
      width: 32px;
      height: 32px;
      border-radius: 4px;
      background: var(--powr-blue);
      flex-shrink: 0;
      overflow: hidden;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .pillar-icon img { width: 32px; height: 32px; object-fit: cover; }
    .pillar-text-label {
      font-size: 12px;
      font-weight: 500;
      color: var(--text-primary);
      margin-bottom: 2px;
    }
    .pillar-text-desc {
      font-size: 13px;
      color: var(--text-secondary);
      font-weight: 300;
      line-height: 1.5;
    }

    /* ── App preview ── */
    .app-preview {
      margin: 56px 48px;
      background: var(--powr-blue);
      border-radius: 10px;
      padding: 26px;
    }
    .app-chrome {
      background: #fff;
      border-radius: 6px;
      overflow: hidden;
      box-shadow: 0 2px 16px rgba(0,0,0,0.18);
    }
    .app-titlebar {
      background: var(--powr-blue-dark);
      padding: 9px 16px;
      display: flex;
      align-items: center;
      gap: 6px;
    }
    .dot { width: 8px; height: 8px; border-radius: 50%; }
    .dot-r { background: #ff5f57; }
    .dot-y { background: #ffbd2e; }
    .dot-g { background: #28c840; }
    .app-titlebar-label {
      margin-left: 8px;
      font-size: 11px;
      color: rgba(255,255,255,0.55);
    }
    .app-body { display: grid; grid-template-columns: 194px 1fr; min-height: 210px; }
    .app-sidebar { background: #f8fafc; border-right: 0.5px solid #e2e8f0; padding: 14px 0; }
    .app-sidebar-section {
      padding: 4px 16px;
      font-size: 10px;
      font-weight: 500;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: #94a3b8;
      margin-top: 10px;
    }
    .app-sidebar-item {
      padding: 6px 16px;
      font-size: 12px;
      color: #475569;
      display: flex;
      justify-content: space-between;
      align-items: center;
    }
    .app-sidebar-item.active {
      background: #e8eef5;
      color: var(--powr-blue-dark);
      font-weight: 500;
      border-left: 2px solid var(--powr-blue);
      padding-left: 14px;
    }
    .app-badge {
      font-size: 10px;
      background: var(--powr-blue);
      color: white;
      padding: 1px 6px;
      border-radius: 10px;
      font-weight: 500;
    }
    .app-content { padding: 14px 18px; }
    .app-content-header {
      font-size: 10px;
      font-weight: 500;
      color: #64748b;
      margin-bottom: 10px;
      text-transform: uppercase;
      letter-spacing: 0.05em;
    }
    .opp-row {
      display: grid;
      grid-template-columns: 1fr 72px 60px 56px;
      gap: 10px;
      padding: 7px 8px;
      border-radius: 4px;
      font-size: 12px;
      align-items: center;
      border-bottom: 0.5px solid #f1f5f9;
    }
    .opp-title { font-weight: 500; color: #1e293b; font-size: 12px; }
    .opp-sub { color: #94a3b8; font-size: 10px; }
    .badge { padding: 2px 7px; border-radius: 3px; font-size: 10px; font-weight: 500; text-align: center; }
    .badge-pursue  { background: #dcfce7; color: #166534; }
    .badge-review  { background: #dbeafe; color: #1e40af; }
    .badge-standby { background: #fef3c7; color: #92400e; }
    .score { font-weight: 600; font-size: 13px; color: var(--powr-blue-dark); }
    .stars { color: #f59e0b; font-size: 10px; }

    /* ── Modules ── */
    .modules-section { padding: 72px 48px; }
    .section-eyebrow {
      font-size: 11px;
      font-weight: 500;
      letter-spacing: 0.09em;
      text-transform: uppercase;
      color: var(--text-muted);
      margin-bottom: 16px;
    }
    .section-title {
      font-family: 'Instrument Serif', serif;
      font-size: 40px;
      line-height: 1.1;
      letter-spacing: -1px;
      color: var(--text-primary);
      margin-bottom: 12px;
      font-weight: 400;
      max-width: 520px;
    }
    .section-sub {
      color: var(--text-secondary);
      font-size: 16px;
      max-width: 500px;
      margin-bottom: 44px;
      font-weight: 300;
      line-height: 1.6;
    }
    .modules-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 10px;
      margin-bottom: 10px;
    }
    .module-card {
      background: var(--surface-card);
      border: 0.5px solid var(--border-strong);
      border-radius: 6px;
      padding: 18px 16px 16px;
      position: relative;
    }
    .module-card.live { border-color: var(--powr-blue); }
    .module-card.soon { opacity: 0.78; }
    .module-card-tag {
      position: absolute;
      top: 12px;
      right: 12px;
      font-size: 9px;
      font-weight: 600;
      letter-spacing: 0.07em;
      text-transform: uppercase;
    }
    .tag-live { color: var(--powr-blue); }
    .tag-soon { color: var(--text-muted); }
    .module-num {
      font-size: 10px;
      font-weight: 500;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: var(--text-muted);
      margin-bottom: 7px;
    }
    .module-card.live .module-num { color: var(--powr-blue); }
    .module-name {
      font-family: 'Instrument Serif', serif;
      font-size: 18px;
      color: var(--text-primary);
      letter-spacing: -0.2px;
      margin-bottom: 7px;
      font-weight: 400;
    }
    .module-desc { font-size: 12px; color: var(--text-secondary); line-height: 1.55; }

    /* ── Who section ── */
    .who-section {
      padding: 72px 48px;
      background: var(--surface-panel);
      border-top: 0.5px solid var(--border-strong);
      border-bottom: 0.5px solid var(--border-strong);
    }
    .who-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 40px 56px;
      margin-top: 40px;
    }
    .who-item-label {
      font-size: 11px;
      font-weight: 500;
      letter-spacing: 0.07em;
      text-transform: uppercase;
      color: var(--powr-blue);
      margin-bottom: 8px;
    }
    .who-item-title {
      font-family: 'Instrument Serif', serif;
      font-size: 21px;
      color: var(--text-primary);
      margin-bottom: 10px;
      font-weight: 400;
      line-height: 1.2;
    }
    .who-item-desc {
      font-size: 14px;
      color: var(--text-secondary);
      line-height: 1.65;
      font-weight: 300;
    }

    /* ── Signup ── */
    .signup-section { padding: 88px 48px; }
    .signup-section h2 {
      font-family: 'Instrument Serif', serif;
      font-size: 44px;
      letter-spacing: -1px;
      color: var(--text-primary);
      margin-bottom: 14px;
      font-weight: 400;
      line-height: 1.1;
      max-width: 480px;
    }
    .signup-section h2 em { font-style: italic; color: var(--powr-blue); }
    .signup-section p {
      font-size: 16px;
      color: var(--text-secondary);
      margin-bottom: 32px;
      max-width: 440px;
      font-weight: 300;
      line-height: 1.6;
    }
    .signup-form { display: flex; gap: 10px; flex-wrap: wrap; }
    .signup-form input {
      padding: 11px 16px;
      border: 0.5px solid var(--border-strong);
      border-radius: 6px;
      font-size: 14px;
      font-family: 'DM Sans', sans-serif;
      background: var(--surface-card);
      color: var(--text-primary);
      width: 210px;
      outline: none;
    }
    .signup-form input:focus { border-color: var(--powr-blue); }

    /* ── AgriWorks strip ── */
    .agriworks-strip {
      background: var(--powr-blue-dark);
      padding: 22px 48px;
      display: flex;
      align-items: center;
      justify-content: space-between;
    }
    .agriworks-strip img { height: 40px; width: auto; }
    .agriworks-right {
      font-size: 12px;
      color: rgba(255,255,255,0.45);
      letter-spacing: 0.02em;
    }

    /* ── Footer ── */
    footer {
      padding: 16px 48px;
      border-top: 0.5px solid var(--border);
      display: flex;
      justify-content: space-between;
      align-items: center;
    }
    footer img { height: 18px; width: auto; opacity: 0.45; }
    .footer-note { font-size: 11px; color: var(--text-muted); }

    /* ── Mobile responsive ── */
    @media (max-width: 768px) {
      nav { padding: 14px 20px; }
      .nav-links { display: none; }
      .hero { padding: 48px 20px 40px; }
      .hero h1 { font-size: 36px; }
      .divider { margin: 0 20px; }
      .definition-section { grid-template-columns: 1fr; padding: 40px 20px; }
      .definition-left { padding-right: 0; border-right: none; border-bottom: 0.5px solid var(--border-strong); padding-bottom: 40px; margin-bottom: 40px; }
      .definition-right { padding-left: 0; }
      .app-preview { margin: 40px 20px; padding: 16px; }
      .app-body { grid-template-columns: 140px 1fr; }
      .modules-section { padding: 48px 20px; }
      .modules-grid { grid-template-columns: repeat(2, 1fr); }
      .who-section { padding: 48px 20px; }
      .who-grid { grid-template-columns: 1fr; }
      .signup-section { padding: 56px 20px; }
      .signup-form { flex-direction: column; }
      .signup-form input { width: 100%; }
      .agriworks-strip { padding: 20px; flex-direction: column; gap: 12px; text-align: center; }
      footer { padding: 16px 20px; }
      .announcement-bar { padding: 10px 20px; }
    }

    /* ──────────────────────────────────────────────────────────────────────
       Footer with legal links (shared by index + legal pages)
       ────────────────────────────────────────────────────────────────────── */
    footer { flex-direction: column; align-items: stretch; gap: 14px; }
    .footer-links {
      display: flex;
      flex-wrap: wrap;
      gap: 8px 22px;
      font-size: 12px;
    }
    .footer-links a, .footer-links button {
      color: var(--text-secondary);
      text-decoration: none;
      font-family: 'DM Sans', sans-serif;
      font-size: 12px;
      background: none;
      border: none;
      padding: 0;
      cursor: pointer;
    }
    .footer-links a:hover, .footer-links button:hover { color: var(--powr-blue); }
    .footer-base {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 16px;
    }
    .footer-proprietary {
      font-size: 10.5px;
      line-height: 1.5;
      color: var(--text-muted);
      max-width: 880px;
    }

    /* ──────────────────────────────────────────────────────────────────────
       Legal pages (privacy, terms, cookie policy) — clean, readable prose
       ────────────────────────────────────────────────────────────────────── */
    .legal-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 18px 48px;
      border-bottom: 0.5px solid var(--border);
      background: var(--surface-page);
    }
    .legal-header .legal-logo img { height: 44px; width: auto; display: block; }
    .legal-back { font-size: 13px; color: var(--text-secondary); text-decoration: none; }
    .legal-back:hover { color: var(--powr-blue); }

    .legal-page {
      max-width: 760px;
      margin: 0 auto;
      padding: 56px 48px 72px;
    }
    .legal-eyebrow {
      font-size: 11px;
      font-weight: 500;
      letter-spacing: 0.09em;
      text-transform: uppercase;
      color: var(--powr-blue);
      margin-bottom: 16px;
    }
    .legal-page h1 {
      font-family: 'Instrument Serif', serif;
      font-size: 44px;
      line-height: 1.1;
      letter-spacing: -1px;
      font-weight: 400;
      color: var(--text-primary);
      margin-bottom: 14px;
    }
    .legal-dates {
      font-size: 13px;
      color: var(--text-muted);
      margin-bottom: 36px;
      padding-bottom: 28px;
      border-bottom: 0.5px solid var(--border-strong);
    }
    .legal-dates strong { color: var(--text-secondary); font-weight: 500; }
    .legal-page h2 {
      font-family: 'Instrument Serif', serif;
      font-size: 26px;
      line-height: 1.2;
      letter-spacing: -0.4px;
      font-weight: 400;
      color: var(--text-primary);
      margin: 40px 0 14px;
    }
    .legal-page h3 {
      font-size: 15px;
      font-weight: 600;
      color: var(--text-primary);
      margin: 26px 0 8px;
    }
    .legal-page p {
      font-size: 15px;
      line-height: 1.75;
      color: var(--text-secondary);
      margin-bottom: 16px;
      font-weight: 300;
    }
    .legal-page ul { margin: 0 0 16px 1.25em; }
    .legal-page li {
      font-size: 15px;
      line-height: 1.7;
      color: var(--text-secondary);
      margin-bottom: 8px;
      font-weight: 300;
    }
    .legal-page a { color: var(--powr-blue); text-decoration: underline; }
    .legal-page a:hover { color: var(--powr-blue-dark); }
    .legal-page strong { color: var(--text-primary); font-weight: 600; }
    .legal-contact {
      margin-top: 28px;
      padding: 20px 24px;
      background: var(--surface-panel);
      border: 0.5px solid var(--border-strong);
      border-radius: 8px;
      font-size: 14px;
      line-height: 1.7;
      color: var(--text-secondary);
    }
    .legal-contact strong { display: block; color: var(--text-primary); margin-bottom: 2px; }

    /* ──────────────────────────────────────────────────────────────────────
       Cookie consent banner + manage panel (built by /consent.js)
       Reusable across the portfolio; re-skin via the CSS variables above.
       ────────────────────────────────────────────────────────────────────── */
    .consent-banner {
      position: fixed;
      bottom: 0; left: 0; right: 0;
      z-index: 9999;
      background: var(--surface-card);
      border-top: 0.5px solid var(--border-strong);
      box-shadow: 0 -4px 16px rgba(26,26,22,0.08);
      padding: 16px 24px;
    }
    .consent-banner[hidden] { display: none; }
    .consent-banner-inner {
      max-width: 1200px;
      margin: 0 auto;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 32px;
      flex-wrap: wrap;
    }
    .consent-banner-content { flex: 1 1 400px; min-width: 0; }
    .consent-banner-title {
      font-size: 14px;
      font-weight: 600;
      margin-bottom: 4px;
      color: var(--text-primary);
    }
    .consent-banner-body {
      font-size: 13px;
      line-height: 1.55;
      color: var(--text-secondary);
      font-weight: 300;
    }
    .consent-banner-body a { color: var(--powr-blue); text-decoration: underline; }
    .consent-banner-actions { display: flex; gap: 8px; flex-wrap: wrap; }

    .consent-button {
      font-family: 'DM Sans', sans-serif;
      font-size: 13px;
      font-weight: 500;
      padding: 10px 16px;
      border-radius: 6px;
      border: 1px solid transparent;
      cursor: pointer;
      white-space: nowrap;
      transition: background-color 0.15s ease, border-color 0.15s ease;
    }
    .consent-button-primary { background: var(--powr-blue-dark); color: #fff; border-color: var(--powr-blue-dark); }
    .consent-button-primary:hover { background: var(--powr-blue); border-color: var(--powr-blue); }
    .consent-button-secondary { background: var(--surface-card); color: var(--powr-blue-dark); border-color: var(--border-strong); }
    .consent-button-secondary:hover { border-color: var(--powr-blue); }
    .consent-button-tertiary { background: transparent; color: var(--text-secondary); border-color: var(--border-strong); }
    .consent-button-tertiary:hover { color: var(--powr-blue-dark); border-color: var(--powr-blue); }

    .consent-manage-panel {
      position: fixed;
      inset: 0;
      z-index: 10000;
      background: rgba(26,26,22,0.5);
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 16px;
    }
    .consent-manage-panel[hidden] { display: none; }
    .consent-manage-inner {
      background: var(--surface-card);
      border-radius: 10px;
      padding: 32px;
      max-width: 560px;
      width: 100%;
      max-height: 90vh;
      overflow-y: auto;
      box-shadow: 0 20px 40px rgba(0,0,0,0.15);
    }
    .consent-manage-title {
      font-family: 'Instrument Serif', serif;
      font-size: 24px;
      font-weight: 400;
      letter-spacing: -0.4px;
      color: var(--text-primary);
      margin-bottom: 10px;
    }
    .consent-manage-intro {
      font-size: 14px;
      line-height: 1.6;
      color: var(--text-secondary);
      margin-bottom: 20px;
      font-weight: 300;
    }
    .consent-category { padding: 16px 0; border-top: 0.5px solid var(--border); }
    .consent-category:first-of-type { border-top: none; }
    .consent-category-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 6px;
    }
    .consent-category-name { font-size: 15px; font-weight: 600; color: var(--text-primary); }
    .consent-category-status { font-size: 13px; color: var(--text-muted); font-style: italic; }
    .consent-category-description {
      font-size: 13px;
      line-height: 1.6;
      color: var(--text-secondary);
      font-weight: 300;
    }

    .consent-toggle { position: relative; display: inline-block; width: 44px; height: 24px; flex-shrink: 0; }
    .consent-toggle input { opacity: 0; width: 0; height: 0; }
    .consent-toggle-slider {
      position: absolute;
      inset: 0;
      cursor: pointer;
      background: var(--border-strong);
      border-radius: 24px;
      transition: background-color 0.2s ease;
    }
    .consent-toggle-slider::before {
      position: absolute;
      content: "";
      height: 18px; width: 18px;
      left: 3px; bottom: 3px;
      background: #fff;
      border-radius: 50%;
      transition: transform 0.2s ease;
    }
    .consent-toggle input:checked + .consent-toggle-slider { background: var(--powr-blue-dark); }
    .consent-toggle input:checked + .consent-toggle-slider::before { transform: translateX(20px); }
    .consent-toggle input:focus-visible + .consent-toggle-slider { outline: 2px solid var(--powr-blue); outline-offset: 2px; }
    .consent-manage-actions {
      display: flex;
      gap: 8px;
      margin-top: 20px;
      padding-top: 16px;
      border-top: 0.5px solid var(--border);
    }

    @media (max-width: 640px) {
      .consent-banner-inner { flex-direction: column; align-items: stretch; gap: 16px; }
      .consent-banner-actions { flex-direction: column; }
      .consent-button { width: 100%; }
      .consent-manage-inner { padding: 24px; }
    }

    @media (max-width: 768px) {
      .legal-header { padding: 16px 20px; }
      .legal-page { padding: 40px 20px 56px; }
      .legal-page h1 { font-size: 34px; }
    }

    @media (prefers-reduced-motion: reduce) {
      .consent-button,
      .consent-toggle-slider,
      .consent-toggle-slider::before { transition: none; }
    }
