/* ===== Minimal premium theme (2026-10-15, Maan-approved) =====
   Apple/Stripe/Linear restraint: typography does the work, whitespace dominates,
   one accent color used sparingly, hairlines instead of shadows, no gradients.
   Loaded last so it can polish — never redefine layout or functionality. */

/* Astryx port (2026-11-10): --pr-* vars are one-line aliases to
   astryx-tokens.css. Navy #0B2447 ink and #1565C0 blue retire. */
:root{
  --pr-bg:var(--color-background-surface);
  --pr-bg-soft:var(--color-background-muted);
  --pr-ink:var(--color-text-primary);
  --pr-muted:var(--color-text-secondary);
  --pr-blue:var(--color-accent);
  --pr-line:var(--color-border);
  --pr-r:var(--radius-container);
}

/* --- Base typography: the voice of the page --- */
body{
  font-family:'Manrope',-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  color:var(--pr-ink);
  background:#fff;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
h1,h2,h3,h4,h5,h6,
.h1,.h2,.h3,.h4,.h5,.h6{
  font-family:var(--font-family-heading);
  color:var(--pr-ink);
  letter-spacing:-.025em;
  font-weight:700;
}

/* --- Page hero: near-flat, type-led --- */
.ph-hero{
  background:var(--pr-bg-soft);
  border-bottom:1px solid var(--pr-line);
  padding:88px 24px 80px;
  text-align:center;
}
.ph-hero h1{
  font-size:clamp(34px,5vw,60px);
  letter-spacing:-.045em;
  line-height:1.05;
  margin:0 0 16px;
  color:var(--pr-ink);
  font-weight:700;
}
.ph-hero h1 em{font-style:normal;color:var(--pr-blue);}
.ph-hero p{
  color:var(--pr-muted);
  font-size:clamp(15px,1.6vw,18px);
  max-width:640px;
  margin:0 auto;
  line-height:1.7;
  font-weight:500;
}
.ph-hero .ph-eyebrow{
  display:inline-block;
  font-size:11px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;
  color:var(--pr-blue);
  margin-bottom:20px;
}

/* --- Cards: hairline or nothing, no shadows --- */
.ph-card{
  background:#fff;
  border:1px solid var(--pr-line);
  border-radius:var(--pr-r);
}
.ph-card-lg{border-radius:16px;}

/* --- Whitespace dominates --- */
.ph-section{padding:96px 24px;}
.ph-section-sm{padding:64px 24px;}
@media (max-width:640px){
  .ph-section{padding:64px 18px;}
  .ph-section-sm{padding:44px 18px;}
  .ph-hero{padding:64px 18px 56px;}
}

/* --- Buttons: flat, confident --- */
.ph-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--pr-blue);color:#fff;font-weight:700;
  border-radius:10px;padding:14px 32px;font-size:15px;
  border:none;cursor:pointer;text-decoration:none;
  transition:background .15s ease;
}
.ph-btn:hover{background:#1565d0;}
.ph-btn-ghost{
  background:transparent;color:var(--pr-blue);
  border:1px solid var(--pr-line);
}
.ph-btn-ghost:hover{background:var(--pr-bg-soft);}

/* --- Muted helper text --- */
.ph-muted{color:var(--pr-muted);}

/* ===== Minimal micro-refinements ===== */

/* Lucide icons: quiet optical alignment */
.lucide{vertical-align:-3px;flex-shrink:0;}

/* Badges: tiny, quiet, uppercase — information, not decoration */
.badge-verified,.badge-urgent,.badge-nda,.badge-smart,.badge-shield,.badge-sample,
.pm-cb-badge{
  border-radius:6px !important;
  padding:2px 8px !important;
  font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:5px;
  vertical-align:middle;
  background:var(--pr-bg-soft) !important;
  color:var(--pr-muted) !important;
  border:1px solid var(--pr-line) !important;
  box-shadow:none !important;
}
.badge-verified{color:#16784a !important;}
.badge-verified::before{content:none !important;}
.badge-urgent{color:var(--pr-blue) !important;}
/* Smart inbox lead tiers (Maan 2026-10-15) */
.badge-hot,.badge-warm{border-radius:6px !important;padding:2px 8px !important;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;display:inline-flex;align-items:center;gap:5px;vertical-align:middle;border:1px solid var(--pr-line) !important;box-shadow:none !important;}
.badge-hot{color:#b3401a !important;background:#fef3ec !important;}
.badge-warm{color:#8a6d1a !important;background:#fef9ec !important;}
.badge-urgent::before{content:none !important;}
.badge-nda{background:#0A1317 !important;color:#fff !important;border-color:#0A1317 !important;}
.pm-cb-badge .lucide{width:12px;height:12px;}

/* Buttons: flat, no lift, no shadow */
.btn,.ab-btn,.pm-btn{border-radius:10px;}
.btn-primary,.ab-btn-primary,.pm-btn{
  box-shadow:none !important;
  transition:background .15s ease;
}
@media (hover:hover){
  .btn-primary:hover,.ab-btn-primary:hover,.pm-btn:hover{transform:none;}
}
.btn:focus-visible,.ab-btn:focus-visible,.ph-btn:focus-visible,
a:focus-visible,button:focus-visible{
  outline:2px solid #0064E0;outline-offset:2px;
}

/* Cards: no hover lift — stillness is premium */
.pm-card{border:1px solid var(--pr-line) !important;box-shadow:none !important;}
@media (hover:hover){
  .pm-card:hover{transform:none !important;box-shadow:none !important;border-color:#d3dbe8 !important;}
}
.pm-card-title{font-weight:600;letter-spacing:-.01em;color:#0A1317;}
.pm-card-price{font-family:'DM Sans','Manrope',sans-serif;letter-spacing:-.02em;}

/* Section rhythm: air */
.pm-section{padding:88px 24px;}
.pm-section[style*="padding-top"]{padding-top:88px !important;}
@media (max-width:640px){
  .pm-section{padding:60px 18px;}
  .pm-section[style*="padding-top"]{padding-top:60px !important;}
}
.pm-sec-head h2{
  font-family:'DM Sans','Manrope',sans-serif;
  letter-spacing:-.035em;
  color:#0A1317;
  font-weight:700;
}
.pm-sec-head p{color:var(--pr-muted);}

/* Section header: centered, quiet */
.ph-sec-head{text-align:center;max-width:680px;margin:0 auto 64px;}
.ph-sec-head .ph-eyebrow{
  display:inline-block;
  font-size:11px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;
  color:var(--pr-blue);
  margin-bottom:20px;
}
.ph-sec-head h2{font-size:clamp(28px,3.6vw,44px);letter-spacing:-.04em;margin:0 0 14px;line-height:1.1;}
.ph-sec-head p{color:var(--pr-muted);font-size:16.5px;line-height:1.7;margin:0;font-weight:500;}

/* Hairline dividers, generous space */
.ph-divider{border:none;border-top:1px solid var(--pr-line);margin:56px 0;}

/* Form controls: quiet borders, calm focus */
input[type=text],input[type=email],input[type=password],input[type=number],
input[type=tel],input[type=url],input[type=search],select,textarea{
  border-radius:8px;
  border:1px solid var(--pr-line);
}
/* Borderless search inputs (hallmark gate 40): the pill/box carries the edge.
   Without this, the generic border above draws a nested box inside the pill. */
.pm-mhead-search input,.mfr-search-main input,.pm-search input,.pm-hero-search input,.cb-cine-search input{border:0}
input:focus,select:focus,textarea:focus{
  border-color:#0064E0 !important;
  box-shadow:0 0 0 3px rgba(27,115,232,.12) !important;
  outline:none;
}

/* Text selection in brand blue */
::selection{background:rgba(27,115,232,.16);}

/* ===== Footer: deep navy, quiet type ===== */
.site-footer{
  background:#0A1317 !important;
  color:#8fa1b8 !important;
  border-top:none !important;
  margin-top:0 !important;
}
.site-footer a{color:#8fa1b8 !important;}
.site-footer a:hover{color:#fff !important;}
.site-footer h4,.site-footer h5,.site-footer .f-title{color:#fff !important;letter-spacing:-.01em;font-weight:600;}

/* ============================================================
   Phase 5 B — ONE button system, ONE card radius.
   .btn (legacy) and .pm-btn (premium) are the same component now:
   same base, same dark/primary, ghost, light, sm, lg, block variants.
   No class was renamed in any page view; both names keep working.
   Contextual higher-specificity rules (e.g. .pm-card .btn) still win
   where a section deliberately restyles its buttons — that is section
   styling, not a second button system. .btn-danger is untouched
   (destructive semantics stay distinct). Dark-variant !important is
   required because style.css already forces both dark variants with
   !important (lines ~2840/2968 for .btn-primary, ~2601 for
   .pm-btn-dark); without it the two darks would stay #161616 vs
   #404040. This block loads last (premium.css is the final sheet in
   head.ejs), so its normal declarations win over earlier files.
   ============================================================ */
.btn,.pm-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:12px 28px;font-size:15px;font-weight:600;line-height:1.2;letter-spacing:.01em;color:#161616;background:#fff;border:1px solid #e4e4e2;border-radius:12px;cursor:pointer;text-decoration:none;font-family:inherit;white-space:nowrap;transition:background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease}
.btn:hover,.pm-btn:hover{border-color:#d4d4d2;background:#fafaf9;text-decoration:none}
.btn:active,.pm-btn:active{transform:scale(.98)}
.btn:focus-visible,.pm-btn:focus-visible{outline:2px solid #0064E0;outline-offset:2px}
.btn-primary,.pm-btn-dark{background:#161616!important;border-color:#161616!important;color:#fff!important;box-shadow:0 8px 20px rgba(22,22,22,.18)}
.btn-primary:hover,.pm-btn-dark:hover{background:#2e2e2e!important;border-color:#2e2e2e!important;color:#fff!important}
.btn-ghost,.pm-btn-ghost{background:transparent;color:#161616;border:1px solid #e4e4e2}
.btn-ghost:hover,.pm-btn-ghost:hover{border-color:#161616;background:#fff}
.btn-light,.pm-btn-light{background:#fff;color:#161616;border:1px solid #e4e4e2;box-shadow:0 1px 2px rgba(11,36,71,.06)}
.btn-sm,.pm-btn-sm{min-height:34px;padding:8px 20px;font-size:13.5px;border-radius:10px}
.btn-lg,.pm-btn-lg{min-height:52px;padding:16px 36px;font-size:16px;border-radius:14px}
.btn-block,.pm-btn-block{width:100%}
.btn:disabled,.pm-btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
/* Cards: one radius + hairline for the shared card family. .card,
   .pm-card and .form-card already shared polish.css padding; this
   locks one radius (12px) and one border so the three names render
   as one card. Product/supplier/rfq/auth cards keep their own
   higher-specificity rules where they exist. */
.card,.pm-card,.form-card{background:#fff;border:1px solid #e5e9f0;border-radius:12px;box-shadow:none}
