/* ============================================================
   GLOBAL OVERRIDES & UNIVERSAL FIXES
   ============================================================ */

/* ── Text alignment ── */
p, .ph-sub, .hero-sub, .sec p, .partner-card-desc, .pcard-desc,
.pd-desc, .ss-lead, .area-card p, .service-card p, .qm-intro,
.footer-desc, .cr-desc, .cr-role-desc, .pp-lead, .pp-intro-card p,
.pp-app p, .pp-product p, .tm-sc-desc, .tm-desc, .category-desc,
.pf-card p, .svc-page p, .abt-page p, .ax-page p, .di-intro,
.di-pillar p, .di-arch-copy p, .di-app p, .di-faq-body p,
.area-card p, .platform-card p, .solution-card p, .support-item span,
.architecture-step ul li, .svc-service-card p, .svc-app-card p,
.svc-value-card p, .svc-head-copy, .svc-cta-copy, .svc-faq-answer {
  text-align:left;
}

/* ── Remove arrows globally ── */
.cat-card-arrow::after,
.pf-card .pf-link:after,
.tm-sc-enquire::after,
span[aria-hidden="true"],
i[aria-hidden="true"],
.text-link::after,
.card-link::after,
.ax-text-link:after,
.btn::after,
.cr-btn::after { 
  content: '' !important;
  display: none !important;
}

/* ── Orange card borders — universal ── */
.partner-card, .pcard, .tm20-card, .scope-card, .area-card,
.product-link-card, .pf-card, .service-card, .sol-card,
.pp-product, .pp-app, .pp-intro-card, .ss-cap-card, .ss-app,
.ss-consider, .ss-related, .hww-card, .uc-card, .cr-role-card,
.adjacent-card, .di-pillar, .di-product-card, .di-app, .di-check,
.platform-card, .solution-card, .architecture-step, .support-item,
.svc-service-card, .svc-app-card, .svc-value-card, .svc-tech-group,
.svc-scope-main, .svc-scope-aside, .ss-tech-row, .abt-office-card,
.area-card {
  border:1px solid rgba(26,53,87,.14) !important;
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
}

.partner-card:hover, .pcard:hover, .area-card:hover, .platform-card:hover,
.solution-card:hover, .pp-product:hover, .pp-app:hover,
.ss-cap-card:hover, .ss-tech-row:hover, .di-pillar:hover,
.di-product-card:hover, .di-app:hover, .svc-service-card:hover,
.svc-app-card:hover, .svc-value-card:hover, .abt-office-card:hover {
  border-color: #E5551A !important;
  box-shadow: 0 6px 20px rgba(229, 85, 26, 0.10);
  transform: translateY(-2px);
}

/* ── Explore / View Products / View Solutions buttons ── */
.btn-explore, a.btn-explore,
.pcard-explore, .pcard-foot .pcard-explore {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 9px 20px !important;
  background: var(--o2) !important;
  color: #fff !important;
  border: 1.5px solid var(--o2) !important;
  border-radius: 8px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  transition: background 0.15s !important;
}
.btn-explore:hover, .pcard:hover .pcard-explore {
  background: var(--o1) !important;
  color: #fff !important;
}

/* ── Technology layers as cards ── */
.ss-tech-table {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)) !important;
  gap: 20px !important;
  border: none !important;
  border-collapse: unset !important;
}
.ss-tech-row {
  display: flex !important;
  flex-direction: column !important;
  background: #fff !important;
  border:1px solid rgba(26,53,87,.14) !important;
  border-radius: 12px !important;
  padding: 22px !important;
  gap: 8px !important;
}
.ss-tech-row h3 { display: block !important; padding: 0 0 8px !important; font-size: 15px !important; font-weight: 700 !important; color: #1A3557 !important; border-bottom: 1px solid rgba(229,85,26,.15) !important; margin: 0 !important; }
.ss-tech-row p { display: block !important; font-size: 13px !important; color: #5A7494 !important; line-height: 1.65 !important; margin: 0 !important; }
.ss-tech-row span { display: block !important; font-size: 11.5px !important; color: #E5551A !important; font-weight: 600 !important; font-style: italic !important; margin-top: auto !important; }

/* ── Section spacing ── */
.sec, .pf-section, .ss-section, .pp-section,
.svc-page .svc-section, .di-section {
  padding-top: 56px !important;
  padding-bottom: 56px !important;
}

/* ── Font consistency ── */
body, .partner-page, .svc-page, .abt-page, .ax-page {
  font-family: var(--f-body) !important;
}

/* Legacy long CTA blocks are replaced by the compact site CTA. */
.cta-sec, section.cta-sec, .pp-cta { display:none !important; }

/* ── Careers page: remove bottom section ── */
.cr-bottom-grid { display: none !important; }

/* ── Partner page buttons ── */
.pp-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  padding: 0 20px !important;
  border-radius: 8px !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  text-decoration: none !important;
  transition: all 0.2s !important;
  border: 1.5px solid transparent !important;
}
.pp-btn-primary { background: #E5551A !important; color: #fff !important; }
.pp-btn-primary:hover { background: #C8420F !important; transform: translateY(-1px) !important; }
.pp-btn-light { background: #fff !important; color: #1A3557 !important; border-color: #dfe5eb !important; }
.pp-btn-outline { border-color: rgba(255,255,255,0.4) !important; color: #fff !important; background: rgba(255,255,255,0.06) !important; }

/* ── nav-academix: plain nav link style (no orange box) ── */
/* nav-academix class removed from shared.js - AcademiX is now standalone plain link */

/* ── Services page text visibility ── */
.svc-page .svc-service-card, .svc-page .svc-app-card,
.svc-page .svc-value-card, .svc-page .svc-scope-main,
.svc-page .svc-scope-aside, .svc-page .svc-tech-group { color: #12283f !important; }
.svc-page .svc-service-card h3, .svc-page .svc-app-card h3,
.svc-page .svc-value-card h3, .svc-page .svc-scope-main h3,
.svc-page .svc-scope-aside h3 { color: #0f2238 !important; }
.svc-page .svc-service-card p, .svc-page .svc-app-card p,
.svc-page .svc-value-card p, .svc-page .svc-scope-main p,
.svc-page .svc-scope-aside p { color: #607891 !important; }
.svc-page .svc-section-dark, .svc-page .svc-section-dark h2,
.svc-page .svc-section-dark h3, .svc-page .svc-step h3 { color: #fff !important; }

/* ── Google Analytics note: loaded via shared.js ── */

/* ============================================================
   FOOTER — Correct multi-column grid layout
   ============================================================ */

.footer {
  background: var(--n0);
  color: var(--di2);
  border-top: 3px solid var(--o2);
  font-family: var(--f-body);
}

.footer > .rail {
  max-width: min(1360px, 100% - 64px);
  margin: 0 auto;
  padding: 0 32px;
}

.footer-grid {
  display: grid;
  grid-template-columns: 220px 1fr 1fr 1fr 1fr;
  gap: 40px;
  padding: 56px 0 48px;
  border-bottom: 1px solid var(--lni);
  align-items: start;
}

.footer-col { display: flex; flex-direction: column; }

.footer-brand-name {
  font-family: var(--f-head);
  font-size: 20px;
  font-weight: 800;
  color: var(--white);
  letter-spacing: -.02em;
  margin-bottom: 3px;
}
.footer-brand-name em { font-style: normal; color: var(--o3); }

.footer-tagline {
  font-family: var(--f-mono);
  font-size: 8px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--di3);
  margin-bottom: 12px;
}

.footer-desc {
  font-size: 13px;
  color: var(--di3);
  line-height: 1.65;
  margin-bottom: 16px;
}

.footer-socials { display: flex; gap: 8px; margin-bottom: 14px; }

.fsb {
  width: 34px; height: 34px;
  border-radius: 7px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.08);
  transition: background .15s;
  color: var(--di1);
  text-decoration: none;
}
.fsb:hover { background: rgba(255,255,255,.16); }

.footer-offices { display: flex; flex-direction: column; gap: 3px; margin-bottom: 0; }
.footer-office {
  font-family: var(--f-mono);
  font-size: 8.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--di3);
  line-height: 1.5;
}

.footer-linkedin-btn {
  display: inline-block;
  padding: 9px 16px;
  background: var(--o2);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  border-radius: 6px;
  text-decoration: none;
  transition: background .15s;
  margin-top: 6px;
}
.footer-linkedin-btn:hover { background: var(--o1); }

.footer-col-head {
  font-family: var(--f-mono);
  font-size: 8.5px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--di3);
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--lni);
}

.footer-links { display: flex; flex-direction: column; gap: 0; }

.footer-link {
  font-size: 13px;
  color: var(--di3);
  padding: 5px 0;
  transition: color .12s;
  text-decoration: none;
}
.footer-link:hover { color: var(--di1); }
.footer-link.hl { color: var(--o3); }

.footer-btm {
  padding: 20px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
}

.footer-copy {
  font-family: var(--f-mono);
  font-size: 9px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--di3);
}

.footer-legal { display: flex; gap: 20px; align-items: center; }
.footer-legal a {
  font-size: 12px;
  color: var(--di3);
  transition: color .12s;
  text-decoration: none;
}
.footer-legal a:hover { color: var(--di1); }
.footer-legal button {
  font-size: 12px;
  color: var(--di3);
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--f-body);
  padding: 0;
}

/* ============================================================
   RESPONSIVE — Full breakpoint coverage
   ============================================================ */

/* Large desktop 1361px+ */
@media (min-width: 1361px) {
  .footer-grid { grid-template-columns: 240px 1fr 1fr 1fr 1fr; gap: 48px; }
}

/* Standard desktop 1101-1360px */
@media (min-width: 1101px) and (max-width: 1360px) {
  .footer-grid { grid-template-columns: 200px 1fr 1fr 1fr 1fr; gap: 32px; }
}

/* Tablet landscape 769-1100px: 3 columns */
@media (min-width: 769px) and (max-width: 1100px) {
  .footer > .rail { padding: 0 24px; }
  .footer-grid { grid-template-columns: 1fr 1fr 1fr; gap: 28px; padding: 40px 0 32px; }
  .footer-col--brand { grid-column: 1 / -1; }
  .footer-col--brand .footer-offices { columns: 2; gap: 16px; }
  .partner-card-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .pp-app-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .ss-tech-table { grid-template-columns: repeat(2, 1fr) !important; }
}

/* Tablet portrait 481-768px: 2 columns */
@media (max-width: 768px) {
  .footer > .rail { padding: 0 20px; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 24px; padding: 32px 0 24px; }
  .footer-col--brand { grid-column: 1 / -1; }
  .ss-tech-table { grid-template-columns: 1fr !important; }
  .partner-card-grid { grid-template-columns: 1fr !important; }
  .pp-app-grid, .pp-portfolio { grid-template-columns: 1fr !important; }
  .pp-hero h1 { font-size: clamp(32px, 8vw, 52px) !important; }
  .ss-cap-grid { grid-template-columns: 1fr !important; }
  .pf-grid { grid-template-columns: 1fr !important; }
}

/* Mobile max 480px: single column */
@media (max-width: 480px) {
  .footer > .rail { padding: 0 16px; }
  .footer-grid { grid-template-columns: 1fr; gap: 20px; padding: 28px 0 20px; }
  .footer-col--brand .footer-offices { columns: 1; }
  .footer-linkedin-btn { width: 100%; text-align: center; }
  .sec, .pp-section, .ss-section, .di-section, .svc-page .svc-section {
    padding-top: 40px !important; padding-bottom: 40px !important;
  }
  .pp-rail { width: calc(100% - 32px) !important; }
  .industry-grid { grid-template-columns: 1fr; }
}

/* Hero alignment: always left */
.tm20-hero-inner {
  display: flex !important; flex-direction: column !important;
  align-items: flex-start !important; text-align: left;
}
.ph-title, .ph-sub, .ph-label, .ph-crumb, .ph-actions,
.tm20-hero-h1, .tm20-hero-eyebrow, .tm20-hero-desc { text-align: left !important; }

/* Partner card grid: consistent */
.partner-card-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
  gap: 20px !important; margin-top: 20px !important;
}
.partner-card-footer { padding: 14px 20px; border-top: 1px solid rgba(229,85,26,.12); text-align: right; }
.partner-card-footer:empty { display: none; }

/* Hero alignment: always left */
.tm20-hero-inner {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  text-align: left;
}
.ph-title, .ph-sub, .ph-label, .ph-crumb, .ph-actions,
.tm20-hero-h1, .tm20-hero-eyebrow, .tm20-hero-desc { text-align: left !important; }

/* Partner card footer alignment */
.partner-card-footer { padding: 16px 22px; border-top: 1px solid rgba(229, 85, 26, 0.12); text-align: right; }
.partner-card-footer:empty { display: none; }

/* Partner card grid: consistent */
.partner-card-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
  gap: 20px !important;
  margin-top: 20px !important;
}

/* ============================================================
   HOMEPAGE — Featured Products & New to Primionics grids
   ============================================================ */
/* 2 rows of 4 on desktop, responsive on smaller screens */
@media (max-width: 1100px) {
  .section.products [style*="grid-template-columns:repeat(4,1fr)"] {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 600px) {
  .section.products [style*="grid-template-columns:repeat(4,1fr)"] {
    grid-template-columns: 1fr !important;
  }
}

/* AcademiX card alignment fix */
.academix-box {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  align-items: stretch !important;
  min-height: 360px;
}
@media (max-width: 900px) {
  .academix-box { grid-template-columns: 1fr !important; }
  .academix-image { min-height: 240px; }
}

/* TM20 card grid responsive */
.tm20-grid, [class*="tm20"] .grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
@media (max-width: 1100px) {
  .tm20-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .tm20-grid { grid-template-columns: 1fr; }
}


/* ============================================================
   DEPLOYMENT CORRECTIONS — navigation, compact CTA and cards
   ============================================================ */
html, body { max-width:100%; }

/* Neutral default card language; orange is reserved for accents and hover. */
.partner-card, .pcard, .tm20-card, .scope-card, .area-card,
.product-link-card, .pf-card, .service-card, .sol-card,
.pp-product, .pp-app, .pp-intro-card, .ss-cap-card, .ss-app,
.ss-consider, .ss-related, .hww-card, .uc-card, .cr-role-card,
.adjacent-card, .di-pillar, .di-product-card, .di-app, .di-check,
.platform-card, .solution-card, .architecture-step, .support-item,
.svc-service-card, .svc-app-card, .svc-value-card, .svc-tech-group,
.svc-scope-main, .svc-scope-aside, .ss-tech-row, .abt-office-card {
  border:1px solid rgba(26,53,87,.14) !important;
}

.site-cta {
  background:linear-gradient(120deg,#0f2238,#173b5e);
  border-top:3px solid var(--o2);
  color:#fff;
  padding:34px 0;
}
.site-cta__inner {
  width:var(--rail);
  margin-inline:auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:32px;
}
.site-cta__eyebrow {
  display:block;
  margin-bottom:6px;
  color:#f7a37e;
  font-family:var(--f-mono);
  font-size:9px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.site-cta h2 {
  margin:0 0 6px;
  color:#fff;
  font-family:var(--f-head);
  font-size:clamp(22px,3vw,32px);
  line-height:1.16;
}
.site-cta p {
  max-width:760px;
  margin:0;
  color:#b9cad9;
  font-size:13.5px;
  line-height:1.65;
  text-align:left;
}
.site-cta__actions { display:flex; flex-wrap:wrap; gap:10px; justify-content:flex-end; }
.site-cta__actions .btn { min-height:44px; justify-content:center; }

@media (max-width:768px) {
  .nav-inner {
    width:100%;
    max-width:100%;
    padding-inline:16px;
    gap:8px;
  }
  .nav-logo {
    min-width:0;
    flex:1 1 auto;
    margin-right:0;
    overflow:hidden;
  }
  .nav-logo > div:last-child { min-width:0; }
  .nav-logo-name { white-space:nowrap; }
  .nav-logo-sub { display:none; }
  .nav-right {
    flex:0 0 auto;
    margin-left:0;
    padding-left:0;
    gap:6px;
  }
  .nav-right .btn-orange { display:none; }
  .nav-mob-btn {
    display:flex;
    flex:0 0 40px;
    width:40px;
    height:40px;
    align-items:center;
    justify-content:center;
  }
  .site-cta__inner { grid-template-columns:1fr; width:min(100% - 32px,1360px); gap:20px; }
  .site-cta__actions { justify-content:flex-start; }
}
@media (max-width:480px) {
  .site-cta { padding:28px 0; }
  .site-cta__actions { display:grid; grid-template-columns:1fr; }
  .site-cta__actions .btn { width:100%; }
}

.nav-mega--products { width:1180px; }
.mega-inner--five { grid-template-columns:repeat(5,minmax(0,1fr)); }
.mega-item--all { color:var(--o2); font-weight:600; margin-top:6px; padding-top:8px; border-top:1px solid var(--ln); }
.footer-col-head--spaced-sm { margin-top:16px; }
.footer-col-head--spaced { margin-top:20px; }
@media (max-width:1100px) { .nav-mega--products { width:min(960px,calc(100vw - 24px)); } }
/* Shared-template utility classes (formerly inline styles) */
.mega-col-link { color: inherit; text-decoration: none; }
.mob-link--accent { color: var(--o2); }
.mob-link--strong { font-weight: 600; }
.footer-contact-link { color: var(--di3); text-decoration: none; }
.footer-contact-link:hover { color: var(--o2); }
.qm-field--spaced { margin-bottom: 14px; }



/* GROUPED SOLUTIONS MENU — Jun 2026 */
.nav-dropdown--solutions{
  left:50%;
  width:min(760px,calc(100vw - 32px));
  min-width:680px;
  transform:translate(-50%,-6px);
  overflow:visible;
  padding:0;
}
.nav-item:hover .nav-dropdown--solutions,
.nav-item:focus-within .nav-dropdown--solutions{
  transform:translate(-50%,0);
}
.nav-dropdown--solutions .dd-item--overview{
  padding:15px 18px 14px;
  border-bottom:1px solid var(--ln);
  background:linear-gradient(90deg,var(--paper),#fff);
}
.nav-dropdown--solutions .dd-item--overview .dd-item-name{font-weight:700;color:var(--n1)}
.dd-solutions-grid{
  display:grid;
  grid-template-columns:1fr 1.15fr .92fr;
  align-items:start;
}
.dd-solution-group{
  min-height:100%;
  padding:14px 10px 16px;
  border-right:1px solid var(--ln);
}
.dd-solution-group:last-child{border-right:0}
.dd-group-title{
  padding:0 9px 8px;
  font-family:var(--f-mono);
  font-size:8.5px;
  line-height:1.4;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--o2);
  font-weight:600;
}
.nav-dropdown--solutions .dd-solution-group .dd-item{
  min-height:66px;
  padding:10px 9px;
  border-radius:6px;
}
.nav-dropdown--solutions .dd-item-name{font-size:13px;line-height:1.3;font-weight:600}
.nav-dropdown--solutions .dd-item-note{font-size:11px;line-height:1.4;margin-top:3px}
.mob-subhead{
  padding:12px 20px 5px;
  font-family:var(--f-mono);
  font-size:8px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--t4);
  font-weight:600;
}
@media(max-width:1100px){
  .nav-dropdown--solutions{width:min(690px,calc(100vw - 24px));min-width:620px}
}
@media(max-width:768px){
  .nav-dropdown--solutions{display:none}
}
