/**
 * Payment Solutions page — page-specific styles only.
 *
 * Source of truth: approved design handoff "Merchant Protect USA Payment
 * Solutions.html" <style> block. Classes already defined globally in
 * main.css (from the homepage build) are intentionally NOT duplicated here:
 * .hero*, .eyebrow, .lede, .btn*, .container-wide, .section-white,
 * .section-heading, .sh-copy, .solutions-grid, .sol-card, .sol-photo,
 * .sol-body, .sc-more, .ecosystem, .eco-node, .eco-center, .eco-partner,
 * .review, .review-grid, .review-list, .statement, .st-*, .steps5, .step5*,
 * .ind-featured, .ind-card, .ind-chip, .ind-label, .il-*, .final*, .fc-*.
 *
 * This file covers the genuinely page-unique classes: hero badge row,
 * Intro ("More Choice. Better Fit.") section incl. the intro-band callout,
 * Ecosystem/Partners section (featured partner cards + ecosystem visual
 * copy column), sol-photo page number badge, review-sub/review-callout,
 * Why Merchant Protect teaser + pillars, and the Consultative manifesto
 * statement section — plus their page-specific responsive overrides.
 *
 * @package MerchantProtectUSA
 */


  /* Anchor scroll offset for sticky header — Solutions dropdown deep links
   (#pos-systems, #payment-terminals, etc.) land on these .sol-card ids;
   without this, the destination card renders underneath the fixed nav. */
#pos-systems,
#payment-terminals,
#mobile-payments,
#online-payments,
#integrated-payments,
#recurring-payments {
  scroll-margin-top: 120px;
}

/* NAV-1 — active nav state (Payment Solutions). The approved Payment
   Solutions design handoff does not mark this page's own Solutions
   dropdown "active" (unlike Industries, which does), but per explicit bug
   NAV-1 the Solutions dropdown must show the active state while on this
   page — added for nav consistency, mirroring the Industries pattern in
   page-industries.css exactly. */
.nav-links .has-dropdown.active .nav-trigger { color: #fff; }
.nav-links .has-dropdown.active .nav-trigger::after { transform: scaleX(1); }

/* Page-specific hero heading override — approved design (Merchant
     Protect USA Payment Solutions.html, line 322) uses a narrower/smaller
     hero h1 than the Homepage's global 15ch/88px rule (main.css:229). The
     global rule alone strands "to" on its own line for this page's longer
     headline; these values are copied verbatim from the approved file. */
  .hero h1{margin-top:22px;max-width:14ch;font-size:74px;letter-spacing:-.035em;line-height:1.02;font-weight:800;text-shadow:0 2px 30px rgba(0,0,0,.25)}
  /* Approved design uses a taller hero + a different photo crop than the
     shared main.css defaults (which are tuned for Homepage/Contact's
     different hero photo). Scoped here so Homepage/Contact are untouched. */
  .hero{min-height:1080px}
  .hero-bg{background-position:center 40%}
  @media (max-width:900px){ .hero{min-height:auto} }

  /* Approved design's hero-right uses simple absolute-positioned floating
     cards (min-height:420px), not the Homepage's taller flex/space-between
     layout (main.css .hero-right min-height:640px) — scoped override so
     Homepage/Contact keep their own vocabulary. */
  .hero-right{min-height:420px;display:block;justify-content:initial;align-items:initial;gap:0}
  .hero-card.c1{position:absolute;top:0;right:0;width:80%;min-width:320px;align-self:initial;margin-right:0}
  .hero-card.c2{position:absolute;top:52%;right:-2%;width:76%;min-width:300px;align-self:initial;margin-right:0}

  /* This "2 hero-card" layout variant (also used by Industries) pairs with
     its own hero-copy spacing/type-scale, distinct from the Homepage/Contact
     3-card variant's values baked into main.css. Verified against the
     approved design's own stylesheet — scoped to the base (non-media)
     declarations only; the existing 900px/540px overrides below already
     match the design's own mobile values so they're left as-is. */
  .nav-links .nav-trigger{font-size:15px;letter-spacing:-.002em}
  .hero .lede{margin-top:24px;font-size:19px;max-width:50ch}
  .hero-ctas{margin-top:36px}
  .hero-micro{margin-top:40px;gap:28px;font-size:12.5px}
  .hero-card .hc-title{font-size:19px;margin-top:12px;line-height:1.22}
  .hero-thread{top:44px;bottom:12px;z-index:1}
  .hero-thread::before{
    top:0;left:-1px;width:4px;height:60px;border-radius:2px;
    background:linear-gradient(180deg, transparent, #6DA3FF, transparent);
    box-shadow:none;
    filter:drop-shadow(0 0 6px rgba(109,163,255,.9));
    animation:hero-thread-flow-ps 4.2s ease-in-out infinite;
  }
  @keyframes hero-thread-flow-ps{
    0%{top:0;opacity:0}
    10%{opacity:1}
    90%{opacity:1}
    100%{top:calc(100% - 60px);opacity:0}
  }
  @media (max-width:1100px){ .hero-card .hc-title{font-size:17px} }
  @media (max-width:900px){
    .hero{padding:120px 0 72px}
    .hero-grid{gap:40px}
    .hero-micro{margin-top:28px}
    .hero-thread{display:none}
    .hero-right{min-height:auto;display:flex;flex-direction:column;gap:14px;align-items:stretch;padding-top:8px}
    .hero-card.c1,.hero-card.c2{position:static;width:100%;min-width:0;animation:none}
  }
  @media (max-width:540px){
    .hero{padding:100px 0 56px}
    .hero-micro{margin-top:24px}
  }

  .hero-card .hc-badge-row{margin-top:12px;display:flex;flex-wrap:wrap;gap:6px}

  .hero-card .hc-badge-neg,.hero-card .hc-badge-pos{
    font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;
    padding:4px 8px;border-radius:6px;
    display:inline-flex;align-items:center;gap:6px;
  }

  .hero-card .hc-badge-neg{background:rgba(255,120,120,.06);border:1px solid rgba(255,120,120,.22);color:#F5A3A3}

  .hero-card .hc-badge-neg::before{content:"×";font-size:12px;line-height:1;color:#F5A3A3}

  .hero-card .hc-badge-pos{background:rgba(30,108,255,.12);border:1px solid rgba(30,108,255,.32);color:var(--blue-300)}

  .hero-card .hc-badge-pos::before{content:"✓";font-size:11px;line-height:1;color:var(--blue-300)}

  /* ---------- INDUSTRIES TEASER (light variant) ----------
     main.css's shared .industries/.ind-strip/.ind-chip rules are tuned for
     the Homepage/Industries/Contact dark-navy section background (verified
     against their own design CSS — all three specify the same dark values).
     This page's approved design uses a white-background variant instead,
     with a 4-column chip strip (matching its 4 actual chips vs. the
     5-chip strips elsewhere) — scoped here so the other pages keep their
     shared dark styling untouched. */
  .industries{background:#fff;color:var(--ink-900);border-top:1px solid var(--line-light)}
  .industries .section-heading .eyebrow{color:var(--blue-500)}
  .ind-card{background:var(--paper-2);transition:transform .3s ease, box-shadow .3s ease}
  .ind-card:hover{box-shadow:0 20px 40px -20px rgba(6,22,47,.4)}
  .ind-strip{grid-template-columns:repeat(4,1fr)}
  .ind-chip{background:var(--paper);border:1px solid var(--line-light);color:var(--ink-900)}
  .ind-chip:hover{background:#fff}
  .ind-chip .i-ico{background:rgba(30,108,255,.1);color:var(--blue-500)}

  /* ---------- INTRODUCTION ---------- */
  .intro{background:var(--navy-800);color:#fff;position:relative;overflow:hidden;border-top:1px solid var(--line-navy)}

  .intro::before{
    content:"";position:absolute;inset:0;pointer-events:none;
    background:
      radial-gradient(700px 500px at 90% 20%, rgba(30,108,255,.09), transparent 60%),
      radial-gradient(600px 400px at 10% 90%, rgba(30,108,255,.06), transparent 60%);
  }

  .intro .container-wide{position:relative;z-index:2}

  .intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}

  .intro h2 .accent{color:var(--blue-400)}

  .intro-copy p+p{margin-top:16px}

  .intro-factors-title{
    font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
    color:var(--slate-300);margin-bottom:20px;display:flex;align-items:center;gap:10px;
  }

  .intro-factors-title::before{content:"";width:22px;height:1px;background:var(--blue-400);opacity:.6}

  .intro-factors{
    display:grid;grid-template-columns:1fr 1fr;gap:12px;
  }

  .intro-factor{
    padding:16px 18px;border-radius:12px;
    background:rgba(255,255,255,.025);border:1px solid var(--line-navy-strong);
    display:flex;align-items:center;gap:14px;font-size:14.5px;
    transition:background .2s ease, border-color .2s ease, transform .2s ease;
  }

  .intro-factor:hover{background:rgba(30,108,255,.06);border-color:rgba(30,108,255,.4);transform:translateY(-2px)}

  .intro-factor .if-num{
    font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;color:var(--blue-300);flex-shrink:0;
    min-width:22px;
  }

  .intro-factor .if-label{color:#fff;font-family:var(--font-display);font-weight:500;letter-spacing:-.005em}

  /* Full-width horizontal callout band */
  .intro-band{
    margin-top:100px;
    position:relative;overflow:hidden;
    border-radius:var(--radius-xl);
    background:
      linear-gradient(180deg,rgba(30,108,255,.12),rgba(30,108,255,.02)),
      linear-gradient(180deg,var(--navy-700),var(--navy-800));
    border:1px solid rgba(30,108,255,.32);
    padding:56px 64px;
    display:grid;grid-template-columns:auto 1fr auto;gap:48px;align-items:center;
    box-shadow:0 30px 80px -30px rgba(30,108,255,.35);
  }

  .intro-band::before{
    content:"";position:absolute;left:-10%;top:-40%;width:60%;height:180%;
    background:radial-gradient(closest-side, rgba(30,108,255,.28), transparent 60%);
    pointer-events:none;filter:blur(30px);
  }

  .intro-band::after{
    content:"";position:absolute;right:-6%;bottom:-40%;width:50%;height:180%;
    background:radial-gradient(closest-side, rgba(109,163,255,.15), transparent 60%);
    pointer-events:none;filter:blur(30px);
  }

  .intro-band > *{position:relative;z-index:2}

  .ib-eyebrow{
    font-family:var(--font-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--blue-300);
    writing-mode:vertical-rl;transform:rotate(180deg);
    display:flex;align-items:center;gap:14px;white-space:nowrap;
    padding:20px 0;
  }

  .ib-eyebrow::before{content:"";width:22px;height:1px;background:var(--blue-300);opacity:.6}

  .ib-eyebrow::after{content:"";width:22px;height:1px;background:var(--blue-300);opacity:.6}

  .ib-copy{text-align:center}

  .ib-copy h3{
    font-size:56px;line-height:1.02;letter-spacing:-.035em;font-weight:800;
  }

  .ib-copy h3 .l1{display:block;color:#fff}

  .ib-copy h3 .l2{display:block;color:var(--blue-400)}

  .ib-copy .ib-sub{
    margin-top:22px;font-family:var(--font-mono);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;
    color:var(--slate-300);display:inline-flex;align-items:center;gap:12px;
  }

  .ib-copy .ib-sub .bar{width:22px;height:1px;background:currentColor;opacity:.5}

  .ib-mark{
    width:88px;height:88px;flex-shrink:0;border-radius:20px;
    background:linear-gradient(180deg,rgba(30,108,255,.3),rgba(30,108,255,.08));
    border:1px solid rgba(109,163,255,.4);display:grid;place-items:center;
    box-shadow:0 20px 40px -10px rgba(30,108,255,.5), inset 0 1px 0 rgba(255,255,255,.1);
    position:relative;
  }

  .ib-mark::before{
    content:"";position:absolute;inset:-6px;border-radius:24px;
    border:1px dashed rgba(109,163,255,.4);
    animation:av-rotate 24s linear infinite;
  }

  .ib-mark img{width:50%;height:auto}

  /* ---------- ECOSYSTEM / PARTNERS ---------- */
  .ecosystem-section{background:var(--paper);color:var(--ink-900);position:relative;overflow:hidden}

  .ecosystem-section .container-wide{position:relative;z-index:2}

  .ecosystem-heading{text-align:center;max-width:820px;margin:0 auto 72px}

  .ecosystem-heading h2{margin-top:22px;font-size:60px;letter-spacing:-.03em}

  .ecosystem-heading h2 .accent{color:var(--blue-500);display:block}

  .ecosystem-heading p{margin-top:22px;font-size:18px;color:var(--ink-500);line-height:1.6;max-width:60ch;margin-left:auto;margin-right:auto}

  /* Featured partner logos (Clover, Elavon, Moneris, Helcim) */
  .featured-partners{
    display:grid;grid-template-columns:repeat(4,1fr);gap:22px;
    max-width:1120px;margin:0 auto;
  }

  .fp-card{
    position:relative;padding:52px 32px 40px;border-radius:var(--radius-lg);
    background:#fff;border:1px solid var(--line-light);
    display:flex;flex-direction:column;align-items:center;gap:18px;
    transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
    overflow:hidden;
  }

  .fp-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:rgba(30,108,255,.35)}

  .fp-card::before{
    content:"";position:absolute;top:0;left:0;right:0;height:3px;
    background:linear-gradient(90deg,transparent,var(--blue-500),transparent);
    opacity:0;transition:opacity .3s ease;
  }

  .fp-card:hover::before{opacity:1}

  .fp-tag{
    font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
    color:var(--ink-400);padding:5px 10px;border-radius:999px;background:var(--paper);
  }

  /* Partner logo image slot inside the featured partner card */
  .fp-logo{
    display:flex;align-items:center;justify-content:center;
    width:100%;height:88px;margin:10px 0 4px;
  }

  .fp-logo img{
    max-height:100%;max-width:100%;width:auto;height:auto;
    object-fit:contain;display:block;
  }

  .fp-role{
    font-size:13.5px;color:var(--ink-500);text-align:center;line-height:1.5;max-width:26ch;
  }

  .featured-partners-note{
    margin-top:32px;text-align:center;font-family:var(--font-mono);font-size:11px;
    letter-spacing:.14em;text-transform:uppercase;color:var(--ink-400);
  }

  .supporting-line{
    margin-top:56px;text-align:center;
    font-family:var(--font-display);font-weight:600;font-size:20px;color:var(--ink-900);letter-spacing:-.01em;
  }

  .supporting-line .accent{color:var(--blue-500)}

  /* Ecosystem visual (SVG orbit) */
  .ecosystem-viz-wrap{margin-top:88px;display:grid;grid-template-columns:1fr 1.05fr;gap:80px;align-items:center}

  .eco-copy .eyebrow{color:var(--blue-500)}

  .eco-copy h3{font-size:38px;letter-spacing:-.025em;line-height:1.05;margin-top:18px;font-weight:700}

  .eco-copy p{margin-top:22px;font-size:16.5px;color:var(--ink-500);line-height:1.65;max-width:52ch}

  .eco-copy .ec-list{margin-top:32px;list-style:none;display:flex;flex-direction:column;gap:12px}

  .eco-copy .ec-list li{display:flex;gap:14px;align-items:flex-start;color:var(--ink-700);font-size:15px;line-height:1.5}

  .eco-copy .ec-list .check{
    flex:0 0 22px;width:22px;height:22px;border-radius:50%;
    background:rgba(30,108,255,.12);color:var(--blue-500);
    display:grid;place-items:center;margin-top:1px;
  }

  .eco-copy .ec-list .check svg{width:12px;height:12px}

  /* Solution-card feature bullets — approved design renders these as a
     2-column dot list (main.css defines .sol-card/.sol-body but not this
     inner <ul>, so without this rule the bullets fall back to default
     browser disc markers). */
  .sol-body ul{
    list-style:none;margin-top:18px;padding-top:18px;border-top:1px solid var(--line-light);
    display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;
  }

  .sol-body ul li{
    display:flex;gap:8px;align-items:flex-start;color:var(--ink-700);
    font-size:13px;line-height:1.4;
  }

  .sol-body ul li::before{
    content:"";width:4px;height:4px;border-radius:50%;background:var(--blue-500);
    margin-top:7px;flex-shrink:0;
  }

  /* PS design uses a smaller step-number heading + slightly larger
     sc-more top margin than the shared main.css defaults (tuned for
     Homepage/Industries/Contact's own step/solution copy). */
  .step5 h3{font-size:17px}
  .sol-body .sc-more{margin-top:24px;align-self:flex-start}

  .sol-photo .sp-num{
    position:absolute;top:16px;right:16px;
    font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;
    color:rgba(255,255,255,.85);background:rgba(6,22,47,.4);
    padding:6px 10px;border-radius:6px;
    backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
    border:1px solid rgba(255,255,255,.12);
  }

  .review-sub{font-size:22px;color:var(--blue-300);font-family:var(--font-display);font-weight:500;margin-top:14px;letter-spacing:-.015em}

  .review-callout{
    margin-top:44px;padding:26px 30px;border-radius:16px;
    background:rgba(255,255,255,.03);border:1px solid var(--line-navy-strong);
    display:flex;gap:22px;align-items:flex-start;
  }

  .review-callout .rc-mark{
    width:44px;height:44px;border-radius:12px;flex-shrink:0;
    background:linear-gradient(180deg,rgba(30,108,255,.28),rgba(30,108,255,.08));
    border:1px solid rgba(30,108,255,.4);display:grid;place-items:center;color:var(--blue-300);
  }

  .review-callout .rc-mark svg{width:22px;height:22px}

  .review-callout .rc-h{
    font-family:var(--font-display);font-weight:600;font-size:18px;letter-spacing:-.01em;color:#fff;
  }

  .review-callout p{margin-top:6px;font-size:14.5px;color:var(--slate-200);line-height:1.55}

  /* ---------- WHY MERCHANT PROTECT (6 CARDS) ---------- */
  .why{background:var(--navy-800);color:#fff;border-top:1px solid var(--line-navy);position:relative;overflow:hidden}

  .why::before{
    content:"";position:absolute;inset:0;pointer-events:none;
    background:
      radial-gradient(700px 500px at 15% 20%, rgba(30,108,255,.1), transparent 60%),
      radial-gradient(500px 400px at 90% 80%, rgba(30,108,255,.06), transparent 60%);
  }

  .why .container-wide{position:relative;z-index:2}

  .why-teaser{
    display:grid;grid-template-columns:1fr 1.05fr;gap:90px;align-items:center;
  }

  .why-teaser-copy h2{max-width:14ch}

  .why-teaser-cta{margin-top:36px}

  .why-pillars{
    list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:14px;
  }

  .why-pillars li{
    display:flex;gap:16px;align-items:flex-start;
    padding:22px 22px;border-radius:16px;
    background:rgba(255,255,255,.025);
    border:1px solid var(--line-navy-strong);
    transition:transform .3s ease, border-color .3s ease, background .3s ease;
  }

  .why-pillars li:hover{
    transform:translateY(-3px);
    border-color:rgba(30,108,255,.4);
    background:rgba(30,108,255,.04);
  }

  .why-pillars .wp-ico{
    width:42px;height:42px;flex-shrink:0;border-radius:12px;
    background:linear-gradient(180deg,rgba(30,108,255,.2),rgba(30,108,255,.05));
    border:1px solid rgba(30,108,255,.3);
    display:grid;place-items:center;color:var(--blue-300);
  }

  .why-pillars .wp-ico svg{width:20px;height:20px}

  .why-pillars h4{font-size:16px;font-weight:600;letter-spacing:-.005em}

  .why-pillars p{margin-top:6px;color:var(--slate-300);font-size:13.5px;line-height:1.55}

  /* ---------- CONSULTATIVE STATEMENT (manifesto-style) ---------- */
  .consultative{
    background:var(--navy-900);border-top:1px solid var(--line-navy);
    position:relative;overflow:hidden;
    padding:200px 0;
  }

  .consultative .container{position:relative;z-index:2;text-align:center}

  .consultative h2{
    font-size:96px;letter-spacing:-.04em;line-height:.98;font-weight:800;
    max-width:16ch;margin:0 auto;
  }

  .consultative h2 .accent{color:var(--blue-400)}

  .consultative .m-lines{
    position:absolute;inset:0;pointer-events:none;
    background-image:linear-gradient(to right, rgba(255,255,255,.03) 1px, transparent 1px);
    background-size:120px 100%;
    mask-image:linear-gradient(180deg, transparent, #000 30%, #000 70%, transparent);
    -webkit-mask-image:linear-gradient(180deg, transparent, #000 30%, #000 70%, transparent);
  }

  .consultative .m-glow{
    position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
    width:900px;height:900px;
    background:radial-gradient(circle, rgba(30,108,255,.18), transparent 60%);
    pointer-events:none;
  }

  .consultative .lede{margin:44px auto 0;max-width:60ch;font-size:19px;color:var(--slate-200);text-align:center}

  .consultative .lede + .lede{margin-top:18px}

  .consultative .m-signature{
    margin-top:56px;font-family:var(--font-mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;
    color:var(--slate-300);display:flex;align-items:center;justify-content:center;gap:14px;
  }

  .consultative .m-signature .bar{width:40px;height:1px;background:var(--slate-300);opacity:.4}  @media (max-width: 1100px){
    .hero h1{font-size:56px}
    .featured-partners{grid-template-columns:repeat(2,1fr)}
    .why-teaser{grid-template-columns:1fr;gap:48px}
    .why-teaser-copy h2{max-width:100%}
    .ecosystem-viz-wrap{grid-template-columns:1fr;gap:56px}
    .ib-copy h3{font-size:44px}
    .intro-band{padding:44px 40px;gap:32px}
    .ib-mark{width:72px;height:72px}
    .ecosystem-heading h2{font-size:48px}
    .consultative h2{font-size:76px}
  }

  @media (max-width: 900px){
  .hero h1{font-size:44px;max-width:100%;text-shadow:0 2px 20px rgba(0,0,0,.4)}
  .sol-body ul{grid-template-columns:1fr}
  .intro-grid{grid-template-columns:1fr;gap:48px}
  .intro-factors{grid-template-columns:1fr}
  .intro-band{margin-top:64px;padding:36px 24px;grid-template-columns:1fr;gap:24px;text-align:center}
  .ib-eyebrow{writing-mode:horizontal-tb;transform:none;padding:0;justify-content:center}
  .ib-copy h3{font-size:32px}
  .ib-mark{margin:0 auto;width:64px;height:64px;border-radius:16px}
  .ecosystem-heading h2{font-size:38px}
  .featured-partners{grid-template-columns:1fr 1fr;gap:14px}
  .fp-card{padding:36px 22px 28px}
  .fp-wordmark{font-size:26px}
  .why-pillars{grid-template-columns:1fr;gap:12px}
  .consultative{padding:110px 0}
  .consultative h2{font-size:44px;max-width:100%}
  .consultative .lede{font-size:16.5px;margin-top:32px}
}

  @media (max-width: 540px){
  .hero h1{font-size:38px;line-height:1.02;text-shadow:0 1px 12px rgba(0,0,0,.35)}
  .featured-partners{grid-template-columns:1fr;gap:12px}
  .fp-wordmark{font-size:28px}
  .ib-copy h3{font-size:26px}
  .intro-band{padding:28px 20px}
  .why-pillars li{padding:18px 18px}
  .consultative{padding:88px 0}
  .consultative h2{font-size:36px}
}