/* ===== Alta Business Loans — Design Tokens & Components ===== */
:root{
  /* Type scale */
  --text-xs:clamp(0.75rem,0.7rem + 0.25vw,0.875rem);
  --text-sm:clamp(0.875rem,0.8rem + 0.35vw,1rem);
  --text-base:clamp(1.0625rem,1rem + 0.3vw,1.1875rem);
  --text-lg:clamp(1.125rem,1rem + 0.75vw,1.5rem);
  --text-xl:clamp(1.5rem,1.2rem + 1.25vw,2.25rem);
  --text-2xl:clamp(2rem,1.2rem + 2.5vw,3.25rem);
  --text-hero:clamp(2.5rem,1.4rem + 4.5vw,4.75rem);

  /* Spacing */
  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;
  --space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;
  --space-20:5rem;--space-24:6rem;--space-32:8rem;

  /* === Brand Palette: Navy / Gold / Red / White === */
  --navy-900:#0d2c52;
  --navy-800:#143a6b;
  --navy:#1a4d8f;        /* primary */
  --navy-600:#23609f;
  --navy-300:#9cbbe0;
  --navy-100:#e4edf8;
  --navy-050:#f1f6fc;

  --gold:#d4a017;
  --gold-dark:#b5860f;
  --gold-soft:#f6ebcd;

  --red:#c1272d;
  --red-dark:#9e1f24;

  --color-primary:var(--navy);
  --color-primary-hover:var(--navy-800);
  --color-accent:var(--gold);
  --color-cta:var(--red);
  --color-cta-hover:var(--red-dark);

  /* Surfaces / text */
  --color-bg:#ffffff;
  --color-surface:#f6f8fb;
  --color-surface-2:#eef3fa;
  --color-text:#16243a;
  --color-text-muted:#52617a;
  --color-text-faint:#5a6678;
  --color-border:#dce4ef;
  --color-text-inverse:#ffffff;

  --radius-sm:.4rem;--radius-md:.6rem;--radius-lg:.9rem;--radius-xl:1.25rem;--radius-full:9999px;
  --transition-interactive:200ms cubic-bezier(.16,1,.3,1);
  --shadow-sm:0 1px 2px rgba(13,44,82,.06);
  --shadow-md:0 6px 18px rgba(13,44,82,.10);
  --shadow-lg:0 18px 44px rgba(13,44,82,.16);
  --shadow-gold:0 8px 24px rgba(212,160,23,.28);

  --content-narrow:680px;--content-default:1000px;--content-wide:1240px;

  /* Single source of truth for grid gaps + section rhythm */
  --gap:2rem;
  --section-pad:5rem;

  --font-display:'Inter',system-ui,-apple-system,sans-serif;
  --font-body:'Inter',system-ui,-apple-system,sans-serif;
}
html{font-family:var(--font-body)}
@media (max-width:768px){
  :root{--gap:1.5rem;--section-pad:3rem;}
}

/* ===== Layout helpers ===== */
.wrap{width:100%;max-width:1200px;margin-inline:auto;padding-inline:1.5rem}
.wrap-narrow{width:100%;max-width:var(--content-narrow);margin-inline:auto;padding-inline:1.5rem}
/* Consistent vertical rhythm: same padding token on every section site-wide */
.section{padding-block:var(--section-pad)}
.section--tight{padding-block:calc(var(--section-pad) * 0.8)}
.bg-surface{background:var(--color-surface)}
.bg-navy{background:var(--navy);color:var(--color-text-inverse)}
.bg-navy-deep{background:linear-gradient(160deg,var(--navy-900),var(--navy-800));color:var(--color-text-inverse)}
.center{text-align:center}
.eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-display);font-weight:600;font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--gold-dark)}
.eyebrow svg{width:16px;height:16px;flex:none}
.bg-navy .eyebrow,.bg-navy-deep .eyebrow{color:#ffffff}
/* ===== Strict type scale (single family, enforced site-wide) ===== */
h1{font-family:var(--font-display);font-size:clamp(2.25rem,4.5vw,3.5rem);line-height:1.1;letter-spacing:-0.02em;font-weight:800}
h2{font-family:var(--font-display);font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.15;letter-spacing:-0.01em;font-weight:700}
h3{font-family:var(--font-display);font-size:1.375rem;line-height:1.3;font-weight:700}
h4{font-family:var(--font-display);font-size:1.125rem;line-height:1.4;font-weight:600}
body{font-size:1rem;line-height:1.65;font-weight:400}
small{font-size:0.875rem;line-height:1.5}
p{margin-bottom:0}
h1,h2,h3,h4{margin-bottom:1rem}
.h-section{font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.15;letter-spacing:-0.01em;font-weight:700;margin-block:.4rem .25rem}
.lead{font-size:var(--text-lg);line-height:1.5;color:var(--color-text-muted);max-width:62ch}
.bg-navy .lead,.bg-navy-deep .lead{color:var(--navy-300)}
.muted{color:var(--color-text-muted)}
.text-gold{color:var(--gold-dark)}
.fine-print{font-size:0.875rem;line-height:1.5}
.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.mt-12{margin-top:var(--space-12)}

/* ===== Buttons ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-family:var(--font-display);font-weight:600;font-size:1rem;min-height:48px;padding:0 1.6rem;border-radius:var(--radius-full);line-height:1;white-space:nowrap;border:2px solid transparent}
.btn svg{width:1.1em;height:1.1em}
.btn-primary{background:var(--color-cta);color:#fff;box-shadow:var(--shadow-md)}
.btn-primary:hover{background:var(--color-cta-hover);transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{background:var(--navy-800);transform:translateY(-2px)}
.btn-gold,.btn--gold{background:var(--gold);color:var(--navy-900)}
.btn-gold:hover,.btn--gold:hover{background:var(--gold-dark);transform:translateY(-2px);box-shadow:var(--shadow-gold)}
.btn-outline{border-color:var(--navy);color:var(--navy);background:transparent}
.btn-outline:hover{background:var(--navy);color:#fff}
.bg-navy .btn-outline,.bg-navy-deep .btn-outline,.hero .btn-outline,.cta-band .btn-outline{border-color:rgba(255,255,255,.55);color:#fff}
.bg-navy .btn-outline:hover,.bg-navy-deep .btn-outline:hover,.hero .btn-outline:hover,.cta-band .btn-outline:hover{background:#fff;color:var(--navy-900);border-color:#fff}
.btn-lg{min-height:54px;padding:0 2rem;font-size:1.0625rem}
.btn-block{width:100%}

/* ===== Header ===== */
.header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.88);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);transition:box-shadow .3s ease}
.header--scrolled{box-shadow:var(--shadow-sm)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);height:4.75rem}
.brand{display:flex;align-items:center;gap:.65rem;font-family:var(--font-display);font-weight:700;color:var(--navy);font-size:1.15rem}
.brand span{white-space:nowrap;line-height:1.05}
.brand .logo{width:38px;height:38px;flex:none}
.brand small{display:block;font-size:.62rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-dark);line-height:1;margin-top:.18rem}
.nav-links{display:flex;align-items:center;gap:var(--space-6);list-style:none}
.nav-links a{font-size:var(--text-sm);font-weight:500;color:var(--color-text);padding:.4rem 0;position:relative}
.nav-links a:hover{color:var(--navy)}
.nav-links a[aria-current="page"]{color:var(--navy);font-weight:600}
.nav-links a[aria-current="page"]::after{content:"";position:absolute;left:0;right:0;bottom:-.1rem;height:2px;background:var(--gold);border-radius:2px}
.nav-actions{display:flex;align-items:center;gap:var(--space-3)}
.nav-tel{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;font-size:var(--text-sm);color:var(--navy)}
.nav-toggle{display:none;width:44px;height:44px;align-items:center;justify-content:center;color:var(--navy)}
.nav-toggle svg{width:26px;height:26px}
@media (max-width:920px){
  .nav-links,.nav-tel{display:none}
  .nav-toggle{display:inline-flex}
  .brand{font-size:1.02rem;gap:.5rem}
  .brand .logo{width:34px;height:34px}
  .nav-actions{gap:.5rem}
  .nav-actions .btn-primary{display:none}
  .mobile-menu{position:fixed;inset:4.75rem 0 auto 0;background:#fff;border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-lg);padding:var(--space-6) var(--space-6) var(--space-8);transform:translateY(-120%);transition:transform .35s cubic-bezier(.16,1,.3,1);z-index:55}
  .mobile-menu.open{transform:translateY(0)}
  .mobile-menu ul{list-style:none;display:grid;gap:.25rem}
  .mobile-menu a{display:block;padding:.85rem .5rem;font-weight:600;font-size:1.05rem;border-bottom:1px solid var(--color-surface-2)}
  .mobile-menu .btn{margin-top:var(--space-4)}
}
.mobile-menu{display:none}
@media (max-width:920px){.mobile-menu{display:block}}

/* ===== Hero ===== */
.hero{position:relative;background:linear-gradient(165deg,var(--navy-900) 0%,var(--navy-800) 55%,var(--navy) 100%);color:#fff;overflow:hidden}
.hero::after{content:"";position:absolute;inset:0;background:radial-gradient(900px 500px at 85% -10%,rgba(212,160,23,.18),transparent 60%);pointer-events:none}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(var(--space-8),5vw,var(--space-20));align-items:center;padding-block:clamp(var(--space-12),5vw,var(--space-20))}
.hero h1{font-size:clamp(2.25rem,4.5vw,3.5rem);line-height:1.1;letter-spacing:-0.02em;font-weight:800}
.hero h1 .accent{color:var(--gold)}
.hero .hero-subhead{font-family:var(--font-display);font-weight:700;font-size:clamp(1.15rem,2vw,1.45rem);color:var(--gold);margin-top:var(--space-4);letter-spacing:-0.01em}
.hero p.sub{font-size:var(--text-lg);color:var(--navy-300);margin-top:var(--space-4);max-width:50ch}
.hero .hero-keywords{margin-top:var(--space-4);font-size:var(--text-sm);font-weight:500;color:var(--navy-300);max-width:52ch;line-height:1.6}
.hero-cta{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-8)}
.hero-pills{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:var(--space-8)}
.pill{display:inline-flex;align-items:center;gap:.45rem;font-size:var(--text-xs);font-weight:600;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);padding:.5rem .85rem;border-radius:var(--radius-full);color:#eaf1fb}
.pill svg{width:1em;height:1em;color:var(--gold)}
.hero-media{position:relative}
.hero-media img{border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;aspect-ratio:16/10;object-fit:cover}
.hero-badge{position:absolute;left:-1.2rem;bottom:1.4rem;background:#fff;color:var(--navy-900);border-radius:var(--radius-lg);padding:.9rem 1.1rem;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:.7rem;max-width:230px}
.hero-badge .dot{width:42px;height:42px;border-radius:var(--radius-full);background:var(--gold-soft);color:var(--gold-dark);display:grid;place-items:center;flex:none}
.hero-badge .dot svg{width:22px;height:22px}
.hero-badge b{display:block;font-family:var(--font-display);font-size:1rem;line-height:1.1}
.hero-badge span{font-size:.72rem;color:var(--color-text-muted)}
@media (max-width:880px){
  .hero-grid{grid-template-columns:1fr;text-align:center}
  .hero p.sub,.hero .hero-keywords{margin-inline:auto}
  .hero-cta,.hero-pills{justify-content:center}
  .hero-media{margin-top:var(--space-4)}
  .hero-badge{left:1rem}
}

/* ===== Trust strip ===== */
.trust{background:var(--navy-900);color:#fff}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2);padding-block:var(--space-6)}
.trust-item{display:flex;align-items:center;justify-content:center;gap:.6rem;text-align:center;padding:.5rem;font-weight:600;font-size:var(--text-sm)}
.trust-item svg{width:1.5em;height:1.5em;color:var(--gold);flex:none}
@media (max-width:780px){.trust-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-4)}}

/* ===== Cards / grids ===== */
.grid{display:grid;gap:var(--gap)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
@media (max-width:980px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}

.card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm);transition:transform var(--transition-interactive),box-shadow var(--transition-interactive),border-color var(--transition-interactive)}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--navy-300)}
.card h3{font-size:1.375rem;line-height:1.3;margin-bottom:.35rem}
.card p{color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.5;margin-bottom:0}
.icon-box{width:52px;height:52px;border-radius:var(--radius-md);display:grid;place-items:center;margin-bottom:var(--space-4);background:var(--navy-050);color:var(--navy);border:1px solid var(--navy-100)}
.icon-box svg{width:26px;height:26px}
.icon-box.gold{background:var(--gold-soft);color:var(--gold-dark);border-color:#ecdcae}

/* value cards */
.value-card{text-align:center}
.value-card .icon-box{margin-inline:auto}
.value-card h3{font-size:1.375rem;line-height:1.3}

/* ===== Two-column feature ===== */
.feature{display:grid;grid-template-columns:1fr 1fr;gap:clamp(var(--space-8),5vw,var(--space-16));align-items:center}
.feature.reverse .feature-media{order:-1}
.feature-media img{border-radius:var(--radius-xl);box-shadow:var(--shadow-md);width:100%;aspect-ratio:4/3;object-fit:cover}
@media (max-width:860px){.feature{grid-template-columns:1fr}.feature.reverse .feature-media{order:0}}
.benefit-list{display:grid;gap:var(--space-4);margin-top:var(--space-6);list-style:none}
.benefit-list li{display:flex;gap:.85rem;align-items:flex-start}
.benefit-list .tick{flex:none;width:28px;height:28px;border-radius:var(--radius-full);background:var(--gold-soft);color:var(--gold-dark);display:grid;place-items:center}
.benefit-list .tick svg{width:16px;height:16px}
.benefit-list b{font-family:var(--font-display)}
.benefit-list p{color:var(--color-text-muted);font-size:var(--text-sm);margin-top:.1rem}

/* ===== Services summary list ===== */
.svc-list{columns:2;column-gap:var(--space-8);list-style:none;margin-top:var(--space-6)}
.svc-list li{break-inside:avoid;display:flex;gap:.6rem;align-items:center;padding:.55rem 0;border-bottom:1px solid var(--color-border);font-weight:500}
.svc-list li svg{width:18px;height:18px;color:var(--gold-dark);flex:none}
@media (max-width:640px){.svc-list{columns:1}}

/* ===== Steps ===== */
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--space-5);counter-reset:step}
@media (max-width:1180px){.steps{grid-template-columns:repeat(3,1fr)}}
@media (max-width:820px){.steps{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}
/* Funding options grid: 2 columns on wide so 4 cards form a clean 2x2 */
.grid-funding{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6)}
@media (max-width:720px){.grid-funding{grid-template-columns:1fr}}
.step{position:relative;padding:var(--space-6);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg)}
.step .num{counter-increment:step;width:44px;height:44px;border-radius:var(--radius-full);background:var(--navy);color:#fff;font-family:var(--font-display);font-weight:700;display:grid;place-items:center;margin-bottom:var(--space-4)}
.step .num::before{content:counter(step)}
.step h3{font-size:1.375rem;line-height:1.3}
.step p{color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.5;margin-bottom:0}

/* ===== Testimonials ===== */
.quote{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm)}
.quote .stars{color:var(--gold);display:flex;gap:.1rem;margin-bottom:var(--space-3)}
.quote .stars svg{width:18px;height:18px;fill:var(--gold)}
.quote blockquote{font-size:var(--text-base);color:var(--color-text)}
.quote .who{display:flex;align-items:center;gap:.7rem;margin-top:var(--space-5)}
.quote .avatar{width:40px;height:40px;border-radius:var(--radius-full);background:var(--navy);color:#fff;font-family:var(--font-display);font-weight:700;display:grid;place-items:center;font-size:.95rem}
.quote .who b{font-family:var(--font-display);font-size:var(--text-sm)}
.quote .who span{display:block;font-size:var(--text-xs);color:var(--color-text-muted)}

/* ===== Lenders / partners ===== */
.partners{background:linear-gradient(160deg,var(--navy-900),var(--navy-800));color:#fff;border-radius:var(--radius-xl);padding:clamp(var(--space-8),5vw,var(--space-16));text-align:center;position:relative;overflow:hidden}
.partners::after{content:"";position:absolute;inset:0;background:radial-gradient(700px 400px at 50% -20%,rgba(212,160,23,.16),transparent 60%);pointer-events:none}
.partner-badges{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-top:var(--space-8)}
@media (max-width:760px){.partner-badges{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.partner-badges{grid-template-columns:1fr}}
@media (max-width:420px){.brand span{font-size:.92rem}.brand small{font-size:.55rem}}
.partner-badge{min-height:64px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.05);border-radius:var(--radius-md);padding:1rem 1.1rem;font-weight:700;font-size:0.95rem;line-height:1.25;letter-spacing:.01em;color:#fff;display:flex;align-items:center;justify-content:center;text-align:center}
@media (max-width:480px){.partner-badge{min-height:56px}}

/* ===== FAQ ===== */
.faq{max-width:var(--content-default);margin-inline:auto;margin-top:var(--space-8)}
.faq details{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);margin-bottom:var(--space-3);overflow:hidden}
.faq summary{list-style:none;cursor:pointer;padding:var(--space-5);font-family:var(--font-display);font-weight:600;font-size:var(--text-base);display:flex;justify-content:space-between;align-items:center;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary .chev{flex:none;transition:transform var(--transition-interactive);color:var(--navy)}
.faq details[open] summary .chev{transform:rotate(180deg)}
.faq details[open] summary{color:var(--navy)}
.faq .answer{padding:0 var(--space-5) var(--space-5);color:var(--color-text-muted)}

/* ===== Forms ===== */
.form-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);padding:clamp(var(--space-6),4vw,var(--space-10))}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5)}
.form-grid .full{grid-column:1 / -1}
@media (max-width:640px){.form-grid{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column;gap:.4rem}
.field label{font-size:var(--text-sm);font-weight:600;color:var(--color-text)}
.field label .req{color:var(--red)}
.field input,.field select,.field textarea{
  width:100%;padding:.8rem .95rem;border:1.5px solid var(--color-border);border-radius:var(--radius-md);
  background:var(--color-bg);font-size:var(--text-sm);color:var(--color-text)
}
.field input:focus:not(:focus-visible),.field select:focus:not(:focus-visible),.field textarea:focus:not(:focus-visible){outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(26,77,143,.12)}
.field textarea{resize:vertical;min-height:110px}
.soft-note{display:flex;gap:.7rem;align-items:flex-start;background:var(--gold-soft);border:1px solid #ecdcae;border-radius:var(--radius-md);padding:.9rem 1rem;font-size:var(--text-sm);color:#6b510a;margin-bottom:var(--space-6)}
.soft-note svg{flex:none;width:22px;height:22px;color:var(--gold-dark)}
.form-success{text-align:center;padding:var(--space-8) var(--space-4)}
.form-success .ok{width:72px;height:72px;border-radius:var(--radius-full);background:var(--gold-soft);color:var(--gold-dark);display:grid;place-items:center;margin:0 auto var(--space-5)}
.form-success .ok svg{width:38px;height:38px}
.form-success h3{font-size:var(--text-xl)}

/* ===== Contact info ===== */
.contact-item{display:flex;gap:var(--space-4);align-items:flex-start;padding:var(--space-5) 0;border-bottom:1px solid var(--color-border)}
.contact-item:last-child{border-bottom:none}
.contact-item .icon-box{margin:0}
.contact-item b{font-family:var(--font-display);display:block}
.contact-item a,.contact-item p{color:var(--color-text-muted);font-size:var(--text-sm)}
.contact-item a:hover{color:var(--navy)}

/* ===== Legal / prose pages ===== */
.prose{max-width:var(--content-narrow);margin-inline:auto}
.prose h1{font-size:clamp(2.25rem,4.5vw,3.5rem);line-height:1.1;letter-spacing:-0.02em;font-weight:800}
.prose h2{font-family:var(--font-display);font-size:var(--text-lg);margin-top:var(--space-8);margin-bottom:var(--space-3);color:var(--navy)}
.prose p,.prose li{color:var(--color-text-muted);margin-bottom:var(--space-4)}
.prose ul{padding-left:1.2rem;margin-bottom:var(--space-4)}
.prose li{margin-bottom:var(--space-2)}
.prose .updated{font-size:var(--text-sm);color:var(--color-text-faint)}

/* page hero (interior) */
.page-hero{background:linear-gradient(160deg,var(--navy-900),var(--navy-800));color:#fff;text-align:center;padding-block:clamp(var(--space-16),7vw,var(--space-24))}
.page-hero h1{font-size:clamp(2.25rem,4.5vw,3.5rem);line-height:1.1;letter-spacing:-0.02em;font-weight:800}
.page-hero p{color:var(--navy-300);max-width:60ch;margin:var(--space-4) auto 0}

/* service detail cards */
.svc-detail{display:grid;grid-template-columns:auto 1fr;gap:var(--space-5);align-items:start;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-interactive),transform var(--transition-interactive)}
.svc-detail:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}
.svc-detail .icon-box{margin:0}
.svc-detail h3{font-size:1.375rem;line-height:1.3}
.svc-detail .meta{display:flex;flex-wrap:wrap;gap:.6rem;margin:var(--space-3) 0}
.tag{font-size:var(--text-xs);font-weight:600;padding:.3rem .7rem;border-radius:var(--radius-full);background:var(--navy-050);color:var(--navy);border:1px solid var(--navy-100)}
.tag.gold{background:var(--gold-soft);color:var(--gold-dark);border-color:#ecdcae}
.svc-detail .who{font-size:var(--text-sm);color:var(--color-text-muted)}
.svc-detail .inquire{margin-top:var(--space-4);font-weight:600;font-size:var(--text-sm);color:var(--red);display:inline-flex;align-items:center;gap:.35rem}
.svc-detail .inquire svg{width:1em;height:1em;transition:transform var(--transition-interactive)}
.svc-detail .inquire:hover svg{transform:translateX(3px)}
@media (max-width:560px){.svc-detail{grid-template-columns:1fr}}

/* ===== Service detail pages ===== */
.breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:var(--text-sm);color:var(--navy-300);margin-bottom:var(--space-4)}
.breadcrumbs a{color:#dbe6f5;font-weight:500}
.breadcrumbs a:hover{color:var(--gold)}
.breadcrumbs span[aria-current]{color:#fff;font-weight:600}
.svc-article h2{font-family:var(--font-display);font-size:var(--text-xl);line-height:1.2;color:var(--navy);margin-top:var(--space-10);margin-bottom:var(--space-4)}
.svc-article h2:first-child{margin-top:0}
.svc-article h3{font-family:var(--font-display);font-size:var(--text-lg);line-height:1.25;color:var(--color-text);margin-top:var(--space-6);margin-bottom:var(--space-3)}
.svc-article p{font-size:var(--text-base);line-height:1.55;color:var(--color-text);margin-bottom:var(--space-4);text-align:left;text-indent:0}
.svc-article p.muted{color:var(--color-text-muted)}
.svc-article .steps{margin-bottom:var(--space-6)}
.svc-article .step h3{margin-top:0}

/* ===== Service-detail process steps (full-width, 5-up, dense) ===== */
/* Breaks out of the 680px narrow reading column to span the full container width. */
.process-section{padding:4rem 0}
.process-section .process-head{max-width:var(--content-narrow);margin-inline:auto;padding-inline:1.5rem}
.process-steps{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:1rem;
  counter-reset:step;
  width:min(1200px, calc(100vw - 3rem));
  margin-left:50%;
  transform:translateX(-50%);
  margin-top:var(--space-6);
}
.process-steps .step{
  position:relative;
  min-width:0;
  padding:1.25rem;
  background:var(--color-bg);
  border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
}
.process-steps .step .num{
  counter-increment:step;
  width:36px;height:36px;
  border-radius:var(--radius-full);
  background:var(--navy);color:#fff;
  font-family:var(--font-display);font-weight:700;font-size:.95rem;
  display:grid;place-items:center;
  margin-bottom:.85rem;
}
.process-steps .step .num::before{content:counter(step)}
.process-steps .step h3{
  font-size:1rem;line-height:1.3;margin:0 0 .4rem;
  color:var(--color-text);font-family:var(--font-display);font-weight:700;
}
.process-steps .step p{
  margin:0;color:var(--color-text-muted);
  font-size:.9375rem;line-height:1.5;
}
@media (max-width:991px){
  .process-steps{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:767px){
  .process-section{padding:2.5rem 0}
  .process-steps{grid-template-columns:1fr;width:min(1200px, calc(100vw - 3rem))}
}
.check-list{list-style:none;display:grid;gap:var(--space-3);margin:var(--space-4) 0 var(--space-2)}
.check-list li{position:relative;padding-left:1.9rem;line-height:1.6;color:var(--color-text)}
.check-list li::before{content:"";position:absolute;left:0;top:.15rem;width:20px;height:20px;border-radius:var(--radius-full);background:var(--gold-soft);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23b5860f' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center}
.svc-disclaimer{margin-top:var(--space-8);padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--gold);border-radius:var(--radius-md);font-size:var(--text-sm);line-height:1.6;color:var(--color-text-muted)}
.cta-actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;position:relative}

/* ===== CTA band ===== */
.cta-band{background:linear-gradient(120deg,var(--navy-900),var(--navy));color:#fff;border-radius:var(--radius-xl);padding:clamp(var(--space-8),5vw,var(--space-16));text-align:center;position:relative;overflow:hidden}
.cta-band::after{content:"";position:absolute;inset:0;background:radial-gradient(600px 300px at 80% 120%,rgba(212,160,23,.2),transparent 60%);pointer-events:none}
.cta-band h2{font-size:var(--text-xl);position:relative}
.cta-band p{color:#d5e1f2;max-width:56ch;margin:var(--space-3) auto var(--space-6);position:relative}

/* ===== Footer ===== */
.footer{background:var(--navy-900);color:#cdd9ea;font-size:var(--text-sm)}
.footer .wrap{padding-block:var(--space-12) var(--space-6)}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1fr;gap:var(--space-7);align-items:start}
@media (max-width:1020px){.footer-grid{grid-template-columns:1.4fr 1fr 1fr}}
@media (max-width:860px){.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.footer-grid{grid-template-columns:1fr}}
.footer h4,.footer .footer-col-title{font-family:var(--font-display);color:#fff;font-size:var(--text-sm);letter-spacing:.04em;margin-bottom:var(--space-4);line-height:1.3;font-weight:700;text-transform:uppercase}
.footer ul{list-style:none;display:grid;gap:.5rem;line-height:1.4}
.footer ul li{margin:0}
.footer ul li a{line-height:1.4}
.footer ul li[style]{line-height:1.45}
.footer a:hover{color:var(--gold)}
.footer .brand{color:#fff}
.footer .brand small{color:var(--gold)}
.footer .es{color:var(--gold);font-style:italic;margin-top:var(--space-3)}
.footer-disclaimer{border-top:1px solid rgba(255,255,255,.12);margin-top:var(--space-8);padding-top:var(--space-6);font-size:var(--text-xs);color:#8ea3c0;line-height:1.6}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-6);font-size:var(--text-xs);color:#8ea3c0}
.footer-bottom a{color:#8ea3c0}
.footer-bottom .links{display:flex;flex-wrap:wrap;gap:var(--space-4)}

/* reveal animation — only hides when JS is active (.js-on on <html>), so
   content stays visible for no-JS, crawlers, and full-page screenshots */
.js-on .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s cubic-bezier(.16,1,.3,1)}
.js-on .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js-on .reveal{opacity:1;transform:none}}

/* ===== American flag band (home) ===== */
.flag-band{position:relative;min-height:340px;background-image:url('./assets/flag-bg.jpg');background-size:cover;background-position:center;display:grid;place-items:center;text-align:center;color:#fff;overflow:hidden}
.flag-band::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,44,82,.72),rgba(13,44,82,.55));z-index:1}
.flag-band .inner{position:relative;z-index:2;max-width:780px;padding:var(--section-pad) 1.5rem}
.flag-band h2{font-size:var(--text-2xl);line-height:1.1;color:#fff}
.flag-band p{font-size:var(--text-lg);line-height:1.5;color:#eaf1fb;margin-top:1rem;max-width:60ch;margin-inline:auto}
.flag-band .eyebrow{color:#ffffff}
@media (max-width:768px){.flag-band{min-height:280px}}

/* ===== Blog ===== */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
@media (max-width:900px){.blog-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.blog-grid{grid-template-columns:1fr}}
.blog-card{display:flex;flex-direction:column;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform var(--transition-interactive),box-shadow var(--transition-interactive),border-color var(--transition-interactive)}
.blog-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--navy-300)}
.blog-card img{width:100%;aspect-ratio:16/9;object-fit:cover}
.blog-card .body{display:flex;flex-direction:column;flex:1;padding:var(--space-6);gap:.6rem}
.blog-card .cat{font-family:var(--font-display);font-weight:600;font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--gold-dark)}
.blog-card h3{font-size:1.375rem;line-height:1.3}
.blog-card p{color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.blog-card .read{margin-top:auto;padding-top:.6rem;font-weight:600;font-size:var(--text-sm);color:var(--red);display:inline-flex;align-items:center;gap:.35rem}
.blog-card .read svg{width:1em;height:1em;transition:transform var(--transition-interactive)}
.blog-card:hover .read svg{transform:translateX(3px)}
.blog-card .meta{font-size:var(--text-xs);color:var(--color-text-faint)}

/* home blog preview (smaller) */
.blog-preview .blog-card p{-webkit-line-clamp:1}

/* ===== Blog article (single post) ===== */
.post-hero{position:relative;height:clamp(260px,34vw,420px);background-size:cover;background-position:center;border-radius:0}
.post-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,44,82,.45),rgba(13,44,82,.78))}
.post-hero .inner{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(var(--space-6),5vw,var(--space-12));color:#fff;max-width:var(--content-wide);margin-inline:auto;width:100%}
.post-hero .eyebrow{color:#ffffff}
.post-hero h1{font-size:clamp(2.25rem,4.5vw,3.5rem);line-height:1.1;letter-spacing:-0.02em;font-weight:800;color:#fff;margin-top:.5rem;max-width:24ch}
.post-hero .byline{margin-top:.75rem;font-size:var(--text-sm);color:#dce7f5}
.article{max-width:var(--content-narrow);margin-inline:auto}
.article p,.article li{font-size:var(--text-base);line-height:1.55;color:var(--color-text);margin-bottom:var(--space-4);text-align:left;text-indent:0}
.article h2{font-family:var(--font-display);font-size:var(--text-xl);line-height:1.2;color:var(--navy);margin-top:var(--space-10);margin-bottom:var(--space-4)}
.article h3{font-family:var(--font-display);font-size:var(--text-lg);line-height:1.25;color:var(--color-text);margin-top:var(--space-6);margin-bottom:var(--space-3)}
.article ul{padding-left:1.3rem;margin-bottom:var(--space-4)}
.article li{margin-bottom:var(--space-2)}
.article .lead-in{font-size:var(--text-lg);line-height:1.6;color:var(--color-text-muted)}
.article .post-cta{margin-top:var(--space-10)}
.keywords-note{font-size:var(--text-xs);color:var(--color-text-faint);margin-top:var(--space-8);border-top:1px solid var(--color-border);padding-top:var(--space-4)}

/* full-bleed image divider */
.image-divider{position:relative;height:clamp(220px,32vw,380px);background-size:cover;background-position:center;border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-md)}
.image-divider::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,44,82,.78),rgba(13,44,82,.25))}
.image-divider .inner{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:center;padding:clamp(var(--space-6),5vw,var(--space-12));color:#fff;max-width:560px}
.image-divider h2{font-size:var(--text-xl);color:#fff}
.image-divider p{color:#dce7f5;margin-top:.5rem}

/* Aggressive Apply funnel — single-CTA treatment (Site v4) */
.cta-band .btn-gold.btn-lg{padding:0 2.75rem;min-height:60px;font-size:1.125rem;font-weight:700}
.cta-reassure{position:relative;margin-top:var(--space-4);color:var(--navy-300);font-size:.9375rem;letter-spacing:.01em}
@media (max-width:767px){
  .cta-band .btn-gold.btn-lg{width:100%;padding-left:1rem;padding-right:1rem}
  .cta-actions{flex-direction:column}
}

/* ===== v5 additions ===== */
/* Hero secondary text link (demoted Explore Services) */
.hero-link{display:inline-flex;align-items:center;gap:.4rem;margin-top:var(--space-4);font-family:var(--font-display);font-weight:600;font-size:var(--text-sm);color:#fff;border-bottom:2px solid var(--gold);padding-bottom:2px;transition:color var(--transition-interactive)}
.hero-link:hover{color:var(--gold)}
.hero-link svg{width:16px;height:16px}

/* Funding calculator widget */
.calc{margin-top:var(--space-12);margin-bottom:var(--space-6);background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-radius:var(--radius-lg);padding:clamp(1.4rem,3.2vw,2rem);max-width:560px}
.calc__label{display:block;font-family:var(--font-display);font-weight:600;font-size:var(--text-sm);color:#fff;margin-bottom:.65rem}
.calc__value{font-family:var(--font-display);font-weight:800;font-size:clamp(1.5rem,3vw,2rem);color:var(--gold);line-height:1.1;margin-bottom:.85rem}
.calc__range{width:100%;height:44px;-webkit-appearance:none;appearance:none;background:transparent;cursor:pointer;margin:0}
.calc__range:focus-visible{outline:3px solid var(--gold);outline-offset:4px;border-radius:var(--radius-full)}
.calc__range::-webkit-slider-runnable-track{height:8px;border-radius:var(--radius-full);background:rgba(255,255,255,.25)}
.calc__range::-moz-range-track{height:8px;border-radius:var(--radius-full);background:rgba(255,255,255,.25)}
.calc__range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:28px;height:28px;border-radius:var(--radius-full);background:var(--gold);border:3px solid #fff;box-shadow:var(--shadow-md);margin-top:-10px}
.calc__range::-moz-range-thumb{width:28px;height:28px;border-radius:var(--radius-full);background:var(--gold);border:3px solid #fff;box-shadow:var(--shadow-md)}
.calc__scale{display:flex;justify-content:space-between;font-size:.72rem;color:var(--navy-300);margin-top:.5rem}
.calc__btn{margin-top:var(--space-5);min-height:48px}
@media (max-width:980px){.calc{margin-inline:auto}}

/* Industries grid */
.industries-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-6);margin-top:var(--space-12)}
@media (max-width:980px){.industries-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.industries-grid{grid-template-columns:1fr}}
.industry-tile{display:flex;flex-direction:column;gap:.55rem;padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg);text-decoration:none;color:var(--color-text);transition:transform var(--transition-interactive),box-shadow var(--transition-interactive),border-color var(--transition-interactive)}
.industry-tile:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--gold)}
.industry-tile .icon-box{width:46px;height:46px}
.industry-tile h3{font-family:var(--font-display);font-size:var(--text-base);font-weight:700;color:var(--navy)}
.industry-tile p{font-size:var(--text-sm);color:var(--color-text-muted)}
.industry-tile .go{margin-top:auto;display:inline-flex;align-items:center;gap:.35rem;font-weight:600;font-size:.85rem;color:var(--gold-dark)}
.industry-tile .go svg{width:15px;height:15px}

/* Mid-article blog CTA */
.mid-blog-cta{margin:var(--space-12) 0;background:linear-gradient(160deg,var(--navy-900),var(--navy-800));border-radius:var(--radius-xl);padding:clamp(1.5rem,4vw,2.5rem);text-align:center;box-shadow:var(--shadow-lg)}
.mid-blog-cta__inner{max-width:46ch;margin-inline:auto}
.mid-blog-cta h3{font-family:var(--font-display);font-weight:800;font-size:clamp(1.35rem,2.5vw,1.75rem);color:#fff;line-height:1.15}
.mid-blog-cta p{color:var(--navy-300);margin-top:.65rem;font-size:var(--text-base)}
.mid-blog-cta .btn{margin-top:var(--space-5)}

/* After-hours note */
.after-hours{margin-top:var(--space-4);font-size:var(--text-sm);color:var(--color-text-muted);text-align:center}

/* === v6 polish (typography, spacing, layout fixes) === */

/* Ghost / secondary hero button — outline only, so primary CTA wins the eye */
.btn-ghost{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.55);box-shadow:none}
.btn-ghost:hover{background:rgba(255,255,255,.08);border-color:#fff;color:#fff;transform:translateY(-1px)}
.hero-secondary{margin-left:0}
@media (max-width:480px){.hero-secondary{width:100%}}

/* Hero CTA group — give primary + ghost room to breathe */
.hero-cta{margin-top:var(--space-8);margin-bottom:var(--space-2)}
.hero-cta + .btn-ghost,.hero-cta + .hero-secondary{margin-top:.25rem}

/* Field hint micro-copy under select labels */
.field-hint{font-size:var(--text-xs,.78rem);color:var(--color-text-muted);margin:.1rem 0 .4rem;line-height:1.45}

/* Footer list reset — ensure no native bullets ever leak through */
.footer ul,.footer ul li{list-style:none !important;padding-left:0;margin-left:0}
.footer ul{display:grid;gap:.55rem;line-height:1.5}
.footer ul li{line-height:1.5}
.footer ul li a{display:inline-block;line-height:1.5}

/* Readability: body paragraphs */
/* deprecated — see v7 nudges below */
.lead{line-height:1.6}

/* Left-align long paragraph blocks inside cards and feature sections */
.card p,.value-card p,.step p,.feature p,.benefit-list p,.industry-tile p{text-align:left}
.feature .reveal p{text-align:left}

/* Typographic hierarchy: section headers crisper + slightly lighter; card titles distinct */
.h-section{font-weight:600;letter-spacing:-0.015em;font-size:clamp(1.85rem,3.2vw,2.65rem)}
.value-card h3,.card h3,.step h3,.industry-tile h3{font-weight:700;letter-spacing:-0.005em}
h3{letter-spacing:-0.005em}

/* "Why businesses seek financing" — left-align body, comfortable measure */
#why-financing p,#why-financing .muted{text-align:left;line-height:1.55;max-width:68ch;margin-inline:auto;text-indent:0}

/* Brand wordmark separator spacing in header + footer */
.brand span{display:inline-flex;align-items:baseline;flex-wrap:wrap}
.brand small{margin-left:.05rem}

/* ===== v7 safe CSS nudges (audited 2026-06-10) ===== */

/* Nav link sizing — slight upsize for readability (keep vertical padding from base to preserve active-underline alignment) */
.nav-links a{font-size:0.95rem}

/* Footer link tap targets — improves mobile clickability */
.footer .footer-links a,.footer-col a{padding:.25rem 0;display:inline-block}

/* Tighter heading-to-paragraph spacing */
.h-section + p,h2 + p,h3 + p{margin-top:.75rem}

/* v11 typography overhaul: tighter, left-aligned, no first-line indents anywhere */
p{line-height:1.55;text-indent:0;text-align:left}
.muted{line-height:1.55}
.lead{line-height:1.45}
.hero p.sub{line-height:1.5;max-width:54ch}
/* Consecutive editorial/article paragraphs: small top margin instead of indent */
.editorial-body p + p,
section p.muted + p.muted,
.svc-article p + p,
.article p + p{text-indent:0;margin-top:var(--space-3)}


/* Language toggle button */
.lang-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:36px;padding:0 .75rem;border:1.5px solid var(--navy);color:var(--navy);font-family:var(--font-display);font-weight:700;font-size:.85rem;letter-spacing:.05em;border-radius:6px;text-decoration:none;transition:all .2s ease;margin-right:.5rem}
.lang-toggle:hover{background:var(--navy);color:#fff}
@media (max-width:980px){.lang-toggle{order:-1}}

/* Form error message (lead submission failures) */
.form-error{background:#fff4f4;border:1px solid #e8a3a3;color:#8a1f1f;padding:.85rem 1.1rem;border-radius:8px;font-size:.95rem;margin-bottom:1rem;line-height:1.4}

/* ============================================================
   v11 header polish + reusable utility classes
   Added 2026-06-10. Class hooks are present on the existing
   markup (.industry-tile, .field, .hero-keywords) and used
   alongside the original classes — original styles still apply.
   ============================================================ */

/* Header crowding fix — hides email link earlier so ESPAÑOL + Apply Now never wrap.
   Existing .header > .wrap.nav already uses flex space-between. */
@media (max-width: 1080px) {
  .header .nav-tel { display: none; }
}

/* "Our core solutions include …" hero keyword pill */
.core-solutions-bar {
  display: inline-block;
  padding: 6px 16px;
  background-color: #f3f4f6;
  border-radius: 20px;
  font-size: 14px;
  font-weight: 500;
  margin-top: 16px;
  margin-bottom: 32px;
  line-height: 1.5;
  color: var(--color-text);
}
@media (max-width: 640px) {
  .core-solutions-bar { display: block; }
}

/* 8-sector business grid framework — applied alongside .industries-grid / .industry-tile */
.business-sectors-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 32px;
}
.business-sector-card {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  height: 100%;
}
.business-sector-card a.explore-link,
.business-sector-card .explore-link {
  margin-top: auto;
  padding-top: 16px;
  font-weight: 600;
  text-decoration: none;
}

/* Form field wrappers — applied alongside .field */
.form-input-group {
  margin-bottom: 24px;
  text-align: left;
}
.form-input-group label {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: #374151;
  margin-bottom: 6px;
}
.form-input-group input,
.form-input-group select,
.form-input-group textarea {
  box-sizing: border-box;
  min-height: 48px;
}
/* Textarea exception — must grow taller than 48px */
.form-input-group textarea { min-height: 120px; }

/* ============================================================
   Readability: cap paragraph line length on long-form prose.
   Scoped so it does NOT collapse card/footer/hero/CTA layouts.
   ============================================================ */
article p,
.post-body p,
.legal p,
.lead,
.muted,
.section .wrap > p,
.feature p,
.disclaimer p {
  max-width: 65ch;
  margin-bottom: 1.5rem;
  text-indent: 0;
}
/* Center long-form prose that lives directly inside a centered wrap */
.section .wrap > p.lead,
.section .wrap > p.muted {
  margin-inline: auto;
}

/* Vertical consistency inside industry grid cards
   (applied alongside .industry-tile / .business-sector-card) */
.industry-card-class {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  padding: 32px;
  height: 100%;
}
.industry-card-class a,
.industry-card-class .go {
  margin-top: auto;
  padding-top: 16px;
}

/* v11: blog hero img-based version (replaces background-image, supports WebP) */
.post-hero--has-img{background:none}
.post-hero--has-img .post-hero-bg{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0;overflow:hidden}
.post-hero--has-img .post-hero-bg img{width:100%;height:100%;object-fit:cover;display:block}
.post-hero--has-img::after{z-index:1}
.post-hero--has-img .inner{z-index:2}

/* v11: Back-to-top floating button */
.alta-back-to-top{position:fixed;bottom:32px;right:32px;width:48px;height:48px;background-color:#0d2c52;color:#fff;border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(0,0,0,.15);z-index:9999;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease,transform .2s ease;transform:translateY(10px);padding:0}
.alta-back-to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0)}
.alta-back-to-top:hover{background-color:#d4a017;transform:scale(1.08)}
.alta-back-to-top:focus-visible{outline:2px solid #d4a017;outline-offset:3px}
.alta-back-to-top svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:640px){.alta-back-to-top{bottom:20px;right:20px;width:44px;height:44px}}

/* ============================================================
   v11 LAYOUT-AUDIT REFINEMENT PASS (2026-06-10)
   Premium UI/UX polish: 12-col discipline, tighter rhythm,
   equal-height cards, fixed CTA contrast, balanced two-col
   sections, button/form standardization, page-hero balance.
   Targeted CSS only — no markup changes, no content edits.
   ============================================================ */

/* --- 1. Vertical rhythm: 15-20% tighter sitewide ---------- */
:root{
  --section-pad:4rem;          /* was 5rem */
  --gap:1.75rem;               /* was 2rem  */
  --content-narrow:720px;      /* +40px reading column for 65-75ch optical fit */
}
@media (max-width:768px){
  :root{--section-pad:2.5rem;--gap:1.25rem;}
}

/* --- 2. Container alignment: unify left/right margins ----- */
.wrap{padding-inline:clamp(1rem, 3vw, 1.75rem)}
.wrap-narrow{padding-inline:clamp(1rem, 3vw, 1.75rem)}

/* --- 3. CRITICAL FIX: CTA band contrast inside articles --- */
/* When .cta-band lives inside .article or .svc-article, the
   article body color cascade made h2/p invisible on navy. */
.cta-band{color:#fff}
.cta-band h2,
.article .cta-band h2,
.svc-article .cta-band h2,
.prose .cta-band h2{color:#fff !important}
.cta-band p,
.article .cta-band p,
.svc-article .cta-band p,
.prose .cta-band p{color:#d5e1f2 !important;text-align:center}
.cta-band .cta-reassure,
.cta-band .fine-print,
.cta-band small{color:#d5e1f2}

/* --- 4. Page hero balance: consistent min-height ---------- */
.page-hero{
  min-height:300px;
  display:grid;
  place-items:center;
  padding-block:clamp(3rem,5vw,4.5rem);
}
.page-hero > .wrap{width:100%}
.page-hero p{max-width:62ch;margin-inline:auto}

/* --- 5. Heading → lead/intro spacing (tighter rhythm) ----- */
h2 + .lead,
.h-section + .lead,
h2 + p.muted,
.h-section + p.muted,
.eyebrow + h2,
.eyebrow + .h-section{margin-top:.55rem}
.eyebrow + h2,
.eyebrow + .h-section{margin-top:.4rem}

/* --- 6. Card components: tighter padding + equal heights -- */
.card,
.step,
.industry-tile,
.quote,
.value-card{
  padding:1.4rem 1.5rem;
  display:flex;
  flex-direction:column;
  height:100%;
}
.svc-detail{padding:1.4rem 1.5rem}
.card .icon-box,
.value-card .icon-box,
.step .num{flex:none}
.card h3,
.value-card h3,
.step h3,
.industry-tile h3{margin-bottom:.4rem}
.card p,
.value-card p,
.step p,
.industry-tile p{margin-bottom:0}

/* Push trailing CTA links to the bottom of cards */
.industry-tile .go,
.business-sector-card .explore-link,
.svc-detail .inquire,
.blog-card .read{margin-top:auto}

/* --- 7. Blog card: tighter body, equal heights ------------ */
.blog-card .body{padding:1.3rem 1.4rem;gap:.5rem}
.blog-card h3{font-size:1.2rem;line-height:1.3;margin-bottom:.15rem}
.blog-card .cat{margin-bottom:.15rem}
.blog-card .read{padding-top:.5rem}

/* Last-row orphan blog card: center it if alone in last row */
@media (min-width:900px){
  .blog-grid > .blog-card:last-child:nth-child(3n+1){
    grid-column:2;
  }
  .blog-grid > .blog-card:nth-child(3n+2):last-child{
    grid-column:span 2;
    max-width:none;
  }
}

/* --- 8. Steps row: equal heights, tighter padding --------- */
.step{padding:1.25rem 1.35rem}
.step h3{font-size:1.05rem;line-height:1.3;margin-bottom:.35rem}
.step p{font-size:.9rem;line-height:1.5}

/* --- 9. Two-column feature: vertical center, balanced ----- */
.feature{align-items:center;gap:clamp(2rem,4vw,3.5rem)}
.feature .feature-media img{aspect-ratio:4/3;max-height:440px}
.feature .benefit-list{margin-top:1.25rem}
.feature .benefit-list li{align-items:flex-start}

/* --- 10. Hero column rhythm ------------------------------- */
.hero-grid{padding-block:clamp(2.75rem,5vw,4rem);align-items:center}
.hero p.sub{margin-top:1rem;max-width:54ch}
.hero-cta{margin-top:1.75rem;margin-bottom:0}

/* --- 11. Forms: consistent field heights, balanced grid --- */
.form-card{padding:clamp(1.25rem,3vw,2rem)}
.field input,
.field select,
.field textarea{min-height:48px;line-height:1.4}
.field textarea{min-height:120px}
.form-grid{gap:1rem 1.25rem}
.form-card .btn-block{margin-top:.5rem}

/* --- 12. Apply page form section: tighten bottom gap ------ */
#apply .form-card + p,
#apply .form-card + .muted{margin-top:1rem}
#why-choose-alta,
.section + .section--why-choose{padding-block:clamp(2.5rem,4vw,3.5rem)}

/* --- 13. Contact page hero balance ------------------------ */
.page-hero h1{margin-bottom:.5rem}
.page-hero .eyebrow{margin-bottom:.25rem}

/* --- 14. Calculator page: balance left/right columns ------ */
.calc-grid,
.bl-calc-grid{align-items:start}
.calc-results,
.bl-calc-results{align-self:stretch;display:flex;flex-direction:column;justify-content:flex-start}

/* --- 15. Buttons: standardized heights + radii ------------ */
.btn{min-height:46px;padding:0 1.55rem}
.btn-lg{min-height:52px;padding:0 1.85rem;font-size:1.0625rem}
.cta-band .btn-gold.btn-lg{min-height:56px;padding:0 2.5rem;font-size:1.0625rem}

/* --- 16. Trust strip: tighter vertical -------------------- */
.trust-grid{padding-block:1.1rem}
.trust-item{font-size:.9rem}

/* --- 17. FAQ: hover affordance ---------------------------- */
.faq details{transition:border-color var(--transition-interactive)}
.faq summary{padding:1.1rem 1.25rem;font-size:1rem}
.faq summary:hover{background:rgba(26,77,143,.03)}
.faq details[open]{border-color:var(--navy-300)}
.faq .answer{padding:0 1.25rem 1.1rem;line-height:1.55}

/* --- 18. Flag band: tighter, better readable -------------- */
.flag-band{min-height:300px}
.flag-band::before{background:linear-gradient(180deg,rgba(13,44,82,.82),rgba(13,44,82,.65))}
.flag-band .inner{padding-block:3rem}

/* --- 19. Partners block: tighter vertical ----------------- */
.partners{padding:clamp(2rem,4vw,3rem)}
.partner-badges{gap:1rem;margin-top:1.5rem}

/* --- 20. CTA band: tighter, balanced ---------------------- */
.cta-band{padding:clamp(2rem,4vw,3rem)}
.cta-band p{margin:.5rem auto 1.25rem;max-width:54ch}
.cta-band .cta-reassure{margin-top:.85rem}

/* --- 21. Footer: keep clean, no changes ------------------- */

/* --- 22. Article / prose: cap reading width, tighten ------ */
.article,
.svc-article,
.prose{max-width:720px}
.article p,
.article li,
.svc-article p{font-size:1.0625rem;line-height:1.6}
.article h2{margin-top:2.5rem;margin-bottom:.85rem}
.article h3{margin-top:1.75rem;margin-bottom:.5rem}
.article ul{padding-left:1.15rem}
.article li{margin-bottom:.4rem}

/* --- 23. Process steps (5-col): equal heights ------------- */
.process-steps .step{display:flex;flex-direction:column}

/* --- 24. Section heading container alignment -------------- */
.section > .wrap > .eyebrow,
.section > .wrap > .h-section,
.section > .wrap > h2{display:block}
.section .center.eyebrow,
.center > .eyebrow{margin-bottom:.6rem}

/* --- 25. Industries grid: card head heights consistent ---- */
.industries-grid{gap:1.25rem}
.industry-tile h3{font-size:1.05rem;line-height:1.3}
.industry-tile p{font-size:.92rem;line-height:1.5}
.industry-tile .icon-box{margin-bottom:.85rem}

/* --- 26. Trust pills / hero pills small tuning ------------ */
.pill{padding:.45rem .75rem;font-size:.78rem}

/* --- 27. Lead paragraph: comfortable max-width ------------ */
.lead{max-width:60ch;line-height:1.5}
.center .lead,
.center > .lead{margin-inline:auto}

/* --- 28. Soft-note (form alerts) -------------------------- */
.soft-note{margin-bottom:1.25rem;padding:.75rem .95rem}

/* --- 29. Touch targets (a11y) on mobile nav --------------- */
@media (max-width:920px){
  .mobile-menu a{min-height:48px;display:flex;align-items:center}
}

/* --- 30. Focus rings: consistent across interactive ------- */
.btn:focus-visible,
.nav-links a:focus-visible,
.faq summary:focus-visible,
.lang-toggle:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:3px;
  border-radius:var(--radius-full);
}
.faq summary:focus-visible{border-radius:var(--radius-md)}

/* --- 31. Service detail meta tags spacing ----------------- */
.svc-detail .meta{gap:.4rem;margin:.6rem 0 .75rem}
.svc-detail h3{margin-bottom:.2rem}
.svc-detail .who{font-size:.9rem;line-height:1.5}
.svc-detail .inquire{padding-top:.6rem}

/* --- 32. Mid-blog CTA tighter ----------------------------- */
.mid-blog-cta{padding:clamp(1.25rem,3vw,2rem);margin:2.5rem 0}
.mid-blog-cta h3{font-size:clamp(1.2rem,2.2vw,1.55rem)}
.mid-blog-cta p{margin-top:.5rem}
.mid-blog-cta .btn{margin-top:1.1rem}

/* --- 33. Image divider tighter ---------------------------- */
.image-divider{height:clamp(200px,28vw,340px)}
.image-divider .inner{padding:clamp(1.25rem,4vw,2.5rem)}

/* --- 34. Mobile responsive polish ------------------------- */
@media (max-width:640px){
  .hero-grid{gap:2rem;padding-block:2.5rem}
  .hero h1{font-size:clamp(2rem,8vw,2.5rem)}
  .page-hero{min-height:240px;padding-block:2.5rem}
  .page-hero h1{font-size:clamp(1.85rem,7vw,2.4rem)}
  .feature{gap:1.75rem}
  .card,.step,.industry-tile,.value-card,.svc-detail,.quote{padding:1.15rem 1.25rem}
  .form-card{padding:1.25rem 1.1rem}
  .cta-band{padding:1.75rem 1.25rem}
  .cta-band h2{font-size:1.45rem;line-height:1.2}
  h2,.h-section{font-size:clamp(1.55rem,6.5vw,2rem)}
  .partners{padding:1.75rem 1.25rem}
  .flag-band .inner{padding-block:2rem}
}

/* --- 35. Specific override: Apply success state ----------- */
.form-success{padding:2rem 1rem}
.form-success h3{font-size:1.35rem;margin-bottom:.5rem}

/* --- 36. h-section: tighter scale, less dominant ---------- */
.h-section{font-size:clamp(1.6rem,2.8vw,2.25rem);font-weight:700}

/* --- 37. Section header eyebrow alignment ----------------- */
.center .eyebrow{justify-content:center;display:inline-flex}

/* --- 38. Footer disclaimer rhythm ------------------------- */
.footer-disclaimer{margin-top:2rem;padding-top:1.5rem;line-height:1.65}

/* --- 39. Service article — process section align --------- */
.svc-article + .process-section,
.process-section{padding-block:2.5rem 1rem}

/* --- 40. Calculator: tighter results card padding --------- */
.bl-calc-results,
.calc-results{padding:1.5rem}


/* ============================================================
   v12 LAYOUT CLEANUP PASS (2026-06-10)
   Per-request: unified container 1200px, section 72/48px,
   text widths 650-720 / 760-850 centered, tighter cards,
   balanced two-col, body line-height 1.45-1.6.
   No color/font/copy/nav/SEO changes.
   ============================================================ */

/* --- v12.1 Container: one consistent system sitewide -------- */
.wrap{
  width:100%;
  max-width:1200px;
  margin-left:auto;
  margin-right:auto;
  padding-left:clamp(1.25rem, 4vw, 2rem);
  padding-right:clamp(1.25rem, 4vw, 2rem);
}
.wrap-narrow{
  width:100%;
  max-width:880px;
  margin-left:auto;
  margin-right:auto;
  padding-left:clamp(1.25rem, 4vw, 2rem);
  padding-right:clamp(1.25rem, 4vw, 2rem);
}

/* --- v12.2 Section padding: 72/72 desktop, 48/48 mobile ----- */
:root{
  --section-pad:4.5rem;     /* 72px */
  --section-pad-hero:5.5rem;/* 88px hero ceiling */
  --gap:1.5rem;
}
section, .section{
  padding-top:var(--section-pad);
  padding-bottom:var(--section-pad);
}
.hero, .page-hero, .section-hero{
  padding-top:var(--section-pad-hero);
  padding-bottom:var(--section-pad-hero);
}
@media (max-width:768px){
  :root{
    --section-pad:3rem;        /* 48px */
    --section-pad-hero:3.25rem;/* 52px */
    --gap:1.15rem;
  }
}

/* --- v12.3 Text width caps (no full-page paragraphs) -------- */
p, li{ line-height:1.55 }
.section p:not(.muted):not(.eyebrow):not(.lead):not(.fine-print){
  max-width:68ch; /* ~680px at default body size */
}
.lead{
  max-width:800px;
  line-height:1.5;
}
.center .lead,
.center > .lead,
.section.center .lead{
  margin-left:auto;
  margin-right:auto;
  max-width:800px;
}
/* center paragraphs that sit under a centered heading */
.center > p,
.section.center > .wrap > p,
.section .center > p{
  margin-left:auto;
  margin-right:auto;
}

/* Hero sub copy a bit wider for impact, still capped */
.hero p.sub{ max-width:560px; line-height:1.5 }
.page-hero p{ max-width:60ch; line-height:1.55 }

/* --- v12.4 Cards: tighter padding, no forced min-height ----- */
.card, .step, .industry-tile, .value-card, .quote, .svc-detail, .blog-card{
  min-height:0 !important;
}
.card,
.value-card,
.industry-tile,
.quote,
.svc-detail{
  padding:1.15rem 1.25rem;
}
.step{ padding:1.1rem 1.15rem }
.blog-card .body{ padding:1.1rem 1.2rem; gap:.45rem }

/* Vertically balance icon → heading → text → CTA inside cards */
.card, .value-card, .industry-tile, .svc-detail, .blog-card{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  height:100%;
}
.card .icon-box,
.value-card .icon-box,
.industry-tile .icon-box{
  margin-bottom:.65rem;
}
.industry-tile .go,
.business-sector-card .explore-link,
.svc-detail .inquire,
.blog-card .read,
.card .learn-more{
  margin-top:auto;
}

/* --- v12.5 Two-column sections: vertically centered --------- */
.feature,
.split,
.two-col,
.hero-grid{
  align-items:center;
  gap:clamp(2.5rem, 5vw, 4rem); /* 48-72px */
}
.feature .feature-media,
.split .col-media,
.two-col .col-media{ align-self:center }
.feature .feature-copy,
.split .col-copy,
.two-col .col-copy{ align-self:center }

/* --- v12.6 Typography rhythm: tighter heading margins ------- */
h1{ line-height:1.15 }
h2, .h-section{ line-height:1.2; margin-bottom:.6rem }
h3{ line-height:1.25; margin-bottom:.4rem }
.eyebrow{ margin-bottom:.5rem }
h2 + p, .h-section + p, h3 + p{ margin-top:.35rem }

/* --- v12.7 Centered section alignment consistency ----------- */
.section.center,
.section .center{
  text-align:center;
}
.section.center .btn-row,
.section .center .btn-row{
  justify-content:center;
}
/* If a section heading is centered, ensure descendants align */
.section.center > .wrap > *,
.center-block{
  margin-left:auto;
  margin-right:auto;
}

/* --- v12.8 Section + section gap clean-up ------------------- */
.section + .section{ padding-top:var(--section-pad) }
section + section{ padding-top:var(--section-pad) }

/* --- v12.9 Mobile: tighter padding, no large gaps ----------- */
@media (max-width:640px){
  section, .section{
    padding-top:3rem;
    padding-bottom:3rem;
  }
  .hero, .page-hero, .section-hero{
    padding-top:3.25rem;
    padding-bottom:3.25rem;
  }
  .card, .value-card, .industry-tile, .svc-detail, .quote, .step{
    padding:1rem 1.1rem;
  }
  .blog-card .body{ padding:1rem 1.1rem }
  .feature, .split, .two-col, .hero-grid{ gap:1.75rem }
  .lead{ line-height:1.5 }
}

/* --- v12.10 Article reading width matches body system ------- */
.article, .svc-article, .prose{
  max-width:720px;
}
.article p, .article li, .svc-article p, .prose p{
  line-height:1.6;
}

/* --- v12.11 Remove stray min-heights on hero rows ----------- */
.hero-grid{ min-height:0 }
.page-hero{ min-height:0 }

/* End v12 */

/* ============================================================
   v13 HOMEPAGE-ONLY REFINEMENT (2026-06-10)
   Scoped to body.home — affects index only. No design/copy
   changes. Tightens hero, values, why, industries, apply, blog.
   ============================================================ */

/* --- v13.1 HERO: vertical-center columns, less height ------- */
body.home .hero{ padding-top:3rem; padding-bottom:3rem }
body.home .hero-grid{
  align-items:center;
  gap:clamp(2rem, 5vw, 4rem);
  min-height:0;
  padding-block:0;
}
body.home .hero-grid > div:first-child{ align-self:center }
body.home .hero-grid .hero-media{ align-self:center }
body.home .hero h1{ margin-top:.25rem }
body.home .hero p.sub{ margin-top:.9rem; max-width:54ch }

/* HERO CTAs: align + even spacing */
body.home .hero .hero-cta{
  margin-top:1.5rem;
  margin-bottom:0;
  display:flex;
  flex-wrap:wrap;
  gap:.85rem;
  align-items:center;
}
body.home .hero .hero-secondary{
  margin-top:.85rem;
  display:inline-flex;
  align-items:center;
}
@media (min-width:640px){
  body.home .hero-cta + .hero-secondary{ margin-top:.85rem }
}

/* --- v13.2 VALUES: tighter 4-card grid, equal height -------- */
body.home #values{ padding-top:3.5rem; padding-bottom:3.5rem }
body.home #values .mt-12{ margin-top:1.75rem !important }
body.home #values .value-card{
  padding:1.1rem 1.15rem;
  min-height:0;
  display:flex;
  flex-direction:column;
  gap:.45rem;
  text-align:center;
  align-items:center;
  height:100%;
}
body.home #values .value-card .icon-box{
  margin:0 auto .35rem;
}
body.home #values .value-card h3{
  margin:0;
  font-size:1.05rem;
  line-height:1.25;
}
body.home #values .value-card p{
  margin:0;
  font-size:.92rem;
  line-height:1.5;
  max-width:30ch;
}
body.home #values .lead{ max-width:780px }

/* --- v13.3 INDUSTRIES: 20% shorter cards, tight, intro <=800 - */
body.home #industries{ padding-top:3.5rem; padding-bottom:3.5rem }
body.home #industries .lead{
  max-width:800px;
  margin-inline:auto;
  line-height:1.55;
}
body.home #industries .industries-grid{
  margin-top:1.75rem;
  gap:1rem;
}
body.home .industry-tile{
  padding:1rem 1.1rem;
  min-height:0;
  display:flex;
  flex-direction:column;
  gap:.4rem;
  height:100%;
}
body.home .industry-tile .icon-box{
  margin-bottom:.45rem;
}
body.home .industry-tile h3{
  margin:0;
  font-size:1rem;
  line-height:1.25;
}
body.home .industry-tile p{
  margin:0;
  font-size:.88rem;
  line-height:1.5;
}
body.home .industry-tile .go,
body.home .industry-tile .explore-link{
  margin-top:auto;
  padding-top:.5rem;
  font-size:.88rem;
}

/* --- v13.4 WHY (Funding that fits): vertical-center, tight -- */
body.home #why{ padding-top:3.5rem; padding-bottom:3.5rem }
body.home #why .feature{
  align-items:center;
  gap:clamp(2.5rem, 5vw, 3.5rem);
}
body.home #why .feature-media,
body.home #why .feature-media img{ align-self:center }
body.home #why .h-section{
  font-size:clamp(1.5rem, 2.6vw, 2rem);
  line-height:1.2;
  margin-bottom:.5rem;
}
body.home #why .muted{
  margin-top:.5rem;
  max-width:60ch;
  line-height:1.55;
}
body.home #why .benefit-list{
  margin-top:1.1rem;
  display:flex;
  flex-direction:column;
  gap:.7rem;
}
body.home #why .benefit-list li{
  margin:0;
  align-items:flex-start;
  line-height:1.45;
}
body.home #why .benefit-list li b{ display:block; margin-bottom:.1rem }
body.home #why .benefit-list li p{ margin:.1rem 0 0; line-height:1.5; font-size:.94rem }

/* --- v13.5 APPLY: centered form, tight whitespace ----------- */
body.home #apply{ padding-top:3rem; padding-bottom:3rem }
body.home #apply > .wrap{
  max-width:780px;
  margin-inline:auto;
}
body.home #apply .form-card{
  margin-top:1.5rem !important;
  padding:clamp(1.25rem, 3vw, 1.75rem);
}
body.home #apply .form-grid{ gap:.85rem 1rem }
body.home #apply .field{ margin-bottom:0 }
body.home #apply .field label{ margin-bottom:.3rem; display:block }
body.home #apply .lead{ max-width:560px; margin-inline:auto }

/* --- v13.6 BLOG: equal images, tight cards ------------------ */
body.home #blog-preview{ padding-top:3.5rem; padding-bottom:3.5rem }
body.home #blog-preview .mt-12{ margin-top:1.75rem !important }
body.home #blog-preview .blog-grid{ gap:1.25rem }
body.home #blog-preview .blog-card{
  display:flex;
  flex-direction:column;
  min-height:0;
  height:100%;
}
body.home #blog-preview .blog-card img,
body.home #blog-preview .blog-card .thumb img,
body.home #blog-preview .blog-card picture img{
  aspect-ratio:16/10;
  width:100%;
  object-fit:cover;
  display:block;
}
body.home #blog-preview .blog-card .body{
  padding:1rem 1.15rem;
  gap:.4rem;
  display:flex;
  flex-direction:column;
  flex:1;
}
body.home #blog-preview .blog-card h3{
  font-size:1.08rem;
  line-height:1.3;
  margin:0;
}
body.home #blog-preview .blog-card p{
  font-size:.92rem;
  line-height:1.5;
  margin:0;
}
body.home #blog-preview .blog-card .cat{ margin:0 }
body.home #blog-preview .blog-card .read{
  margin-top:auto;
  padding-top:.6rem;
  font-size:.9rem;
}

/* --- v13.7 Mobile homepage polish --------------------------- */
@media (max-width:640px){
  body.home .hero{ padding-top:2.25rem; padding-bottom:2.25rem }
  body.home .hero-grid{ gap:1.5rem }
  body.home .hero .hero-cta{ gap:.65rem }
  body.home #values,
  body.home #industries,
  body.home #why,
  body.home #blog-preview{ padding-top:2.5rem; padding-bottom:2.5rem }
  body.home #apply{ padding-top:2.25rem; padding-bottom:2.25rem }
  body.home #values .value-card,
  body.home .industry-tile{ padding:.95rem 1rem }
  body.home #why .benefit-list{ gap:.55rem }
  body.home #blog-preview .blog-card .body{ padding:.9rem 1rem }
}

/* End v13 */

/* --- v22: services card alignment ----------------------------
   Push the "Learn More" link to the bottom of each .svc-detail card
   so all cards in a row align even when copy lengths differ. The
   inner content <div> (sibling of .icon-box) is currently a block
   element, so the existing `.svc-detail .inquire { margin-top:auto }`
   has no flex container to anchor against. We make that inner div a
   vertical flex container that fills remaining space, which lets the
   .inquire link float to the bottom.                                */
.svc-detail > div:not(.icon-box){
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  min-width:0;
}
.svc-detail > div:not(.icon-box) > .inquire{
  margin-top:auto;
}
/* End v22 */

/* === v24 QA FIXES (2026-06-10) =================================
   Scoped bug fixes only — no design changes.
   1. Mobile header overflow: hide brand tagline at narrow widths
      so .nav-actions (hamburger, lang toggle) fits on 390px viewport.
      Bug: at 390px the brand+tagline measured 337px wide, pushing
      .nav-actions off-screen (right=447px on EN, 555px on ES).
   =================================================================== */
@media (max-width:640px){
  .header .brand small{display:none}
  .header .brand span{font-size:.95rem}
  .header .brand .logo{width:32px;height:32px}
  .header .nav-actions{gap:.4rem;flex:none}
  .header .lang-toggle{margin-right:0;padding:0 .5rem;min-width:auto;font-size:.78rem}
  /* Defensive: prevent sub-pixel horizontal scroll from rounding */
  html,body{overflow-x:clip}
}
/* End v24 */

/* === v25 QA FIXES (2026-06-10) =================================
   Scoped bug fixes only — no design changes.
   1. .read svg oversized on partner-services page: the existing
      .blog-card .read svg sizing rules only apply inside blog cards.
      On partner-services .read links live inside .feature cards and
      had no width/height attributes, so the SVG expanded to fill the
      anchor (321x321px). Add a generic fallback so any .read svg is
      inline-sized regardless of ancestor.
   =================================================================== */
.read svg{width:1em;height:1em;flex:none;transition:transform var(--transition-interactive)}
.read:hover svg{transform:translateX(3px)}
/* End v25 */

/* === v26 SUBPAGE ALIGNMENT AUDIT (2026-06-10) ====================
   Scoped to subpages only — homepage (body.home) untouched.
   Goals (per user spec):
   - Use the homepage as the visual baseline.
   - Same max-width + consistent L/R margins across subpages.
   - Hero sections aligned to the same grid as homepage sections.
   - Intro paragraphs 750–850px; body 650–720px.
   - Reduce vertical whitespace by ~15%.
   - Equal-height card grids.
   - Consistent CTA + form alignment.
   - Mobile stacking stays clean.
   ================================================================ */

/* 1) Reduce hero + section vertical padding ~15% on subpages only.
   72px → 60px sections; 88px → 64px hero. Mobile values inherit from
   the existing @media (max-width:768px) block, which already drops
   --section-pad to 3rem (48px) — leave that alone. */
body:not(.home) section,
body:not(.home) .section{padding-block:3.75rem}
body:not(.home) .page-hero,
body:not(.home) .section-hero{padding-block:4rem}

/* 2) Intro paragraph width: subpage hero copy + standalone leads land
   in the 750–850px range. Centered to inherit hero alignment. */
body:not(.home) .page-hero p,
body:not(.home) .section-hero p,
body:not(.home) .page-hero .lead,
body:not(.home) .section-hero .lead{max-width:800px}

/* 3) Body copy width: keep readable line length 650–720px on subpages.
   Existing .section p rule uses 68ch (~680px) — reinforce numerically
   to neutralize any page-specific overrides. */
body:not(.home) .section p:not(.eyebrow):not(.fine-print):not(.lead):not(.muted){max-width:680px}

/* 4) Equal-height card grids on subpages. Fixes the partner-services
   row mismatch (268/239) and stabilizes service/industry/state grids. */
body:not(.home) .grid.grid-2,
body:not(.home) .grid.grid-3,
body:not(.home) .grid.grid-4{grid-auto-rows:1fr}
body:not(.home) .grid > *{display:flex;flex-direction:column}
body:not(.home) .grid > * > .read,
body:not(.home) .grid > * > .btn{margin-top:auto}

/* 5) Cap blog-post intro paragraphs (article first-of-type was
   uncapped at ~1144px). Stays within the 750–850px intro rule. */
body:not(.home) article > p:first-of-type,
body:not(.home) .post-hero p,
body:not(.home) .post-body > p:first-of-type{max-width:800px}

/* 6) Calculator intro: existing rule allowed 900px — pull back to 800px
   so it matches the rest of the subpage system. */
body:not(.home) .calculator-intro,
body:not(.home) .calc-intro,
body:not(.home) .page-hero p.lead{max-width:800px}

/* 7) Consistent CTA alignment inside hero blocks. */
body:not(.home) .page-hero .cta-row,
body:not(.home) .section-hero .cta-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}

/* 8) Form field alignment on Apply + Contact: ensure inputs span the
   form column cleanly and labels share a consistent gap. */
body:not(.home) form .field,
body:not(.home) form .form-row{display:flex;flex-direction:column;gap:.4rem}
body:not(.home) form input,
body:not(.home) form select,
body:not(.home) form textarea{width:100%}

/* 9) Mobile: tighten subpage hero/section padding a touch more so the
   stack doesn't open large vertical gaps on phones. */
@media (max-width:768px){
  body:not(.home) section,
  body:not(.home) .section{padding-block:2.5rem}
  body:not(.home) .page-hero,
  body:not(.home) .section-hero{padding-block:2.75rem}
  body:not(.home) .grid.grid-2,
  body:not(.home) .grid.grid-3,
  body:not(.home) .grid.grid-4{grid-auto-rows:auto}
}
/* End v26 */

/* === v27 QA HOTFIX (2026-06-10) =================================
   Bug: On Spanish pages at desktop widths 1080–1400px, the longer
   Spanish nav labels ("Acerca de Nosotros", "Solicitar Ahora") +
   email link (.nav-tel) push .nav-actions ~200px past the .wrap
   right edge, causing horizontal overflow.
   The existing rule hides .nav-tel ≤ 1080px (sized for English).
   Spanish needs the same protection up to ~1400px.
   No design change — just raises the breakpoint for ES only.
   =================================================================== */
@media (max-width: 1400px){
  html[lang="es"] .header .nav-tel{display:none}
}
/* End v27 */
