/* ============================================================
 * Builder page -> Zoho Backstage Custom CSS
 * Paste into: Website Settings -> Custom Code -> Custom CSS.
 * Pair with the exported Custom JavaScript block.
 * Fonts: uses Backstage's own Zoho Puvi (none embedded).
 * ============================================================ */
body.me-cover-active section.bs-section{
  position:absolute!important;top:0!important;left:0!important;right:0!important;
  opacity:0!important;pointer-events:none!important;z-index:-999!important;
  visibility:hidden!important;contain:layout!important;
}
body.me-cover-active .bs-page-container,
body.me-cover-active .page-container,
body.me-cover-active .microsite-content,
body.me-cover-active main{
  min-height:0!important;height:auto!important;padding-bottom:0!important;margin-bottom:0!important;
}
body.me-cover-active main > :not(#me-cover-root),
body.me-cover-active .bs-page-container > :not(#me-cover-root){
  position:absolute!important;top:0!important;left:0!important;right:0!important;
  height:auto!important;min-height:0!important;margin:0!important;
  opacity:0!important;visibility:hidden!important;pointer-events:none!important;z-index:-999!important;
}
#me-cover-root{width:100%;margin:0;padding:0;position:relative;z-index:1;background:#fff;}
#me-cover-root *{box-sizing:border-box;}
#me-cover-root,#me-cover-root *{max-height:none!important;}
#me-cover-root>*{flex:0 0 auto!important;}
#me-cover-root section{flex:0 0 auto!important;min-height:0;}
/* Uncomment to make the hero use Backstage's font instead of the design font:
#me-cover-root > section:first-of-type,
#me-cover-root > section:first-of-type *{font-family:inherit!important;}
*/

/* ===== design css ===== */
/* ============================================================
   ManageEngine — Engine Design System · tokens
   Source: reconstructed from Figma (Engine DS v0.1)
   ============================================================ */

/* -------- Zoho Puvi webfont (brand files, user-supplied) --------
   Each weight registered with .otf primary + .ttf fallback.
   The Serif, Slab, Compact, and Mono variants are registered as
   distinct families so specimens can compare them directly. */

/* --- Zoho Puvi (sans, default) --- */














/* --- Zoho Puvi Serif (display / editorial) --- */



/* --- Zoho Puvi Slab (display / marketing) --- */



/* --- Zoho Puvi Compact (dense UI) --- */



/* --- Zoho Puvi Mono (code / tabular) --- */


:root {
  /* ------------------------------------------------------------------
     BRAND — primary is Star Command Blue (#0078C8).
     Secondary is a derived warm amber, complementary to the primary.
     ------------------------------------------------------------------ */

  /* Primary — ManageEngine brand blue ramp (50 → 900) */
  --blue-50:          #E6F1F8;
  --blue-100:         #CCE4F0;
  --blue-200:         #99C9E2;
  --blue-300:         #66ADD3;
  --blue-400:         #3392C5;
  --blue-500:         #0078B6;  /* documented brand reference — palette + logo only */
  --blue-600:         #006499;
  --blue-700:         #00507B;
  --blue-800:         #003C5C;
  --blue-900:         #00283D;

  /* Operational primary — applied across all UI surfaces. */
  --me-primary:       #0045D3;
  --me-primary-hover: #003BB4;
  --me-primary-press: #002F8B;
  --me-primary-tint:  rgba(0,69,211,0.10);
  --me-primary-tint-2:rgba(0,69,211,0.18);

  /* Legacy alias so existing utilities keep working */
  --me-blue:          var(--me-primary);
  --me-blue-tint:     var(--me-primary-tint);

  /* Warm amber — retained as a supporting accent (no longer the secondary) */
  --amber-50:         #FEF5E7;
  --amber-100:        #FCEAC5;
  --amber-200:        #F9D48B;
  --amber-300:        #F5BE52;
  --amber-400:        #F2A818;
  --amber-500:        #D98C00;
  --amber-600:        #B87200;
  --amber-700:        #8C5600;

  /* Secondary — Spanish Green */
  --green-50:         #E6F6EE;
  --green-100:        #C2E9D4;
  --green-200:        #8FD7B0;
  --green-300:        #4FC088;
  --green-400:        #1FAE6E;
  --green-500:        #00A05A;  /* ★ secondary */
  --green-600:        #008049;
  --green-700:        #006238;

  --me-secondary:       var(--green-500);
  --me-secondary-hover: var(--green-600);
  --me-secondary-tint:  rgba(0,160,90,0.12);

  /* CTA — button primary action color */
  --cta-500:          #DE002B;
  --cta-600:          #C30024;
  --cta-700:          #A30018;
  --cta-tint:         rgba(222,0,43,0.10);
  --cta-tint-2:       rgba(222,0,43,0.18);
  --me-cta:           var(--cta-500);
  --me-cta-hover:     var(--cta-600);
  --me-cta-press:     var(--cta-700);

  /* Supporting brand swatches (from the supplied swatch sheet) */
  --me-red:           #C82332;  /* Fire Engine Red */
  --me-green:         #00A05A;  /* Spanish Green   */
  --me-green-deep:    #008049;
  --me-yellow:        #FAAA1E;  /* Cyber Yellow    */
  --me-yellow-hover:  var(--amber-400);
  --me-yellow-press:  var(--amber-500);
  --me-pink:          #E959D9;
  --me-magenta:       #D51A52;  /* error accent (legacy alias) */

  /* Neutrals (warm, pulled from the DS) */
  --n-000:            #FFFFFF;
  --n-100:            #F5F5F5;   /* surface-sunk */
  --n-150:            #ECECEC;   /* divider */
  --n-200:            #E8E8E8;
  --n-300:            #E5E0EB;
  --n-400:            #D4D2D5;
  --n-500:            #ABA7AF;   /* muted text */
  --n-600:            #666666;
  --n-700:            #404040;   /* body */
  --n-800:            #4B3A5A;   /* tertiary headline */
  --n-900:            #242424;   /* display */
  --n-1000:           #1A141F;   /* near-black, primary text */
  --n-ink:            #000000;

  /* Surfaces */
  --surface:          var(--n-000);
  --surface-sunk:     var(--n-100);
  --surface-inverse:  var(--n-1000);
  --surface-footer-top:  #262626;
  --surface-footer-deep: #0D0D0D;
  --border-soft:      var(--n-150);
  --border-med:       var(--n-300);

  /* Type */
  --font-sans: "Zoho Puvi", "Inter", "Figtree", ui-sans-serif, system-ui,
               -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
  --font-serif:   "Zoho Puvi Serif", ui-serif, Georgia, "Times New Roman", serif;
  --font-slab:    "Zoho Puvi Slab", "Zoho Puvi", ui-serif, Georgia, serif;
  --font-compact: "Zoho Puvi Compact", "Zoho Puvi", var(--font-sans);
  --font-mono:    "Zoho Puvi Mono", ui-monospace, "SF Mono", "Menlo",
                  "Cascadia Mono", "Consolas", monospace;

  /* Type scale — 1rem = 16px */
  --fs-display-xl: 66px; /* hero / oversized display */
  --fs-display: 56px;  /* hero / page title   */
  --fs-h1:      46px;
  --fs-h2:      36px;
  --fs-h3:      32px;
  --fs-h4:      28px;
  --fs-h5:      22px;
  --fs-body-l:  18px;
  --fs-body:    16px;
  --fs-label-l: 14px;
  --fs-label-m: 12px;

  --lh-tight:   1.2;   /* @kind font */
  --lh-heading: 1.3;   /* @kind font */
  --lh-body:    1.5;   /* @kind font */

  /* 4px grid — spacing */
  --sp-1:  4px;
  --sp-2:  8px;
  --sp-3:  12px;
  --sp-4:  16px;
  --sp-5:  20px;
  --sp-6:  24px;
  --sp-7:  28px;
  --sp-8:  32px;
  --sp-9:  36px;
  --sp-10: 40px;
  --sp-12: 48px;
  --sp-14: 56px;
  --sp-16: 64px;
  --sp-20: 80px;
  --sp-24: 96px;

  /* Radius — 4x steps */
  --r-none: 0px;
  --r-xs:   2px;
  --r-sm:   4px;
  --r-md:   8px;
  --r-lg:   12px;
  --r-xl:   16px;
  --r-2xl:  24px;
  --r-pill: 999px;

  /* Shadow — cool, keyed to primary blue */
  --shadow-still:  0px 4px 10px 0px rgba(0,60,92,0.10);
  --shadow-hover:  0px 10px 17px 0px rgba(0,60,92,0.12);
  --shadow-sm:     0px 8px 16px 0px rgba(0,60,92,0.10);
  --shadow-md:     0px 15px 30px 0px rgba(0,60,92,0.12);
  --shadow-lg:     0px 20px 44px 0px rgba(0,60,92,0.28);

  /* Motion */
  --dur-instant: 60ms;   /* @kind other */
  --dur-fast:    120ms;  /* @kind other */
  --dur-base:    200ms;  /* @kind other */
  --dur-slow:    400ms;  /* @kind other */
  --ease-out:     cubic-bezier(0.16, 1, 0.3, 1);   /* @kind other */
  --ease-in-out:  cubic-bezier(0.65, 0, 0.35, 1);  /* @kind other */
  --ease-spring:  cubic-bezier(0.34, 1.56, 0.64, 1); /* @kind other */

  /* Breakpoints (documented) */
  --bp-mobile:  576px;
  --bp-ipad:    768px;
  --bp-ipad-l:  992px;
  --bp-ipad-x:  1025px;
  --bp-desk:    1200px;
  --bp-desk-l:  1440px;
}

/* ---- Base + utilities ---- */
html, body { margin:0; }
body {
  font-family: var(--font-sans);
  color: var(--n-1000);
  background: var(--surface);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
* { box-sizing: border-box; }

.me-display-xl { font-size: var(--fs-display-xl); font-weight: 700; line-height: var(--lh-tight); letter-spacing: -0.025em; color: var(--n-900); }
.me-display { font-size: var(--fs-display); font-weight: 700; line-height: var(--lh-tight); letter-spacing: -0.02em; color: var(--n-900); }
.me-h1 { font-size: var(--fs-h1); font-weight: 700; line-height: var(--lh-heading); }
.me-h2 { font-size: var(--fs-h2); font-weight: 700; line-height: var(--lh-heading); }
.me-h3 { font-size: var(--fs-h3); font-weight: 700; line-height: var(--lh-heading); }
.me-h4 { font-size: var(--fs-h4); font-weight: 700; line-height: var(--lh-heading); }
.me-h5 { font-size: var(--fs-h5); font-weight: 700; line-height: var(--lh-heading); }
.me-body-l  { font-size: var(--fs-body-l);  line-height: var(--lh-body); letter-spacing: 0.01em; }
.me-body    { font-size: var(--fs-body);    line-height: var(--lh-body); letter-spacing: 0.01em; }
.me-label-l { font-size: var(--fs-label-l); line-height: var(--lh-body); }
.me-label-m { font-size: var(--fs-label-m); line-height: var(--lh-body); }

/* ============================================================
   TYPE ROLES
   The utilities above name a SIZE. These name a JOB — they are what
   keeps a page's vertical hierarchy honest. Reach for a role first;
   drop to a raw utility only for one-off specimen text.

   One rule carries most of the weight: --me-t-hero is the ONLY
   display-scale role, and a page gets exactly ONE. Every heading
   below the hero starts at .me-t-section. A section further down the
   page that renders at display size is the single most common way a
   layout stops reading as a hierarchy.

   Hero XL     .me-t-hero-xl   66  flagship marketing hero
   Hero        .me-t-hero      56  compact hero (video, campaign, inner page)
   Section     .me-t-section   36  top-level section heading
   Subsection  .me-t-sub       32  a heading inside a section
   Card        .me-t-card      22  card or panel title
   Cell        .me-t-cell      18  dense grid-cell / list-item title (bold)
   Eyebrow     .me-t-eyebrow   12  label above a title
   Lede        .me-t-lede      18  the paragraph under a title (regular)
   Body        .me-t-body      16  default running copy
   Meta        .me-t-meta      14  captions, timestamps, byline

   .me-t-cell and .me-t-lede are both 18px on purpose: same size, different
   job. A cell title is bold and near-black; a lede is regular and muted.

   A role owns FIVE properties: font-size, font-weight, line-height,
   letter-spacing, and color. That is the point — it is a level, not a size.
   If a pattern must differ on one of them, re-declare just that property
   AFTER the role class in the pattern's own rule; never fork the size.
   ============================================================ */
.me-t-hero-xl { font-size: var(--fs-display-xl); font-weight: 700; line-height: 1.05; letter-spacing: -0.025em; color: var(--n-900); }
.me-t-hero { font-size: var(--fs-display); font-weight: 700; line-height: var(--lh-tight); letter-spacing: -0.02em; color: var(--n-900); }
.me-t-section { font-size: var(--fs-h2); font-weight: 700; line-height: var(--lh-heading); letter-spacing: -0.02em; color: var(--n-900); }
.me-t-sub { font-size: var(--fs-h3); font-weight: 700; line-height: var(--lh-heading); letter-spacing: -0.015em; color: var(--n-900); }
.me-t-card { font-size: var(--fs-h5); font-weight: 700; line-height: var(--lh-heading); letter-spacing: -0.005em; color: var(--n-1000); }
.me-t-cell { font-size: var(--fs-body-l); font-weight: 700; line-height: var(--lh-heading); letter-spacing: -0.005em; color: var(--n-1000); }
.me-t-eyebrow { font-size: var(--fs-label-m); font-weight: 700; line-height: var(--lh-body); letter-spacing: 0.18em; text-transform: uppercase; color: var(--me-primary); }
.me-t-lede { font-size: var(--fs-body-l); font-weight: 400; line-height: var(--lh-body); color: var(--n-700); }
.me-t-body { font-size: var(--fs-body); font-weight: 400; line-height: var(--lh-body); letter-spacing: 0.01em; color: var(--n-700); }
.me-t-meta { font-size: var(--fs-label-l); font-weight: 400; line-height: var(--lh-body); color: var(--n-600); }

/* On a dark or brand surface, roles that carry a muted neutral need
   to invert — otherwise the lede disappears into the background. */
.me-section--brand .me-t-lede, .me-section--brand-deep .me-t-lede, .me-section--ink .me-t-lede,
.me-section--brand .me-t-body, .me-section--brand-deep .me-t-body, .me-section--ink .me-t-body { color: rgba(255,255,255,0.85); }
.me-section--brand .me-t-hero-xl, .me-section--brand-deep .me-t-hero-xl, .me-section--ink .me-t-hero-xl,
.me-section--brand .me-t-hero, .me-section--brand-deep .me-t-hero, .me-section--ink .me-t-hero,
.me-section--brand .me-t-section, .me-section--brand-deep .me-t-section, .me-section--ink .me-t-section,
.me-section--brand .me-t-sub, .me-section--brand-deep .me-t-sub, .me-section--ink .me-t-sub,
.me-section--brand .me-t-cell, .me-section--brand-deep .me-t-cell, .me-section--ink .me-t-cell,
.me-section--brand .me-t-card, .me-section--brand-deep .me-t-card, .me-section--ink .me-t-card { color: #fff; }
.me-section--brand .me-t-eyebrow, .me-section--brand-deep .me-t-eyebrow, .me-section--ink .me-t-eyebrow { color: rgba(255,255,255,0.72); }
.me-section--brand .me-t-meta, .me-section--brand-deep .me-t-meta, .me-section--ink .me-t-meta { color: rgba(255,255,255,0.7); }

/* ============================================================
   BUTTONS  ·  squared corners with a trailing arrow glyph
   Radius : sm/md 4px · lg/xl 8px. NEVER --r-pill: a fully rounded CTA is the
   pre-system button and reads as a different brand.
   The arrow carries no badge chrome — no circle, no fill; see .me-btn__icon.
   Sizes : xl · lg · md · sm
   Variants : main · secondary · text · ghost · accent
   ============================================================ */
.me-btn {
  font-family: var(--font-sans);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border: 1.5px solid transparent;
  border-radius: var(--r-sm);
  display: inline-flex;
  align-items: center;
  gap: 14px;
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
  position: relative;
  text-decoration: none;
  transition: background 140ms ease, color 140ms ease, border-color 140ms ease,
              box-shadow 140ms ease, transform 60ms ease;
}
.me-btn:active { transform: translateY(1px); }

/* trailing arrow glyph (use .me-btn__icon span with an inline svg) —
   no badge chrome: the glyph inherits the label's color */
.me-btn__icon {
  display: inline-grid;
  place-items: center;
  flex-shrink: 0;
  color: currentColor;
  transition: inherit;
}
.me-btn__icon svg { display: block; }

/* leading version — use when icon should sit before label */
.me-btn__icon--lead { order: -1; }

/* --- Size : XL --- */
.me-btn--xl  { height: 56px; padding: 0 32px; font-size: var(--fs-body); gap: 14px; border-radius: var(--r-md); }
.me-btn--xl  .me-btn__icon svg { width: 16px; height: 16px; }

/* --- Size : Large --- */
.me-btn--lg  { height: 46px; padding: 0 24px; font-size: var(--fs-label-l); gap: 12px; border-radius: var(--r-md); }
.me-btn--lg  .me-btn__icon svg { width: 14px; height: 14px; }

/* --- Size : Medium --- */
.me-btn--md  { height: 38px; padding: 0 20px; font-size: var(--fs-label-m); letter-spacing: 0.06em; gap: 10px; }
.me-btn--md  .me-btn__icon svg { width: 12px; height: 12px; }

/* --- Size : Field ---
   Pairs a button with an input, select, or search on the same row. Height and
   radius come from the field tokens, not the button scale, so the two controls
   line up exactly. The button scale has no 54px step by design — reach for this
   only when a button sits BESIDE a field; a standalone button uses --lg. */
.me-btn--field    { height: var(--me-field-h);    padding: 0 24px; font-size: var(--fs-label-l); gap: 12px; border-radius: var(--me-field-radius); }
.me-btn--field-sm { height: var(--me-field-h-sm); padding: 0 20px; font-size: var(--fs-label-m); letter-spacing: 0.06em; gap: 10px; border-radius: var(--me-field-radius); }
.me-btn--field-lg { height: var(--me-field-h-lg); padding: 0 32px; font-size: var(--fs-body); gap: 14px; border-radius: var(--me-field-radius); }
.me-btn--field    .me-btn__icon svg { width: 14px; height: 14px; }
.me-btn--field-sm .me-btn__icon svg { width: 12px; height: 12px; }
.me-btn--field-lg .me-btn__icon svg { width: 16px; height: 16px; }

/* --- Size : Small --- */
.me-btn--sm  { height: 28px; padding: 0 14px; font-size: var(--fs-label-m); letter-spacing: 0.08em; gap: 8px; }
.me-btn--sm  .me-btn__icon svg { width: 11px; height: 11px; }

/* ---------- Variants ---------- */

/* PRIMARY · filled CTA red */
.me-btn--main { background: var(--me-cta); color: #fff; }
.me-btn--main:hover  { background: var(--me-cta-hover); box-shadow: 0 6px 18px rgba(222,0,43,0.32); }
.me-btn--main:active { background: var(--me-cta-press); box-shadow: none; }
.me-btn--main[disabled], .me-btn--main.is-disabled {
  background: var(--n-200); color: var(--n-500); cursor: not-allowed; box-shadow: none;
}
.me-btn--main[disabled] .me-btn__icon { color: var(--n-500); }

/* SECONDARY · blue outline at rest; fills CTA red on hover & press */
.me-btn--secondary { background: transparent; color: var(--me-primary); border-color: var(--me-primary); }
.me-btn--secondary:hover { background: var(--me-cta); color: #fff; border-color: var(--me-cta); }
.me-btn--secondary:active { background: var(--me-cta-press); color: #fff; border-color: var(--me-cta-press); }
.me-btn--secondary[disabled] {
  color: var(--n-500); border-color: var(--n-400); background: transparent; cursor:not-allowed;
}
.me-btn--secondary[disabled] .me-btn__icon { color: var(--n-500); }
.me-btn--secondary.on-dark { color: #fff; border-color: #fff; }
.me-btn--secondary.on-dark:hover { background: var(--me-cta); color: #fff; border-color: var(--me-cta); }

/* TEXT · no chrome, arrow trails */
.me-btn--text { background: transparent; color: var(--me-cta); border-color: transparent;
                padding-left: 0; padding-right: 0; gap: 8px; }
.me-btn--text .me-btn__icon { color: var(--me-cta); }
.me-btn--text:hover { color: var(--me-cta-hover); }
.me-btn--text:hover .me-btn__icon { color: var(--me-cta-hover); transform: translateX(2px); }
.me-btn--text[disabled] { color: var(--n-500); cursor: not-allowed; }
.me-btn--text[disabled] .me-btn__icon { color: var(--n-500); transform: none; }

/* GHOST · neutral outline */
.me-btn--ghost { background: transparent; color: var(--n-1000); border-color: var(--n-400); }
.me-btn--ghost:hover { border-color: var(--n-700); }
.me-btn--ghost[disabled] { color: var(--n-500); border-color: var(--n-300); cursor:not-allowed; }
.me-btn--ghost[disabled] .me-btn__icon { color: var(--n-500); }

/* ACCENT · Spanish Green for emphasis moments */
.me-btn--accent { background: var(--me-secondary); color: #fff; }
.me-btn--accent:hover { background: var(--me-secondary-hover); }

/* YELLOW · filled Cyber Yellow. Carries dark ink, not white — white on #FAAA1E
   fails contrast at every size. Reserve for warm marketing moments, never for
   warnings (that is me-alert--warn) or for the page's single CTA (that is --main). */
.me-btn--yellow { background: var(--me-yellow); color: var(--n-1000); }
.me-btn--yellow .me-btn__icon { color: var(--n-1000); }
.me-btn--yellow:hover  { background: var(--me-yellow-hover); box-shadow: 0 6px 18px rgba(250,170,30,0.38); }
.me-btn--yellow:active { background: var(--me-yellow-press); color: #fff; box-shadow: none; }
.me-btn--yellow[disabled], .me-btn--yellow.is-disabled {
  background: var(--n-200); color: var(--n-500); cursor: not-allowed; box-shadow: none;
}
.me-btn--yellow[disabled] .me-btn__icon { color: var(--n-500); }

/* YELLOW SECONDARY · the supporting half of the pair. White fill with a neutral
   hairline, so it recedes beside the filled yellow instead of competing with it. */
.me-btn--yellow-secondary { background: var(--n-000); color: var(--n-1000); border-color: var(--border-med); }
.me-btn--yellow-secondary .me-btn__icon { color: var(--n-1000); }
.me-btn--yellow-secondary:hover { background: var(--n-000); color: var(--n-1000); border-color: var(--me-yellow); box-shadow: var(--shadow-hover); }
.me-btn--yellow-secondary:active { background: var(--n-100); color: var(--n-1000); border-color: var(--me-yellow); box-shadow: none; }
.me-btn--yellow-secondary[disabled] {
  background: var(--n-000); color: var(--n-500); border-color: var(--n-300); cursor: not-allowed; box-shadow: none;
}
.me-btn--yellow-secondary[disabled] .me-btn__icon { color: var(--n-500); }
/* On a yellow or dark band the white fill would blow out — outline instead. */
.me-btn--yellow-secondary.on-dark { background: transparent; color: #fff; border-color: #fff; }
.me-btn--yellow-secondary.on-dark .me-btn__icon { color: #fff; }
.me-btn--yellow-secondary.on-dark:hover { background: var(--n-000); color: var(--n-1000); border-color: var(--n-000); }
.me-btn--yellow-secondary.on-dark:hover .me-btn__icon { color: var(--n-1000); }

/* DANGER · destructive (deep red, distinct from CTA) */
.me-btn--danger { background: var(--me-red); color: #fff; }
.me-btn--danger:hover { background: #B81F2D; }

/* ============================================================
   LINK-PROOFING THE BUTTON STATES  —  do not remove
   ------------------------------------------------------------
   A button is nearly always an <a>. A variant sets its label colour with one
   class — `.me-btn--main { color:#fff }` is specificity (0,1,0) — but the most
   ordinary page rule imaginable, `a:hover { color: var(--me-primary) }`, is
   (0,1,1) and therefore WINS. The label and its currentColor arrow both flip to
   the link colour on hover: blue text on the red CTA, which is unreadable and
   is not a state this system has ever defined.

   The component has to defend itself, because every team that adopts this system
   will style its links. Each variant below restates its own colour on the link
   states at (0,3,1) — two classes plus :not([disabled]):not(.is-disabled) — which also clears a
   section-scoped `.p-cta a:hover` (0,2,1). :not([disabled]):not(.is-disabled) is not padding: it
   keeps disabled buttons on their grey.

   Pages should still exclude buttons from link rules — `a:not(.me-btn):hover`.
   This block is the backstop for when they don't.

   :visited and :focus take the REST colour (those states show the rest fill);
   :hover and :active take whatever colour the variant's own state rule sets.
   ============================================================ */

/* white label at rest and through every state */
.me-btn.me-btn--main:not([disabled]):not(.is-disabled):visited,
.me-btn.me-btn--main:not([disabled]):not(.is-disabled):focus,
.me-btn.me-btn--main:not([disabled]):not(.is-disabled):hover,
.me-btn.me-btn--main:not([disabled]):not(.is-disabled):active,
.me-btn.me-btn--accent:not([disabled]):not(.is-disabled):visited,
.me-btn.me-btn--accent:not([disabled]):not(.is-disabled):focus,
.me-btn.me-btn--accent:not([disabled]):not(.is-disabled):hover,
.me-btn.me-btn--accent:not([disabled]):not(.is-disabled):active,
.me-btn.me-btn--danger:not([disabled]):not(.is-disabled):visited,
.me-btn.me-btn--danger:not([disabled]):not(.is-disabled):focus,
.me-btn.me-btn--danger:not([disabled]):not(.is-disabled):hover,
.me-btn.me-btn--danger:not([disabled]):not(.is-disabled):active,
.me-btn.me-btn--secondary.on-dark:not([disabled]):not(.is-disabled):visited,
.me-btn.me-btn--secondary.on-dark:not([disabled]):not(.is-disabled):focus,
.me-btn.me-btn--secondary.on-dark:not([disabled]):not(.is-disabled):hover,
.me-btn.me-btn--secondary.on-dark:not([disabled]):not(.is-disabled):active { color: #fff; }

/* SECONDARY · blue outline at rest, fills red on hover */
.me-btn.me-btn--secondary:not([disabled]):not(.is-disabled):visited,
.me-btn.me-btn--secondary:not([disabled]):not(.is-disabled):focus { color: var(--me-primary); }
.me-btn.me-btn--secondary:not([disabled]):not(.is-disabled):hover,
.me-btn.me-btn--secondary:not([disabled]):not(.is-disabled):active { color: #fff; }

/* TEXT · CTA red, deepening on hover */
.me-btn.me-btn--text:not([disabled]):not(.is-disabled):visited,
.me-btn.me-btn--text:not([disabled]):not(.is-disabled):focus { color: var(--me-cta); }
.me-btn.me-btn--text:not([disabled]):not(.is-disabled):hover,
.me-btn.me-btn--text:not([disabled]):not(.is-disabled):active { color: var(--me-cta-hover); }

/* GHOST · dark ink throughout; only the border moves */
.me-btn.me-btn--ghost:not([disabled]):not(.is-disabled):visited,
.me-btn.me-btn--ghost:not([disabled]):not(.is-disabled):focus,
.me-btn.me-btn--ghost:not([disabled]):not(.is-disabled):hover,
.me-btn.me-btn--ghost:not([disabled]):not(.is-disabled):active { color: var(--n-1000); }

/* YELLOW · dark ink on the amber fill; white only on the deep press tone */
.me-btn.me-btn--yellow:not([disabled]):not(.is-disabled):visited,
.me-btn.me-btn--yellow:not([disabled]):not(.is-disabled):focus,
.me-btn.me-btn--yellow:not([disabled]):not(.is-disabled):hover { color: var(--n-1000); }
.me-btn.me-btn--yellow:not([disabled]):not(.is-disabled):active { color: #fff; }

/* YELLOW SECONDARY · dark ink; the on-dark form starts white and inverts */
.me-btn.me-btn--yellow-secondary:not([disabled]):not(.is-disabled):visited,
.me-btn.me-btn--yellow-secondary:not([disabled]):not(.is-disabled):focus,
.me-btn.me-btn--yellow-secondary:not([disabled]):not(.is-disabled):hover,
.me-btn.me-btn--yellow-secondary:not([disabled]):not(.is-disabled):active { color: var(--n-1000); }
.me-btn.me-btn--yellow-secondary.on-dark:not([disabled]):not(.is-disabled):visited,
.me-btn.me-btn--yellow-secondary.on-dark:not([disabled]):not(.is-disabled):focus { color: #fff; }
.me-btn.me-btn--yellow-secondary.on-dark:not([disabled]):not(.is-disabled):hover,
.me-btn.me-btn--yellow-secondary.on-dark:not([disabled]):not(.is-disabled):active { color: var(--n-1000); }

/* DISABLED · both spellings, all link states.
   Disabled buttons are exposed too, and the enabled guards above deliberately
   skip them — which leaves a plain `a:hover` free to repaint a disabled label
   the link colour, making a dead button read as an active link. An <a> cannot
   carry [disabled], so a disabled link button is marked .is-disabled; both forms
   are pinned here. Every variant's disabled ink is --n-500, so one rule covers
   the set at (0,3,0), which still clears a scoped `.p-cta a:hover` (0,2,1). */
.me-btn[disabled]:visited,
.me-btn[disabled]:focus,
.me-btn[disabled]:hover,
.me-btn[disabled]:active,
.me-btn.is-disabled:visited,
.me-btn.is-disabled:focus,
.me-btn.is-disabled:hover,
.me-btn.is-disabled:active { color: var(--n-500); }
.me-btn[disabled]:hover  .me-btn__icon,
.me-btn.is-disabled:hover .me-btn__icon { color: var(--n-500); }

/* A disabled button must not react to hover at all. The variants' own :hover
   rules sit at (0,2,1)-(0,3,0) and otherwise still fire — a disabled --secondary
   filled CTA red under the cursor. Each variant's disabled fill is restated
   here; the shared rule kills the lift and shadow. */
.me-btn[disabled]:hover,
.me-btn.is-disabled:hover { box-shadow: none; transform: none; }
.me-btn--main[disabled]:hover,   .me-btn--main.is-disabled:hover,
.me-btn--yellow[disabled]:hover, .me-btn--yellow.is-disabled:hover,
.me-btn--danger[disabled]:hover, .me-btn--danger.is-disabled:hover { background: var(--n-200); }
.me-btn--secondary[disabled]:hover, .me-btn--secondary.is-disabled:hover { background: transparent; border-color: var(--n-400); }
.me-btn--ghost[disabled]:hover,     .me-btn--ghost.is-disabled:hover { background: transparent; border-color: var(--n-300); }
.me-btn--yellow-secondary[disabled]:hover, .me-btn--yellow-secondary.is-disabled:hover { background: var(--n-000); border-color: var(--n-300); }
.me-btn--text[disabled]:hover,      .me-btn--text.is-disabled:hover { background: transparent; }

/* Block — full width. Keeps the size radius (4 / 8) so a wide button reads as
   the same shape as its inline siblings; the arrow trails the centered label. */
.me-btn--block { display: flex; width: 100%; justify-content: center; }

/* ---- Form field tokens ---- */
/* Geometry adopted from the UEMS system: taller 54px fields, 8px corners,
   a soft blue-tinted rest border, and 16px/500 value text (which also stops
   iOS zooming on focus). Kept as tokens so every control stays in step. */
:root {
  --me-field-h:              54px;
  --me-field-h-sm:           44px;
  --me-field-h-lg:           62px;
  --me-field-radius:         var(--r-md);
  --me-field-pad-x:          17px;
  --me-field-border-hover:   var(--blue-200);
  --me-field-ring:           0 0 0 3px var(--me-primary-tint-2);
  --me-field-placeholder:    var(--n-500);
  --me-field-value:          var(--n-1000);
  --me-field-value-size:     16px;
  --me-field-value-weight:   500;
  /* controls need a boundary that clears WCAG 1.4.11 (3:1).
     #666666 is 5.73:1 on white; the old field border (#E7EEFA, 1.17:1) and
     the mid neutrals (--n-300 1.30:1, --n-500 2.37:1) all fail at this size. */
  --me-control-border:       var(--n-600);
  --me-control-size-sm:      16px;
  --me-control-size:         18px;
  --me-control-size-lg:      22px;
  --me-radio-dot-sm:         8px;
  --me-radio-dot:            10px;
  --me-radio-dot-lg:         12px;
}

/* ---- Input ---- */
.me-input {
  font-family: inherit;
  font-size: var(--me-field-value-size);
  font-weight: var(--me-field-value-weight);
  line-height: 24px;
  height: var(--me-field-h);
  padding: 0 var(--me-field-pad-x);
  border-radius: var(--me-field-radius);
  border: 1px solid var(--me-control-border);
  background: var(--n-000);
  color: var(--me-field-value);
  transition: border-color 120ms ease, box-shadow 120ms ease;
  outline: none;
}
.me-input::placeholder { color: var(--me-field-placeholder); font-weight: 400; }
.me-input:hover       { border-color: var(--me-field-border-hover); }
.me-input:focus,
.me-input.is-active   { border-color: var(--me-primary); box-shadow: var(--me-field-ring); }
.me-input.is-success  { border-color: var(--me-secondary); box-shadow: 0 0 0 3px rgba(0,160,90,0.15); }
.me-input.is-error    { border-color: var(--me-red); box-shadow: 0 0 0 3px rgba(200,35,50,0.18); }
.me-input[disabled]   { background: var(--surface-sunk); border-color: var(--border-soft); color: var(--n-500); cursor:not-allowed; }

/* ---- Surface / card ---- */
.me-card {
  background: var(--n-000);
  border-radius: var(--r-sm);
  box-shadow: var(--shadow-still);
  padding: var(--sp-8);
}

/* ---- Chips / badges ---- */
.me-chip {
  display:inline-flex; align-items:center; gap: 6px;
  padding: 4px 10px;
  border-radius: var(--r-sm);
  background: var(--me-primary);
  color: #fff;
  font-size: var(--fs-label-m);
  font-weight: 700;
  letter-spacing: 0.03em;
}
.me-chip--ghost { background: var(--me-primary-tint); color: var(--me-primary); }

/* ---- Frame chrome (for recreations) ---- */
.me-topbar {
  height: 140px;
  padding: 0 133px;
  display:flex; align-items:center; justify-content:space-between;
  background: #fff; border-bottom: 1px solid var(--border-soft);
}

/* ============================================================
   components.css — ManageEngine reusable component styles
   ------------------------------------------------------------
   Loaded by every component page alongside tokens.css.
   Buttons + inputs live in tokens.css; everything else here.
   ============================================================ */

/* ─── Badge ─── */
.me-badge {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: var(--fs-label-m); font-weight: 700;
  padding: 4px 10px; border-radius: 4px;
  letter-spacing: 0.02em;
  line-height: 1.2;
}
.me-badge--info    { background: var(--me-primary-tint); color: var(--me-primary); }
.me-badge--success { background: rgba(0,160,90,0.15);   color: var(--me-green-deep); }
.me-badge--warn    { background: rgba(250,170,30,0.22); color: var(--amber-700); }
.me-badge--error   { background: rgba(200,35,50,0.10);  color: var(--me-red); }
.me-badge--neutral { background: var(--n-150);          color: var(--n-700); }
.me-badge--outline { background: var(--me-primary-tint); color: var(--me-primary); box-shadow: inset 0 0 0 1px var(--me-primary); font-weight: 600; }
/* on photography: solid translucent white, never a gradient */
.me-badge--overlay { background: rgba(255,255,255,0.20); color: #fff; box-shadow: inset 0 0 0 1px rgba(255,255,255,0.35); backdrop-filter: blur(6px); }
.me-badge--dot::before {
  content: ""; width: 6px; height: 6px; border-radius: 50%;
  background: currentColor;
}
.me-badge__icon { width: 13px; height: 13px; flex: none; margin-left: -1px; }
.me-badge__icon svg { width: 100%; height: 100%; display: block; }

/* ─── Chip ─── */
.me-chip-rm {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 6px 10px 6px 12px;
  border-radius: var(--r-sm);
  background: var(--n-100); color: var(--n-1000);
  font-size: var(--fs-label-l); font-weight: 500;
  border: 1px solid var(--border-soft);
}
.me-chip-rm__x {
  width: 16px; height: 16px; border-radius: var(--r-xs);
  display: grid; place-items: center;
  background: var(--n-300); color: var(--n-700);
  font-size: var(--fs-label-m); cursor: pointer;
  border: 0;
}
.me-chip-rm__x:hover { background: var(--me-red); color: #fff; }

/* ─── Checkbox ─── */
.me-check {
  display: inline-flex; align-items: center; gap: var(--sp-2);
  font-family: var(--font-sans);
  font-size: var(--fs-label-l); color: var(--n-1000);
  cursor: pointer;
  user-select: none;
}
.me-check__box {
  width: 18px; height: 18px; border-radius: var(--r-sm);
  border: 1.5px solid var(--me-control-border); background: var(--n-000);
  display: grid; place-items: center;
  transition: background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
  flex-shrink: 0;
}
.me-check.is-checked .me-check__box {
  background: var(--me-primary) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='8' viewBox='0 0 12 10' fill='none' stroke='%23ffffff' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'><path d='m1 5 3.5 3.5L11 2'/></svg>") center no-repeat;
  border-color: var(--me-primary);
}
.me-check.is-indeterminate .me-check__box {
  background: var(--me-primary) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='2' viewBox='0 0 10 2' fill='none' stroke='%23ffffff' stroke-width='1.75' stroke-linecap='round'><path d='M1 1h8'/></svg>") center no-repeat;
  border-color: var(--me-primary);
}
.me-check.is-disabled {
  color: var(--n-500); cursor: not-allowed;
}
.me-check.is-disabled .me-check__box {
  background: var(--surface-sunk); border-color: var(--border-soft);
}
.me-check.is-disabled.is-checked .me-check__box {
  background-color: var(--n-400); border-color: var(--n-400);
}

/* ─── Radio ─── */
.me-radio {
  display: inline-flex; align-items: center; gap: var(--sp-2);
  font-family: var(--font-sans);
  font-size: var(--fs-label-l); color: var(--n-1000);
  cursor: pointer; user-select: none;
}
.me-radio__circle {
  width: 18px; height: 18px; border-radius: 50%;
  border: 1.5px solid var(--me-control-border); background: var(--n-000);
  display: grid; place-items: center;
  transition: border-color var(--dur-fast) var(--ease-out);
  flex-shrink: 0;
}
.me-radio.is-checked .me-radio__circle { border-color: var(--me-primary); }
.me-radio.is-checked .me-radio__circle::after {
  content: ""; width: 10px; height: 10px; border-radius: 50%;
  background: var(--me-primary);
}
.me-radio.is-disabled { color: var(--n-500); cursor: not-allowed; }
.me-radio.is-disabled .me-radio__circle { background: var(--surface-sunk); border-color: var(--border-soft); }
.me-radio.is-disabled.is-checked .me-radio__circle::after { background: var(--n-400); }

/* Real input — visually hidden, drives :focus-visible and :checked */
.me-check__input, .me-radio__input {
  position: absolute; width: 1px; height: 1px; margin: -1px;
  padding: 0; border: 0; overflow: hidden; white-space: nowrap;
  clip: rect(0 0 0 0); clip-path: inset(50%);
}
.me-radio__input:checked ~ .me-radio__circle { border-color: var(--me-primary); }
.me-radio__input:checked ~ .me-radio__circle::after {
  content: ""; width: var(--me-radio-dot); height: var(--me-radio-dot);
  border-radius: 50%; background: var(--me-primary);
}
.me-check__input:checked ~ .me-check__box {
  background: var(--me-primary) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='8' viewBox='0 0 12 10' fill='none' stroke='%23ffffff' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'><path d='m1 5 3.5 3.5L11 2'/></svg>") center no-repeat;
  border-color: var(--me-primary);
}
.me-radio__input:focus-visible ~ .me-radio__circle,
.me-check__input:focus-visible ~ .me-check__box,
.me-radio.is-focus .me-radio__circle,
.me-check.is-focus .me-check__box {
  border-color: var(--me-primary); box-shadow: var(--me-field-ring);
}

/* Hover */
.me-radio:hover:not(.is-disabled) .me-radio__circle,
.me-check:hover:not(.is-disabled) .me-check__box,
.me-radio.is-hover .me-radio__circle,
.me-check.is-hover .me-check__box { border-color: var(--me-primary); }
.me-radio.is-error:hover .me-radio__circle,
.me-check.is-error:hover .me-check__box { border-color: var(--me-red); }

/* Error */
.me-radio.is-error, .me-check.is-error { color: var(--me-red); }
.me-radio.is-error .me-radio__circle,
.me-check.is-error .me-check__box {
  border-color: var(--me-red); background-color: rgba(200,35,50,0.05);
}
.me-radio.is-error.is-checked .me-radio__circle::after { background: var(--me-red); }
.me-check.is-error.is-checked .me-check__box { background-color: var(--me-red); border-color: var(--me-red); }

/* Size — SM and LG; the default sits between them */
.me-radio--sm, .me-check--sm { font-size: var(--fs-label-l); }
.me-radio--lg, .me-check--lg { font-size: var(--fs-body-l); gap: var(--sp-3); }
.me-radio--sm .me-radio__circle { width: var(--me-control-size-sm); height: var(--me-control-size-sm); }
.me-radio--lg .me-radio__circle { width: var(--me-control-size-lg); height: var(--me-control-size-lg); }
.me-radio--sm.is-checked .me-radio__circle::after,
.me-radio--sm .me-radio__input:checked ~ .me-radio__circle::after { width: var(--me-radio-dot-sm); height: var(--me-radio-dot-sm); }
.me-radio--lg.is-checked .me-radio__circle::after,
.me-radio--lg .me-radio__input:checked ~ .me-radio__circle::after { width: var(--me-radio-dot-lg); height: var(--me-radio-dot-lg); }
.me-check--sm .me-check__box { width: var(--me-control-size-sm); height: var(--me-control-size-sm); }
.me-check--lg .me-check__box { width: var(--me-control-size-lg); height: var(--me-control-size-lg); }
.me-check--sm.is-checked .me-check__box,
.me-check--sm .me-check__input:checked ~ .me-check__box { background-size: 9px 7px; }
.me-check--lg.is-checked .me-check__box,
.me-check--lg .me-check__input:checked ~ .me-check__box { background-size: 13px 11px; }
.me-check--sm.is-indeterminate .me-check__box { background-size: 8px 2px; }
.me-check--lg.is-indeterminate .me-check__box { background-size: 12px 2px; }

/* Row — full-width selectable target. Meets the 44px tap minimum. */
.me-radio--row, .me-check--row {
  display: flex; width: 100%; min-height: 44px;
  padding: var(--sp-2) var(--sp-3);
  border-radius: var(--r-md);
  transition: background var(--dur-fast) var(--ease-out);
}
.me-radio--row:hover:not(.is-disabled), .me-check--row:hover:not(.is-disabled) { background: var(--n-100); }
.me-radio--row.is-checked, .me-check--row.is-checked { background: var(--blue-50); }
.me-radio--row.is-error, .me-check--row.is-error { background: rgba(200,35,50,0.06); }

/* Label-less — the control alone, named by aria-label */
.me-radio--bare, .me-check--bare { gap: 0; }

/* ─── Toggle ─── */
.me-toggle {
  display: inline-flex; align-items: center; gap: var(--sp-2);
  font-family: var(--font-sans);
  font-size: var(--fs-label-l); color: var(--n-1000);
  cursor: pointer; user-select: none;
}
.me-toggle__track {
  position: relative;
  width: 44px; height: 24px; border-radius: var(--r-pill);
  background: var(--n-300);
  transition: background var(--dur-fast) var(--ease-out);
  flex-shrink: 0;
}
.me-toggle__track::after {
  content: "";
  position: absolute; top: 3px; left: 3px;
  width: 18px; height: 18px; border-radius: 50%;
  background: var(--n-000); box-shadow: 0 1px 3px rgba(26,20,31,0.2);
  transition: transform var(--dur-fast) var(--ease-out);
}
.me-toggle.is-on .me-toggle__track { background: var(--me-primary); }
.me-toggle.is-on .me-toggle__track::after { transform: translateX(20px); }
.me-toggle.is-disabled { color: var(--n-500); cursor: not-allowed; }
.me-toggle.is-disabled .me-toggle__track { opacity: 0.5; }

/* ─── Card ─── */
.me-card {
  background: var(--n-000);
  border: 1px solid var(--border-soft);
  border-radius: 8px;
  box-shadow: var(--shadow-still);
  padding: 24px;
}
.me-card--quiet { box-shadow: none; }
.me-card--interactive {
  cursor: pointer;
  transition: box-shadow 150ms ease, transform 150ms ease;
}
.me-card--interactive:hover {
  box-shadow: var(--shadow-hover);
  transform: translateY(-2px);
}

/* Media card — image on a tinted stage, chip row, title / subtitle / body,
   footer CTA behind a hairline. Padding moves off the container onto the
   parts so the media panel can bleed to the card edges. */
.me-card--media { padding: 0; overflow: hidden; display: flex; flex-direction: column; position: relative; }
.me-card__media {
  background: var(--me-primary-tint);
  display: grid; place-items: center;
  padding: var(--sp-6); min-height: 180px;
}
.me-card__media img { display: block; max-width: 100%; max-height: 220px; }
/* --flush: the image IS the panel (photo cards, screenshots) */
.me-card__media--flush { padding: 0; }
.me-card__media--flush img { width: 100%; max-height: none; height: 100%; object-fit: cover; }
.me-card__content { padding: var(--sp-5) var(--sp-6) var(--sp-6); display: flex; flex-direction: column; align-items: flex-start; gap: var(--sp-3); flex: 1; }
.me-card__chips { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.me-card__title { margin: 0; font-size: var(--fs-h5); font-weight: 700; line-height: var(--lh-heading); color: var(--n-1000); }
.me-card__subtitle { margin: 0; font-size: var(--fs-body); font-weight: 700; color: var(--n-800); }
.me-card__text { margin: 0; font-size: var(--fs-body); line-height: var(--lh-body); color: var(--n-700); }
/* optional 3-line clamp for uneven grid content */
.me-card__text--clamp { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.me-card__foot { align-self: stretch; margin-top: auto; padding-top: var(--sp-4); border-top: 1px solid var(--border-soft); }
.me-card__cta {
  display: inline-flex; align-items: center; gap: var(--sp-2);
  font-size: var(--fs-body); font-weight: 600; color: var(--me-primary);
  text-decoration: none;
}
.me-card__cta svg { width: 14px; height: 14px; transition: transform var(--dur-fast) var(--ease-out); }
.me-card__cta:hover { color: var(--me-primary-hover); }
.me-card__cta:hover svg { transform: translateX(2px); }

/* Media-card parts. Each is optional and order-free inside __content;
   drop __media entirely for a text-only composition (logo cards, reviews). */
.me-card__logo { display: flex; align-items: center; height: 26px; }
.me-card__logo img { height: 100%; width: auto; object-fit: contain; display: block; }
/* Attribution: who is speaking — pairs with me-avatar */
.me-card__attrib { display: flex; align-items: center; gap: var(--sp-3); }
.me-card__attrib-name { font-size: var(--fs-body); font-weight: 700; color: var(--n-1000); line-height: 1.3; }
.me-card__attrib-role { font-size: var(--fs-label-l); color: var(--n-600); line-height: 1.4; }
/* Rating: third-party source mark alongside me-rating */
.me-card__rating { display: flex; align-items: center; gap: var(--sp-3); }
.me-card__rating img { height: 34px; width: auto; object-fit: contain; display: block; }
/* Ribbon: one word pinned to the card's top-left corner */
.me-card__ribbon {
  position: absolute; top: 0; left: 0; z-index: 2;
  background: var(--me-primary); color: #fff;
  font-size: var(--fs-label-m); font-weight: 700;
  letter-spacing: 0.06em; text-transform: uppercase;
  padding: 7px 16px; border-radius: var(--r-lg) 0 var(--r-md) 0;
}
/* Transport: the audio player component, stretched to the content width */
.me-card__content > .me-audio { align-self: stretch; max-width: none; }
/* Overlay card: content sits on the photograph behind a scrim. */
.me-card--overlay {
  position: relative; padding: 0; overflow: hidden; border: 0;
  min-height: 420px; display: flex; flex-direction: column; justify-content: flex-end;
}
.me-card__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.me-card__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,14,26,0) 32%, rgba(10,14,26,0.88) 100%); }
.me-card__scrim--brand { background: linear-gradient(180deg, rgba(0,45,155,0.10) 20%, rgba(0,55,200,0.92) 78%); }
.me-card--overlay .me-card__content { position: relative; z-index: 1; flex: 0 0 auto; margin-top: auto; }
.me-card--overlay .me-card__title,
.me-card--overlay .me-card__attrib-name { color: #fff; }
.me-card--overlay .me-card__text,
.me-card--overlay .me-card__subtitle,
.me-card--overlay .me-card__attrib-role { color: rgba(255,255,255,0.78); }
/* Brand mark of the customer being quoted */
.me-card__brand { position: absolute; top: var(--sp-5); left: var(--sp-5); z-index: 2; background: var(--n-000); border-radius: var(--r-sm); padding: 8px 12px; display: flex; }
.me-card__brand img { height: 24px; width: auto; object-fit: contain; display: block; }
/* Stage: the free photo band above the content — centres a play affordance.
   The button itself is me-audio__play, re-skinned as glass for photography.
   Two classes deep on purpose: the Audio player block is declared later in this
   file, so a single-class modifier here would lose on source order.
   The top padding clears me-card__brand so the button centres in the band
   BELOW the mark, not against it. */
.me-card__stage { position: relative; z-index: 2; flex: 1 1 auto; display: grid; place-items: center; padding: 72px var(--sp-5) var(--sp-2); }
.me-audio__play.me-card__play--overlay {
  width: 56px; height: 56px;
  background: rgba(255,255,255,0.26); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.5);
  backdrop-filter: blur(4px);
}
.me-audio__play.me-card__play--overlay:hover { background: rgba(255,255,255,0.4); }

/* ─── Vertical nav ───
   Two compositions: me-vnav (marketing solution switcher) and me-vnav-doc
   (collapsible portal / document side nav). */
.me-vnav { width: 360px; background: var(--n-000); border-radius: var(--r-lg); box-shadow: var(--shadow-still); padding: var(--sp-3); font-family: var(--font-sans); }
.me-vnav__item { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4); padding: var(--sp-4) 18px; border-radius: var(--r-md); font-size: var(--fs-body); font-weight: 600; color: var(--n-1000); text-decoration: none; line-height: 1.3; }
.me-vnav__item svg { flex: none; }
.me-vnav__item:hover { background: var(--me-primary-tint); color: var(--me-primary); }
.me-vnav__item.is-active { background: var(--me-primary); color: var(--n-000); font-weight: 700; }
.me-vnav__item.is-active:hover { color: var(--n-000); }

.me-vnav-doc { width: 300px; background: var(--n-000); border-radius: var(--r-lg); box-shadow: var(--shadow-still); padding: 18px 20px; font-family: var(--font-sans); }
.me-vnav-doc__link { display: flex; align-items: center; gap: var(--sp-3); font-size: var(--fs-body); font-weight: 700; color: var(--me-primary); text-decoration: none; padding: 9px 0; }
.me-vnav-doc__link svg { flex: none; }
.me-vnav-doc__group { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); font-size: var(--fs-body); font-weight: 700; color: var(--me-primary); cursor: pointer; padding: var(--sp-3) 0; }
.me-vnav-doc__group.is-open { background: var(--me-primary); color: var(--n-000); border-radius: var(--r-sm); padding: 11px 14px; }
.me-vnav-doc__group svg { flex: none; }
.me-vnav-doc__chev { transition: transform var(--dur-fast) var(--ease-out); }
.me-vnav-doc__group.is-open .me-vnav-doc__chev { transform: rotate(180deg); }
.me-vnav-doc__children { display: none; flex-direction: column; padding: var(--sp-2) 0 2px; }
.me-vnav-doc__group.is-open + .me-vnav-doc__children { display: flex; }
.me-vnav-doc__child { font-size: var(--fs-body); color: var(--n-1000); text-decoration: none; padding: 9px 14px; border-radius: var(--r-sm); }
.me-vnav-doc__child:hover { color: var(--me-primary); }
.me-vnav-doc__child.is-active { background: linear-gradient(90deg, transparent, var(--me-primary-tint-2)); font-weight: 600; }
.me-vnav-doc__divider { height: 1px; background: var(--border-soft); margin: 13px 0; }
.me-vnav-doc__contact { display: none; border: 1px solid var(--border-soft); border-radius: var(--r-sm); padding: var(--sp-4); font-size: var(--fs-label-l); line-height: 1.7; color: var(--n-800); margin: var(--sp-2) 0 4px; }
.me-vnav-doc__group.is-open + .me-vnav-doc__contact { display: block; }
.me-vnav-doc__contact strong { color: var(--n-1000); }

/* ─── Alert ─── */
.me-alert {
  display: grid;
  grid-template-columns: 20px 1fr auto;
  /* Icon and close centre against the whole message, not just its first line. */
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  border-radius: 6px;
  font-size: var(--fs-label-l); line-height: 1.5;
  border-left: 4px solid currentColor;
}
.me-alert--info    { background: var(--me-primary-tint); color: var(--me-primary); border-left-color: var(--me-primary); }
.me-alert--success { background: rgba(0,160,90,0.10);   color: var(--me-green-deep); border-left-color: var(--me-green); }
.me-alert--warn    { background: rgba(250,170,30,0.14); color: var(--amber-700); border-left-color: var(--me-yellow); }
.me-alert--error   { background: rgba(200,35,50,0.08);  color: var(--me-red); border-left-color: var(--me-red); }
.me-alert__icon {
  width: 20px; height: 20px; display: grid; place-items: center;
  flex-shrink: 0;
}
.me-alert__body {
  color: var(--n-1000);
}
.me-alert__body strong { display: block; margin-bottom: 2px; color: var(--n-1000); }
.me-alert__close {
  background: transparent; border: 0;
  color: var(--n-600); cursor: pointer;
  width: 20px; height: 20px;
  display: grid; place-items: center;
}

/* ─── Tooltip ─── */
.me-tooltip {
  display: inline-block;
  position: relative;
  background: var(--n-1000); color: #fff;
  padding: 6px 10px; border-radius: 4px;
  font-size: var(--fs-label-m); line-height: 1.4;
  font-weight: 500;
  white-space: nowrap;
}
.me-tooltip--top::after,
.me-tooltip--bottom::after,
.me-tooltip--left::after,
.me-tooltip--right::after {
  content: ""; position: absolute;
  border: 5px solid transparent;
}
.me-tooltip--top::after    { left: 50%; top: 100%; transform: translateX(-50%); border-top-color: var(--n-1000); }
.me-tooltip--bottom::after { left: 50%; bottom: 100%; transform: translateX(-50%); border-bottom-color: var(--n-1000); }
.me-tooltip--left::after   { top: 50%; left: 100%; transform: translateY(-50%); border-left-color: var(--n-1000); }
.me-tooltip--right::after  { top: 50%; right: 100%; transform: translateY(-50%); border-right-color: var(--n-1000); }

/* Rich · a persistent popover with body copy and actions. Click-triggered,
   dismissed explicitly — not a hover tooltip. */
.me-tooltip--rich {
  display: block;
  white-space: normal;
  max-width: 420px;
  padding: var(--sp-6);
  border-radius: var(--r-lg);
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: var(--lh-body);
  box-shadow: var(--shadow-lg);
}
.me-tooltip--rich.me-tooltip--top::after,
.me-tooltip--rich.me-tooltip--bottom::after,
.me-tooltip--rich.me-tooltip--left::after,
.me-tooltip--rich.me-tooltip--right::after { border-width: 9px; }
.me-tooltip__body { margin: 0; color: rgba(255,255,255,0.92); }
.me-tooltip__body + .me-tooltip__body { margin-top: var(--sp-3); }
.me-tooltip__actions {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end;
  gap: var(--sp-3);
  margin-top: var(--sp-5); padding-top: var(--sp-5);
  border-top: 1px solid rgba(255,255,255,0.16);
}
@media (max-width: 540px) {
  .me-tooltip--rich { max-width: 100%; }
  .me-tooltip__actions > .me-btn { flex: 1 1 auto; justify-content: center; }
}

/* ─── Modal ─── */
.me-modal-scrim {
  background: rgba(26,20,31,0.6);
  padding: 32px; border-radius: 8px;
  display: grid; place-items: center;
}
.me-modal {
  background: #fff; border-radius: 12px;
  box-shadow: var(--shadow-lg);
  padding: 28px; max-width: 440px; width: 100%;
}
.me-modal__head {
  display: flex; justify-content: space-between; align-items: flex-start;
  gap: 16px; margin-bottom: 12px;
}
.me-modal__title { margin: 0; font-size: var(--fs-body-l); font-weight: 700; color: var(--n-1000); }
.me-modal__close {
  background: transparent; border: 0; cursor: pointer;
  color: var(--n-600); padding: 4px;
}
.me-modal__body { margin: 0 0 24px; color: var(--n-700); font-size: var(--fs-label-l); line-height: 1.55; }
.me-modal__actions {
  display: flex; gap: 12px; justify-content: flex-end;
}

/* ─── Tabs (underline) ─── */
.me-tabs {
  display: flex; gap: 4px;
  border-bottom: 1px solid var(--border-soft);
  font-family: var(--font-sans);
}
.me-tabs__tab {
  appearance: none; background: transparent; border: 0;
  padding: 14px 18px;
  margin-bottom: -1px;
  font-size: var(--fs-label-l); font-weight: 600; line-height: 1;
  color: var(--n-700);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: color 140ms ease, border-color 140ms ease;
  display: inline-flex; align-items: center; gap: 8px;
}
.me-tabs__tab:hover { color: var(--n-1000); }
.me-tabs__tab .me-tabs__count {
  display: inline-grid; place-items: center;
  min-width: 22px; height: 18px; padding: 0 6px;
  border-radius: 999px;
  background: var(--n-150); color: var(--n-700);
  font-size: var(--fs-label-m); font-weight: 700;
}
.me-tabs__tab.is-active {
  color: var(--me-primary);
  border-bottom-color: var(--me-primary);
}
.me-tabs__tab.is-active .me-tabs__count { background: var(--me-primary); color: #fff; }
.me-tabs__tab[disabled] { color: var(--n-400); cursor: not-allowed; }

/* Pill tabs */
.me-tabs--pill {
  display: inline-flex; gap: 4px;
  padding: 4px;
  border: 0; border-radius: var(--r-md);
  background: var(--n-100);
}
.me-tabs--pill .me-tabs__tab {
  margin-bottom: 0; border: 0; border-radius: var(--r-sm);
  padding: 10px 18px;
}
.me-tabs--pill .me-tabs__tab.is-active {
  background: var(--me-primary); color: #fff;
  box-shadow: 0 2px 6px rgba(0,69,211,0.28);
}

/* ─── Segmented control ─── */
.me-segmented {
  display: inline-flex;
  padding: 3px;
  background: var(--n-100);
  border: 1px solid var(--border-soft);
  border-radius: 8px;
  font-family: var(--font-sans);
}
.me-segmented__seg {
  appearance: none; background: transparent; border: 0;
  padding: 8px 16px;
  font-size: var(--fs-label-l); font-weight: 600; line-height: 1;
  color: var(--n-700);
  cursor: pointer;
  border-radius: var(--r-sm);
  transition: background 140ms ease, color 140ms ease, box-shadow 140ms ease;
  display: inline-flex; align-items: center; gap: 8px;
}
.me-segmented__seg:hover { color: var(--n-1000); }
.me-segmented__seg.is-active {
  background: var(--me-primary); color: #fff;
  box-shadow: 0 1px 2px rgba(0,69,211,0.30);
}
.me-segmented--lg .me-segmented__seg { padding: 10px 20px; font-size: var(--fs-label-l); }
.me-segmented--sm .me-segmented__seg { padding: 6px 12px; font-size: var(--fs-label-m); }

/* ─── Breadcrumb ─── */
.me-crumbs {
  display: flex; align-items: center; gap: 8px;
  font-size: var(--fs-label-l); color: var(--n-700);
  font-family: var(--font-sans);
}
.me-crumbs a { color: var(--me-primary); text-decoration: none; }
.me-crumbs a:hover { text-decoration: underline; }
.me-crumbs .me-crumbs__sep { color: var(--n-400); }
.me-crumbs .me-crumbs__curr { color: var(--n-1000); font-weight: 600; }

/* ─── Pagination · dot-indicator with circular prev/next ─── */
.me-pager {
  --pager-arrow-size: 56px;
  --pager-dot-size: 8px;
  --pager-dot-color: var(--n-300);
  --pager-active-color: var(--me-primary);   /* brand blue */
  --pager-active-width: 36px;
  display: inline-flex; align-items: center; gap: 28px;
  font-family: var(--font-sans);
}

/* Arrow buttons */
.me-pager__arrow {
  width: var(--pager-arrow-size); height: var(--pager-arrow-size);
  border-radius: var(--r-sm);
  display: grid; place-items: center;
  border: 1.5px solid var(--n-1000);
  background: transparent;
  color: var(--n-1000);
  cursor: pointer;
  padding: 0;
  transition: background 120ms ease, border-color 120ms ease, color 120ms ease, opacity 120ms ease;
}
.me-pager__arrow svg { width: 18px; height: 18px; display: block; }
.me-pager__arrow:hover { background: var(--n-1000); color: #fff; }
.me-pager__arrow[disabled] {
  border-color: var(--n-300);
  color: var(--n-400);
  cursor: not-allowed;
  background: transparent;
}

/* Filled (soft) variant */
.me-pager--filled .me-pager__arrow {
  border-color: transparent;
  background: var(--n-200);
  color: var(--n-1000);
}
.me-pager--filled .me-pager__arrow:hover {
  background: var(--n-300);
  color: var(--n-1000);
}
.me-pager--filled .me-pager__arrow[disabled] {
  background: var(--n-100);
  color: var(--n-400);
}

/* Dot row */
.me-pager__dots {
  display: inline-flex; align-items: center; gap: 14px;
  padding: 0; margin: 0; list-style: none;
}
.me-pager__dot {
  width: var(--pager-dot-size); height: var(--pager-dot-size);
  border-radius: 999px;
  background: var(--pager-dot-color);
  border: 0; padding: 0;
  cursor: pointer;
  transition: width 180ms ease, background 180ms ease;
}
.me-pager__dot[aria-current="true"],
.me-pager__dot.is-current {
  width: var(--pager-active-width);
  background: var(--pager-active-color);
}

/* Small size */
.me-pager--sm { gap: 18px; }
.me-pager--sm .me-pager__arrow { width: 40px; height: 40px; }
.me-pager--sm .me-pager__dot { width: 6px; height: 6px; }
.me-pager--sm .me-pager__dot[aria-current="true"],
.me-pager--sm .me-pager__dot.is-current { width: 26px; }
.me-pager--sm .me-pager__arrow svg { width: 14px; height: 14px; }
.me-pager--sm .me-pager__dots { gap: 10px; }
.me-pager--sm .me-pager__nums { gap: 2px; }
.me-pager--sm .me-pager__num { min-width: 32px; height: 32px; font-size: var(--fs-label-l); }

/* Number row — same chrome as dots, but indexed buttons */
.me-pager__nums {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 0; margin: 0; list-style: none;
}
.me-pager__num {
  min-width: 40px; height: 40px;
  padding: 0 12px;
  border-radius: var(--r-sm);
  border: 0; background: transparent;
  font: 600 14px/1 var(--font-sans);
  color: var(--n-700);
  cursor: pointer;
  display: inline-grid; place-items: center;
  transition: background 120ms ease, color 120ms ease;
}
.me-pager__num:hover { background: var(--n-100); color: var(--n-1000); }
.me-pager__num[aria-current="page"],
.me-pager__num.is-current {
  background: var(--pager-active-color);
  color: #fff;
  cursor: default;
}
.me-pager__num[aria-current="page"]:hover,
.me-pager__num.is-current:hover { background: var(--pager-active-color); color: #fff; }
.me-pager__sep {
  min-width: 24px; height: 40px;
  display: inline-grid; place-items: center;
  color: var(--n-500);
  font-size: var(--fs-label-l);
  user-select: none;
}

/* ─── Textarea ─── */
.me-textarea {
  font-family: inherit;
  font-size: var(--me-field-value-size);
  font-weight: var(--me-field-value-weight);
  line-height: 1.5;
  min-height: 104px;
  padding: 14px var(--me-field-pad-x);
  border-radius: var(--me-field-radius);
  border: 1px solid var(--me-control-border);
  background: var(--n-000);
  color: var(--me-field-value);
  transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
  outline: none;
  resize: vertical;
  width: 100%;
}
.me-textarea::placeholder { color: var(--me-field-placeholder); font-weight: 400; }
.me-textarea:hover { border-color: var(--me-field-border-hover); }
.me-textarea:focus {
  border-color: var(--me-primary);
  box-shadow: var(--me-field-ring);
}
.me-textarea.is-success { border-color: var(--me-secondary); box-shadow: 0 0 0 3px rgba(0,160,90,0.15); }
.me-textarea.is-error   { border-color: var(--me-red); box-shadow: 0 0 0 3px rgba(200,35,50,0.18); }
.me-textarea[disabled]  { background: var(--surface-sunk); border-color: var(--border-soft); color: var(--n-500); cursor: not-allowed; }

/* ─── Select ─── */
.me-select {
  appearance: none; -webkit-appearance: none;
  font-family: inherit;
  font-size: var(--me-field-value-size);
  font-weight: var(--me-field-value-weight);
  height: var(--me-field-h);
  padding: 0 44px 0 var(--me-field-pad-x);
  border-radius: var(--me-field-radius);
  border: 1px solid var(--me-control-border);
  background: var(--n-000);
  color: var(--me-field-value);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='5 8 14 8' fill='none' stroke='%231A141F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>");
  background-repeat: no-repeat;
  background-position: right var(--me-field-pad-x) center;
  transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
  outline: none;
  cursor: pointer;
}
/* State — the :pseudo drives the live control, the .is-* twin lets a static
   spec page (or a server-rendered form) show the same state. */
.me-select:hover,
.me-select.is-hover { border-color: var(--me-field-border-hover); }
.me-select:focus,
.me-select.is-focus,
.me-select.is-active {
  border-color: var(--me-primary);
  box-shadow: var(--me-field-ring);
}
.me-select.is-success { border-color: var(--me-secondary); box-shadow: 0 0 0 3px rgba(0,160,90,0.15); }
.me-select.is-error   { border-color: var(--me-red); box-shadow: 0 0 0 3px rgba(200,35,50,0.18); }
.me-select.is-error:hover { border-color: var(--me-red); }
/* placeholder row: an unchosen option reads as placeholder, not as a value */
.me-select.is-placeholder { color: var(--me-field-placeholder); font-weight: 400; }
.me-select[disabled] { background-color: var(--surface-sunk); border-color: var(--border-soft); color: var(--n-500); cursor: not-allowed; }
/* the chevron is a data-URI, so a disabled select needs its own dimmed copy */
.me-select[disabled] { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='5 8 14 8' fill='none' stroke='%23999999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>"); }

/* Size — the field trio (input, select, textarea) shares --me-field-h-*, so a
   sized select still lines up with its neighbours in the same row. */
.me-select--sm {
  height: var(--me-field-h-sm);
  font-size: var(--fs-label-l);
  padding: 0 36px 0 var(--sp-3);
  background-position: right var(--sp-3) center;
}
.me-select--lg {
  height: var(--me-field-h-lg);
  font-size: var(--fs-body-l);
  padding: 0 52px 0 var(--sp-5);
  background-position: right var(--sp-5) center;
}

/* Multi-select — no chevron (the native list has its own scroll affordance) */
.me-select[multiple] {
  height: auto; padding: var(--sp-2); background-image: none;
  font-weight: 400; cursor: default;
}
.me-select[multiple] option { padding: var(--sp-2) var(--sp-3); border-radius: var(--r-xs); }

/* ─── Select · custom listbox ───
   The native popup can't be styled — the OS draws it. When the open list has to
   carry our type, brand selection colour, groups, or descriptions, swap the
   <select> for a button + listbox. Same trigger geometry (it reuses .me-select,
   so every state and size class still applies), our own popup.
   Markup: .me-select-drop > button.me-select.me-select-btn + .me-listbox
   The trigger needs role/aria wiring — see the component page for the pattern. */
.me-select-btn {
  display: inline-flex; align-items: center;
  width: 100%; text-align: left;
  box-sizing: border-box;
}
.me-select-btn > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.me-select-btn[aria-expanded="true"] { border-color: var(--me-primary); box-shadow: var(--me-field-ring); }

.me-select-drop { position: relative; width: 100%; }
.me-select-drop > .me-listbox {
  position: absolute; z-index: 40;
  top: calc(100% + var(--sp-2)); left: 0; min-width: 100%;
}
.me-select-drop:not(.is-open) > .me-listbox { display: none; }
/* drop-up when there's no room below */
.me-select-drop--up > .me-listbox { top: auto; bottom: calc(100% + var(--sp-2)); }

.me-listbox {
  background: var(--n-000);
  border: 1px solid var(--border-soft);
  border-radius: var(--me-field-radius);
  box-shadow: var(--shadow-lg);
  padding: var(--sp-2);
  min-width: 220px;
  max-height: 288px; overflow-y: auto;
  font-family: var(--font-sans);
}
.me-listbox__option {
  display: grid; grid-template-columns: 18px 1fr; gap: var(--sp-3); align-items: center;
  /* Asymmetric on purpose: the left already carries the 18px check gutter, so a
     matching 12px on the right leaves the label crowding the edge. */
  padding: 10px var(--sp-5) 10px var(--sp-3);
  border-radius: var(--r-sm);
  font-size: var(--fs-body); line-height: var(--lh-tight);
  color: var(--n-1000);
  background: transparent; border: 0; width: 100%; text-align: left;
  font-family: inherit; cursor: pointer;
  transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
.me-listbox__check { width: 18px; height: 18px; color: var(--me-primary); opacity: 0; }
/* is-active is the keyboard cursor; hover is its pointer equivalent */
.me-listbox__option:hover,
.me-listbox__option.is-active { background: var(--me-primary-tint); color: var(--me-primary); }
.me-listbox__option:focus-visible { outline: none; background: var(--me-primary-tint); color: var(--me-primary); box-shadow: inset 0 0 0 2px var(--me-primary); }
.me-listbox__option.is-selected { color: var(--me-primary); font-weight: 600; }
.me-listbox__option.is-selected .me-listbox__check { opacity: 1; }
.me-listbox__option[disabled],
.me-listbox__option[aria-disabled="true"] { color: var(--n-500); cursor: not-allowed; background: transparent; }
.me-listbox__desc { display: block; font-size: var(--fs-label-m); font-weight: 400; color: var(--n-600); margin-top: 2px; }
.me-listbox__option.is-selected .me-listbox__desc,
.me-listbox__option:hover .me-listbox__desc { color: var(--me-primary); }
.me-listbox__group {
  padding: var(--sp-2) var(--sp-3) var(--sp-1);
  font-size: var(--fs-label-m); letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--n-500); font-weight: 700;
}
.me-listbox__sep { height: 1px; background: var(--border-soft); margin: var(--sp-2) 0; border: 0; }
/* size twins for the SM / LG triggers */
.me-listbox--sm .me-listbox__option { padding: var(--sp-2) var(--sp-4) var(--sp-2) var(--sp-3); font-size: var(--fs-label-l); }
.me-listbox--lg .me-listbox__option { padding: 13px var(--sp-6) 13px var(--sp-4); font-size: var(--fs-body-l); }

/* ─── Field group (label + control + help) ─── */
.me-field {
  display: flex; flex-direction: column; gap: 6px;
  font-family: var(--font-sans);
}
.me-field__label {
  font-size: var(--fs-label-l); font-weight: 600; color: var(--n-1000);
  letter-spacing: 0.01em;
}
.me-field__label .req { color: var(--me-red); margin-left: 2px; }
.me-field__help    { font-size: var(--fs-label-m); color: var(--n-600); }
.me-field__error   { font-size: var(--fs-label-m); color: var(--me-red); }
.me-field__success { font-size: var(--fs-label-m); color: var(--me-secondary); }

/* ─── Input group (prefix / suffix affix) ───
   The border and focus treatment live on the wrapper, so the inner control
   must not draw its own ring inside it. */
.me-input-group {
  display: flex; align-items: center; width: 100%;
  height: var(--me-field-h);
  border: 1px solid var(--me-control-border);
  border-radius: var(--me-field-radius);
  background: var(--n-000);
  transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}
.me-input-group:hover { border-color: var(--me-field-border-hover); }
.me-input-group:focus-within { border-color: var(--me-primary); box-shadow: var(--me-field-ring); }
.me-input-group.is-error { border-color: var(--me-red); box-shadow: 0 0 0 3px rgba(200,35,50,0.18); }
.me-input-group__prefix,
.me-input-group__suffix {
  flex-shrink: 0;
  font-size: var(--me-field-value-size); font-weight: 400;
  color: var(--me-field-placeholder); white-space: nowrap;
}
.me-input-group__prefix { padding-left: var(--me-field-pad-x); }
.me-input-group__suffix { padding-right: var(--me-field-pad-x); }
.me-input-group .me-input {
  flex: 1; min-width: 0;
  height: 100%;
  border: 0; background: transparent;
  padding-left: 6px; padding-right: 6px;
}
.me-input-group .me-input:hover,
.me-input-group .me-input:focus { border: 0; box-shadow: none; }

/* ─── Field group · floating label ───
   The label starts centred in the field acting as the placeholder, then
   slides up and turns brand-blue on focus or once the field has a value.
   Markup: .me-field.me-field--float > .me-input + .me-field__label
   The control needs placeholder=" " so :placeholder-shown tracks emptiness. */
.me-field--float { position: relative; gap: 0; }
.me-field--float .me-input,
.me-field--float .me-textarea { width: 100%; box-sizing: border-box; }
/* value sits below the floated label: sp-5 clears the label row exactly (sp-2 + 12px
   label line = sp-5), sp-2 below balances it against the border — sums to --me-field-h. */
.me-field--float .me-input { padding-top: var(--sp-5); padding-bottom: var(--sp-2); line-height: var(--lh-body); }
.me-field--float .me-textarea { padding-top: var(--sp-7); }
.me-field--float .me-field__label {
  position: absolute; left: var(--me-field-pad-x); top: 50%;
  transform: translateY(-50%);
  margin: 0; font-size: var(--me-field-value-size); font-weight: 400; line-height: var(--lh-body);
  color: var(--me-field-placeholder); pointer-events: none;
  transition: top var(--dur-fast) var(--ease-out), font-size var(--dur-fast) var(--ease-out),
    color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
.me-field--float:has(.me-textarea) .me-field__label { top: var(--sp-5); transform: none; }
.me-field--float:focus-within .me-field__label,
.me-field--float:has(.me-input:not(:placeholder-shown)) .me-field__label,
.me-field--float:has(.me-textarea:not(:placeholder-shown)) .me-field__label,
/* a field carrying a validation message keeps its label up even when emptied,
   otherwise the label drops over the message below it */
.me-field--float:has(.me-input.is-error) .me-field__label,
.me-field--float:has(.me-input.is-success) .me-field__label,
.me-field--float:has(.me-textarea.is-error) .me-field__label,
.me-field--float:has(.me-textarea.is-success) .me-field__label {
  top: var(--sp-2); transform: none; font-size: var(--fs-label-m); line-height: 1;
}
.me-field--float:focus-within .me-field__label { color: var(--me-primary); }
.me-field--float:has(.me-input.is-error) .me-field__label,
.me-field--float:has(.me-textarea.is-error) .me-field__label { color: var(--me-red); }
.me-field--float:has(.me-input.is-success) .me-field__label { color: var(--me-secondary); }
/* keep the placeholder from colliding with the label mid-transition */
.me-field--float:not(:focus-within) .me-input::placeholder,
.me-field--float:not(:focus-within) .me-textarea::placeholder { color: transparent; }
.me-field--float .me-field__help,
.me-field--float .me-field__error,
.me-field--float .me-field__success { margin-top: var(--sp-2); padding-left: var(--sp-1); }

/* ─── Password reveal ───
   Markup: .me-field--float.me-field--pw > .me-input + .me-field__label + button.me-field__pw */
.me-field--pw .me-input { padding-right: var(--sp-12); }
.me-field__pw {
  position: absolute; right: var(--sp-1); top: 50%;
  transform: translateY(-50%);
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; padding: 0;
  background: transparent; border: 0; cursor: pointer;
  color: var(--n-600); transition: color var(--dur-fast) var(--ease-out);
}
.me-field__pw:hover { color: var(--n-1000); }
.me-field__pw:focus-visible { outline: 2px solid var(--me-primary); outline-offset: 2px; border-radius: var(--r-sm); }
.me-field__pw svg { width: 18px; height: 18px; }
.me-field__pw .me-field__pw-off { display: none; }
.me-field__pw[aria-pressed="true"] .me-field__pw-on  { display: none; }
.me-field__pw[aria-pressed="true"] .me-field__pw-off { display: inline; }


/* ============================================================
   New website-focused components (v0.2 — added 28 May 2026)
   ============================================================ */

/* ─── Accordion ─── */
.me-acc { display: flex; flex-direction: column; gap: 0; font-family: var(--font-sans); }
.me-acc__item {
  border-top: 1px solid var(--border-soft);
}
.me-acc__item:last-child { border-bottom: 1px solid var(--border-soft); }
.me-acc__head {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  width: 100%; padding: 20px 4px;
  background: transparent; border: 0; cursor: pointer;
  font-family: inherit; font-size: var(--fs-body); font-weight: 600;
  color: var(--n-1000); text-align: left;
  transition: color 120ms ease;
}
.me-acc__head:hover { color: var(--me-primary); }
.me-acc__chev {
  width: 20px; height: 20px; flex-shrink: 0;
  display: grid; place-items: center;
  color: var(--n-600);
  transition: transform 200ms ease, color 120ms ease;
}
.me-acc__item.is-open .me-acc__chev { transform: rotate(180deg); color: var(--me-primary); }
.me-acc__body {
  padding: 0 4px 20px;
  font-size: var(--fs-label-l); line-height: 1.6; color: var(--n-700);
  max-width: 65ch;
}
.me-acc__item:not(.is-open) .me-acc__body { display: none; }

/* Boxed variant */
.me-acc--boxed .me-acc__item {
  border: 1px solid var(--border-soft); border-radius: 8px;
  margin-bottom: 8px;
}
.me-acc--boxed .me-acc__item:last-child { border-bottom: 1px solid var(--border-soft); margin-bottom: 0; }
.me-acc--boxed .me-acc__head { padding: 18px 20px; }
.me-acc--boxed .me-acc__body { padding: 0 20px 20px; }
.me-acc--boxed .me-acc__item.is-open { background: var(--n-100); }

/* ─── Avatar ─── */
.me-avatar {
  display: inline-grid; place-items: center;
  border-radius: 50%;
  background: var(--me-primary);
  color: #fff;
  font-family: var(--font-sans);
  font-weight: 600;
  overflow: hidden;
  flex-shrink: 0;
  position: relative;
  user-select: none;
}
.me-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.me-avatar--xs { width: 24px; height: 24px; font-size: var(--fs-label-m); }
.me-avatar--sm { width: 32px; height: 32px; font-size: var(--fs-label-m); }
.me-avatar--md { width: 40px; height: 40px; font-size: var(--fs-label-l); }
.me-avatar--lg { width: 56px; height: 56px; font-size: var(--fs-body-l); }
.me-avatar--xl { width: 80px; height: 80px; font-size: var(--fs-h4); }
.me-avatar--xxl { width: 120px; height: 120px; font-size: var(--fs-h2); }
.me-avatar--square { border-radius: 8px; }

/* Color rotations — for initials */
.me-avatar--c1 { background: var(--me-primary); }
.me-avatar--c2 { background: var(--me-green); }
.me-avatar--c3 { background: var(--me-secondary); color: var(--n-1000); }
.me-avatar--c4 { background: var(--me-pink); }
.me-avatar--c5 { background: var(--me-cta); }
.me-avatar--c6 { background: var(--n-800); }

/* Presence indicator */
.me-avatar__presence {
  position: absolute; right: 0; bottom: 0;
  width: 30%; height: 30%; min-width: 8px; min-height: 8px;
  border-radius: 50%;
  background: var(--me-green);
  box-shadow: 0 0 0 2px #fff;
}
.me-avatar__presence--away { background: var(--me-yellow); }
.me-avatar__presence--busy { background: var(--me-red); }
.me-avatar__presence--off  { background: var(--n-500); }

/* Avatar stack */
.me-avatar-stack { display: inline-flex; align-items: center; }
.me-avatar-stack > .me-avatar { box-shadow: 0 0 0 2px #fff; margin-left: -8px; }
.me-avatar-stack > .me-avatar:first-child { margin-left: 0; }
.me-avatar-stack .me-avatar-stack__more {
  background: var(--n-150); color: var(--n-700);
  font-weight: 700;
}

/* ─── Search ─── */
.me-search-input {
  position: relative; display: inline-flex; align-items: center;
  width: 100%; max-width: 480px;
  font-family: var(--font-sans);
}
.me-search-input input {
  font-family: inherit;
  width: 100%; height: 44px;
  padding: 0 60px 0 44px;
  border-radius: var(--r-pill);
  border: 1px solid var(--n-300);
  background: #fff;
  color: var(--n-1000);
  font-size: var(--fs-label-l);
  outline: none;
  transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}
.me-search-input input::placeholder { color: var(--n-500); }
.me-search-input input:focus {
  border-color: var(--me-primary);
  box-shadow: 0 0 0 3px var(--me-primary-tint-2);
}
.me-search-input__icon {
  position: absolute; left: 16px; top: 50%; transform: translateY(-50%);
  color: var(--n-500); pointer-events: none;
}
.me-search-input__kbd {
  position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
  font-family: var(--font-mono); font-size: var(--fs-label-m);
  padding: 3px 7px; border-radius: 4px;
  background: var(--n-100); color: var(--n-600);
  border: 1px solid var(--border-soft);
}

/* Square (in-product) variant */
.me-search-input--sq input { border-radius: var(--r-sm); }
.me-search-input--lg input { height: 56px; font-size: var(--fs-body); padding-left: 52px; }
.me-search-input--lg .me-search-input__icon { left: 20px; }

/* Command palette */
.me-cmdk {
  width: 100%; max-width: 560px;
  background: #fff;
  border: 1px solid var(--border-soft);
  border-radius: 12px;
  box-shadow: var(--shadow-lg);
  overflow: hidden;
  font-family: var(--font-sans);
}
.me-cmdk__top {
  display: flex; align-items: center; gap: 12px;
  padding: 14px 18px;
  border-bottom: 1px solid var(--border-soft);
  color: var(--n-500);
}
.me-cmdk__top input {
  flex: 1; border: 0; outline: 0; background: transparent;
  font-family: inherit; font-size: var(--fs-body); color: var(--n-1000);
}
.me-cmdk__top input::placeholder { color: var(--n-500); }
.me-cmdk__top kbd {
  font-family: var(--font-mono); font-size: var(--fs-label-m);
  padding: 3px 7px; border-radius: 4px;
  background: var(--n-100); color: var(--n-600);
  border: 1px solid var(--border-soft);
}
.me-cmdk__group { padding: 8px 0; }
.me-cmdk__group + .me-cmdk__group { border-top: 1px solid var(--border-soft); }
.me-cmdk__group-title {
  padding: 6px 18px;
  font-size: var(--fs-label-m); letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--n-500); font-weight: 700;
}
.me-cmdk__row {
  display: grid; grid-template-columns: 24px 1fr auto; gap: 12px; align-items: center;
  padding: 10px 18px;
  font-size: var(--fs-label-l); color: var(--n-1000);
  cursor: pointer;
}
.me-cmdk__row .me-cmdk__icon { color: var(--n-500); display: grid; place-items: center; }
.me-cmdk__row .me-cmdk__hint { color: var(--n-500); font-size: var(--fs-label-m); }
.me-cmdk__row:hover,
.me-cmdk__row.is-active { background: var(--me-primary-tint); color: var(--me-primary); }
.me-cmdk__row:hover .me-cmdk__icon,
.me-cmdk__row.is-active .me-cmdk__icon { color: var(--me-primary); }

/* ─── Menu (dropdown) ─── */
.me-menu {
  background: #fff;
  border: 1px solid var(--border-soft);
  border-radius: 8px;
  box-shadow: var(--shadow-md);
  padding: 6px;
  min-width: 220px;
  font-family: var(--font-sans);
}
.me-menu__item {
  display: grid; grid-template-columns: 20px 1fr auto; gap: 12px; align-items: center;
  padding: 9px 12px;
  border-radius: 4px;
  font-size: var(--fs-label-l); color: var(--n-1000);
  text-decoration: none; cursor: pointer;
  background: transparent; border: 0; width: 100%; text-align: left;
  font-family: inherit;
}
.me-menu__item--noicon { grid-template-columns: 1fr auto; }
.me-menu__item:hover { background: var(--me-primary-tint); color: var(--me-primary); }
.me-menu__item .me-menu__hint {
  font-family: var(--font-mono); font-size: var(--fs-label-m); color: var(--n-500);
}
.me-menu__item:hover .me-menu__hint { color: var(--me-primary); }
.me-menu__item.is-danger { color: var(--me-red); }
.me-menu__item.is-danger:hover { background: rgba(200,35,50,0.08); color: var(--me-red); }
.me-menu__item[disabled] { color: var(--n-500); cursor: not-allowed; background: transparent !important; }
.me-menu__sep { height: 1px; background: var(--border-soft); margin: 6px 0; border: 0; }
.me-menu__label {
  padding: 8px 12px 4px;
  font-size: var(--fs-label-m); letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--n-500); font-weight: 700;
}

/* ─── Mega menu ─── */
.me-mega {
  background: #fff;
  border: 1px solid var(--border-soft);
  border-radius: 12px;
  box-shadow: var(--shadow-lg);
  padding: 32px;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px;
  font-family: var(--font-sans);
  min-width: 720px;
}
.me-mega__col-title {
  font-size: var(--fs-label-m); letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--n-500); font-weight: 700;
  margin: 0 0 12px;
}
.me-mega__link {
  display: grid; grid-template-columns: 32px 1fr; gap: 12px;
  padding: 10px 8px; margin: 0 -8px;
  border-radius: 6px;
  text-decoration: none; color: var(--n-1000);
  transition: background 120ms ease;
}
.me-mega__link:hover { background: var(--me-primary-tint); }
.me-mega__link .me-mega__icon {
  width: 32px; height: 32px;
  border-radius: 6px;
  background: var(--me-primary-tint);
  color: var(--me-primary);
  display: grid; place-items: center;
  grid-row: span 2;
}
.me-mega__link strong { font-size: var(--fs-label-l); font-weight: 600; }
.me-mega__link span { font-size: var(--fs-label-m); color: var(--n-600); line-height: 1.4; }
.me-mega__feature {
  background: var(--n-100);
  border-radius: 8px;
  padding: 20px;
}
.me-mega__feature .ft-tag {
  display: inline-block; padding: 3px 8px; border-radius: 4px;
  background: var(--me-cta); color: #fff;
  font-size: var(--fs-label-m); letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700;
  margin-bottom: 12px;
}
.me-mega__feature h4 { margin: 0 0 6px; font-size: var(--fs-body); font-weight: 700; }
.me-mega__feature p { margin: 0 0 14px; font-size: var(--fs-label-l); color: var(--n-700); line-height: 1.5; }

/* ─── Announcement bar ─── */
.me-announce {
  display: flex; align-items: center; justify-content: center; gap: 14px;
  padding: 10px 56px 10px 24px;
  font-family: var(--font-sans);
  font-size: var(--fs-label-l); font-weight: 500;
  background: var(--n-1000); color: #fff;
  position: relative;
}
.me-announce a { color: #fff; text-decoration: underline; font-weight: 600; }
.me-announce .me-announce__tag {
  display: inline-block; padding: 2px 8px; border-radius: 4px;
  background: var(--me-cta); color: #fff;
  font-size: var(--fs-label-m); letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700;
}
.me-announce .me-announce__close {
  position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
  background: transparent; border: 0; cursor: pointer;
  color: rgba(255,255,255,0.7);
  width: 28px; height: 28px; border-radius: 4px;
  display: grid; place-items: center;
}
.me-announce .me-announce__close:hover { background: rgba(255,255,255,0.10); color: #fff; }

.me-announce--brand   { background: var(--me-primary); }
.me-announce--accent  { background: var(--me-secondary); color: var(--n-1000); }
.me-announce--accent .me-announce__tag { background: var(--n-1000); color: #fff; }
.me-announce--accent a { color: var(--n-1000); }
.me-announce--accent .me-announce__close { color: rgba(26,20,31,0.6); }
.me-announce--accent .me-announce__close:hover { background: rgba(26,20,31,0.08); color: var(--n-1000); }

.me-announce--warning { background: var(--me-yellow); color: var(--n-1000); }
.me-announce--warning .me-announce__tag { background: var(--n-1000); color: #fff; }
.me-announce--warning a { color: var(--n-1000); }
.me-announce--warning .me-announce__close { color: rgba(26,20,31,0.6); }
.me-announce--warning .me-announce__close:hover { background: rgba(26,20,31,0.08); color: var(--n-1000); }

/* ─── Toast ─── */
.me-toast {
  display: grid;
  grid-template-columns: 24px 1fr auto;
  gap: 14px; align-items: flex-start;
  padding: 14px 16px;
  width: 360px;
  background: #fff;
  border-radius: 8px;
  box-shadow: var(--shadow-md);
  border-left: 4px solid var(--me-primary);
  font-family: var(--font-sans);
}
.me-toast__icon {
  width: 24px; height: 24px; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--me-primary-tint);
  color: var(--me-primary);
}
.me-toast__body strong {
  display: block; font-size: var(--fs-label-l); font-weight: 700; color: var(--n-1000);
  margin-bottom: 2px;
}
.me-toast__body p { margin: 0; font-size: var(--fs-label-l); color: var(--n-700); line-height: 1.5; }
.me-toast__close {
  background: transparent; border: 0; cursor: pointer;
  color: var(--n-500);
  width: 20px; height: 20px;
  display: grid; place-items: center;
}
.me-toast__close:hover { color: var(--n-1000); }

.me-toast--success { border-left-color: var(--me-green); }
.me-toast--success .me-toast__icon { background: rgba(0,160,90,0.12); color: var(--me-green-deep); }
.me-toast--warn    { border-left-color: var(--me-yellow); }
.me-toast--warn .me-toast__icon    { background: rgba(250,170,30,0.18); color: var(--amber-700); }
.me-toast--error   { border-left-color: var(--me-red); }
.me-toast--error .me-toast__icon   { background: rgba(200,35,50,0.10); color: var(--me-red); }

.me-toast-stack {
  display: flex; flex-direction: column; gap: 10px;
}

/* ─── Cookie banner ─── */
.me-cookie {
  background: #fff;
  border: 1px solid var(--border-soft);
  border-radius: 12px;
  box-shadow: var(--shadow-lg);
  padding: 24px;
  max-width: 420px;
  font-family: var(--font-sans);
}
.me-cookie__head {
  display: flex; align-items: center; gap: 10px; margin-bottom: 8px;
  font-size: var(--fs-body); font-weight: 700; color: var(--n-1000);
}
.me-cookie__head svg { color: var(--me-secondary); }
.me-cookie p {
  margin: 0 0 18px;
  font-size: var(--fs-label-l); line-height: 1.55; color: var(--n-700);
}
.me-cookie p a { color: var(--me-primary); }
.me-cookie__actions { display: flex; gap: 8px; flex-wrap: wrap; }

.me-cookie--bar {
  max-width: none;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px; align-items: center;
  border: 0; border-top: 1px solid var(--border-soft);
  border-radius: 0;
}
.me-cookie--bar p { margin: 0; }
.me-cookie--bar .me-cookie__head { margin-bottom: 4px; }

/* ─── Carousel ─── */
.me-carousel {
  position: relative;
  font-family: var(--font-sans);
}
.me-carousel__viewport {
  overflow: hidden;
  border-radius: 12px;
}
.me-carousel__track {
  display: flex;
  transition: transform 400ms cubic-bezier(0.4, 0.0, 0.2, 1);
}
.me-carousel__slide {
  flex: 0 0 100%;
  min-width: 0;
}
.me-carousel__btn {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 44px; height: 44px; border-radius: 50%;
  background: #fff; border: 1px solid var(--border-soft);
  box-shadow: var(--shadow-still);
  cursor: pointer;
  display: grid; place-items: center;
  color: var(--n-1000);
  z-index: 2;
  transition: background 120ms ease, color 120ms ease, border-color 120ms ease;
}
.me-carousel__btn:hover { background: var(--me-primary); color: #fff; border-color: var(--me-primary); }
.me-carousel__btn--prev { left: -22px; }
.me-carousel__btn--next { right: -22px; }
.me-carousel__btn[disabled] { opacity: 0.4; cursor: not-allowed; }

.me-carousel__dots {
  display: flex; gap: 8px; justify-content: center;
  margin-top: 20px;
}
.me-carousel__dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--n-300); border: 0; padding: 0;
  cursor: pointer;
  transition: background 120ms ease, width 200ms ease;
}
.me-carousel__dot.is-active { background: var(--me-primary); width: 24px; border-radius: 999px; }

/* Inset variant — controls inside the frame */
.me-carousel--inset .me-carousel__btn--prev { left: 16px; }
.me-carousel--inset .me-carousel__btn--next { right: 16px; }

/* ─── Audio player ─── */
.me-audio { display: flex; align-items: center; gap: var(--sp-4); font-family: var(--font-sans); width: 100%; max-width: 420px; }
.me-audio__play {
  flex-shrink: 0; width: 48px; height: 48px; border-radius: 50%; border: 0;
  background: var(--me-primary); color: var(--n-000);
  display: grid; place-items: center; cursor: pointer;
  transition: background var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}
.me-audio__play svg { width: 18px; height: 18px; }
.me-audio__play:hover, .me-audio__play.is-hover { background: var(--me-primary-hover); }
.me-audio__play:active, .me-audio__play.is-active { background: var(--me-primary-press); }
.me-audio__play:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--me-primary-tint-2); }
.me-audio__play[disabled] { background: var(--n-300); color: var(--n-000); cursor: not-allowed; }
.me-audio__play .me-audio__icon-pause { display: none; }
.me-audio__play[aria-pressed="true"] .me-audio__icon-play { display: none; }
.me-audio__play[aria-pressed="true"] .me-audio__icon-pause { display: block; }

.me-audio__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: var(--sp-2); }
.me-audio__row { display: flex; align-items: center; gap: var(--sp-3); }
.me-audio__row--time { justify-content: space-between; }
.me-audio__time { font-size: var(--fs-label-m); color: var(--n-600); font-variant-numeric: tabular-nums; }

.me-audio__seek-wrap { position: relative; flex: 1; height: 20px; }
.me-audio__seek-track { position: absolute; left: 0; right: 0; top: 50%; transform: translateY(-50%); height: 8px; border-radius: var(--r-pill); background: var(--n-200); overflow: hidden; pointer-events: none; }
.me-audio__seek-fill { display: block; height: 100%; background: var(--me-primary); border-radius: var(--r-pill); }
.me-audio__seek {
  -webkit-appearance: none; appearance: none;
  position: absolute; inset: 0; width: 100%; height: 100%; margin: 0;
  background: transparent; opacity: 0; cursor: pointer;
}
.me-audio__seek:focus-visible ~ .me-audio__seek-track { outline: 2px solid var(--me-primary); outline-offset: 3px; }
.me-audio__seek[disabled] { cursor: not-allowed; }
.me-audio__seek[disabled] ~ .me-audio__seek-track .me-audio__seek-fill { background: var(--n-400); }

.me-audio__mute {
  flex-shrink: 0; width: 20px; height: 20px; padding: 0; border: 0; background: transparent;
  color: var(--n-500); cursor: pointer; display: grid; place-items: center;
  transition: color var(--dur-fast) var(--ease-out);
}
.me-audio__mute svg { width: 16px; height: 16px; }
.me-audio__mute:hover { color: var(--n-1000); }
.me-audio__mute:focus-visible { outline: 2px solid var(--me-primary); outline-offset: 2px; border-radius: var(--r-xs); }
.me-audio__mute .me-audio__icon-muted { display: none; }
.me-audio__mute[aria-pressed="true"] .me-audio__icon-on { display: none; }
.me-audio__mute[aria-pressed="true"] .me-audio__icon-muted { display: block; }

/* ─── Stat counter ─── */
.me-stat {
  font-family: var(--font-sans);
}
.me-stat__value {
  font-size: var(--fs-display);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.025em;
  color: var(--n-900);
  display: flex; align-items: baseline; gap: 4px;
}
.me-stat__prefix,
.me-stat__suffix {
  font-size: var(--fs-h3); color: var(--me-primary); font-weight: 700;
}
.me-stat__label {
  margin-top: 12px;
  font-size: var(--fs-label-l); font-weight: 600;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--n-600);
}
.me-stat__desc {
  margin-top: 8px;
  font-size: var(--fs-label-l); line-height: 1.5; color: var(--n-700);
  max-width: 32ch;
}

.me-stat--xl .me-stat__value { font-size: 88px; }
.me-stat--xl .me-stat__prefix, .me-stat--xl .me-stat__suffix { font-size: 48px; }
.me-stat--lg .me-stat__value { font-size: 72px; }
.me-stat--md .me-stat__value { font-size: 56px; }
.me-stat--sm .me-stat__value { font-size: 36px; }
.me-stat--sm .me-stat__prefix, .me-stat--sm .me-stat__suffix { font-size: 22px; }

.me-stat--brand .me-stat__value { color: var(--me-primary); }
.me-stat--accent .me-stat__value { color: var(--me-secondary); }
.me-stat--inverse .me-stat__value { color: #fff; }
.me-stat--inverse .me-stat__label { color: rgba(255,255,255,0.7); }
.me-stat--inverse .me-stat__desc { color: rgba(255,255,255,0.85); }

.me-stat-band {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 32px;
}
.me-stat-band--divided > .me-stat + .me-stat {
  border-left: 1px solid var(--border-soft);
  padding-left: 32px;
}

/* ─── Rating (stars) ─── */
.me-rating { display: inline-flex; align-items: center; gap: var(--sp-2); font-family: var(--font-sans); }
.me-rating__stars { display: inline-flex; gap: var(--sp-1); }
.me-rating__star { position: relative; display: inline-block; width: 20px; height: 20px; flex-shrink: 0; }
.me-rating__star svg { display: block; width: 20px; height: 20px; }
.me-rating__star-bg { color: var(--n-300); }
.me-rating__star-bg, .me-rating__star-fillwrap svg { fill: currentColor; }
.me-rating__star-fillwrap { position: absolute; top: 0; left: 0; height: 100%; overflow: hidden; color: var(--me-yellow); }
.me-rating--sm .me-rating__star { width: 16px; height: 16px; }
.me-rating--sm .me-rating__star svg { width: 16px; height: 16px; }
.me-rating--lg .me-rating__star { width: 24px; height: 24px; }
.me-rating--lg .me-rating__star svg { width: 24px; height: 24px; }
.me-rating__value { font-size: var(--fs-label-l); font-weight: 700; color: var(--n-1000); }
.me-rating__count { font-size: var(--fs-label-l); color: var(--n-600); }

/* Interactive input — radios + labels, no JS. DOM is 5\u21921 with row-reverse so
   the ~ sibling combinator can light up "this star and every one below it". */
.me-rating--input .me-rating__stars { flex-direction: row-reverse; }
.me-rating__radio { position: absolute; opacity: 0; width: 1px; height: 1px; overflow: hidden; }
.me-rating--input label.me-rating__star {
  width: 24px; height: 24px; cursor: pointer; color: var(--n-300);
  transition: color var(--dur-fast) var(--ease-out);
}
.me-rating--input label.me-rating__star svg { width: 24px; height: 24px; fill: currentColor; }
.me-rating--input .me-rating__radio:checked ~ label.me-rating__star,
.me-rating--input label.me-rating__star:hover,
.me-rating--input label.me-rating__star:hover ~ label.me-rating__star { color: var(--me-yellow); }
.me-rating--input .me-rating__radio:focus-visible + label.me-rating__star { outline: 2px solid var(--me-primary); outline-offset: 2px; border-radius: 2px; }

/* ─── Section + Container layout primitives ─── */
.me-section {
  padding-top: 96px;
  padding-bottom: 96px;
  position: relative;
}
.me-section--sm { padding-top: 56px; padding-bottom: 56px; }
.me-section--lg { padding-top: 128px; padding-bottom: 128px; }
.me-section--xl { padding-top: 160px; padding-bottom: 160px; }
.me-section--flush-t { padding-top: 0; }
.me-section--flush-b { padding-bottom: 0; }

.me-section--sunk    { background: var(--n-100); }
.me-section--brand   { background: var(--me-primary); color: #fff; }
.me-section--brand-deep { background: var(--me-primary-press); color: #fff; }
.me-section--ink     { background: var(--n-1000); color: #fff; }
.me-section--accent  { background: var(--amber-50); }

.me-container {
  width: 100%;
  max-width: 1200px;
  margin-left: auto; margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
}
.me-container--narrow { max-width: 880px; }
.me-container--wide   { max-width: 1440px; }
.me-container--full   { max-width: none; }

.me-section__eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: var(--fs-label-m); font-weight: 700;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--me-primary);
  margin: 0 0 16px;
}
.me-section--brand .me-section__eyebrow,
.me-section--brand-deep .me-section__eyebrow,
.me-section--ink .me-section__eyebrow { color: var(--amber-300); }
.me-section__eyebrow::before {
  content: ""; width: 24px; height: 1px; background: currentColor;
}
.me-section__eyebrow--center { justify-content: center; }
.me-section__eyebrow--center::after {
  content: ""; width: 24px; height: 1px; background: currentColor;
}
.me-section__title {
  margin: 0 0 16px;
  font-size: var(--fs-h1); font-weight: 700; line-height: 1.1;
  letter-spacing: -0.02em;
}
.me-section__lede {
  margin: 0 0 40px;
  font-size: var(--fs-body-l); line-height: 1.55; color: var(--n-700);
  max-width: 56ch;
}
.me-section--brand .me-section__lede,
.me-section--brand-deep .me-section__lede,
.me-section--ink .me-section__lede { color: rgba(255,255,255,0.85); }


/* ─── Data table ─── */
:root {
  --me-table-cell-px:    var(--sp-4);
  --me-table-cell-py:    var(--sp-4);
  --me-table-cell-py-sm: var(--sp-2);
  --me-table-cell-py-lg: var(--sp-5);
  --me-table-head-bg:    var(--n-100);
  --me-table-row-hover:  var(--n-100);
  --me-table-row-sel:    var(--blue-50);
  --me-table-rule:       var(--border-soft);
}
.me-table-wrap {
  border: 1px solid var(--me-table-rule);
  border-radius: var(--r-md);
  overflow: hidden;
  background: var(--n-000);
}
.me-table-wrap--scroll { overflow-x: auto; }
.me-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--n-1000);
  background: var(--n-000);
}

/* Header cell */
.me-table thead th, .me-table__th {
  padding: var(--me-table-cell-py) var(--me-table-cell-px);
  text-align: left;
  vertical-align: middle;
  font-size: var(--fs-body);
  font-weight: 400;
  color: var(--n-1000);
  background: var(--me-table-head-bg);
  border-bottom: 1px solid var(--me-table-rule);
  white-space: nowrap;
}
.me-table__sort {
  display: inline-flex; align-items: center; gap: var(--sp-2);
  padding: 0; border: 0; background: none; cursor: pointer;
  font: inherit; color: inherit; text-align: left;
  border-radius: var(--r-sm);
}
.me-table__sort svg {
  width: 14px; height: 14px; flex-shrink: 0;
  color: var(--n-700);
  transition: transform var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
.me-table__sort:hover svg { color: var(--n-1000); }
.me-table__th[aria-sort="ascending"]  .me-table__sort svg { transform: rotate(180deg); color: var(--me-primary); }
.me-table__th[aria-sort="descending"] .me-table__sort svg { color: var(--me-primary); }
.me-table__th[aria-sort] .me-table__sort { font-weight: 600; }

/* Body cell */
.me-table tbody td, .me-table__td {
  padding: var(--me-table-cell-py) var(--me-table-cell-px);
  vertical-align: middle;
  border-bottom: 1px solid var(--me-table-rule);
  color: var(--n-1000);
}
.me-table tbody tr:last-child td { border-bottom: 0; }
.me-table__td--muted   { color: var(--n-600); }
.me-table__td--num     { font-variant-numeric: tabular-nums; text-align: right; }
.me-table__td--strong  { font-weight: 600; }
.me-table__td--wrap    { white-space: normal; min-width: 220px; }
.me-table__td--check, .me-table__th--check {
  width: 52px; padding-left: var(--sp-5); padding-right: var(--sp-2);
}
.me-table__td--check .me-check, .me-table__th--check .me-check { gap: 0; }
.me-table__link {
  color: var(--me-primary); text-decoration: underline;
  text-underline-offset: 3px; text-decoration-thickness: 1px;
  border-radius: var(--r-xs);
}
.me-table__link:hover { color: var(--me-primary-hover); }

/* Row states */
.me-table tbody tr { transition: background var(--dur-fast) var(--ease-out); }
.me-table tbody tr:hover { background: var(--me-table-row-hover); }
.me-table tbody tr.is-selected,
.me-table tbody tr.is-selected:hover { background: var(--me-table-row-sel); }
.me-table tbody tr.is-disabled { color: var(--n-500); }
.me-table tbody tr.is-disabled td { color: var(--n-500); }

/* Modifiers */
.me-table--zebra tbody tr:nth-child(even) { background: var(--n-100); }
.me-table--zebra tbody tr:nth-child(even):hover { background: var(--n-150); }
.me-table--zebra tbody tr.is-selected { background: var(--me-table-row-sel); }
.me-table--ruled th + th, .me-table--ruled td + td { border-left: 1px solid var(--me-table-rule); }
.me-table--compact { font-size: var(--fs-label-l); }
.me-table--compact thead th, .me-table--compact tbody td {
  padding-top: var(--me-table-cell-py-sm); padding-bottom: var(--me-table-cell-py-sm);
}
.me-table--comfortable thead th, .me-table--comfortable tbody td {
  padding-top: var(--me-table-cell-py-lg); padding-bottom: var(--me-table-cell-py-lg);
}
.me-table--sticky thead th { position: sticky; top: 0; z-index: 1; }
.me-table__empty {
  padding: var(--sp-16) var(--sp-4); text-align: center; color: var(--n-600);
}
.me-table-bar {
  display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4);
  padding: var(--sp-3) var(--sp-4);
  background: var(--n-000);
  border-top: 1px solid var(--me-table-rule);
  font-size: var(--fs-label-l); color: var(--n-600);
}

/* Stacked cards — wide tables must never scroll sideways on phones */
@media (max-width: 540px) {
  .me-table--stack thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .me-table--stack, .me-table--stack tbody, .me-table--stack tr, .me-table--stack td { display: block; width: 100%; min-width: 0; }
  .me-table--stack tbody tr {
    border-bottom: 1px solid var(--me-table-rule);
    padding: var(--sp-2) 0;
  }
  .me-table--stack tbody tr:last-child { border-bottom: 0; }
  .me-table--stack tbody td {
    display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4);
    border-bottom: 0; padding: var(--sp-2) var(--sp-4); min-height: 44px;
    text-align: left;
  }
  .me-table--stack tbody td::before {
    content: attr(data-label);
    font-size: var(--fs-label-m); font-weight: 700; letter-spacing: 0.06em;
    text-transform: uppercase; color: var(--n-600); flex-shrink: 0;
  }
  .me-table--stack .me-table__td--num { text-align: right; }
  .me-table--stack .me-table__td--check { width: auto; padding-left: var(--sp-4); }
}


/* ─── Progress bar ─── */
:root {
  --me-progress-h-sm:  4px;
  --me-progress-h-md:  8px;
  --me-progress-h-lg:  12px;
  --me-progress-fill:  var(--me-primary);
  --me-progress-track: var(--blue-50);
  --me-progress-fill-success:  var(--me-secondary);
  --me-progress-track-success: rgba(0,160,90,0.14);
  --me-progress-fill-warn:     var(--me-yellow);
  --me-progress-track-warn:    rgba(250,170,30,0.20);
  --me-progress-fill-error:    var(--me-red);
  --me-progress-track-error:   rgba(200,35,50,0.12);
  --me-progress-fill-neutral:  var(--n-600);
  --me-progress-track-neutral: var(--n-150);
  --me-progress-fill-on-dark:  var(--n-000);
  --me-progress-track-on-dark: rgba(255,255,255,0.22);
}
.me-progress { display: block; font-family: var(--font-sans); }
.me-progress__head {
  display: flex; align-items: baseline; justify-content: space-between; gap: var(--sp-4);
  margin-bottom: var(--sp-2);
}
.me-progress__label {
  font-size: var(--fs-body); line-height: var(--lh-body); color: var(--n-1000); min-width: 0;
}
.me-progress__value {
  font-size: var(--fs-body); font-weight: 700; color: var(--n-600);
  font-variant-numeric: tabular-nums; flex-shrink: 0;
}
.me-progress__track {
  position: relative; overflow: hidden;
  height: var(--me-progress-h-md);
  border-radius: var(--r-pill);
  background: var(--me-progress-track);
}
.me-progress__fill {
  display: block; height: 100%; width: 0%;
  border-radius: var(--r-pill);
  background: var(--me-progress-fill);
  transition: width var(--dur-base) var(--ease-out);
}

/* Size */
.me-progress--sm .me-progress__track { height: var(--me-progress-h-sm); }
.me-progress--lg .me-progress__track { height: var(--me-progress-h-lg); }

/* Colour */
.me-progress--success .me-progress__fill  { background: var(--me-progress-fill-success); }
.me-progress--success .me-progress__track { background: var(--me-progress-track-success); }
.me-progress--warn .me-progress__fill     { background: var(--me-progress-fill-warn); }
.me-progress--warn .me-progress__track    { background: var(--me-progress-track-warn); }
.me-progress--error .me-progress__fill    { background: var(--me-progress-fill-error); }
.me-progress--error .me-progress__track   { background: var(--me-progress-track-error); }
.me-progress--neutral .me-progress__fill  { background: var(--me-progress-fill-neutral); }
.me-progress--neutral .me-progress__track { background: var(--me-progress-track-neutral); }

/* Indeterminate — unknown duration; no value, no percentage */
.me-progress--indeterminate .me-progress__fill {
  width: 35%; transition: none;
  animation: me-progress-slide 1.4s var(--ease-in-out) infinite;
}
@keyframes me-progress-slide {
  0%   { transform: translateX(-100%); }
  100% { transform: translateX(340%); }
}
@media (prefers-reduced-motion: reduce) {
  .me-progress__fill { transition: none; }
  .me-progress--indeterminate .me-progress__fill { animation-duration: 3s; }
}

/* On dark surfaces */
.me-progress--on-dark .me-progress__track { background: var(--me-progress-track-on-dark); }
.me-progress--on-dark .me-progress__fill  { background: var(--me-progress-fill-on-dark); }
.me-progress--on-dark .me-progress__label { color: #fff; }
.me-progress--on-dark .me-progress__value { color: rgba(255,255,255,0.75); }


/* ===== pattern styles (from patterns/*.html) ===== */
/* == CTA banner == */
.p-cb {
  padding: 56px 56px;
  background: linear-gradient(135deg, var(--me-primary) 0%, var(--me-primary-press) 100%);
  color: #fff;
  position: relative; overflow: hidden;
}
.p-cb::after {
  content: ""; position: absolute; right: -120px; bottom: -120px;
  width: 360px; height: 360px; border-radius: 50%;
  background: radial-gradient(closest-side, rgba(255,255,255,0.10), transparent 70%);
}
.p-cb__inner {
  position: relative; z-index: 1;
  max-width: 1100px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr auto; gap: 48px; align-items: center;
}
.p-cb__title { margin: 0 0 8px; max-width: 22ch; color: inherit; }
.p-cb__lede { margin: 0; color: rgba(255,255,255,0.82); max-width: 50ch;  }
.p-cb__ctas { display: flex; gap: 12px; }
/* == FAQ == */
.p-faq {
  max-width: 760px; margin: 0 auto;
  display: flex; flex-direction: column;
}
/* Variant: inline (chevron) */
.p-faq--inline details {
  border-bottom: 1px solid var(--border-soft);
  padding: 4px 0;
}
.p-faq--inline summary {
  list-style: none;
  cursor: pointer;
  padding: 20px 4px;
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  font-size: var(--fs-body-l); font-weight: 600; color: var(--n-1000);
}
.p-faq--inline summary::-webkit-details-marker { display: none; }
.p-faq--inline summary::after {
  content: ""; flex-shrink: 0;
  width: 12px; height: 12px;
  border-right: 2px solid var(--n-700);
  border-bottom: 2px solid var(--n-700);
  transform: rotate(45deg);
  transition: transform 200ms ease;
  margin-right: 4px;
}
.p-faq--inline details[open] summary::after { transform: rotate(-135deg); margin-top: 4px; }
.p-faq--inline details[open] summary { color: var(--me-primary); }
.p-faq--inline .p-faq__a {
  padding: 0 4px 20px;
  font-size: var(--fs-body); line-height: 1.65; color: var(--n-700);
}

/* Variant: boxed (plus/minus) */
.p-faq--boxed { gap: 10px; }
.p-faq--boxed details {
  background: var(--n-000);
  border: 1px solid var(--border-soft);
  border-radius: 10px;
  padding: 0;
  overflow: hidden;
  transition: box-shadow 150ms ease, border-color 150ms ease;
}
.p-faq--boxed details:hover { border-color: var(--me-primary); }
.p-faq--boxed details[open] {
  box-shadow: var(--shadow-still);
  border-color: var(--me-primary);
}
.p-faq--boxed summary {
  list-style: none; cursor: pointer;
  padding: 18px 22px;
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  font-size: var(--fs-body); font-weight: 600; color: var(--n-1000);
}
.p-faq--boxed summary::-webkit-details-marker { display: none; }
.p-faq--boxed summary::after {
  content: "+"; flex-shrink: 0;
  display: grid; place-items: center;
  width: 28px; height: 28px; border-radius: 50%;
  background: var(--n-100); color: var(--n-1000);
  font-size: var(--fs-h5); font-weight: 400; line-height: 1;
  transition: background 150ms ease, color 150ms ease;
}
.p-faq--boxed details[open] summary::after {
  content: "−"; background: var(--me-primary); color: var(--n-000);
}
.p-faq--boxed .p-faq__a {
  padding: 0 22px 22px;
  font-size: var(--fs-label-l); line-height: 1.7; color: var(--n-700);
}

/* Variant: categorized (side nav + dropdown questions) */
.p-faq-cat { display: grid; grid-template-columns: 280px 1fr; gap: 56px; align-items: start; }
.p-faq-cat__nav { width: auto; display: flex; flex-direction: column; gap: 2px; position: sticky; top: 16px; }
.p-faq-cat__nav .me-vnav__item {
  border: 0; background: transparent; width: 100%;
  font: inherit; font-size: var(--fs-body); font-weight: 700; color: var(--me-primary);
  cursor: pointer; text-align: left;
}
.p-faq-cat__select { display: none; width: 100%; margin-bottom: 20px; }
.p-faq-cat__panel { display: none; }
.p-faq-cat__panel.is-on { display: block; }

/* Flat question list (used inside the categorized panel) */
.p-faq--flat { max-width: none; padding-top: 34px; }
.p-faq--flat details { border: 0; padding: 0; margin-bottom: 26px; }
.p-faq--flat summary {
  list-style: none; cursor: pointer; display: flex; align-items: flex-start; gap: 14px;
  font-size: var(--fs-h5); font-weight: 700; color: var(--n-1000); line-height: 1.3;
}
.p-faq--flat summary::-webkit-details-marker { display: none; }
.p-faq--flat summary::before {
  content: ""; flex: none; width: 9px; height: 9px; margin-top: 8px;
  border-right: 2px solid var(--me-primary); border-bottom: 2px solid var(--me-primary);
  transform: rotate(-135deg); transition: transform 200ms ease;
}
.p-faq--flat details[open] summary::before { transform: rotate(45deg); margin-top: 4px; }
.p-faq--flat .p-faq__a {
  padding: 16px 0 4px 23px; font-size: var(--fs-body); line-height: 1.7; color: var(--n-600);
}
.p-faq--flat .p-faq__a p { margin: 0 0 16px; }
.p-faq--flat .p-faq__a p:last-child { margin-bottom: 0; }

@media (max-width: 720px) {
  .p-faq-cat { grid-template-columns: 1fr; gap: 0; }
  .p-faq-cat__nav { display: none; }
  .p-faq-cat__select { display: block; }
}
/* == Feature grid == */
.p-fg { padding: 72px 56px; background: var(--n-000); }
.p-fg__head { text-align: center; max-width: 640px; margin: 0 auto 56px; }
.p-fg__kicker { text-transform: uppercase; color: var(--me-primary); margin: 0 0 12px;  }
.p-fg__title { margin: 0 0 12px; color: var(--n-900);  }
.p-fg__lede  { margin: 0; font-size: var(--fs-body-l); line-height: 1.55; color: var(--n-700); }
.p-fg__grid {
  display: grid; gap: 32px 40px;
  grid-template-columns: repeat(3, 1fr);
  max-width: 1100px; margin: 0 auto;
}
.p-fg__cell { padding: 4px; }
.p-fg__icon {
  width: 44px; height: 44px; border-radius: 8px;
  background: var(--me-primary-tint); color: var(--me-primary);
  display: grid; place-items: center;
  margin: 0 0 18px;
}
.p-fg__icon svg { width: 22px; height: 22px; }
.p-fg__h { margin: 0 0 8px; color: var(--n-1000);  }
.p-fg__p { margin: 0; font-size: var(--fs-label-l); line-height: 1.55; color: var(--n-700); }

/* ───── Variant B · tinted resource grid with divider lines ───── */
.p-fg2 {
  background: var(--blue-50);     /* soft blue tint surface */
  /* hairlines drawn by the gap showing through cell backgrounds */
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 1px;
}
.p-fg2__cell {
  background: var(--blue-50);
  padding: 52px 56px 44px;
  display: flex; flex-direction: column;
  /* draw the grid lines */
  box-shadow: 1px 0 0 rgba(20,30,60,0.07), 0 1px 0 rgba(20,30,60,0.07);
}
.p-fg2__icon { width: 48px; height: 44px; margin: 0 0 30px; display: block; }
.p-fg2__icon svg { width: 100%; height: 100%; display: block; }
.p-fg2__h { margin: 0 0 18px; font-size: var(--fs-h4); font-weight: 800; line-height: 1.15; letter-spacing: -0.02em; color: var(--n-1000); }
.p-fg2__p { margin: 0 0 36px; font-size: var(--fs-body-l); line-height: 1.45; color: var(--n-900); max-width: 32ch; }
.p-fg2__link {
  margin-top: auto;
  display: inline-flex; align-items: center; gap: 8px;
  font-size: var(--fs-label-l); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--me-primary); text-decoration: none;
}
.p-fg2__link svg { width: 13px; height: 13px; }
.p-fg2__link:hover { gap: 12px; }
@media (max-width: 860px) { .p-fg2 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .p-fg2 { grid-template-columns: 1fr; } .p-fg2__cell { padding: 36px 28px; } }

/* ───── Variant C · UEMS icon-tile cards (merged from the UEMS system) ───── */
.p-fgu { padding: var(--sp-16) var(--sp-14); background: var(--n-000); }
.p-fgu__head { text-align: center; max-width: 640px; margin: 0 auto var(--sp-14); }
.p-fgu__title { margin: 0 0 var(--sp-3); color: var(--n-1000);  }
.p-fgu__lede { margin: 0; color: var(--n-700);  }
.p-fgu__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-6); max-width: 1100px; margin: 0 auto; }
.p-fgu__card { background: var(--n-000); border: 1px solid var(--border-soft); border-radius: var(--r-md); padding: var(--sp-6); box-shadow: var(--shadow-sm); min-width: 0; }
.p-fgu__icon { width: var(--sp-10); height: var(--sp-10); border-radius: var(--r-md); background: var(--me-primary-tint); color: var(--me-primary); display: grid; place-items: center; margin: 0 0 var(--sp-4); }
.p-fgu__icon svg { width: 20px; height: 20px; }
.p-fgu__h { margin: 0 0 var(--sp-2); color: var(--n-1000);  }
.p-fgu__p { margin: 0; font-size: var(--fs-label-l); line-height: var(--lh-body); color: var(--n-700); }
@media (max-width: 900px) { .p-fgu__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 768px) { .p-fgu__grid { grid-template-columns: 1fr; } .p-fgu { padding: 56px 24px; } }
@media (max-width: 380px) { .p-fgu { padding: 40px 20px; } }
/* == Hero == */
.p-hero {
  position: relative;
  padding: 88px 64px 96px;
  background: linear-gradient(135deg, #0045D3 0%, #00308E 100%);
  color: #fff;
  overflow: hidden;
}
.p-hero::after {
  content: ""; position: absolute; right: -180px; top: -180px;
  width: 460px; height: 460px; border-radius: 50%;
  background: radial-gradient(closest-side, rgba(255,255,255,0.16), transparent 70%);
}
.p-hero__grid {
  display: grid; grid-template-columns: 1.4fr 1fr; gap: 64px; align-items: center;
  max-width: 1200px; margin: 0 auto;
  position: relative; z-index: 2;
}
.p-hero__eyebrow { display: inline-block; padding: 5px 12px; border-radius: 999px; background: rgba(255,255,255,0.16); text-transform: uppercase; margin-bottom: 22px; color: inherit; }
.p-hero__title { margin: 0 0 20px; max-width: 14ch; color: inherit; }
.p-hero__lede { margin: 0 0 32px; color: rgba(255,255,255,0.85); max-width: 50ch;  }
.p-hero__ctas { display: flex; gap: 12px; flex-wrap: wrap; }
.p-hero__viz {
  position: relative;
  height: 280px;
  display: grid; place-items: center;
}
.p-hero__viz-card {
  width: 90%; max-width: 360px;
  background: rgba(255,255,255,0.08);
  backdrop-filter: blur(20px);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 12px;
  padding: 24px;
}
.p-hero__viz-row {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(255,255,255,0.10);
}
.p-hero__viz-row:last-child { border-bottom: 0; }
.p-hero__viz-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: #4ADE80;
}
.p-hero__viz-dot.p-hero__warn { background: #FAAA1E; }
.p-hero__viz-text { font-size: var(--fs-label-l); flex: 1; }
.p-hero__viz-meta { font-family: var(--font-mono); font-size: var(--fs-label-m); color: rgba(255,255,255,0.6); }
/* == Pricing table == */
/* ============================================================
     Pricing table — on-system (Engine DS tokens)
     ============================================================ */
  .p-pt {
    --chk: var(--me-primary);
    --chk-bg: var(--me-primary-tint);
    padding: 48px 40px;
    background: var(--n-100);
    font-family: var(--font-sans);
  }
  .p-pt-inner { max-width: 1200px; margin: 0 auto; }

  /* Top bar: tabs centered, currency pinned right */
  .p-pt-bar {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 16px;
    margin-bottom: 32px;
  }
  .p-pt-tabs { justify-self: center; }
  .p-pt-bar__cur { justify-self: end; }
  .p-pt-bar__cur .me-select { height: 40px; font-weight: 600; }

  .p-pt-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    align-items: start;
  }

  .p-pt-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--n-000);
    border: 1px solid var(--border-med);
    border-radius: var(--r-lg);
    padding: 28px 26px 30px;
    box-shadow: var(--shadow-still);
  }
  /* Featured — DS border treatment */
  .p-pt-card.is-featured {
    border: 2px solid var(--me-primary);
    box-shadow: 0 16px 40px rgba(0,69,211,0.14);
    transform: translateY(-10px);
  }

  .p-pt-flag {
    position: absolute;
    top: 18px;
    right: 22px;
    background: var(--me-primary);
    color: #fff;
    font-size: var(--fs-label-m);
    font-weight: 700;
    letter-spacing: 0.04em;
    padding: 5px 12px;
    border-radius: var(--r-pill);
    box-shadow: 0 2px 6px rgba(0,69,211,0.30);
  }

  .p-pt-ico {
    width: 44px; height: 44px;
    border-radius: var(--r-md);
    background: var(--me-primary);
    color: #fff;
    display: inline-grid;
    place-items: center;
    margin-bottom: 18px;
  }
  .p-pt-ico svg { width: 22px; height: 22px; }

  .p-pt-head { min-height: 56px; }
  .p-pt-name {
    margin: 0;
    font-size: var(--fs-body-l);
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--n-1000);
  }
  .p-pt-sub { margin: 4px 0 0; font-size: var(--fs-label-l); color: var(--n-600); line-height: 1.35; }

  .p-pt-rule { height: 1px; background: var(--border-soft); margin: 18px 0 16px; }

  .p-pt-from { margin: 0 0 6px; font-size: var(--fs-label-l); color: var(--n-600); }
  .p-pt-price { display: flex; align-items: baseline; gap: 6px; }
  .p-pt-cur { font-size: var(--fs-h5); font-weight: 700; color: var(--n-1000); letter-spacing: -0.01em; }
  .p-pt-num { font-size: var(--fs-h1); font-weight: 800; color: var(--n-1000); letter-spacing: -0.02em; line-height: 1; }
  .p-pt-unit { font-size: var(--fs-label-l); color: var(--n-600); }

  .p-pt-card .me-btn { margin: 22px 0 26px; align-self: flex-start; }

  .p-pt-feat { margin: 0 0 16px; font-size: var(--fs-label-l); font-weight: 700; color: var(--n-1000); }
  .p-pt-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 13px; }
  .p-pt-list li {
    display: flex; align-items: flex-start; gap: 11px;
    font-size: var(--fs-label-l); line-height: 1.4; color: var(--n-700);
  }
  .p-pt-chk {
    flex-shrink: 0;
    width: 18px; height: 18px;
    margin-top: 1px;
    border-radius: 50%;
    background: var(--chk-bg);
    color: var(--chk);
    display: inline-grid;
    place-items: center;
  }
  .p-pt-chk svg { width: 11px; height: 11px; }

  .p-pt-foot {
    margin: 36px auto 0;
    text-align: center;
    font-size: var(--fs-body);
    color: var(--n-700);
    max-width: 880px;
  }
  .p-pt-foot a { color: var(--me-primary); text-decoration: underline; text-underline-offset: 2px; font-weight: 600; }
  .p-pt-foot__sep { margin: 0 12px; color: var(--n-400); }

  @media (max-width: 1080px) {
    .p-pt-grid { grid-template-columns: repeat(2, 1fr); }
    .p-pt-card.is-featured { transform: none; }
  }
/* == Product header == */

  /* A guide card is a grid child. Without min-width:0 the header's ~508px
     min-content blows the track out and the two cards resolve unequal. */
  ds-do, ds-dont, ds-do *, ds-dont * { min-width: 0; }
  
  
  /* Scroll frame for the two-state demo. The header sticks to THIS box, so the
     state swap can be seen without scrolling the doc page. */
  
  
  
  
/* == Site footer == */

  
/* == Site header == */
/* Frame the live web component so it reads as a preview, not chrome */
  
  
  
/* == Stats strip == */
.p-ss { padding: 48px 40px; background: var(--n-100); }
.p-ss__row {
  max-width: 1100px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.p-ss__cell {
  padding: 4px 8px;
  border-left: 2px solid var(--me-primary);
}
.p-ss__n  { display:block; font-size: var(--fs-h1); font-weight: 700; color: var(--n-1000); letter-spacing: -0.02em; line-height: 1; }
.p-ss__u  { font-size: var(--fs-h5); color: var(--me-primary); font-weight: 700; }
.p-ss__l  { display: block; margin-top: 8px; font-size: var(--fs-label-l); color: var(--n-700); line-height: 1.4; }
/* == Testimonial == */
.p-tm { padding: 72px 40px; background: var(--n-000); }
.p-tm__card {
  max-width: 820px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr; gap: 28px;
  text-align: center;
}
.p-tm__mark {
  font-family: var(--font-serif); font-size: 80px; line-height: 0.5;
  color: var(--me-primary); margin: 0 auto;
  height: 32px;
}
.p-tm__quote {
  margin: 0;
  font-family: var(--font-serif);
  font-size: var(--fs-h4); line-height: 1.4; letter-spacing: -0.01em;
  color: var(--n-1000); font-weight: 500;
}
.p-tm__by { display: flex; align-items: center; gap: 12px; justify-content: center; }
.p-tm__avatar {
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--me-primary);
  color: #fff; font-weight: 700; font-size: var(--fs-label-l);
  display: grid; place-items: center;
}
.p-tm__who { text-align: left; font-size: var(--fs-label-l); line-height: 1.4; }
.p-tm__who strong { display: block; color: var(--n-1000); font-weight: 600; }
.p-tm__who span  { color: var(--n-600); }
.p-tm__logo {
  margin-top: 8px;
  font-family: var(--font-mono); font-size: var(--fs-label-m); letter-spacing: 0.12em;
  color: var(--n-500);
}

/* ───── Variant · UEMS carousel (merged from the UEMS system) ───── */
.p-tmu { padding: var(--sp-16) var(--sp-14); background: var(--surface-sunk); }
.p-tmu__head { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-6); flex-wrap: wrap; max-width: 1100px; margin: 0 auto var(--sp-8); }
.p-tmu__title { margin: 0; color: var(--n-1000);  }
.p-tmu__nav { display: flex; gap: var(--sp-2); }
.p-tmu__btn { width: 44px; height: 44px; border-radius: var(--r-sm); border: 1px solid var(--border-med); background: var(--n-000); color: var(--n-1000); display: grid; place-items: center; cursor: pointer; transition: background 120ms ease, border-color 120ms ease, color 120ms ease; }
.p-tmu__btn:hover { background: var(--me-primary-tint); border-color: var(--me-primary); color: var(--me-primary); }
.p-tmu__btn svg { width: 18px; height: 18px; }
.p-tmu__viewport { max-width: 1100px; margin: 0 auto; overflow: hidden; }
.p-tmu__track { display: flex; gap: var(--sp-6); transition: transform 320ms cubic-bezier(.22, 1, .36, 1); }
.p-tmu__card { margin: 0; flex: 0 0 calc((100% - var(--sp-6) * 2) / 3); min-width: 0; display: flex; flex-direction: column; gap: var(--sp-4); background: var(--n-000); border: 1px solid var(--border-soft); border-radius: var(--r-md); padding: var(--sp-6); box-shadow: var(--shadow-sm); }
.p-tmu__q { margin: 0; font-size: var(--fs-body); line-height: 1.6; color: var(--n-1000); }
.p-tmu__who { display: flex; flex-direction: column; gap: 2px; margin-top: auto; }
.p-tmu__name { font-size: var(--fs-label-l); font-weight: 700; color: var(--n-1000); }
.p-tmu__role { font-size: var(--fs-label-m); color: var(--n-600); }
@media (max-width: 900px) { .p-tmu__card { flex: 0 0 calc((100% - var(--sp-6)) / 2); } }
@media (max-width: 768px) { .p-tmu__card { flex: 0 0 100%; } .p-tmu { padding: 56px 24px; } }
@media (max-width: 380px) { .p-tmu { padding: 40px 20px; } }
/* ===== hero ===== */
.p-hero {
  position: relative;
  padding: 88px 64px 96px;
  background: linear-gradient(135deg, #0045D3 0%, #00308E 100%);
  color: #fff;
  overflow: hidden;
}
.p-hero::after {
  content: ""; position: absolute; right: -180px; top: -180px;
  width: 460px; height: 460px; border-radius: 50%;
  background: radial-gradient(closest-side, rgba(255,255,255,0.16), transparent 70%);
}
.p-hero__grid {
  display: grid; grid-template-columns: 1.4fr 1fr; gap: 64px; align-items: center;
  max-width: 1200px; margin: 0 auto;
  position: relative; z-index: 2;
}
.p-hero__eyebrow {
  display: inline-block; padding: 5px 12px; border-radius: 999px;
  background: rgba(255,255,255,0.16);
  font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase;
  font-weight: 700; margin-bottom: 22px;
}
.p-hero__title {
  margin: 0 0 20px;
  font-size: 64px; font-weight: 700; line-height: 1.05; letter-spacing: -0.025em;
  max-width: 14ch;
}
.p-hero__lede {
  margin: 0 0 32px; font-size: 18px; line-height: 1.55;
  color: rgba(255,255,255,0.85); max-width: 50ch;
}
.p-hero__ctas { display: flex; gap: 12px; flex-wrap: wrap; }
.p-hero__viz {
  position: relative;
  height: 280px;
  display: grid; place-items: center;
}
.p-hero__viz-card {
  width: 90%; max-width: 360px;
  background: rgba(255,255,255,0.08);
  backdrop-filter: blur(20px);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 12px;
  padding: 24px;
}
.p-hero__viz-row {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(255,255,255,0.10);
}
.p-hero__viz-row:last-child { border-bottom: 0; }
.p-hero__viz-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: #4ADE80;
}
.p-hero__viz-dot.warn { background: #FAAA1E; }
.p-hero__viz-text { font-size: 13px; flex: 1; }
.p-hero__viz-meta { font-family: var(--font-mono); font-size: 11px; color: rgba(255,255,255,0.6); }

/* ===== video-hero ===== */
.p-vh {
  position: relative;
  padding: 96px 64px 112px;
  background: linear-gradient(135deg, #002F8B 0%, #0045D3 60%, #003BB4 100%);
  color: #fff;
  overflow: hidden;
}
.p-vh::after {
  content:""; position:absolute; inset:0;
  background-image: radial-gradient(rgba(255,255,255,0.06) 1px, transparent 1px);
  background-size: 24px 24px;
  pointer-events: none;
}
.p-vh__inner {
  max-width: 1100px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1.1fr; gap: 64px; align-items: center;
  position: relative; z-index: 1;
}
.p-vh__eyebrow {
  display: inline-block; padding: 5px 12px; border-radius: 999px;
  background: rgba(255,255,255,0.16);
  font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase;
  font-weight: 700; margin: 0 0 22px;
}
.p-vh__title { margin: 0 0 20px; font-size: 56px; font-weight: 700; line-height: 1.05; letter-spacing: -0.025em; max-width: 16ch; }
.p-vh__lede { margin: 0 0 32px; font-size: 17px; line-height: 1.55; color: rgba(255,255,255,0.85); max-width: 50ch; }
.p-vh__meta { display: flex; gap: 24px; font-size: 13px; color: rgba(255,255,255,0.7); }
.p-vh__meta span { display: inline-flex; align-items: center; gap: 6px; }
.p-vh__player {
  position: relative;
  aspect-ratio: 16 / 10;
  background: #000;
  border-radius: 12px; overflow: hidden;
  box-shadow: 0 30px 80px rgba(0,0,0,0.30);
}
.p-vh__poster {
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(0,0,0,0.0) 0%, rgba(0,0,0,0.35) 100%),
    repeating-linear-gradient(45deg, #1a2747, #1a2747 6px, #0e1730 6px, #0e1730 12px);
}
.p-vh__play {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: 76px; height: 76px; border-radius: 50%;
  background: #fff;
  display: grid; place-items: center;
  cursor: pointer;
  box-shadow: 0 12px 36px rgba(0,0,0,0.25);
}
.p-vh__play::after {
  content: ""; width: 0; height: 0; margin-left: 6px;
  border-left: 18px solid var(--me-primary);
  border-top: 11px solid transparent;
  border-bottom: 11px solid transparent;
}
.p-vh__caption {
  position: absolute; left: 16px; bottom: 16px;
  background: rgba(0,0,0,0.55);
  color: #fff; font-size: 12px; font-family: var(--font-mono);
  padding: 4px 8px; border-radius: 4px;
  letter-spacing: 0.04em;
}

/* ===== cta-banner ===== */
.p-cb {
  padding: 56px 56px;
  background: linear-gradient(135deg, var(--me-primary) 0%, var(--me-primary-press) 100%);
  color: #fff;
  position: relative; overflow: hidden;
}
.p-cb::after {
  content: ""; position: absolute; right: -120px; bottom: -120px;
  width: 360px; height: 360px; border-radius: 50%;
  background: radial-gradient(closest-side, rgba(255,255,255,0.10), transparent 70%);
}
.p-cb__inner {
  position: relative; z-index: 1;
  max-width: 1100px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr auto; gap: 48px; align-items: center;
}
.p-cb__title {
  margin: 0 0 8px; font-size: 30px; font-weight: 700; line-height: 1.15;
  letter-spacing: -0.015em; max-width: 22ch;
}
.p-cb__lede {
  margin: 0; font-size: 16px; color: rgba(255,255,255,0.82); max-width: 50ch;
}
.p-cb__ctas { display: flex; gap: 12px; }

/* ===== feature-grid ===== */
.p-fg { padding: 72px 56px; background: var(--n-000); }
.p-fg__head { text-align: center; max-width: 640px; margin: 0 auto 56px; }
.p-fg__kicker { font-size: 12px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--me-primary); margin: 0 0 12px; }
.p-fg__title { margin: 0 0 12px; font-size: 36px; line-height: 1.15; letter-spacing: -0.02em; color: var(--n-900); font-weight: 700; }
.p-fg__lede  { margin: 0; font-size: 17px; line-height: 1.55; color: var(--n-700); }
.p-fg__grid {
  display: grid; gap: 32px 40px;
  grid-template-columns: repeat(3, 1fr);
  max-width: 1100px; margin: 0 auto;
}
.p-fg__cell { padding: 4px; }
.p-fg__icon {
  width: 44px; height: 44px; border-radius: 8px;
  background: var(--me-primary-tint); color: var(--me-primary);
  display: grid; place-items: center;
  margin: 0 0 18px;
}
.p-fg__icon svg { width: 22px; height: 22px; }
.p-fg__h { margin: 0 0 8px; font-size: 17px; font-weight: 700; color: var(--n-1000); letter-spacing: -0.005em; }
.p-fg__p { margin: 0; font-size: 14px; line-height: 1.55; color: var(--n-700); }

/* ───── Variant B · tinted resource grid with divider lines ───── */
.p-fg2 {
  background: #EEF2FB;            /* soft blue tint surface */
  /* hairlines drawn by the gap showing through cell backgrounds */
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 1px;
}
.p-fg2__cell {
  background: #EEF2FB;
  padding: 52px 56px 44px;
  display: flex; flex-direction: column;
  /* draw the grid lines */
  box-shadow: 1px 0 0 rgba(20,30,60,0.07), 0 1px 0 rgba(20,30,60,0.07);
}
.p-fg2__icon { width: 48px; height: 44px; margin: 0 0 30px; display: block; }
.p-fg2__icon svg { width: 100%; height: 100%; display: block; }
.p-fg2__h { margin: 0 0 18px; font-size: 28px; font-weight: 800; line-height: 1.15; letter-spacing: -0.02em; color: var(--n-1000); }
.p-fg2__p { margin: 0 0 36px; font-size: 18px; line-height: 1.45; color: var(--n-900); max-width: 32ch; }
.p-fg2__link {
  margin-top: auto;
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 14px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--me-primary); text-decoration: none;
}
.p-fg2__link svg { width: 13px; height: 13px; }
.p-fg2__link:hover { gap: 12px; }
@media (max-width: 860px) { .p-fg2 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .p-fg2 { grid-template-columns: 1fr; } .p-fg2__cell { padding: 36px 28px; } }

/* ===== pricing-table ===== */
/* ============================================================
     Pricing table — on-system (Engine DS tokens)
     ============================================================ */
  .pt {
    --chk: var(--me-primary);
    --chk-bg: var(--me-primary-tint);
    padding: 48px 40px;
    background: var(--n-100);
    font-family: var(--font-sans);
  }
  .pt-inner { max-width: 1200px; margin: 0 auto; }

  /* Top bar: tabs centered, currency pinned right */
  .pt-bar {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 16px;
    margin-bottom: 32px;
  }
  .pt-tabs { justify-self: center; }
  .pt-bar__cur { justify-self: end; }
  .pt-bar__cur .me-select { height: 40px; font-weight: 600; }

  .pt-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    align-items: start;
  }

  .pt-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--n-000);
    border: 1px solid var(--border-med);
    border-radius: var(--r-lg);
    padding: 28px 26px 30px;
    box-shadow: var(--shadow-still);
  }
  /* Featured — DS border treatment */
  .pt-card.is-featured {
    border: 2px solid var(--me-primary);
    box-shadow: 0 16px 40px rgba(0,69,211,0.14);
    transform: translateY(-10px);
  }

  .pt-flag {
    position: absolute;
    top: 18px;
    right: 22px;
    background: var(--me-primary);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    padding: 5px 12px;
    border-radius: var(--r-pill);
    box-shadow: 0 2px 6px rgba(0,69,211,0.30);
  }

  .pt-ico {
    width: 44px; height: 44px;
    border-radius: var(--r-md);
    background: var(--me-primary);
    color: #fff;
    display: inline-grid;
    place-items: center;
    margin-bottom: 18px;
  }
  .pt-ico svg { width: 22px; height: 22px; }

  .pt-head { min-height: 56px; }
  .pt-name {
    margin: 0;
    font-size: 17px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--n-1000);
  }
  .pt-sub { margin: 4px 0 0; font-size: 13px; color: var(--n-600); line-height: 1.35; }

  .pt-rule { height: 1px; background: var(--border-soft); margin: 18px 0 16px; }

  .pt-from { margin: 0 0 6px; font-size: 13px; color: var(--n-600); }
  .pt-price { display: flex; align-items: baseline; gap: 6px; }
  .pt-cur { font-size: 24px; font-weight: 700; color: var(--n-1000); letter-spacing: -0.01em; }
  .pt-num { font-size: 42px; font-weight: 800; color: var(--n-1000); letter-spacing: -0.02em; line-height: 1; }
  .pt-unit { font-size: 14px; color: var(--n-600); }

  .pt-card .me-btn { margin: 22px 0 26px; align-self: flex-start; }

  .pt-feat { margin: 0 0 16px; font-size: 13px; font-weight: 700; color: var(--n-1000); }
  .pt-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 13px; }
  .pt-list li {
    display: flex; align-items: flex-start; gap: 11px;
    font-size: 14px; line-height: 1.4; color: var(--n-700);
  }
  .pt-chk {
    flex-shrink: 0;
    width: 18px; height: 18px;
    margin-top: 1px;
    border-radius: 50%;
    background: var(--chk-bg);
    color: var(--chk);
    display: inline-grid;
    place-items: center;
  }
  .pt-chk svg { width: 11px; height: 11px; }

  .pt-foot {
    margin: 36px auto 0;
    text-align: center;
    font-size: 15px;
    color: var(--n-700);
    max-width: 880px;
  }
  .pt-foot a { color: var(--me-primary); text-decoration: underline; text-underline-offset: 2px; font-weight: 600; }
  .pt-foot__sep { margin: 0 12px; color: var(--n-400); }

  @media (max-width: 1080px) {
    .pt-grid { grid-template-columns: repeat(2, 1fr); }
    .pt-card.is-featured { transform: none; }
  }

/* ===== comparison-table ===== */
.p-cmp { padding: 56px 40px; background: var(--n-000); }
.p-cmp__head { text-align: center; max-width: 640px; margin: 0 auto 40px; }
.p-cmp__title { margin: 0 0 8px; font-size: 30px; font-weight: 700; letter-spacing: -0.015em; color: var(--n-900); }
.p-cmp__lede { margin: 0; font-size: 15px; color: var(--n-700); }
.p-cmp__wrap { max-width: 1100px; margin: 0 auto; border: 1px solid var(--border-soft); border-radius: 12px; overflow: hidden; background: #fff; }
.p-cmp__t { width: 100%; border-collapse: collapse; font-size: 14px; }
.p-cmp__t thead th {
  padding: 22px 18px; text-align: left; font-weight: 600; color: var(--n-700);
  background: var(--n-100); position: sticky; top: 0;
  border-bottom: 1px solid var(--border-soft);
}
.p-cmp__t thead th.is-us {
  background: var(--me-primary); color: #fff; position: relative;
}
.p-cmp__t thead th.is-us::after {
  content: "BEST FIT"; position: absolute; right: 18px; top: 18px;
  background: rgba(255,255,255,0.18); padding: 3px 8px; border-radius: 4px;
  font-size: 10px; font-weight: 700; letter-spacing: 0.1em;
}
.p-cmp__t tbody td {
  padding: 16px 18px;
  border-bottom: 1px solid var(--border-soft);
  vertical-align: middle;
}
.p-cmp__t tbody tr:last-child td { border-bottom: 0; }
.p-cmp__t .row-h { font-weight: 600; color: var(--n-1000); width: 32%; }
.p-cmp__t .is-us-col { background: rgba(0,69,211,0.04); }
.p-cmp__t .group td {
  background: var(--n-100); font-weight: 700; color: var(--n-1000);
  font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase;
  padding: 12px 18px;
}
.p-cmp__y, .p-cmp__n {
  display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%;
  font-size: 11px;
}
.p-cmp__y { background: rgba(0,160,90,0.14); color: var(--me-green-deep); }
.p-cmp__n { background: var(--n-150); color: var(--n-500); }
.p-cmp__p {
  display: inline-flex; align-items: center; justify-content: center;
  height: 22px; padding: 0 10px; border-radius: 11px; white-space: nowrap;
  font-size: 11px; font-weight: 700; line-height: 1;
  background: var(--me-primary-tint); color: var(--me-primary);
}

/* ===== logo-wall ===== */
.p-lw { padding: 56px 40px; background: var(--n-000); border-top: 1px solid var(--border-soft); border-bottom: 1px solid var(--border-soft); }
.p-lw__head {
  text-align: center; font-size: 13px; font-weight: 600; color: var(--n-600);
  letter-spacing: 0.06em; margin: 0 0 36px;
}
.p-lw__grid {
  max-width: 1100px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px 32px;
  align-items: center;
}
.p-lw__slot {
  height: 56px; display: grid; place-items: center;
  color: var(--n-500);
  font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.06em;
  border-radius: 4px;
  position: relative; overflow: hidden;
}
.p-lw__slot::before {
  content: ""; position: absolute; inset: 0;
  background:
    repeating-linear-gradient(45deg, var(--n-100), var(--n-100) 6px, transparent 6px, transparent 12px);
  opacity: 0.5;
}
.p-lw__slot span { position: relative; z-index: 1; background: var(--n-000); padding: 0 6px; }

/* ===== stats-strip ===== */
.p-ss { padding: 48px 40px; background: var(--n-100); }
.p-ss__row {
  max-width: 1100px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.p-ss__cell {
  padding: 4px 8px;
  border-left: 2px solid var(--me-primary);
}
.p-ss__n  { display:block; font-size: 44px; font-weight: 700; color: var(--n-1000); letter-spacing: -0.02em; line-height: 1; }
.p-ss__u  { font-size: 22px; color: var(--me-primary); font-weight: 700; }
.p-ss__l  { display: block; margin-top: 8px; font-size: 13px; color: var(--n-700); line-height: 1.4; }

/* ===== customer-story ===== */
/* ───── Customer story · offset stat panel over photo ───── */
.p-story {
  position: relative;
  border-radius: 12px; overflow: hidden;
  min-height: 520px;
  display: flex; align-items: stretch;
}
.p-story__photo {
  position: absolute; inset: 0; z-index: 1;
  background: var(--n-200);
  background-size: cover; background-position: center;
  display: grid; place-items: center;
  color: var(--n-500); font: 500 12px/1 var(--font-mono); letter-spacing: 0.12em; text-transform: uppercase;
}
/* Solid blue stat panel, offset top-left */
.p-story__panel {
  position: relative; z-index: 2;
  margin: 44px 0 44px 44px;
  width: 42%; min-width: 320px; max-width: 440px;
  background: var(--me-primary);
  color: #fff;
  padding: 40px 44px 44px;
  box-sizing: border-box;
  display: flex; flex-direction: column;
}
.p-story__logo {
  height: 44px; width: auto; max-width: 70%;
  display: flex; align-items: center; gap: 12px;
  color: #fff; font: 800 18px/1 var(--font-sans); letter-spacing: 0.02em; text-transform: uppercase;
}
.p-story__logo .mk {
  width: 40px; height: 36px; flex: 0 0 auto;
  display: grid; align-content: center; gap: 5px;
}
.p-story__logo .mk span { display:block; height: 9px; border-radius: 2px; background: #fff;
  clip-path: polygon(50% 0, 100% 60%, 100% 100%, 50% 40%, 0 100%, 0 60%); }
.p-story__rule { height: 1px; background: rgba(255,255,255,0.32); margin: 22px 0 30px; }
.p-story__eyebrow { margin: 0; font-size: 22px; font-weight: 500; color: rgba(255,255,255,0.95); letter-spacing: -0.01em; }
.p-story__stat {
  margin: 6px 0 0; font-weight: 800; letter-spacing: -0.03em; line-height: 0.96;
  font-size: clamp(56px, 7vw, 92px);
}
.p-story__suffix { margin: 14px 0 0; font-size: 26px; font-weight: 400; color: rgba(255,255,255,0.92); }
.p-story__actions { margin-top: auto; padding-top: 40px; display: flex; flex-direction: column; gap: 18px; }
.p-story__cta {
  display: inline-flex; align-items: center; gap: 16px;
  color: #fff; text-decoration: none;
  font-size: 21px; font-weight: 500; letter-spacing: -0.01em;
  width: fit-content;
}
.p-story__cta .ic {
  width: 34px; height: 34px; flex: 0 0 auto; border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,0.7);
  display: grid; place-items: center;
  transition: background 120ms ease, color 120ms ease, border-color 120ms ease;
}
.p-story__cta .ic svg { width: 14px; height: 14px; display: block; }
.p-story__cta:hover .ic { background: #fff; color: var(--me-primary); border-color: #fff; }

@container (max-width: 640px) {
  .p-story { min-height: 0; }
  .p-story__photo { position: relative; height: 200px; }
  .p-story__panel { position: relative; width: auto; max-width: none; margin: -60px 16px 16px; }
}

/* ===== testimonial ===== */
.p-tm { padding: 72px 40px; background: var(--n-000); }
.p-tm__card {
  max-width: 820px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr; gap: 28px;
  text-align: center;
}
.p-tm__mark {
  font-family: var(--font-serif); font-size: 80px; line-height: 0.5;
  color: var(--me-primary); margin: 0 auto;
  height: 32px;
}
.p-tm__quote {
  margin: 0;
  font-family: var(--font-serif);
  font-size: 28px; line-height: 1.4; letter-spacing: -0.01em;
  color: var(--n-1000); font-weight: 500;
}
.p-tm__by { display: flex; align-items: center; gap: 12px; justify-content: center; }
.p-tm__avatar {
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--me-primary);
  color: #fff; font-weight: 700; font-size: 14px;
  display: grid; place-items: center;
}
.p-tm__who { text-align: left; font-size: 14px; line-height: 1.4; }
.p-tm__who strong { display: block; color: var(--n-1000); font-weight: 600; }
.p-tm__who span  { color: var(--n-600); }
.p-tm__logo {
  margin-top: 8px;
  font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.12em;
  color: var(--n-500);
}

/* ===== lead-form ===== */
.p-lead {
  display: grid; grid-template-columns: 1.1fr 1fr; gap: 0;
  border-radius: 12px; overflow: hidden;
  border: 1px solid var(--border-soft);
  background: #fff;
}
.p-lead__copy {
  padding: 48px 44px;
  background: linear-gradient(180deg, #F7F9FE 0%, #fff 100%);
  border-right: 1px solid var(--border-soft);
}
.p-lead__eyebrow {
  display: inline-block; padding: 4px 10px; border-radius: 4px;
  background: var(--me-primary-tint); color: var(--me-primary);
  font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700;
  margin-bottom: 16px;
}
.p-lead__title { margin: 0 0 14px; font-size: 28px; font-weight: 700; letter-spacing: -0.015em; color: var(--n-1000); line-height: 1.2; }
.p-lead__lede { margin: 0 0 24px; font-size: 15px; line-height: 1.55; color: var(--n-700); }
.p-lead__checks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.p-lead__checks li {
  display: flex; align-items: flex-start; gap: 10px;
  font-size: 14px; color: var(--n-1000);
}
.p-lead__checks li::before {
  content: ""; flex-shrink: 0; margin-top: 4px;
  width: 14px; height: 14px; border-radius: 50%;
  background: var(--me-green); 
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'><path d='m3 7 3 3 5-6' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-size: 14px 14px;
}
.p-lead__form { padding: 48px 44px; }
.p-lead__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@container (max-width: 600px) { .p-lead { grid-template-columns: 1fr; } .p-lead__copy { border-right: 0; border-bottom: 1px solid var(--border-soft); } }

/* ───── Variant B · centered dark-gradient hero form ───── */
.p-lead2 {
  border-radius: 20px; overflow: hidden;
  padding: 56px 72px 64px;
  background: linear-gradient(168deg, var(--me-primary) 0%, #0A1A66 42%, #04060F 100%);
  color: #fff;
}
.p-lead2__head { text-align: center; max-width: 760px; margin: 0 auto 44px; }
.p-lead2__title { margin: 0 0 16px; font-size: 42px; line-height: 1.12; font-weight: 800; letter-spacing: -0.02em; }
.p-lead2__lede { margin: 0; font-size: 19px; line-height: 1.5; color: rgba(255,255,255,0.78); text-wrap: pretty; }
.p-lead2__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 32px; max-width: 1000px; margin: 0 auto; }
.p-lead2__full { grid-column: 1 / -1; }
.p-lead2 .me-field__label { color: #fff; font-size: 15px; font-weight: 600; }
.p-lead2 .req { color: var(--me-red); }
.p-lead2__input {
  width: 100%; box-sizing: border-box;
  height: 64px; padding: 0 22px;
  border: 0; border-radius: 16px;
  background: #fff; color: var(--n-1000);
  font: 400 16px/1 var(--font-sans);
  box-shadow: 0 1px 2px rgba(0,0,0,0.18);
}
.p-lead2__input::placeholder { color: var(--n-500); }
.p-lead2__input:focus { outline: none; box-shadow: 0 0 0 3px rgba(255,255,255,0.55); }
textarea.p-lead2__input { height: auto; padding: 18px 22px; line-height: 1.5; resize: vertical; }
.p-lead2__select { appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%231A141F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat: no-repeat; background-position: right 20px center; padding-right: 52px; cursor: pointer; }
.p-lead2__actions { grid-column: 1 / -1; display: flex; justify-content: center; margin-top: 16px; }
.p-lead2__submit {
  display: inline-flex; align-items: center; gap: 18px;
  height: 64px; padding: 0 12px 0 38px;
  border: 0; border-radius: var(--r-pill);
  background: var(--me-red); color: #fff; cursor: pointer;
  font: 800 16px/1 var(--font-sans); letter-spacing: 0.08em; text-transform: uppercase;
  transition: background 120ms ease;
}
.p-lead2__submit:hover { background: #B81F2D; }
.p-lead2__submit span {
  width: 44px; height: 44px; border-radius: 50%;
  background: #fff; color: var(--me-red);
  display: grid; place-items: center;
}
.p-lead2__submit span svg { width: 18px; height: 18px; display: block; }
@container (max-width: 600px) { .p-lead2 { padding: 40px 24px 48px; } .p-lead2__grid { grid-template-columns: 1fr; } .p-lead2__title { font-size: 30px; } }

/* ===== newsletter-inline ===== */
.p-nl {
  background: var(--n-100); border-radius: 12px;
  padding: 28px 32px;
  display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center;
  max-width: 880px; margin: 0 auto;
}
.p-nl__h { margin: 0 0 4px; font-size: 18px; font-weight: 700; color: var(--n-1000); }
.p-nl__p { margin: 0; font-size: 13px; color: var(--n-700); }
.p-nl__form { display: flex; gap: 8px; align-items: center; }
.p-nl__form input { width: 280px; height: 44px; border: 1px solid var(--n-300); border-radius: 6px; padding: 0 14px; font: inherit; font-size: 14px; background: #fff; }

.p-nl--inverse { background: var(--n-1000); color: #fff; }
.p-nl--inverse .p-nl__h { color: #fff; }
.p-nl--inverse .p-nl__p { color: rgba(255,255,255,0.75); }
.p-nl--inverse input { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.18); color: #fff; }
.p-nl--inverse input::placeholder { color: rgba(255,255,255,0.5); }

/* ===== product-tour ===== */
.p-pt { padding: 56px 40px; background: var(--n-000); }
.p-pt__row {
  max-width: 1100px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center;
}
.p-pt__row + .p-pt__row { margin-top: 88px; }
.p-pt__row.is-flip > :first-child { order: 2; }
.p-pt__kicker { font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--me-primary); margin: 0 0 12px; }
.p-pt__h { margin: 0 0 14px; font-size: 30px; font-weight: 700; letter-spacing: -0.015em; line-height: 1.2; color: var(--n-900); }
.p-pt__p { margin: 0 0 20px; font-size: 16px; line-height: 1.55; color: var(--n-700); }
.p-pt__list { list-style: none; padding: 0; margin: 0 0 24px; display: flex; flex-direction: column; gap: 10px; }
.p-pt__list li { display: flex; gap: 10px; font-size: 14px; color: var(--n-700); }
.p-pt__list li::before {
  content: ""; flex-shrink: 0; width: 18px; height: 18px; border-radius: 50%;
  background: var(--me-primary-tint) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 16 16' fill='none' stroke='%230045D3' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='3 8 7 12 13 4'/></svg>") center / 11px no-repeat;
  margin-top: 1px;
}
.p-pt__link { color: var(--me-primary); font-weight: 600; font-size: 14px; text-decoration: none; display:inline-flex; align-items:center; gap:6px; }
.p-pt__viz {
  position: relative; aspect-ratio: 4 / 3;
  background: var(--n-100);
  border: 1px solid var(--border-soft);
  border-radius: 12px; overflow: hidden;
  display: grid; place-items: center;
  font-family: var(--font-mono); font-size: 12px; color: var(--n-500);
}
.p-pt__viz::before {
  content: ""; position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, var(--n-150), var(--n-150) 6px, transparent 6px, transparent 12px);
  opacity: 0.5;
}
.p-pt__viz span { position: relative; background: var(--n-100); padding: 6px 10px; border-radius: 4px; }

/* ===== step-by-step ===== */
.p-ss2 { padding: 64px 40px; background: var(--n-100); }
.p-ss2__head { text-align: center; max-width: 640px; margin: 0 auto 56px; }
.p-ss2__title { margin: 0 0 8px; font-size: 30px; font-weight: 700; letter-spacing: -0.015em; color: var(--n-900); }
.p-ss2__lede { margin: 0; font-size: 15px; color: var(--n-700); }
.p-ss2__row {
  max-width: 1100px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
}
.p-ss2__step { position: relative; padding: 0 8px; }
.p-ss2__step:not(:last-child)::after {
  content: ""; position: absolute; top: 22px; left: 30px; width: calc(100% + 24px); height: 1px;
  background: var(--n-300);
  z-index: 0;
}
.p-ss2__n {
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--me-primary); color: #fff;
  display: grid; place-items: center;
  font-family: var(--font-serif); font-size: 18px; font-weight: 700;
  margin: 0 0 18px;
  position: relative; z-index: 1;
}
.p-ss2__h { margin: 0 0 8px; font-size: 17px; font-weight: 700; color: var(--n-1000); }
.p-ss2__p { margin: 0; font-size: 14px; line-height: 1.55; color: var(--n-700); }
.p-ss2__time { display: inline-block; margin-top: 10px; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.06em; color: var(--me-primary); }

/* ===== tabbed-switcher ===== */
.p-tw { padding: 56px 40px; background: var(--n-000); }
.p-tw__head { text-align: center; max-width: 640px; margin: 0 auto 32px; }
.p-tw__title { margin: 0 0 8px; font-size: 30px; font-weight: 700; letter-spacing: -0.015em; color: var(--n-900); }
.p-tw__tabs {
  max-width: 920px; margin: 0 auto 32px;
  display: flex; gap: 4px; justify-content: center;
  padding: 4px; background: var(--n-100); border-radius: 999px;
  font-size: 14px; font-weight: 600;
  width: max-content;
}
.p-tw__tabs button {
  background: transparent; border: 0; color: var(--n-700);
  padding: 10px 22px; border-radius: 999px; cursor: pointer; font: inherit;
}
.p-tw__tabs button.is-on { background: #fff; color: var(--me-primary); box-shadow: 0 1px 3px rgba(0,0,0,0.08); }
.p-tw__panel {
  max-width: 1100px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1.4fr; gap: 56px; align-items: center;
  background: var(--n-100); border-radius: 12px; padding: 40px;
}
.p-tw__h { margin: 0 0 12px; font-size: 24px; font-weight: 700; color: var(--n-900); letter-spacing: -0.01em; }
.p-tw__p { margin: 0 0 18px; font-size: 15px; color: var(--n-700); line-height: 1.55; }
.p-tw__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; font-size: 14px; color: var(--n-700); }
.p-tw__list li::before { content: "→ "; color: var(--me-primary); font-weight: 700; }
.p-tw__viz {
  aspect-ratio: 16 / 10; background: #fff; border: 1px solid var(--border-soft);
  border-radius: 8px; display: grid; place-items: center;
  font-family: var(--font-mono); font-size: 12px; color: var(--n-500);
  position: relative; overflow: hidden;
}
.p-tw__viz::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(45deg, var(--n-100), var(--n-100) 6px, transparent 6px, transparent 12px); opacity:0.5;}
.p-tw__viz span { position: relative; background: #fff; padding: 6px 10px; border-radius: 4px;}

/* ===== partner-locator ===== */
.p-pl { padding: 48px 40px; background: var(--n-000); }
.p-pl__head { max-width: 1180px; margin: 0 auto 24px; }
.p-pl__title { margin: 0 0 8px; font-size: 30px; font-weight: 700; letter-spacing: -0.015em; color: var(--n-900); }
.p-pl__lede { margin: 0; font-size: 15px; color: var(--n-700); }
.p-pl__bar {
  max-width: 1180px; margin: 0 auto 24px;
  display: grid; grid-template-columns: 1fr 200px 200px 200px auto; gap: 12px;
  align-items: center;
}
.p-pl__bar input, .p-pl__bar select {
  height: 44px; padding: 0 14px; border-radius: 6px;
  border: 1px solid var(--n-300); font: inherit; font-size: 14px; color: var(--n-1000);
  background: #fff;
}
.p-pl__bar input { padding-left: 38px; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'><circle cx='11' cy='11' r='7'/><line x1='21' y1='21' x2='16' y2='16'/></svg>"); background-repeat: no-repeat; background-position: 14px center; }
.p-pl__split {
  max-width: 1180px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1fr; gap: 0;
  border: 1px solid var(--border-soft); border-radius: 12px; overflow: hidden;
  min-height: 540px;
}
.p-pl__list { background: #fff; overflow-y: auto; max-height: 540px; }
.p-pl__item {
  padding: 18px 20px; border-bottom: 1px solid var(--border-soft);
  display: grid; grid-template-columns: 36px 1fr auto; gap: 14px; align-items: center;
  cursor: pointer;
}
.p-pl__item.is-on { background: var(--me-primary-tint); }
.p-pl__pin {
  width: 28px; height: 28px; border-radius: 50%;
  background: var(--me-primary); color: #fff;
  display: grid; place-items: center; font-size: 12px; font-weight: 700;
}
.p-pl__pname { font-size: 14px; font-weight: 600; color: var(--n-1000); }
.p-pl__paddr { font-size: 12px; color: var(--n-600); margin-top: 2px; }
.p-pl__tier {
  font-size: 10px; font-weight: 700; letter-spacing: 0.08em;
  padding: 3px 8px; border-radius: 999px;
  text-transform: uppercase;
}
.p-pl__tier.is-gold { background: rgba(250,170,30,0.18); color: #B7790F; }
.p-pl__tier.is-silver { background: var(--n-200); color: var(--n-700); }
.p-pl__map {
  position: relative;
  background:
    linear-gradient(0deg, rgba(0,69,211,0.04), rgba(0,69,211,0.04)),
    repeating-linear-gradient(0deg, var(--n-150) 0, var(--n-150) 1px, transparent 1px, transparent 40px),
    repeating-linear-gradient(90deg, var(--n-150) 0, var(--n-150) 1px, transparent 1px, transparent 40px),
    var(--n-100);
  font-family: var(--font-mono); font-size: 11px; color: var(--n-500);
}
.p-pl__map-lbl { position: absolute; bottom: 8px; right: 12px; padding: 2px 6px; background: rgba(255,255,255,0.8); border-radius: 4px; }
.p-pl__marker {
  position: absolute; width: 28px; height: 28px; border-radius: 50%;
  background: var(--me-primary); color: #fff;
  display: grid; place-items: center; font-size: 11px; font-weight: 700;
  border: 3px solid #fff; box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  transform: translate(-50%, -50%);
}

/* ===== faq ===== */
.p-faq {
  max-width: 760px; margin: 0 auto;
  display: flex; flex-direction: column;
}
/* Variant: inline (chevron) */
.p-faq--inline details {
  border-bottom: 1px solid var(--border-soft);
  padding: 4px 0;
}
.p-faq--inline summary {
  list-style: none;
  cursor: pointer;
  padding: 20px 4px;
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  font-size: 17px; font-weight: 600; color: var(--n-1000);
}
.p-faq--inline summary::-webkit-details-marker { display: none; }
.p-faq--inline summary::after {
  content: ""; flex-shrink: 0;
  width: 12px; height: 12px;
  border-right: 2px solid var(--n-700);
  border-bottom: 2px solid var(--n-700);
  transform: rotate(45deg);
  transition: transform 200ms ease;
  margin-right: 4px;
}
.p-faq--inline details[open] summary::after { transform: rotate(-135deg); margin-top: 4px; }
.p-faq--inline details[open] summary { color: var(--me-primary); }
.p-faq--inline .p-faq__a {
  padding: 0 4px 20px;
  font-size: 15px; line-height: 1.65; color: var(--n-700);
}

/* Variant: boxed (plus/minus) */
.p-faq--boxed { gap: 10px; }
.p-faq--boxed details {
  background: #fff;
  border: 1px solid var(--border-soft);
  border-radius: 10px;
  padding: 0;
  overflow: hidden;
  transition: box-shadow 150ms ease, border-color 150ms ease;
}
.p-faq--boxed details:hover { border-color: var(--me-primary); }
.p-faq--boxed details[open] {
  box-shadow: var(--shadow-still);
  border-color: var(--me-primary);
}
.p-faq--boxed summary {
  list-style: none; cursor: pointer;
  padding: 18px 22px;
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  font-size: 16px; font-weight: 600; color: var(--n-1000);
}
.p-faq--boxed summary::-webkit-details-marker { display: none; }
.p-faq--boxed summary::after {
  content: "+"; flex-shrink: 0;
  display: grid; place-items: center;
  width: 28px; height: 28px; border-radius: 50%;
  background: var(--n-100); color: var(--n-1000);
  font-size: 20px; font-weight: 400; line-height: 1;
  transition: background 150ms ease, color 150ms ease;
}
.p-faq--boxed details[open] summary::after {
  content: "−"; background: var(--me-primary); color: #fff;
}
.p-faq--boxed .p-faq__a {
  padding: 0 22px 22px;
  font-size: 14px; line-height: 1.7; color: var(--n-700);
}

/* Variant: categorized (side nav + dropdown questions) */
.p-faq-cat { display: grid; grid-template-columns: 280px 1fr; gap: 56px; align-items: start; }
.p-faq-cat__nav {
  background: #fff; border-radius: 12px; box-shadow: var(--shadow-still);
  padding: 10px; display: flex; flex-direction: column; gap: 2px; position: sticky; top: 16px;
}
.p-faq-cat__navitem {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 13px 16px; border-radius: 8px; border: 0; background: transparent;
  font: inherit; font-size: 15px; font-weight: 700; color: var(--me-primary);
  cursor: pointer; text-align: left;
}
.p-faq-cat__navitem::after {
  content: ""; flex: none; width: 8px; height: 8px;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: rotate(-45deg);
}
.p-faq-cat__navitem:hover { background: var(--me-primary-tint); }
.p-faq-cat__navitem.is-on { background: var(--me-primary); color: #fff; }
.p-faq-cat__select {
  display: none; width: 100%; height: 46px; padding: 0 14px; margin-bottom: 20px;
  font: inherit; font-size: 15px; font-weight: 600; color: var(--n-1000);
  border: 1px solid var(--border-med); border-radius: 8px; background: #fff;
}
.p-faq-cat__panel { display: none; }
.p-faq-cat__panel.is-on { display: block; }

/* Flat question list (used inside the categorized panel) */
.p-faq--flat { max-width: none; padding-top: 34px; }
.p-faq--flat details { border: 0; padding: 0; margin-bottom: 26px; }
.p-faq--flat summary {
  list-style: none; cursor: pointer; display: flex; align-items: flex-start; gap: 14px;
  font-size: 21px; font-weight: 700; color: var(--n-1000); line-height: 1.3;
}
.p-faq--flat summary::-webkit-details-marker { display: none; }
.p-faq--flat summary::before {
  content: ""; flex: none; width: 9px; height: 9px; margin-top: 8px;
  border-right: 2px solid var(--me-primary); border-bottom: 2px solid var(--me-primary);
  transform: rotate(-135deg); transition: transform 200ms ease;
}
.p-faq--flat details[open] summary::before { transform: rotate(45deg); margin-top: 4px; }
.p-faq--flat .p-faq__a {
  padding: 16px 0 4px 23px; font-size: 16px; line-height: 1.7; color: var(--n-600);
}
.p-faq--flat .p-faq__a p { margin: 0 0 16px; }
.p-faq--flat .p-faq__a p:last-child { margin-bottom: 0; }

@media (max-width: 720px) {
  .p-faq-cat { grid-template-columns: 1fr; gap: 0; }
  .p-faq-cat__nav { display: none; }
  .p-faq-cat__select { display: block; }
}

/* ===== resource-hub ===== */
.p-rh-toolbar { display:flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; margin-bottom: 28px; }
.p-rh-title { margin: 0; font-size: 24px; font-weight: 700; letter-spacing: -0.015em; }
.p-rh-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;
}
.p-rh-card {
  position: relative;
  padding: 28px 24px;
  background: #fff;
  border: 1px solid var(--border-soft);
  border-radius: 10px;
  display: flex; flex-direction: column; gap: 12px;
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
  text-decoration: none; color: inherit;
}
.p-rh-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-hover); border-color: var(--me-primary); }
.p-rh-card__icon {
  width: 44px; height: 44px; border-radius: 8px;
  display: grid; place-items: center;
  background: linear-gradient(135deg, #E8EFFF 0%, #C7DAFF 100%);
  color: var(--me-primary);
  margin-bottom: 4px;
}
.p-rh-card__kind {
  font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; font-weight: 700;
  color: var(--me-primary);
}
.p-rh-card__title { margin: 0; font-size: 17px; font-weight: 700; color: var(--n-1000); line-height: 1.3; letter-spacing: -0.005em; }
.p-rh-card__body { margin: 0; font-size: 13px; line-height: 1.55; color: var(--n-700); flex: 1; }
.p-rh-card__cta {
  margin-top: auto; padding-top: 12px;
  font-size: 13px; font-weight: 600; color: var(--me-primary);
  display: flex; align-items: center; gap: 6px;
}
.p-rh-card__cta::after { content: "→"; transition: transform 200ms ease; }
.p-rh-card:hover .p-rh-card__cta::after { transform: translateX(4px); }

/* ===== blog-article ===== */
.p-bl { padding: 48px 40px; background: var(--n-000); }
.p-bl__inner {
  max-width: 1180px; margin: 0 auto;
  display: grid; grid-template-columns: minmax(0,1fr) 340px; gap: 56px;
  align-items: start;
}
.p-bl__crumb { font-size: 14px; color: var(--n-700); margin: 0 0 28px; line-height: 1.5; }
.p-bl__crumb a { color: var(--me-primary); text-decoration: none; }
.p-bl__crumb a:hover { text-decoration: underline; }

/* Main column */
.p-bl__main { min-width: 0; }
.p-bl__h1 { margin: 0 0 14px; font-size: 40px; line-height: 1.18; letter-spacing: -0.02em; color: var(--n-1000); font-weight: 700; }
.p-bl__meta { display: flex; align-items: center; gap: 16px; font-size: 14px; color: var(--n-600); margin: 0 0 28px; }
.p-bl__meta span { display: inline-flex; align-items: center; gap: 6px; }
.p-bl__meta .dot { width: 3px; height: 3px; border-radius: 50%; background: var(--n-400); }
.p-bl__hero {
  aspect-ratio: 16/9; border-radius: 8px; overflow: hidden;
  display: grid; place-items: center; font-family: var(--font-mono); font-size: 12px; color: var(--n-600);
  margin: 0 0 32px;
  background-image: repeating-linear-gradient(45deg, var(--n-100), var(--n-100) 11px, var(--n-150) 11px, var(--n-150) 22px);
}
.p-bl__body { font-size: 16px; line-height: 1.75; color: var(--n-1000); max-width: 70ch; }
.p-bl__body h2 { font-size: 24px; margin: 36px 0 12px; color: var(--n-1000); letter-spacing: -0.01em; }
.p-bl__body p  { margin: 0 0 20px; }
.p-bl__body blockquote { border-left: 3px solid var(--me-primary); padding: 4px 18px; margin: 24px 0; color: var(--n-700); font-style: italic; }

/* Sidebar */
.p-bl__side { position: sticky; top: 32px; display: flex; flex-direction: column; gap: 28px; }
.p-bl__search { display: flex; gap: 12px; }
.p-bl__search .me-search-input { flex: 1; max-width: none; }
.p-bl__search-btn {
  flex: none; padding: 0 22px; height: 44px; border: none; border-radius: var(--r-sm);
  background: var(--me-primary); color: #fff; font-family: var(--font-sans);
  font-weight: 700; font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; cursor: pointer;
}
.p-bl__search-btn:hover { background: var(--me-primary-hover); }

.p-bl__panel {
  border-top: 3px solid var(--me-primary);
  background: var(--me-primary-tint);
  border-radius: 0 0 8px 8px;
  padding: 24px;
}
.p-bl__author { display: flex; align-items: center; gap: 14px; }
.p-bl__avatar { width: 52px; height: 52px; border-radius: 50%; background: var(--me-primary); color: #fff; display: grid; place-items: center; font-weight: 700; font-size: 17px; flex: none; }
.p-bl__a-name { font-weight: 700; font-size: 17px; color: var(--n-1000); }
.p-bl__divider { height: 1px; background: var(--border-soft); margin: 18px 0; }
.p-bl__share { display: flex; align-items: center; gap: 12px; font-size: 14px; color: var(--n-700); }
.p-bl__share-icons { display: flex; gap: 10px; }
.p-bl__share-icons a { width: 26px; height: 26px; border-radius: 50%; background: var(--me-primary); color: #fff; display: grid; place-items: center; text-decoration: none; font-size: 11px; font-weight: 700; }

.p-bl__related { border-top: 3px solid var(--me-primary); padding-top: 22px; }
.p-bl__related h3 { font-size: 26px; font-weight: 700; color: var(--n-1000); margin: 0 0 22px; }
.p-bl__rel-list { display: flex; flex-direction: column; gap: 22px; }
.p-bl__rel-item { display: block; text-decoration: none; }
.p-bl__rel-cat { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: var(--me-primary); margin: 0 0 6px; }
.p-bl__rel-title { font-size: 16px; line-height: 1.45; color: var(--n-1000); }
.p-bl__rel-item:hover .p-bl__rel-title { color: var(--me-primary); }

/* ===== docs-layout ===== */
.p-dx { background: var(--n-000); border: 1px solid var(--border-soft); border-radius: 8px; overflow: hidden; min-height: 600px;
  display: grid; grid-template-columns: 240px 1fr 220px;
}
.p-dx__nav {
  background: var(--n-100); padding: 24px 16px;
  border-right: 1px solid var(--border-soft);
  font-size: 13px; line-height: 1.5;
}
.p-dx__nav h4 { margin: 14px 8px 6px; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--n-600); }
.p-dx__nav h4:first-child { margin-top: 0; }
.p-dx__nav a { display: block; padding: 6px 8px; color: var(--n-700); text-decoration: none; border-radius: 4px; }
.p-dx__nav a:hover { background: rgba(0,0,0,0.04); }
.p-dx__nav a.is-on { background: var(--me-primary-tint); color: var(--me-primary); font-weight: 600; }
.p-dx__nav input { width: 100%; height: 36px; margin-bottom: 18px; padding: 0 12px; border: 1px solid var(--n-300); border-radius: 6px; font: inherit; font-size: 13px; background: #fff; }

.p-dx__body { padding: 32px 40px; font-size: 15px; line-height: 1.7; color: var(--n-1000); }
.p-dx__crumb { font-size: 12px; color: var(--n-600); margin: 0 0 16px; }
.p-dx__crumb a { color: var(--me-primary); text-decoration: none; }
.p-dx__h1 { margin: 0 0 8px; font-size: 32px; letter-spacing: -0.015em; color: var(--n-900); font-weight: 700; }
.p-dx__lede { margin: 0 0 24px; font-size: 16px; color: var(--n-700); }
.p-dx__body h2 { font-size: 20px; margin: 36px 0 10px; padding-top: 24px; border-top: 1px solid var(--border-soft); color: var(--n-1000); }
.p-dx__body h2:first-of-type { border-top: 0; padding-top: 0; margin-top: 24px; }
.p-dx__body code { background: var(--n-100); padding: 2px 6px; border-radius: 3px; font-size: 0.85em; font-family: var(--font-mono); color: var(--n-1000); }
.p-dx__body pre { background: var(--n-1000); color: #e6e6f0; padding: 16px 18px; border-radius: 8px; font-size: 13px; font-family: var(--font-mono); overflow-x: auto; }
.p-dx__body pre code { background: transparent; color: inherit; padding: 0; }
.p-dx__callout { border: 1px solid var(--border-soft); border-left: 3px solid var(--me-primary); background: var(--me-primary-tint); padding: 12px 16px; margin: 20px 0; font-size: 14px; border-radius: 4px; }

.p-dx__toc { padding: 24px 16px; border-left: 1px solid var(--border-soft); font-size: 13px; }
.p-dx__toc h4 { margin: 0 0 10px; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--n-600); }
.p-dx__toc a { display: block; padding: 4px 0 4px 12px; color: var(--n-700); text-decoration: none; border-left: 2px solid var(--border-soft); margin-left: -2px; }
.p-dx__toc a.is-on { color: var(--me-primary); border-color: var(--me-primary); font-weight: 600; }
.p-dx__toc .lvl-2 { padding-left: 24px; font-size: 12px; color: var(--n-600); }

/* ===== webinar ===== */
.p-we { padding: 56px 40px; background: var(--n-000); }
.p-we__row { max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: 1fr 360px; gap: 48px; align-items: start; }
.p-we__date {
  background: var(--me-primary); color: #fff; border-radius: 10px;
  width: 88px; padding: 12px 0; text-align: center; margin: 0 0 24px;
  font-family: var(--font-serif);
}
.p-we__d { font-size: 32px; font-weight: 700; line-height: 1; letter-spacing: -0.02em; display: block; }
.p-we__m { font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; font-family: var(--font-sans); margin-top: 4px; display: block; }
.p-we__tag { display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--me-primary); margin: 0 0 12px; }
.p-we__h { margin: 0 0 14px; font-size: 36px; line-height: 1.15; letter-spacing: -0.02em; color: var(--n-900); font-weight: 700; }
.p-we__lede { margin: 0 0 24px; font-size: 17px; color: var(--n-700); line-height: 1.55; }
.p-we__meta { display: flex; flex-wrap: wrap; gap: 18px; font-size: 14px; color: var(--n-700); margin: 0 0 28px; }
.p-we__meta strong { color: var(--n-1000); font-weight: 600; display: block; font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--n-600); margin-bottom: 2px; }
.p-we__speakers { display: flex; flex-direction: column; gap: 14px; margin: 24px 0; }
.p-we__sp { display: grid; grid-template-columns: 48px 1fr; gap: 14px; align-items: center; }
.p-we__avatar { width: 48px; height: 48px; border-radius: 50%; background: var(--me-primary); color: #fff; display: grid; place-items: center; font-weight: 700; }
.p-we__sp strong { display: block; color: var(--n-1000); font-weight: 600; font-size: 14px; }
.p-we__sp span  { color: var(--n-600); font-size: 13px; }

.p-we__form {
  background: var(--n-100); border-radius: 12px; padding: 28px;
  position: sticky; top: 80px;
}
.p-we__form h3 { margin: 0 0 6px; font-size: 18px; color: var(--n-1000); }
.p-we__form p  { margin: 0 0 18px; font-size: 13px; color: var(--n-700); }
.p-we__form label { font-size: 12px; color: var(--n-700); display: block; margin: 12px 0 4px; }
.p-we__form input { width: 100%; height: 40px; border: 1px solid var(--n-300); padding: 0 12px; border-radius: 6px; font: inherit; font-size: 14px; }
.p-we__form button { width: 100%; margin-top: 18px; justify-content: center; }

/* ===== sticky-toc ===== */
.p-tc__demo {
  display: grid; grid-template-columns: 1fr 240px; gap: 48px;
  border: 1px solid var(--border-soft); border-radius: 8px;
  padding: 32px 40px; background: #fff;
  min-height: 520px;
}
.p-tc__body { font-size: 15px; line-height: 1.7; color: var(--n-1000); }
.p-tc__body h2 { font-size: 22px; margin: 32px 0 10px; padding-top: 24px; border-top: 1px solid var(--border-soft); }
.p-tc__body h2:first-of-type { border-top: 0; padding-top: 0; margin-top: 0; }
.p-tc__body p { margin: 0 0 14px; }
.p-tc__toc {
  position: sticky; top: 24px; align-self: start;
  font-size: 13px; line-height: 1.5;
}
.p-tc__toc h4 { margin: 0 0 12px; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--n-600); }
.p-tc__toc ul { list-style: none; padding: 0; margin: 0; }
.p-tc__toc a {
  display: block; padding: 6px 0 6px 12px;
  color: var(--n-700); text-decoration: none;
  border-left: 2px solid var(--border-soft); margin-left: -2px;
  transition: border-color 120ms ease, color 120ms ease;
}
.p-tc__toc a:hover { color: var(--n-1000); }
.p-tc__toc a.is-on { color: var(--me-primary); border-color: var(--me-primary); font-weight: 600; }
.p-tc__toc .lvl-2  { padding-left: 24px; font-size: 12px; color: var(--n-600); }
.p-tc__toc .lvl-2.is-on { color: var(--me-primary); }
.p-tc__progress { height: 2px; background: var(--n-150); margin-bottom: 16px; border-radius: 2px; overflow: hidden; }
.p-tc__progress > div { height: 100%; width: 38%; background: var(--me-primary); }

/* ===== search-results ===== */
.p-sr { padding: 32px 40px; background: var(--n-000); }
.p-sr__bar {
  max-width: 1100px; margin: 0 auto 24px;
  display: grid; grid-template-columns: 1fr auto; gap: 12px;
  position: relative;
}
.p-sr__bar input {
  width: 100%; height: 52px; padding: 0 16px 0 48px;
  border: 1px solid var(--n-300); border-radius: 8px;
  font: inherit; font-size: 17px; background: #fff;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'><circle cx='11' cy='11' r='7'/><line x1='21' y1='21' x2='16' y2='16'/></svg>");
  background-repeat: no-repeat; background-position: 16px center;
}
.p-sr__count { font-size: 13px; color: var(--n-600); max-width: 1100px; margin: 0 auto 16px; }
.p-sr__count strong { color: var(--n-1000); font-weight: 600; }
.p-sr__tabs {
  max-width: 1100px; margin: 0 auto 24px;
  display: flex; gap: 0; border-bottom: 1px solid var(--border-soft);
}
.p-sr__tab {
  padding: 12px 18px; font-size: 14px; font-weight: 600; color: var(--n-700);
  border-bottom: 2px solid transparent; cursor: pointer;
}
.p-sr__tab.is-on { color: var(--me-primary); border-color: var(--me-primary); }
.p-sr__tab .ct { color: var(--n-500); font-weight: 500; margin-left: 6px; }
.p-sr__list { max-width: 760px; margin: 0 auto; display: flex; flex-direction: column; gap: 24px; }
.p-sr__r { padding: 12px 0; border-bottom: 1px solid var(--border-soft); }
.p-sr__r:last-child { border-bottom: 0; }
.p-sr__kind { font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--me-primary); margin: 0 0 4px; }
.p-sr__url  { font-size: 12px; color: var(--n-600); font-family: var(--font-mono); margin: 0 0 4px; }
.p-sr__h    { margin: 0 0 6px; font-size: 18px; color: var(--n-1000); }
.p-sr__h a  { color: inherit; text-decoration: none; }
.p-sr__h a:hover { color: var(--me-primary); }
.p-sr__sn   { margin: 0; font-size: 14px; color: var(--n-700); line-height: 1.55; }
.p-sr__sn mark { background: rgba(250,170,30,0.32); color: inherit; padding: 0 2px; border-radius: 2px; }

/* ===== filter-bar ===== */
.fb {
  display: flex; align-items: center; gap: 16px;
  background: var(--n-100); border: 1px solid var(--border-soft);
  border-radius: 16px; padding: 16px;
  font-family: var(--font-sans);
}
.fb--inline { background: transparent; border: 0; padding: 0; }

/* Search pill — grows to fill the row */
.fb__search { position: relative; flex: 1 1 auto; min-width: 220px; }
.fb__search svg { position: absolute; left: 22px; top: 50%; transform: translateY(-50%); color: var(--n-500); pointer-events: none; }
.fb__search input {
  font-family: inherit; font-size: 16px; color: var(--n-1000);
  width: 100%; height: 56px; padding: 0 22px 0 52px;
  background: #fff; border: 1px solid var(--border-soft); border-radius: 999px;
  transition: border-color 120ms ease, box-shadow 120ms ease;
}
.fb__search input::placeholder { color: var(--n-500); }
.fb__search input:focus { outline: none; border-color: var(--me-primary); box-shadow: 0 0 0 3px var(--me-primary-tint-2); }

/* Dropdown facet */
.fb__select { position: relative; flex: none; }
.fb__pill {
  display: inline-flex; align-items: center; justify-content: space-between; gap: 18px;
  min-width: 150px; height: 56px; padding: 0 22px;
  background: #fff; border: 1px solid var(--border-soft); border-radius: 999px;
  font-family: inherit; font-size: 16px; font-weight: 500; color: var(--n-1000);
  cursor: pointer; transition: border-color 120ms ease, box-shadow 120ms ease;
}
.fb__pill:hover { border-color: var(--n-500); }
.fb__pill .fb__chev { flex: none; transition: transform 160ms ease; color: var(--n-700); }
.fb__select.is-open .fb__pill { border-color: var(--me-primary); box-shadow: 0 0 0 3px var(--me-primary-tint-2); }
.fb__select.is-open .fb__chev { transform: rotate(180deg); }
.fb__pill.is-set { color: var(--me-primary); font-weight: 600; }

.fb__menu {
  position: absolute; top: calc(100% + 8px); left: 0; z-index: 20;
  min-width: 100%; width: max-content; max-width: 280px; max-height: 280px; overflow-y: auto;
  background: #fff; border: 1px solid var(--border-soft); border-radius: 12px;
  box-shadow: var(--shadow-pop, 0 12px 32px rgba(15,23,42,.14));
  padding: 6px; display: none;
}
.fb__select.is-open .fb__menu { display: block; }
.fb__menu-item {
  display: flex; align-items: center; gap: 10px; width: 100%; text-align: left;
  padding: 11px 14px; border: 0; background: transparent; border-radius: 8px;
  font-family: inherit; font-size: 15px; color: var(--n-1000); cursor: pointer;
}
.fb__menu-item:hover { background: var(--me-primary-tint); color: var(--me-primary); }
.fb__menu-item.is-on { color: var(--me-primary); font-weight: 600; }
.fb__menu-item.is-on::after { content: ""; margin-left: auto; width: 7px; height: 11px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(40deg); }

.fb__clear {
  flex: none; margin-left: 4px; padding: 0 14px; height: 56px;
  background: transparent; border: 0; cursor: pointer;
  font-family: inherit; font-size: 14px; font-weight: 700; letter-spacing: .04em;
  color: var(--me-red); text-transform: uppercase; white-space: nowrap;
}
.fb__clear:hover { text-decoration: underline; }
.fb__clear:disabled { color: var(--n-400); cursor: default; text-decoration: none; }

@media (max-width: 720px) {
  .fb { flex-wrap: wrap; }
  .fb__search { flex-basis: 100%; }
  .fb__select { flex: 1 1 calc(50% - 8px); }
  .fb__pill { width: 100%; }
}

/* ===== filter-sidebar ===== */
.fs { width: 300px; background: #fff; font-family: var(--font-sans); padding: 20px; box-sizing: border-box; border-radius: 10px; }
.fs__group {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  font-size: 15px; font-weight: 700; color: var(--me-primary); cursor: pointer; padding: 14px 0;
}
.fs__group svg { flex: none; transition: transform 120ms ease; }
.fs__chev { transition: transform 160ms ease; }
.fs__group.is-open .fs__chev { transform: rotate(180deg); }
.fs__group.is-open { background: var(--me-primary); color: #fff; border-radius: 6px; padding: 12px 8px; margin: 0 -8px; }
.fs__divider { height: 1px; background: var(--border-soft); margin: 4px 0; }
.fs__body { display: none; padding: 14px 0 10px; flex-direction: column; gap: 12px; }
.fs__group.is-open + .fs__body { display: flex; }
.fs__search .me-search-input { max-width: none; }
.fs__opts { display: flex; flex-direction: column; gap: 4px; }
.fs__opt { display: flex; padding: 6px 8px; margin: 0 -8px; border-radius: 6px; cursor: pointer; }
.fs__opt .me-check { cursor: pointer; }
.fs__opt.is-active { background: var(--me-primary-tint-2); }
.fs__opt .me-check { font-size: 15px; }
.fs__cta { margin-top: 22px; }

/* Variant: carded, with result counts */
.fs2 { width: 320px; display: flex; flex-direction: column; gap: 24px; font-family: var(--font-sans); }
.fs2__card { background: #fff; border: 1px solid var(--border-soft); border-radius: 12px; overflow: hidden; }
.fs2__head {
  font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--n-700);
  padding: 18px 22px; background: var(--n-100); border-bottom: 1px solid var(--border-soft);
}
.fs2__grp { border-bottom: 1px solid var(--border-soft); }
.fs2__grp:last-child { border-bottom: 0; }
.fs2__gh {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%;
  padding: 18px 22px; border: 0; background: transparent; cursor: pointer;
  font-family: inherit; font-size: 17px; font-weight: 700; color: var(--n-1000); text-align: left;
}
.fs2__gh svg { flex: none; color: var(--n-700); transition: transform 160ms ease; }
.fs2__grp.is-open .fs2__gh svg { transform: rotate(180deg); }
.fs2__body { display: none; padding: 0 22px 18px; flex-direction: column; gap: 14px; }
.fs2__grp.is-open .fs2__body { display: flex; }
.fs2__opt { display: flex; align-items: center; gap: 12px; }
.fs2__opt .me-check { font-size: 16px; color: var(--n-800); flex: 1 1 auto; align-items: flex-start; }
.fs2__count { flex: none; font-size: 15px; color: var(--n-500); font-variant-numeric: tabular-nums; }
.fs2__opt.is-zero { opacity: .45; pointer-events: none; }
.fs2__link {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 18px 22px; border-bottom: 1px solid var(--border-soft);
  font-size: 17px; font-weight: 700; color: var(--n-1000); text-decoration: none;
}
.fs2__link:last-child { border-bottom: 0; }
.fs2__link svg { flex: none; color: var(--n-500); transition: color 120ms ease; }
.fs2__link:hover { color: var(--me-primary); }
.fs2__link:hover svg { color: var(--me-primary); }

/* ===== consent-flow ===== */
.p-cf__stage {
  position: relative; height: 460px;
  background: var(--n-100); border-radius: 8px; overflow: hidden;
  background-image:
    repeating-linear-gradient(0deg, transparent 0, transparent 39px, rgba(0,0,0,0.04) 39px, rgba(0,0,0,0.04) 40px),
    repeating-linear-gradient(90deg, transparent 0, transparent 39px, rgba(0,0,0,0.04) 39px, rgba(0,0,0,0.04) 40px);
  display: grid; place-items: end stretch;
  padding: 24px;
}
.p-cf__banner {
  background: var(--n-1000); color: #fff;
  border-radius: 10px; padding: 20px 24px;
  display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center;
  box-shadow: 0 20px 60px rgba(0,0,0,0.25);
}
.p-cf__h { margin: 0 0 4px; font-size: 15px; font-weight: 600; }
.p-cf__p { margin: 0; font-size: 13px; color: rgba(255,255,255,0.75); line-height: 1.5; max-width: 60ch; }
.p-cf__p a { color: #fff; text-decoration: underline; }
.p-cf__btns { display: flex; gap: 8px; }
.p-cf__btn {
  font: inherit; font-size: 13px; font-weight: 600;
  border: 0; border-radius: 6px; padding: 8px 16px;
  cursor: pointer;
}
.p-cf__btn--accept { background: #fff; color: var(--n-1000); }
.p-cf__btn--reject { background: rgba(255,255,255,0.08); color: #fff; border: 1px solid rgba(255,255,255,0.2); }
.p-cf__btn--custom { background: transparent; color: rgba(255,255,255,0.7); text-decoration: underline; padding: 8px 4px; }

.p-cf__modal {
  background: #fff; border-radius: 12px; padding: 28px;
  max-width: 520px; margin: 0 auto;
  box-shadow: 0 30px 80px rgba(0,0,0,0.3);
}
.p-cf__modal h2 { margin: 0 0 6px; font-size: 20px; color: var(--n-1000); }
.p-cf__modal > p { margin: 0 0 18px; font-size: 14px; color: var(--n-700); line-height: 1.5; }
.p-cf__group { padding: 14px 0; border-top: 1px solid var(--border-soft); display: grid; grid-template-columns: 1fr 44px; gap: 16px; align-items: center; }
.p-cf__group strong { display: block; color: var(--n-1000); font-size: 14px; }
.p-cf__group span  { color: var(--n-600); font-size: 13px; }
.p-cf__sw {
  width: 38px; height: 22px; background: var(--n-300); border-radius: 999px; position: relative;
}
.p-cf__sw::after { content: ""; position: absolute; left: 2px; top: 2px; width: 18px; height: 18px; background: #fff; border-radius: 50%; box-shadow: 0 1px 2px rgba(0,0,0,0.2); }
.p-cf__sw.is-on { background: var(--me-primary); }
.p-cf__sw.is-on::after { left: 18px; }
.p-cf__sw.is-locked { background: var(--n-200); }
.p-cf__sw.is-locked::after { background: var(--n-400); }
.p-cf__modal-foot { display: flex; gap: 8px; margin-top: 18px; }
.p-cf__modal-foot .me-btn { flex: 1; justify-content: center; }

/* ===== error-404 ===== */
.p-404 {
  background: var(--n-000); padding: 96px 40px; min-height: 480px;
  text-align: center;
}
.p-404__code {
  font-family: var(--font-serif); font-size: 120px;
  font-weight: 700; line-height: 0.9; letter-spacing: -0.04em;
  color: var(--me-primary); margin: 0;
  display: flex; gap: 12px; justify-content: center; align-items: baseline;
}
.p-404__dot { display: inline-block; width: 14px; height: 14px; border-radius: 50%; background: var(--me-yellow); transform: translateY(-12px); }
.p-404__h { margin: 18px 0 12px; font-size: 28px; font-weight: 700; color: var(--n-900); letter-spacing: -0.015em; }
.p-404__p { margin: 0 auto 28px; font-size: 16px; color: var(--n-700); max-width: 48ch; line-height: 1.55; }
.p-404__ctas { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.p-404__suggest {
  margin: 64px auto 0; max-width: 720px;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;
  text-align: left;
}
.p-404__sug {
  background: var(--n-100); border-radius: 8px; padding: 18px;
  text-decoration: none; color: inherit;
}
.p-404__sug strong { display: block; color: var(--n-1000); font-weight: 600; font-size: 14px; }
.p-404__sug span { color: var(--n-600); font-size: 13px; }

/* ===== auth-screens ===== */
/* ───────── Auth screen — progressive identifier flow ───────── */
.p-au {
  display: grid; grid-template-columns: 1fr 1fr;
  min-height: 600px;
  border: 1px solid var(--border-soft);
  border-radius: var(--r-xl);
  overflow: hidden;
  background: #fff;
  box-shadow: var(--shadow-still);
}

/* ── Left: form ── */
.p-au__form {
  padding: 52px 60px;
  display: flex; flex-direction: column; justify-content: center;
}
.p-au__top {
  display: flex; align-items: center; gap: 20px;
  margin-bottom: 34px;
}
.p-au__logo { height: 30px; width: auto; display: block; }
.p-au__smart {
  display: inline-flex; align-items: center; gap: 9px;
  height: 44px; padding: 0 20px;
  border: 0; border-radius: var(--r-pill);
  background: var(--me-primary-press); color: #fff;
  font: 700 14px/1 var(--font-sans); letter-spacing: 0.01em;
  cursor: pointer; position: relative;
  transition: background 120ms ease;
}
.p-au__smart:hover { background: var(--me-primary); }
.p-au__smart svg { width: 16px; height: 16px; display: block; }
.p-au__smart::after {
  content: "✦"; position: absolute; top: -6px; right: -4px;
  font-size: 13px; color: var(--me-yellow);
}

.p-au__h { margin: 0; font-size: 34px; line-height: 1.1; font-weight: 700; color: var(--n-1000); letter-spacing: -0.02em; }
.p-au__sub { margin: 8px 0 30px; font-size: 17px; color: var(--n-700); }

.p-au__field {
  width: 100%; height: 54px;
  border: 1px solid var(--n-300); border-radius: var(--r-sm);
  padding: 0 16px; font: 400 16px/1 var(--font-sans); color: var(--n-1000);
  background: #fff; box-sizing: border-box;
  transition: border-color 120ms ease, box-shadow 120ms ease;
}
.p-au__field::placeholder { color: var(--n-500); }
.p-au__field:focus { outline: none; border-color: var(--me-primary); box-shadow: 0 0 0 3px var(--me-primary-tint-2); }

.p-au__next {
  width: 100%; height: 54px; margin-top: 22px;
  border: 0; border-radius: var(--r-sm);
  background: var(--me-primary); color: #fff;
  font: 700 16px/1 var(--font-sans); letter-spacing: 0.03em;
  cursor: pointer; transition: background 120ms ease;
}
.p-au__next:hover { background: var(--me-primary-hover); }
.p-au__next:active { background: var(--me-primary-press); }

.p-au__using { margin: 38px 0 14px; font: 700 15px/1 var(--font-sans); color: var(--n-1000); }
.p-au__socials { display: flex; flex-wrap: wrap; gap: 12px; }
.p-au__social {
  width: 56px; height: 56px; flex: 0 0 auto;
  border-radius: var(--r-md); border: 1px solid var(--n-200);
  display: grid; place-items: center; cursor: pointer;
  background: #fff; padding: 0;
  transition: box-shadow 120ms ease, transform 120ms ease;
}
.p-au__social:hover { box-shadow: var(--shadow-still); transform: translateY(-1px); }
.p-au__social svg { width: 24px; height: 24px; display: block; }
.p-au__social--more { color: var(--n-600); font-size: 22px; font-weight: 700; letter-spacing: 1px; background: var(--n-100); border-color: var(--n-100); }
.p-au__ms { display: grid; grid-template-columns: 10px 10px; grid-template-rows: 10px 10px; gap: 3px; }
.p-au__ms i { display: block; border-radius: 1px; }

.p-au__signup { margin: 34px 0 0; font-size: 15px; color: var(--n-700); }
.p-au__signup a { color: var(--me-primary); font-weight: 700; text-decoration: none; }
.p-au__signup a:hover { text-decoration: underline; }

/* ── Right: promo carousel ── */
.p-au__promo {
  border-left: 1px solid var(--border-soft);
  padding: 52px 56px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; background: #fff;
}
.p-au__art {
  width: 100%; max-width: 380px; aspect-ratio: 16 / 11;
  border-radius: var(--r-lg);
  background:
    radial-gradient(120% 120% at 70% 20%, var(--me-primary-tint) 0%, transparent 55%),
    var(--surface-sunk);
  display: grid; place-items: center;
  color: var(--n-500); font: 500 12px/1 var(--font-mono); letter-spacing: 0.08em; text-transform: uppercase;
  border: 1px dashed var(--n-300);
}
.p-au__promo-h { margin: 36px 0 0; font-size: 23px; font-weight: 700; color: var(--n-1000); }
.p-au__promo-p { margin: 12px 0 0; max-width: 40ch; font-size: 16px; line-height: 1.5; color: var(--n-700); text-wrap: pretty; }
.p-au__learn {
  margin-top: 26px;
  display: inline-flex; align-items: center;
  height: 46px; padding: 0 28px;
  border: 0; border-radius: var(--r-pill);
  background: var(--me-primary-tint); color: var(--me-primary);
  font: 700 15px/1 var(--font-sans); cursor: pointer;
  transition: background 120ms ease;
}
.p-au__learn:hover { background: var(--me-primary-tint-2); }
.p-au__promo .me-pager { margin-top: 30px; }

@media (max-width: 760px) {
  .p-au { grid-template-columns: 1fr; }
  .p-au__form { padding: 40px 32px; }
  .p-au__promo { border-left: 0; border-top: 1px solid var(--border-soft); }
}

/* ===== vertical-nav component styles ===== */
/* Variant: category list (marketing solution switcher) */
.vn-card { width: 360px; background:#fff; border-radius:12px; box-shadow: var(--shadow-still); padding:10px; font-family: var(--font-sans); }
.vn-cat { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 18px; border-radius:8px; font-size:16px; font-weight:600; color:var(--n-1000); text-decoration:none; line-height:1.3; }
.vn-cat svg { flex:none; }
.vn-cat:hover { background: var(--me-primary-tint); color: var(--me-primary); }
.vn-cat.is-active { background: var(--me-primary); color:#fff; font-weight:700; }
.vn-cat.is-active:hover { color:#fff; }

/* Variant: collapsible section nav (portal / document side nav) */
.vn-doc { width: 300px; background:#fff; border-radius:12px; box-shadow:var(--shadow-still); padding:18px 20px; font-family:var(--font-sans); }
.vn-doc__link { display:flex; align-items:center; gap:10px; font-size:16px; font-weight:700; color:var(--me-primary); text-decoration:none; padding:9px 0; }
.vn-doc__link svg { flex:none; }
.vn-doc__group { display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:15px; font-weight:700; color:var(--me-primary); cursor:pointer; padding:10px 0; }
.vn-doc__group.is-open { background:var(--me-primary); color:#fff; border-radius:6px; padding:11px 14px; }
.vn-doc__group svg { flex:none; }
.vn-doc__chev { transition: transform 160ms ease; }
.vn-doc__group.is-open .vn-doc__chev { transform: rotate(180deg); }
.vn-doc__children { display:none; flex-direction:column; padding:8px 0 2px; }
.vn-doc__group.is-open + .vn-doc__children { display:flex; }
.vn-doc__child { font-size:15px; color:var(--n-1000); text-decoration:none; padding:9px 14px; border-radius:6px; }
.vn-doc__child:hover { color:var(--me-primary); }
.vn-doc__child.is-active { background: linear-gradient(90deg, transparent, var(--me-primary-tint-2)); font-weight:600; }
.vn-doc__divider { height:1px; background:var(--border-soft); margin:13px 0; }
.vn-doc__contact { display:none; border:1px solid var(--border-soft); border-radius:8px; padding:16px; font-size:13px; line-height:1.7; color:var(--n-800); margin:8px 0 4px; }
.vn-doc__group.is-open + .vn-doc__contact { display:block; }
.vn-doc__contact strong { color:var(--n-1000); }

/* ===== solutions-grid (custom section) ===== */
.p-sol{max-width:1200px;margin:0 auto;padding:72px 24px;font-family:var(--font-sans);}
.p-sol__eyebrow{display:inline-flex;align-items:center;gap:10px;color:var(--me-primary);font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:20px;}
.p-sol__eyebrow::before{content:"";width:28px;height:2px;background:var(--me-primary);display:inline-block;}
.p-sol__title{margin:0 0 18px;font-size:48px;line-height:1.1;font-weight:800;letter-spacing:-0.02em;color:var(--n-900);max-width:16ch;}
.p-sol__lede{margin:0;font-size:18px;line-height:1.6;color:var(--n-600);max-width:52ch;}
.p-sol__bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:44px 0 28px;flex-wrap:wrap;}
.p-sol__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.p-sol__card{position:relative;display:flex;gap:16px;padding:24px 44px 24px 24px;border:1px solid var(--border-soft);border-radius:16px;background:var(--surface);text-decoration:none;transition:box-shadow .15s,border-color .15s,transform .15s;}
.p-sol__card:hover{box-shadow:var(--shadow-md);border-color:var(--border-med);transform:translateY(-2px);}
.p-sol__icon{flex:0 0 auto;width:48px;height:48px;border-radius:12px;display:grid;place-items:center;}
.p-sol__icon svg{width:24px;height:24px;}
.p-sol__name{margin:0;font-size:18px;font-weight:700;color:var(--n-900);}
.p-sol__head-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px;}
.p-sol__desc{margin:0;font-size:15px;line-height:1.55;color:var(--n-600);}
.p-sol__chev{position:absolute;right:18px;top:50%;transform:translateY(-50%);color:var(--n-500);font-size:22px;line-height:1;}
@media(max-width:992px){.p-sol__grid{grid-template-columns:1fr 1fr;}.p-sol__title{font-size:38px;}}
@media(max-width:640px){.p-sol__grid{grid-template-columns:1fr;}}

/* me-bigin.css — FALLBACK implementation of the dev-team "HTML Generation Rules" spec.
   ⚠ Replace this file with the real me-bigin.css from your dev team when you get it —
   the builder and all exported pages link it by name, so markup needs no changes.
   Breakpoints match the builder: large ≥992px · medium 768–991px · small ≤767px. */

/* ---- layout ---- */
.me-container{max-width:1200px;margin:0 auto;width:100%;padding-left:5%;padding-right:5%;box-sizing:border-box;}
.me-row{display:flex;flex-wrap:wrap;margin-left:-12px;margin-right:-12px;}
.me-cell{box-sizing:border-box;padding-left:12px;padding-right:12px;width:100%;min-width:0;}

/* ---- grid: desktop (large ≥992) ---- */
@media (min-width:992px){
  .me-large-1{width:8.3333%}.me-large-2{width:16.6667%}.me-large-3{width:25%}
  .me-large-4{width:33.3333%}.me-large-5{width:41.6667%}.me-large-6{width:50%}
  .me-large-7{width:58.3333%}.me-large-8{width:66.6667%}.me-large-9{width:75%}
  .me-large-10{width:83.3333%}.me-large-11{width:91.6667%}.me-large-12{width:100%}
}
/* ---- grid: tablet (medium 768–991) ---- */
@media (min-width:768px) and (max-width:991px){
  .me-medium-1{width:8.3333%}.me-medium-2{width:16.6667%}.me-medium-3{width:25%}
  .me-medium-4{width:33.3333%}.me-medium-5{width:41.6667%}.me-medium-6{width:50%}
  .me-medium-7{width:58.3333%}.me-medium-8{width:66.6667%}.me-medium-9{width:75%}
  .me-medium-10{width:83.3333%}.me-medium-11{width:91.6667%}.me-medium-12{width:100%}
}
/* ---- grid: mobile (small ≤767) ---- */
@media (max-width:767px){
  .me-small-1{width:8.3333%}.me-small-2{width:16.6667%}.me-small-3{width:25%}
  .me-small-4{width:33.3333%}.me-small-5{width:41.6667%}.me-small-6{width:50%}
  .me-small-7{width:58.3333%}.me-small-8{width:66.6667%}.me-small-9{width:75%}
  .me-small-10{width:83.3333%}.me-small-11{width:91.6667%}.me-small-12{width:100%}
}

/* ---- typography ---- */
.bold{font-weight:700;}
.semibold{font-weight:600;}
.me-text-center{text-align:center;}
.me-text-left{text-align:left;}
.me-text-right{text-align:right;}
.me-text-blue{color:var(--me-primary,#0045D3);}
.me-text-dark{color:#12181F;}
.me-text-light{color:#5B6470;}

/* ---- spacing (vertical rhythm) ---- */
.me-space-small{padding-top:16px;padding-bottom:16px;}
.me-space-medium{padding-top:32px;padding-bottom:32px;}
.me-space-large{padding-top:64px;padding-bottom:64px;}
.me-space-xl{padding-top:96px;padding-bottom:96px;}

/* ---- shadows ---- */
.me-shadow-s{box-shadow:0 1px 4px rgba(18,24,31,.08);}
.me-shadow-m{box-shadow:0 4px 14px rgba(18,24,31,.12);}
.me-shadow-l{box-shadow:0 12px 32px rgba(18,24,31,.16);}

/* ===== page css ===== */
:root { --blue-50: #E6F1F8; --blue-100: #CCE4F0; --blue-200: #99C9E2; --blue-300: #66ADD3; --blue-400: #3392C5; --blue-500: #0078B6; --blue-600: #006499; --blue-700: #00507B; --blue-800: #003C5C; --blue-900: #00283D; --me-primary: #0045D3; --me-primary-hover: #003BB4; --me-primary-press: #002F8B; --me-primary-tint: rgba(0,69,211,0.10); --me-primary-tint-2: rgba(0,69,211,0.18); --me-blue: var(--me-primary); --me-blue-tint: var(--me-primary-tint); --amber-50: #FEF5E7; --amber-100: #FCEAC5; --amber-200: #F9D48B; --amber-300: #F5BE52; --amber-400: #F2A818; --amber-500: #D98C00; --amber-600: #B87200; --amber-700: #8C5600; --green-50: #E6F6EE; --green-100: #C2E9D4; --green-200: #8FD7B0; --green-300: #4FC088; --green-400: #1FAE6E; --green-500: #00A05A; --green-600: #008049; --green-700: #006238; --me-secondary: var(--green-500); --me-secondary-hover: var(--green-600); --me-secondary-tint: rgba(0,160,90,0.12); --cta-500: #DE002B; --cta-600: #C30024; --cta-700: #A30018; --cta-tint: rgba(222,0,43,0.10); --cta-tint-2: rgba(222,0,43,0.18); --me-cta: var(--cta-500); --me-cta-hover: var(--cta-600); --me-cta-press: var(--cta-700); --me-red: #C82332; --me-green: #00A05A; --me-green-deep: #008049; --me-yellow: #FAAA1E; --me-pink: #E959D9; --me-magenta: #D51A52; --n-000: #FFFFFF; --n-100: #F5F5F5; --n-150: #ECECEC; --n-200: #E8E8E8; --n-300: #E5E0EB; --n-400: #D4D2D5; --n-500: #ABA7AF; --n-600: #666666; --n-700: #404040; --n-800: #4B3A5A; --n-900: #242424; --n-1000: #1A141F; --n-ink: #000000; --surface: var(--n-000); --surface-sunk: var(--n-100); --surface-inverse: var(--n-1000); --border-soft: var(--n-150); --border-med: var(--n-300); --font-sans: "Zoho Puvi", "Inter", "Figtree", ui-sans-serif, system-ui,
               -apple-system, "Segoe UI", Helvetica, Arial, sans-serif; --font-serif: "Zoho Puvi Serif", ui-serif, Georgia, "Times New Roman", serif; --font-slab: "Zoho Puvi Slab", "Zoho Puvi", ui-serif, Georgia, serif; --font-compact: "Zoho Puvi Compact", "Zoho Puvi", var(--font-sans); --font-mono: "Zoho Puvi Mono", ui-monospace, "SF Mono", "Menlo",
                  "Cascadia Mono", "Consolas", monospace; --fs-display-xl: 66px; --fs-display: 56px; --fs-h1: 46px; --fs-h2: 36px; --fs-h3: 32px; --fs-h4: 28px; --fs-h5: 22px; --fs-body-l: 18px; --fs-body: 16px; --fs-label-l: 14px; --fs-label-m: 12px; --lh-tight: 1.2; --lh-heading: 1.3; --lh-body: 1.5; --sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px; --sp-5: 20px; --sp-6: 24px; --sp-7: 28px; --sp-8: 32px; --sp-9: 36px; --sp-10: 40px; --sp-12: 48px; --sp-14: 56px; --sp-16: 64px; --sp-20: 80px; --sp-24: 96px; --r-none: 0px; --r-xs: 2px; --r-sm: 4px; --r-md: 8px; --r-lg: 12px; --r-xl: 16px; --r-2xl: 24px; --r-pill: 999px; --shadow-still: 0px 4px 10px 0px rgba(0,60,92,0.10); --shadow-hover: 0px 10px 17px 0px rgba(0,60,92,0.12); --shadow-sm: 0px 8px 16px 0px rgba(0,60,92,0.10); --shadow-md: 0px 15px 30px 0px rgba(0,60,92,0.12); --shadow-lg: 0px 20px 44px 0px rgba(0,60,92,0.28); --bp-mobile: 576px; --bp-ipad: 768px; --bp-ipad-l: 992px; --bp-ipad-x: 1025px; --bp-desk: 1200px; --bp-desk-l: 1440px; }
html, body { margin: 0px; }
body { font-family: var(--font-sans); color: var(--n-1000); background: var(--surface); -webkit-font-smoothing: antialiased; text-rendering: optimizelegibility; }
* { box-sizing: border-box; }
.me-display-xl { font-size: var(--fs-display-xl); font-weight: 700; line-height: var(--lh-tight); letter-spacing: -0.025em; color: var(--n-900); }
.me-display { font-size: var(--fs-display); font-weight: 700; line-height: var(--lh-tight); letter-spacing: -0.02em; color: var(--n-900); }
.me-h1 { font-size: var(--fs-h1); font-weight: 700; line-height: var(--lh-heading); }
.me-h2 { font-size: var(--fs-h2); font-weight: 700; line-height: var(--lh-heading); }
.me-h3 { font-size: var(--fs-h3); font-weight: 700; line-height: var(--lh-heading); }
.me-h4 { font-size: var(--fs-h4); font-weight: 700; line-height: var(--lh-heading); }
.me-h5 { font-size: var(--fs-h5); font-weight: 700; line-height: var(--lh-heading); }
.me-body-l { font-size: var(--fs-body-l); line-height: var(--lh-body); letter-spacing: 0.01em; }
.me-body { font-size: var(--fs-body); line-height: var(--lh-body); letter-spacing: 0.01em; }
.me-label-l { font-size: var(--fs-label-l); line-height: var(--lh-body); }
.me-label-m { font-size: var(--fs-label-m); line-height: var(--lh-body); }
.me-btn { font-family: var(--font-sans); font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; border: 1.5px solid transparent; border-radius: 999px; display: inline-flex; align-items: center; gap: 14px; cursor: pointer; user-select: none; white-space: nowrap; position: relative; text-decoration: none; transition: background 140ms, color 140ms, border-color 140ms, box-shadow 140ms, transform 60ms; }
.me-btn:active { transform: translateY(1px); }
.me-btn__icon { border-radius: 50%; display: inline-grid; place-items: center; flex-shrink: 0; transition: inherit; }
.me-btn__icon svg { display: block; }
.me-btn__icon--lead { order: -1; }
.me-btn--xl { height: 56px; padding: 0px 8px 0px 32px; font-size: 16px; gap: 16px; }
.me-btn--xl .me-btn__icon { width: 40px; height: 40px; }
.me-btn--xl .me-btn__icon svg { width: 14px; height: 14px; }
.me-btn--lg { height: 46px; padding: 0px 7px 0px 24px; font-size: 13px; gap: 12px; }
.me-btn--lg .me-btn__icon { width: 32px; height: 32px; }
.me-btn--lg .me-btn__icon svg { width: 12px; height: 12px; }
.me-btn--md { height: 38px; padding: 0px 6px 0px 20px; font-size: 12px; letter-spacing: 0.06em; gap: 10px; }
.me-btn--md .me-btn__icon { width: 26px; height: 26px; }
.me-btn--md .me-btn__icon svg { width: 11px; height: 11px; }
.me-btn--sm { height: 28px; padding: 0px 4px 0px 14px; font-size: 10px; letter-spacing: 0.08em; gap: 8px; }
.me-btn--sm .me-btn__icon { width: 22px; height: 22px; }
.me-btn--sm .me-btn__icon svg { width: 10px; height: 10px; }
.me-btn--main { background: var(--me-cta); color: rgb(255, 255, 255); }
.me-btn--main .me-btn__icon { background: rgb(255, 255, 255); color: var(--me-cta); }
.me-btn--main:hover { background: var(--me-cta-hover); box-shadow: rgba(222, 0, 43, 0.32) 0px 6px 18px; }
.me-btn--main:active { background: var(--me-cta-press); box-shadow: none; }
.me-btn--main[disabled], .me-btn--main.is-disabled { background: var(--n-200); color: var(--n-500); cursor: not-allowed; box-shadow: none; }
.me-btn--main[disabled] .me-btn__icon { background: var(--n-300); color: var(--n-500); }
.me-btn--secondary { background: transparent; color: var(--me-primary); border-color: var(--me-primary); }
.me-btn--secondary .me-btn__icon { background: var(--me-primary); color: rgb(255, 255, 255); }
.me-btn--secondary:hover { background: var(--me-cta); color: rgb(255, 255, 255); border-color: var(--me-cta); }
.me-btn--secondary:hover .me-btn__icon { background: rgb(255, 255, 255); color: var(--me-cta); }
.me-btn--secondary:active { background: var(--me-cta-press); color: rgb(255, 255, 255); border-color: var(--me-cta-press); }
.me-btn--secondary:active .me-btn__icon { background: rgb(255, 255, 255); color: var(--me-cta-press); }
.me-btn--secondary[disabled] { color: var(--n-500); border-color: var(--n-400); background: transparent; cursor: not-allowed; }
.me-btn--secondary[disabled] .me-btn__icon { background: var(--n-400); color: rgb(255, 255, 255); }
.me-btn--secondary.on-dark { color: rgb(255, 255, 255); border-color: rgb(255, 255, 255); }
.me-btn--secondary.on-dark .me-btn__icon { background: rgb(255, 255, 255); color: var(--me-primary); }
.me-btn--secondary.on-dark:hover { background: var(--me-cta); color: rgb(255, 255, 255); border-color: var(--me-cta); }
.me-btn--secondary.on-dark:hover .me-btn__icon { background: rgb(255, 255, 255); color: var(--me-cta); }
.me-btn--text { background: transparent; color: var(--me-cta); border-color: transparent; padding-left: 0px; padding-right: 0px; gap: 8px; }
.me-btn--text .me-btn__icon { background: transparent; color: var(--me-cta); width: auto !important; height: auto !important; }
.me-btn--text:hover { color: var(--me-cta-hover); }
.me-btn--text:hover .me-btn__icon { color: var(--me-cta-hover); transform: translateX(2px); }
.me-btn--text[disabled] { color: var(--n-500); cursor: not-allowed; }
.me-btn--text[disabled] .me-btn__icon { color: var(--n-500); transform: none; }
.me-btn--ghost { background: transparent; color: var(--n-1000); border-color: var(--n-400); }
.me-btn--ghost .me-btn__icon { background: rgb(255, 255, 255); color: var(--n-1000); border: 1px solid var(--n-300); }
.me-btn--ghost:hover { border-color: var(--n-700); }
.me-btn--ghost:hover .me-btn__icon { border-color: var(--n-700); }
.me-btn--ghost[disabled] { color: var(--n-500); border-color: var(--n-300); cursor: not-allowed; }
.me-btn--ghost[disabled] .me-btn__icon { background: var(--n-100); color: var(--n-500); border-color: var(--n-300); }
.me-btn--accent { background: var(--me-secondary); color: rgb(255, 255, 255); }
.me-btn--accent .me-btn__icon { background: rgb(255, 255, 255); color: var(--me-secondary); }
.me-btn--accent:hover { background: var(--me-secondary-hover); }
.me-btn--danger { background: var(--me-red); color: rgb(255, 255, 255); }
.me-btn--danger .me-btn__icon { background: rgb(255, 255, 255); color: var(--me-red); }
.me-btn--danger:hover { background: rgb(184, 31, 45); }
.me-btn--xl:not(:has(.me-btn__icon)) { padding: 0px 32px; }
.me-btn--lg:not(:has(.me-btn__icon)) { padding: 0px 24px; }
.me-btn--md:not(:has(.me-btn__icon)) { padding: 0px 20px; }
.me-btn--sm:not(:has(.me-btn__icon)) { padding: 0px 14px; }
.me-field { display: flex; flex-direction: column; gap: var(--sp-1); font-family: var(--font-sans); }
.me-field label { font-size: 13px; color: var(--n-700); letter-spacing: 0.01em; }
.me-input { font-family: inherit; font-size: 14px; height: 44px; padding: 0px 14px; border-radius: var(--r-xs); border: 1px solid var(--n-300); background: var(--n-000); color: var(--n-1000); transition: border-color 120ms, box-shadow 120ms; outline: none; }
.me-input::placeholder { color: var(--n-500); }
.me-input:hover { border-color: var(--n-500); }
.me-input:focus, .me-input.is-active { border-color: var(--me-primary); box-shadow: 0 0 0 3px var(--me-primary-tint-2); }
.me-input.is-error { border-color: var(--me-red); box-shadow: rgba(200, 35, 50, 0.18) 0px 0px 0px 3px; }
.me-input[disabled] { background: var(--n-100); color: var(--n-500); cursor: not-allowed; }
.me-card { background: var(--n-000); border-radius: var(--r-sm); box-shadow: var(--shadow-still); padding: var(--sp-8); }
.me-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: var(--r-pill); background: var(--me-primary); color: rgb(255, 255, 255); font-size: 12px; font-weight: 700; letter-spacing: 0.03em; }
.me-chip--ghost { background: var(--me-primary-tint); color: var(--me-primary); }
.me-topbar { height: 140px; padding: 0px 133px; display: flex; align-items: center; justify-content: space-between; background: rgb(255, 255, 255); border-bottom: 1px solid var(--border-soft); }
html { scroll-behavior: smooth; }
body { background: rgb(13, 13, 13); color: rgb(241, 241, 241); }
a { color: rgb(241, 241, 241); text-decoration: none; }
a:hover { color: rgb(255, 255, 255); }
::selection { background: rgb(0, 69, 211); color: rgb(255, 255, 255); }
@keyframes uc-float { 
  0%, 100% { transform: translate3d(0px, 0px, 0px); }
  50% { transform: translate3d(0px, -22px, 0px); }
}
@keyframes uc-float-alt { 
  0%, 100% { transform: translate3d(0px, 0px, 0px); }
  50% { transform: translate3d(14px, 16px, 0px); }
}
@keyframes uc-drift { 
  0%, 100% { transform: scale(1) translate3d(0px, 0px, 0px); }
  50% { transform: scale(1.08) translate3d(-2%, 1.5%, 0px); }
}
@keyframes uc-bob { 
  0%, 100% { transform: translate3d(0px, 0px, 0px); }
  50% { transform: translate3d(0px, -12px, 0px); }
}
@keyframes uc-blink { 
  0%, 49% { opacity: 1; }
  50%, 100% { opacity: 0; }
}
@keyframes uc-scroll { 
  0% { transform: translateY(-100%); }
  60%, 100% { transform: translateY(100%); }
}
@keyframes uc-logo-in { 
  0% { opacity: 0; transform: scale(0.82); filter: blur(14px); }
  60% { opacity: 1; filter: blur(0px); }
  100% { opacity: 1; transform: scale(1); filter: blur(0px); }
}
@keyframes uc-logo-breathe { 
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.035); }
}
@keyframes uc-shine { 
  0% { transform: translateX(-140%) skewX(-18deg); }
  55%, 100% { transform: translateX(240%) skewX(-18deg); }
}
@keyframes uc-sparkle { 
  0%, 100% { opacity: 0; transform: scale(0.6); }
  50% { opacity: 1; transform: scale(1); }
}
@keyframes uc-fade-up { 
  0% { opacity: 0; transform: translateY(16px); }
  100% { opacity: 1; transform: translateY(0px); }
}
@keyframes uc-halo { 
  0%, 100% { opacity: 0.35; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.12); }
}