/* ═══════════════════════════════════════════════════════════════
   JS TRADING PARTNERS — Custom WordPress / Elementor Stylesheet
   Institutional B2B Design System
   ═══════════════════════════════════════════════════════════════ */

/* ─── CSS VARIABLES ─── */
:root {
  --jstp-navy: #0D1B2A;
  --jstp-steel: #1B3A4B;
  --jstp-slate: #415A77;
  --jstp-muted: #778DA9;
  --jstp-copper: #C17817;
  --jstp-copper-dark: #A66614;
  --jstp-success: #2D6A4F;
  --jstp-warm-white: #F7F5F2;
  --jstp-cloud: #E8E6E1;
  --jstp-paper: #FAFAF8;
  --jstp-white: #FFFFFF;
  --jstp-text: #1A1A2E;
  --jstp-text-light: #555566;
  --font-display: 'DM Serif Display', Georgia, serif;
  --font-body: 'Outfit', -apple-system, sans-serif;
  --section-pad: 100px;
  --section-pad-mobile: 60px;
  --content-max: 1140px;
  --prose-max: 780px;
}

/* ─── GOOGLE FONTS ─── */
@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Outfit:wght@300;400;500;600;700&display=swap');

/* ─── GLOBAL ─── */
body {
  background-color: var(--jstp-warm-white);
  color: var(--jstp-text);
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

/* ─── TYPOGRAPHY ─── */
h1, h2 {
  font-family: var(--font-display);
  color: var(--jstp-navy);
  font-weight: 400;
  letter-spacing: -0.01em;
}
h1 { font-size: 52px; line-height: 1.15; }
h2 { font-size: 38px; line-height: 1.2; }
h3 { font-family: var(--font-body); font-size: 24px; font-weight: 600; color: var(--jstp-steel); }
h4 { font-family: var(--font-body); font-size: 20px; font-weight: 600; color: var(--jstp-slate); }
p, .elementor-text-editor { font-family: var(--font-body); font-size: 17px; line-height: 1.7; color: var(--jstp-text); }

/* ─── OVERLINE / LABELS ─── */
.jstp-overline {
  font-family: var(--font-body); font-size: 12px; font-weight: 600;
  letter-spacing: 4px; text-transform: uppercase; color: var(--jstp-muted); margin-bottom: 16px;
}
.jstp-section-label {
  font-family: var(--font-body); font-size: 13px; font-weight: 500;
  letter-spacing: 3px; text-transform: uppercase; color: var(--jstp-copper); margin-bottom: 12px;
}

/* ─── PROSE LAYOUT ─── */
.jstp-prose { max-width: var(--prose-max); margin: 0 auto; }
.jstp-prose p { margin-bottom: 24px; font-size: 17px; line-height: 1.75; }
.jstp-prose h2 { margin-top: 64px; margin-bottom: 24px; }
.jstp-prose h3 { margin-top: 48px; margin-bottom: 16px; }

/* ─── PULL QUOTES ─── */
.jstp-pullquote, blockquote.jstp-pullquote {
  border-left: 4px solid var(--jstp-copper); padding: 24px 0 24px 32px; margin: 48px 0;
  font-family: var(--font-display); font-size: 22px; font-style: italic;
  line-height: 1.5; color: var(--jstp-slate); background: transparent;
}

/* ─── PRIMARY BUTTON ─── */
.jstp-btn-primary, .elementor-button.jstp-btn-primary {
  background-color: var(--jstp-copper) !important; color: var(--jstp-white) !important;
  font-family: var(--font-body); font-size: 14px; font-weight: 600;
  letter-spacing: 1.5px; text-transform: uppercase; padding: 16px 40px;
  border-radius: 2px; border: none; transition: all 0.25s ease;
}
.jstp-btn-primary:hover { background-color: var(--jstp-copper-dark) !important; transform: translateY(-1px); box-shadow: 0 4px 16px rgba(193,120,23,0.25); }

/* ─── SECONDARY BUTTON ─── */
.jstp-btn-secondary, .elementor-button.jstp-btn-secondary {
  background-color: transparent !important; color: var(--jstp-navy) !important;
  font-family: var(--font-body); font-size: 14px; font-weight: 600;
  letter-spacing: 1.5px; text-transform: uppercase; padding: 16px 40px;
  border-radius: 2px; border: 1.5px solid var(--jstp-navy) !important; transition: all 0.25s ease;
}
.jstp-btn-secondary:hover { background-color: var(--jstp-navy) !important; color: var(--jstp-white) !important; }

/* ─── GHOST WHITE BUTTON ─── */
.jstp-btn-ghost-white, .elementor-button.jstp-btn-ghost-white {
  background-color: transparent !important; color: var(--jstp-white) !important;
  border: 1.5px solid rgba(255,255,255,0.5) !important; font-family: var(--font-body);
  font-size: 14px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase;
  padding: 16px 40px; border-radius: 2px; transition: all 0.25s ease;
}
.jstp-btn-ghost-white:hover { background-color: rgba(255,255,255,0.1) !important; border-color: var(--jstp-white) !important; }

/* ─── NAV CTA ─── */
.menu-item.jstp-nav-cta a {
  background-color: var(--jstp-copper); color: var(--jstp-white) !important;
  padding: 10px 24px !important; border-radius: 2px; font-weight: 600;
  font-size: 13px; letter-spacing: 1px; text-transform: uppercase;
}
.menu-item.jstp-nav-cta a:hover { background-color: var(--jstp-copper-dark); }

/* ─── HERO DARK ─── */
.jstp-hero-dark { background-color: var(--jstp-navy); position: relative; overflow: hidden; }
.jstp-hero-dark h1 { color: var(--jstp-white); max-width: 780px; }
.jstp-hero-dark p { color: var(--jstp-muted); }

/* ─── DATA BAR ─── */
.jstp-data-bar { background-color: var(--jstp-steel); }
.jstp-metric-number { font-family: var(--font-display); font-size: 44px; color: var(--jstp-copper); line-height: 1.1; margin-bottom: 8px; }
.jstp-metric-label { font-family: var(--font-body); font-size: 13px; color: rgba(255,255,255,0.7); letter-spacing: 0.5px; line-height: 1.4; }

/* ─── CARDS ─── */
.jstp-card {
  background: var(--jstp-white); border: 1px solid var(--jstp-cloud); border-radius: 3px;
  padding: 40px 32px; transition: all 0.3s ease;
}
.jstp-card:hover { border-color: var(--jstp-muted); box-shadow: 0 8px 32px rgba(13,27,42,0.08); transform: translateY(-2px); }
.jstp-card h3 { font-size: 22px; margin-bottom: 16px; }
.jstp-card p { font-size: 15px; line-height: 1.65; color: var(--jstp-text-light); }

.jstp-card-link {
  font-family: var(--font-body); font-size: 14px; font-weight: 600;
  color: var(--jstp-copper); text-decoration: none; letter-spacing: 0.5px;
  margin-top: 20px; display: inline-block;
}
.jstp-card-link:hover { color: var(--jstp-copper-dark); }
.jstp-card-link::after { content: ' →'; display: inline-block; transition: transform 0.2s ease; }
.jstp-card-link:hover::after { transform: translateX(4px); }

/* ─── RESOURCE CARDS ─── */
.jstp-resource-card {
  background: var(--jstp-white); border: 1px solid var(--jstp-cloud); border-radius: 3px;
  overflow: hidden; transition: all 0.3s ease;
}
.jstp-resource-card:hover { box-shadow: 0 12px 40px rgba(13,27,42,0.1); transform: translateY(-3px); }
.jstp-resource-card .card-category { font-size: 11px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: var(--jstp-copper); }
.jstp-resource-card h3 { font-family: var(--font-display); font-size: 20px; font-weight: 400; color: var(--jstp-navy); }

/* ─── TABLES ─── */
.jstp-table { width: 100%; border-collapse: collapse; font-family: var(--font-body); font-size: 15px; }
.jstp-table thead th { background-color: var(--jstp-navy); color: var(--jstp-white); font-weight: 600; font-size: 13px; letter-spacing: 1px; text-transform: uppercase; padding: 14px 20px; text-align: left; }
.jstp-table tbody td { padding: 14px 20px; border-bottom: 1px solid var(--jstp-cloud); }
.jstp-table tbody tr:hover { background-color: var(--jstp-paper); }

/* ─── LOGO ROW ─── */
.jstp-logo-row img { filter: grayscale(100%); opacity: 0.5; transition: all 0.3s ease; max-height: 48px; }
.jstp-logo-row img:hover { filter: grayscale(0%); opacity: 1; }

/* ─── CTA BANNER ─── */
.jstp-cta-banner { background-color: var(--jstp-copper); }
.jstp-cta-banner h2 { color: var(--jstp-white); font-family: var(--font-display); }
.jstp-cta-banner p { color: rgba(255,255,255,0.85); }

/* ─── FOOTER ─── */
.jstp-footer { background-color: var(--jstp-navy); color: rgba(255,255,255,0.6); font-size: 14px; }
.jstp-footer h4 { color: var(--jstp-white); font-size: 13px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; margin-bottom: 20px; }
.jstp-footer a { color: rgba(255,255,255,0.6); text-decoration: none; }
.jstp-footer a:hover { color: var(--jstp-copper); }
.jstp-footer .footer-bottom { border-top: 1px solid rgba(255,255,255,0.1); padding-top: 24px; margin-top: 60px; font-size: 13px; color: rgba(255,255,255,0.35); }

/* ─── HEADER ─── */
.jstp-header .elementor-nav-menu a { font-family: var(--font-body); font-size: 14px; font-weight: 500; color: var(--jstp-slate); }
.jstp-header .elementor-nav-menu a:hover { color: var(--jstp-navy); }

/* ─── SECTION BGs ─── */
.jstp-bg-navy { background-color: var(--jstp-navy); }
.jstp-bg-steel { background-color: var(--jstp-steel); }
.jstp-bg-warm { background-color: var(--jstp-warm-white); }
.jstp-bg-paper { background-color: var(--jstp-paper); }
.jstp-bg-copper { background-color: var(--jstp-copper); }

/* ─── FORMS ─── */
.jstp-form input, .jstp-form textarea, .jstp-form select {
  font-family: var(--font-body); font-size: 15px; padding: 14px 18px;
  border: 1px solid var(--jstp-cloud); border-radius: 2px; background: var(--jstp-white);
}
.jstp-form input:focus, .jstp-form textarea:focus { border-color: var(--jstp-copper); outline: none; box-shadow: 0 0 0 3px rgba(193,120,23,0.1); }
.jstp-form label { font-size: 13px; font-weight: 600; letter-spacing: 0.5px; text-transform: uppercase; color: var(--jstp-slate); }

/* ─── DIVIDER ─── */
.jstp-divider { width: 60px; height: 3px; background-color: var(--jstp-copper); margin: 32px 0; }

/* ─── ANIMATIONS ─── */
@keyframes fadeInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
.jstp-animate-in { animation: fadeInUp 0.6s ease forwards; }
@keyframes scrollBounce { 0%, 100% { transform: translateY(0); opacity: 0.6; } 50% { transform: translateY(8px); opacity: 1; } }
.jstp-scroll-indicator { animation: scrollBounce 2s infinite; color: var(--jstp-muted); }

/* ─── RESPONSIVE ─── */
@media (max-width: 1024px) { h1 { font-size: 42px; } h2 { font-size: 32px; } .jstp-metric-number { font-size: 36px; } }
@media (max-width: 768px) { h1 { font-size: 36px; } h2 { font-size: 28px; } h3 { font-size: 20px; } p { font-size: 16px; } .jstp-metric-number { font-size: 32px; } .jstp-card { padding: 28px 24px; } .jstp-pullquote { font-size: 19px; padding-left: 24px; margin: 32px 0; } }
@media (max-width: 480px) { h1 { font-size: 30px; } h2 { font-size: 24px; } .jstp-metric-number { font-size: 28px; } }

/* ─── PAGE LAYOUT FIXES ─── */
/* Hide page title on homepage */
.page-id-62 .entry-title,
.page-id-62 .page-header,
.page-id-62 .ast-archive-description,
body.page-id-62 .entry-header {
  display: none !important;
}

/* Remove default content padding on Elementor pages */
.elementor-page .site-content .ast-container {
  max-width: 100% !important;
  padding: 0 !important;
}

.elementor-page .entry-content {
  margin: 0 !important;
}

.elementor-page #primary {
  padding: 0 !important;
  margin: 0 !important;
}

/* Fix Elementor section full-width */
.elementor-section.elementor-section-full_width {
  width: 100vw !important;
  margin-left: calc(-50vw + 50%) !important;
}

/* Force section backgrounds where Elementor settings may not apply */
.elementor-section:nth-child(6) {
  background-color: #0D1B2A !important;
}

.elementor-section:nth-child(7) {
  background-color: #C17817 !important;
}

/* Ensure hero has minimum height */
.elementor-section:first-child {
  min-height: 85vh;
  display: flex;
  align-items: center;
}

/* Hide Astra header on homepage if we want clean look */
/* .page-id-62 .site-header { display: none; } */

/* Fix content width for Astra + Elementor */
.ast-page-builder-template .site-content > .ast-container {
  max-width: 100%;
  padding: 0;
}

/* ─── FIXES: Page Title, Library, CTA ─── */

/* Hide "Homepage" page title */
.home .entry-title,
.home .page-title,
.home .ast-archive-description,
body.page-id-62 .entry-title {
  display: none !important;
}

/* Library section — Deep Navy background */
.elementor-element-000006e {
  background-color: #0D1B2A !important;
  padding: 80px 0 !important;
}

.elementor-element-000006e h2,
.elementor-element-000006e .elementor-heading-title {
  color: #FFFFFF !important;
}

.elementor-element-000006e .jstp-section-label,
.elementor-element-000006e p {
  color: #778DA9 !important;
}

/* CTA Banner section — Copper background */
.elementor-element-0000074 {
  background-color: #C17817 !important;
  padding: 80px 0 !important;
}

.elementor-element-0000074 h2,
.elementor-element-0000074 .elementor-heading-title {
  color: #FFFFFF !important;
}

.elementor-element-0000074 p {
  color: rgba(255,255,255,0.85) !important;
}

/* ═══ FIX: HIDE REDUNDANT PAGE TITLES ═══ */
/* Hide page titles on static pages ONLY — preserve blog post titles */
.page .entry-title,
.page .page-title,
.page .entry-header,
.ast-page-builder-template .entry-header,
body.page h1.entry-title {
  display: none !important;
}

/* Preserve blog post titles on archive and single posts */
.blog .entry-title,
.archive .entry-title,
.single-post .entry-title,
.blog article .entry-title a,
.archive article .entry-title a {
  display: block !important;
  font-family: var(--font-display);
  font-size: 24px;
  color: var(--jstp-navy);
  line-height: 1.3;
}

.blog article .entry-title a,
.archive article .entry-title a {
  color: var(--jstp-navy);
  text-decoration: none;
  transition: color 0.2s ease;
}

.blog article .entry-title a:hover,
.archive article .entry-title a:hover {
  color: var(--jstp-copper);
}

/* Hide Astra's default page header area on pages only */
.ast-page-builder-template .site-content > .ast-container {
  display: none !important;
}

/* Ensure Elementor content starts at top */
.elementor-page .site-content {
  padding-top: 0 !important;
}

.page .site-content > .ast-container {
  max-width: 100% !important;
  padding: 0 !important;
}

.page .content-area.primary {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* ═══ FIX: BRANDED NAVY FOOTER ═══ */
.site-footer,
.ast-footer-overlay,
footer.site-footer {
  background-color: #0D1B2A !important;
  color: rgba(255,255,255,0.6) !important;
  padding: 0 !important;
}

.site-footer a,
.site-footer .ast-footer-copyright a {
  color: rgba(255,255,255,0.6) !important;
  transition: color 0.2s ease;
}

.site-footer a:hover {
  color: #C17817 !important;
}

.site-footer .ast-footer-copyright {
  color: rgba(255,255,255,0.35) !important;
  border-top: 1px solid rgba(255,255,255,0.1) !important;
  padding-top: 20px !important;
}

.site-footer .ast-small-footer {
  background-color: #0D1B2A !important;
}

.site-footer h4,
.site-footer .widget-title {
  color: #FFFFFF !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
}

/* ═══ FIX: FULL-WIDTH ELEMENTOR PAGES ═══ */
.elementor-page .site-main {
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
}

.elementor-page .ast-container {
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* ═══ FIX: HEADER REFINEMENT ═══ */
.main-header-bar {
  border-bottom: 1px solid var(--jstp-cloud, #E8E6E1) !important;
  box-shadow: none !important;
}

.site-title a,
.site-title {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 700 !important;
  font-size: 18px !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  color: #0D1B2A !important;
}


/* ═══ FIX: FOOTER COPYRIGHT AREA — FULL NAVY ═══ */
.ast-footer-copyright,
.site-below-footer-wrap,
.ast-builder-footer-grid-columns,
.site-footer,
footer.site-footer,
.ast-small-footer,
.ast-small-footer-section,
.site-below-footer-wrap .ast-builder-grid-row,
.ast-footer-overlay {
  background-color: #0D1B2A !important;
  color: rgba(255,255,255,0.35) !important;
}

.ast-footer-copyright a,
.site-below-footer-wrap a,
.ast-small-footer a {
  color: rgba(255,255,255,0.5) !important;
}

.ast-footer-copyright a:hover,
.site-below-footer-wrap a:hover {
  color: #C17817 !important;
}

/* Astra footer widget area background */
.site-footer .site-above-footer-wrap,
.site-footer .site-primary-footer-wrap,
.site-footer .site-below-footer-wrap {
  background-color: #0D1B2A !important;
}

/* Remove any light borders in footer */
.site-footer .ast-builder-grid-row,
.site-footer .ast-row {
  border-color: rgba(255,255,255,0.1) !important;
}


/* ═══════════════════════════════════════════════════════════
   DESIGN REFINEMENTS — Aesthetics, Symmetry, Polish
   ═══════════════════════════════════════════════════════════ */

/* ─── HIDE PAGE TITLES (Astra default) ─── */
.page .entry-title,
.page .ast-archive-description,
.page-header,
.ast-page-builder-template .entry-title,
h1.entry-title {
  display: none !important;
}

/* ─── REMOVE GAP BETWEEN HEADER AND HERO ─── */
.site-content {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

.ast-separate-container .ast-article-single {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

.ast-separate-container .entry-content {
  padding-top: 0 !important;
}

.ast-separate-container .ast-article-single,
.ast-separate-container .ast-article-post {
  background: transparent;
  padding: 0;
}

/* Remove Astra's default container background */
.ast-separate-container .site-main > .ast-container > article {
  background: transparent;
  padding-left: 0;
  padding-right: 0;
}

/* ─── FULL-BLEED COVER BLOCKS ─── */
.entry-content > .wp-block-cover,
.entry-content > .wp-block-group.has-background {
  margin-left: calc(-50vw + 50%) !important;
  margin-right: calc(-50vw + 50%) !important;
  max-width: 100vw !important;
  width: 100vw !important;
}

/* ─── FULL-BLEED COLUMNS BLOCKS ─── */
.entry-content > .wp-block-columns.has-background,
.entry-content > .wp-block-group.has-background {
  margin-left: calc(-50vw + 50%) !important;
  margin-right: calc(-50vw + 50%) !important;
  max-width: 100vw !important;
  width: 100vw !important;
  padding-left: max(2rem, calc((100vw - 1140px) / 2)) !important;
  padding-right: max(2rem, calc((100vw - 1140px) / 2)) !important;
}

/* ─── HERO COVER BLOCK REFINEMENTS ─── */
.wp-block-cover {
  min-height: 480px !important;
}

.entry-content > .wp-block-cover:first-child {
  min-height: 520px !important;
  display: flex;
  align-items: center;
}

/* ─/* ─── PARAGRAPH MAX-WIDTH ─── */
.entry-content p,
.entry-content li {
  max-width: 680px;
}
/* Exceptions: full-width elements */
.entry-content p[style*="text-align:center"],
.entry-content p[style*="background"],
.entry-content div p,
.entry-content table p,
.entry-content blockquote p {
  max-width: none;
}

/* ─── FOOTER CLEANUP ─── */
.site-footer {
  background-color: #0D1B2A !important;
  padding: 48px 0 24px !important;
}

.ast-footer-copyright {
  color: rgba(255,255,255,0.35) !important;
  font-size: 13px !important;
}

/* Hide "Powered by Astra" */
.ast-footer-copyright a[href*="wpastra"],
.ast-footer-copyright a[href*="wordpress"],
.site-footer .ast-footer-overlay a {
  display: none !important;
}

.ast-footer-copyright p {
  color: rgba(255,255,255,0.35) !important;
}

.site-footer .ast-small-footer-section-1,
.site-footer .ast-small-footer-section-2 {
  color: rgba(255,255,255,0.35) !important;
}

/* ─── SCROLL TO TOP BUTTON ─── */
#ast-scroll-top,
.ast-scroll-top-icon,
[class*="scroll-to-top"] {
  background-color: #C17817 !important;
  color: #FFFFFF !important;
  border: none !important;
  border-radius: 2px !important;
}

/* ─── NAVIGATION REFINEMENTS ─── */
.main-header-menu a,
.ast-header-sections-navigation a {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  letter-spacing: 0.3px !important;
  color: #415A77 !important;
  transition: color 0.2s ease !important;
}

.main-header-menu a:hover,
.main-header-menu .current-menu-item > a {
  color: #0D1B2A !important;
}

/* Last nav item (Work With Us) as CTA */
.main-header-menu > .menu-item:last-child > a {
  background-color: #C17817 !important;
  color: #FFFFFF !important;
  padding: 10px 24px !important;
  border-radius: 2px !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
}

.main-header-menu > .menu-item:last-child > a:hover {
  background-color: #A66614 !important;
  color: #FFFFFF !important;
}

/* ─── HEADER STYLING ─── */
.ast-primary-header-bar {
  border-bottom: 1px solid #E8E6E1 !important;
}

.site-branding .site-title a {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 700 !important;
  font-size: 22px !important;
  letter-spacing: 2px !important;
  color: #0D1B2A !important;
}

/* ─── BLOCKQUOTE / PULLQUOTE ─── */
.entry-content blockquote,
.wp-block-quote {
  border-left: 4px solid #C17817 !important;
  padding: 24px 0 24px 32px !important;
  margin: 48px auto !important;
  max-width: 780px;
  background: transparent !important;
  font-family: 'DM Serif Display', Georgia, serif !important;
  font-size: 22px !important;
  font-style: italic !important;
  line-height: 1.5 !important;
  color: #415A77 !important;
}

.wp-block-quote p {
  font-family: 'DM Serif Display', Georgia, serif !important;
  font-size: 22px !important;
  font-style: italic !important;
  color: #415A77 !important;
}

.wp-block-quote cite,
blockquote cite {
  display: none;
}

/* ─── CARD COLUMN REFINEMENTS ─── */
.wp-block-columns {
  gap: 30px !important;
}

.wp-block-column {
  border: 1px solid #E8E6E1;
  border-radius: 3px;
  padding: 32px 28px;
  transition: all 0.3s ease;
}

.wp-block-column:hover {
  border-color: #778DA9;
  box-shadow: 0 8px 32px rgba(13, 27, 42, 0.08);
  transform: translateY(-2px);
}

/* Remove card styling from columns inside cover blocks */
.wp-block-cover .wp-block-column,
.has-background .wp-block-column {
  border: none !important;
  padding: 0 !important;
  box-shadow: none !important;
  transform: none !important;
}

/* ─── BODY TEXT REFINEMENTS ─── */
.entry-content p {
  font-size: 17px;
  line-height: 1.75;
  color: #1A1A2E;
  margin-bottom: 1.5em;
}

.entry-content h2 {
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: 38px;
  color: #0D1B2A;
  margin-top: 64px;
  margin-bottom: 24px;
}

.entry-content h3 {
  font-family: 'Outfit', sans-serif;
  font-size: 24px;
  font-weight: 600;
  color: #1B3A4B;
  margin-top: 48px;
  margin-bottom: 16px;
}

/* ─── COVER BLOCK TEXT ─── */
.wp-block-cover h1,
.wp-block-cover h2 {
  font-family: 'DM Serif Display', Georgia, serif !important;
  color: #FFFFFF !important;
}

.wp-block-cover p {
  color: rgba(255,255,255,0.65) !important;
}

/* Overline text in hero */
.wp-block-cover .has-small-font-size,
.wp-block-cover p:first-of-type {
  font-family: 'Outfit', sans-serif !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  font-size: 13px !important;
  color: #778DA9 !important;
}

/* ─── LINK STYLING ─── */
.entry-content a:not(.wp-block-button__link) {
  color: #C17817;
  text-decoration: none;
  font-weight: 500;
  transition: color 0.2s ease;
}

.entry-content a:not(.wp-block-button__link):hover {
  color: #A66614;
}

/* ─── BUTTON BLOCKS ─── */
.wp-block-button__link {
  font-family: 'Outfit', sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  padding: 16px 40px !important;
  border-radius: 2px !important;
  transition: all 0.25s ease !important;
}

.wp-block-button__link:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(0,0,0,0.15);
}

/* ─── TABLE BLOCKS ─── */
.wp-block-table table {
  border-collapse: collapse;
  width: 100%;
  font-size: 15px;
}

.wp-block-table thead th {
  background-color: #0D1B2A;
  color: #FFFFFF;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding: 14px 20px;
  text-align: left;
}

.wp-block-table tbody td {
  padding: 14px 20px;
  border-bottom: 1px solid #E8E6E1;
}

.wp-block-table tbody tr:hover {
  background-color: #FAFAF8;
}

/* ─── SPACING BELOW LAST SECTION ─── */
.entry-content > *:last-child {
  margin-bottom: 0;
}

/* ─── REMOVE EXTRA WHITESPACE ─── */
.ast-separate-container .site-content > .ast-container {
  max-width: 100% !important;
  padding: 0 !important;
}

.ast-separate-container .entry-content > .alignwide,
.ast-separate-container .entry-content > .alignfull {
  margin-left: 0;
  margin-right: 0;
}


/* ═══ FOOTER: SUPPRESS ASTRA DEFAULTS ═══ */

/* Hide the duplicate small footer bar and powered-by text */
.ast-small-footer,
.ast-small-footer-section,
.ast-footer-copyright .powered-by,
.site-info .powered-by,
a[href*="wordpress.org"],
a[href*="wordpress.com"]:not(.menu-link) {
  display: none !important;
}

/* Hide any empty footer widget rows Astra outputs */
.site-footer .ast-footer-row-main:empty,
.site-footer .ast-footer-row-above:empty,
.site-footer .ast-footer-row-below:empty,
.footer-widget-area:empty {
  display: none !important;
}

/* Ensure only one copyright block shows */
.site-footer .ast-footer-copyright + .ast-footer-copyright {
  display: none !important;
}

/* Clean single copyright line */
.site-footer .ast-footer-copyright {
  text-align: center !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 13px !important;
  color: rgba(255,255,255,0.4) !important;
  padding: 24px 0 !important;
  border-top: 1px solid rgba(255,255,255,0.08) !important;
  display: block !important;
}


/* ═══════════════════════════════════════════════════════
   AUDIT FIXES — March 2026
   Site-wide CSS corrections from full visual design audit
   ═══════════════════════════════════════════════════════ */


/* ─── FIX #1: Remove 60px white gap between nav and hero ─── */
.site-content {
  padding-top: 0 !important;
}
.ast-separate-container .ast-article-single,
.ast-separate-container .ast-article-post {
  padding-top: 0 !important;
}
.ast-separate-container .entry-content {
  margin-top: 0 !important;
}
.page .site-content > .ast-container {
  padding-top: 0 !important;
}
.ast-separate-container .ast-article-single:first-child {
  margin-top: 0 !important;
}



.entry-content div[style*="text-align:center"] p {
  max-width: none;
}


/* ─── FIX #3: Hide Astra "Powered by" footer credit ─── */
.ast-small-footer .ast-footer-site-title,
.site-footer .ast-footer-copyright a[href*="wpastra"],
.ast-footer-copyright .ast-footer-html-inner a[href*="wpastra"] {
  display: none !important;
}


/* ─── FIX #4: Mobile responsive corrections ─── */
@media (max-width: 768px) {
  /* Reduce H1 on mobile for hero fit */
  .entry-content h1 {
    font-size: 32px !important;
    line-height: 1.15 !important;
  }
  /* Reduce hero padding on mobile */
  .entry-content > div[style*="background-color:#0D1B2A"] {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
  /* Table overflow handling */
  .entry-content table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  /* Reduce body text max-width constraint on mobile */
  .entry-content p,
  .entry-content h2,
  .entry-content h3 {
    max-width: 100% !important;
  }
  /* Touch target sizing for CTA links */
  .entry-content p > a[style*="color:#C17817"],
  .entry-content p > a[style*="color: #C17817"] {
    display: inline-block;
    padding: 8px 0;
    min-height: 44px;
    line-height: 28px;
  }
}


/* ─── FIX #5: H2 breathing room (scan rhythm) ─── */
.entry-content h2 {
  margin-top: 48px;
  margin-bottom: 24px;
}
.entry-content h2:first-child,
.entry-content div > h2:first-child {
  margin-top: 0;
}


/* ─── FIX #6: CTA link hover states ─── */
.entry-content a[style*="color:#C17817"]:hover,
.entry-content a[style*="color: #C17817"]:hover {
  text-decoration: underline !important;
}

@media (max-width: 768px) {
  /* Reduce H1 on mobile */
  .entry-content h1,
  h1.entry-title {
    font-size: 32px !important;
    line-height: 1.2 !important;
  }
  /* Reduce H2 on mobile */
  .entry-content h2 {
    font-size: 28px !important;
    line-height: 1.25 !important;
  }
  /* Tighten horizontal padding */
  .entry-content > div[style*="padding"] {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
  /* Tables scroll horizontally */
  .entry-content table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  
  /* Touch targets for CTA links */
  .entry-content p > a[href] {
    display: inline-block;
    padding: 8px 0;
  }
}

/* ═══ FIX: HIDE ASTRA FOOTER CREDIT ═══ */
.ast-small-footer .ast-footer-html-inner a[href*="wpastra"],
.site-footer a[href*="wpastra"],
a[href*="wpastra.com"] {
  display: none !important;
}
.ast-small-footer .ast-footer-html-inner {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}

/* ═══════════════════════════════════════════════════════
   AUDIT FIXES — March 2026
   Full site-wide visual design audit implementation
   ═══════════════════════════════════════════════════════ */

/* ═══ FIX: BODY TEXT LINE LENGTH (90+ chars → ~72 chars) ═══ */
.entry-content p,
.entry-content li,
.entry-content blockquote {
  max-width: 680px;
}
.entry-content p[style*="text-align:center"],
.entry-content p[style*="text-align: center"] {
  max-width: 100%;
}
.entry-content table,
.entry-content div[style*="display:grid"],
.entry-content div[style*="display: grid"],
.entry-content div[style*="display:flex"],
.entry-content div[style*="display: flex"] {
  max-width: 100%;
}

/* ═══ FIX: TABLE OVERFLOW ON MOBILE ═══ */
.entry-content table {
  display: block;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* ═══ FIX: CTA LINK HOVER STATES ═══ */
.entry-content a[style*="color:#C17817"]:hover,
.entry-content a[style*="color: #C17817"]:hover {
  text-decoration: underline !important;
}

/* ═══ FIX: MOBILE RESPONSIVE ═══ */
@media (max-width: 768px) {
  /* Reduce hero H1 on mobile */
  .entry-content h1,
  .entry-content h1[style] {
    font-size: 32px !important;
    line-height: 1.2 !important;
  }
  
  /* Reduce H2 on mobile */
  .entry-content h2 {
    font-size: 28px !important;
    line-height: 1.25 !important;
  }
  
  /* Reduce horizontal padding on mobile */
  .entry-content > div[style*="padding"] {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
  
  /* Fix body text max-width on mobile */
  .entry-content p,
  .entry-content li {
    max-width: 100%;
  }
  
  /* CTA buttons: ensure touch targets */
  .entry-content a[style*="color:#C17817"],
  .entry-content a[style*="color: #C17817"] {
    display: inline-block;
    padding: 8px 0;
    min-height: 44px;
  }
}

/* ═══ FIX: REMOVE ASTRA FOOTER CREDIT ═══ */
.site-footer .ast-footer-copyright a[href*="wpastra"],
.ast-small-footer a[href*="wpastra"] {
  display: none !important;
}
.site-footer .ast-footer-copyright .ast-footer-html-inner,
.ast-small-footer .ast-footer-html-inner {
  visibility: hidden !important;
  height: 0 !important;
  overflow: hidden !important;
}


/* ============================================================
   JSTP Typography & Spacing Normalization v2
   Audit date: March 8, 2026
   Uses !important only where Gutenberg sets inline styles
   ============================================================ */

/* --- 0. Variable update --- */
:root {
  --prose-max: 680px;
}

/* --- 1. H1 Normalization --- */
.entry-content h1,
.site-content h1 {
  font-family: var(--font-display) !important;
  font-size: 40px !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.01em !important;
  margin-top: 0 !important;
  margin-bottom: 24px !important;
}

/* --- 2. H2 Normalization (Gutenberg sets inline margin-bottom) --- */
.entry-content h2,
.site-content h2 {
  font-family: var(--font-display) !important;
  font-size: 28px !important;
  font-weight: 400 !important;
  line-height: 1.3 !important;
  letter-spacing: -0.01em !important;
  margin-top: 48px !important;
  margin-bottom: 24px !important;
}

/* H2 as first child in dark/CTA sections: no top margin */
.jstp-hero-dark h2:first-child,
.jstp-cta-banner h2,
[style*="background-color:#0D1B2A"] > div > h2:first-child,
[style*="background-color: rgb(13, 27, 42)"] > div > h2:first-child,
[style*="background-color:#C17817"] h2,
[style*="background-color: rgb(193, 120, 23)"] h2 {
  margin-top: 0 !important;
}

/* --- 3. H3 --- */
.entry-content h3,
.site-content h3 {
  font-family: var(--font-body) !important;
  font-size: 22px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  color: var(--jstp-steel);
  margin-top: 36px !important;
  margin-bottom: 16px !important;
}

/* --- 4. Body Paragraph Max-Width (680px readable line length) --- */
.entry-content p {
  max-width: var(--prose-max) !important;
}
.entry-content li {
  max-width: var(--prose-max) !important;
}
.entry-content blockquote {
  max-width: calc(var(--prose-max) + 32px) !important;
}

/* Exceptions: full-width contexts */
[style*="text-align:center"] p,
[style*="text-align: center"] p,
.jstp-card p,
.jstp-cta-banner p,
.wp-block-column p,
.wp-block-columns p,
.wp-block-table p,
figure p, figcaption,
.jstp-footer p {
  max-width: none !important;
}

/* --- 5. Label / Overline: 4px -> 3px letter-spacing --- */
.jstp-overline,
p[style*="letter-spacing:4px"],
p[style*="letter-spacing: 4px"] {
  letter-spacing: 3px !important;
}

/* Overline WCAG AA contrast fix: copper-dark on cream bg */
.jstp-card .jstp-overline {
  color: var(--jstp-copper-dark) !important;
}

/* --- 6. Table Mobile Overflow --- */
.wp-block-table,
.entry-content figure.wp-block-table {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* ========== MOBILE (max 768px) ========== */
@media (max-width: 768px) {

  .entry-content h1,
  .site-content h1 {
    font-size: 32px !important;
    line-height: 1.2 !important;
    margin-bottom: 20px !important;
  }

  .entry-content h2,
  .site-content h2 {
    font-size: 24px !important;
    line-height: 1.3 !important;
    margin-top: 36px !important;
    margin-bottom: 20px !important;
  }

  .entry-content h3,
  .site-content h3 {
    font-size: 20px !important;
  }

  body {
    font-size: 16px;
  }

  /* Paragraph: fill mobile width */
  .entry-content p,
  .entry-content li {
    max-width: 100% !important;
  }

  /* Table overflow */
  .wp-block-table {
    overflow-x: auto;
    display: block;
  }
  .wp-block-table table {
    min-width: 500px;
  }

  /* Reduce label spacing */
  .jstp-overline,
  p[style*="letter-spacing"] {
    letter-spacing: 2.5px !important;
    font-size: 11px !important;
  }

  /* Reduce generous horizontal padding */
  [style*="padding:40px"] {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
  [style*="padding: 40px"] {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
}

/* ========== SMALL MOBILE (max 480px) ========== */
@media (max-width: 480px) {

  .entry-content h1,
  .site-content h1 {
    font-size: 28px !important;
    line-height: 1.15 !important;
  }

  .entry-content h2,
  .site-content h2 {
    font-size: 22px !important;
  }
}

/* ============================================================
   TYPOGRAPHY & SPACING NORMALIZATION — March 2026 Audit
   Canonical standards enforced site-wide.
   DO NOT DELETE — overrides per-page inconsistencies.
   ============================================================ */

/* --- FIX #1: H1 margin-bottom standardization ---
   Was: 28px (Homepage) vs 20px (Capabilities, Mfg, Firm)
   Canonical: 24px
*/
.entry-content h1,
.site-content h1,
.jstp-hero-dark h1 {
  margin-bottom: 24px !important;
}

/* --- FIX #2: H2 margin-bottom standardization ---
   Was: 28px (Home), 40px (Home cards, Mfg), 20px (Capabilities hero, Mfg),
        24px (Firm, Home CTA), 16px (Mfg mid-page), 0px (Model body)
   Canonical: 24px everywhere
*/
.entry-content h2,
.site-content h2 {
  margin-bottom: 24px !important;
}

/* H2 inside CTA banners: tighter spacing */
.jstp-cta-banner h2 {
  margin-bottom: 20px !important;
}

/* --- FIX #3: Body paragraph max-width (line length) ---
   Was: 90+ characters per line (container 700-900px+)
   Canonical: max-width 680px → ~75 chars/line
   Applied to paragraphs and list items only.
   NOT applied to headings, tables, full-width elements.
*/
.entry-content p,
.site-content p {
  max-width: 680px;
}

.entry-content li,
.site-content li {
  max-width: 680px;
}

/* Exclude paragraphs inside centered CTA sections and cards */
.jstp-cta-banner p,
[style*="text-align: center"] p,
[style*="text-align:center"] p,
.has-text-align-center p {
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

/* Exclude table cells from max-width */
td p, th p {
  max-width: none;
}

/* --- FIX #4: H2 margin-top standardization ---
   Already 48px on most pages (via existing CSS).
   Reinforcing to ensure no Gutenberg block overrides.
*/
.entry-content h2,
.site-content h2 {
  margin-top: 48px !important;
}

/* First H2 in a section should not have extra top margin
   when it immediately follows a label/overline */
.jstp-overline + h2,
.jstp-label + h2 {
  margin-top: 16px !important;
}

/* --- FIX #5: Label/overline letter-spacing ---
   Was: 4px (at readability threshold for small text)
   Canonical: 3px — still distinctive, more legible
*/
.jstp-overline,
.jstp-label {
  letter-spacing: 3px !important;
}

/* --- FIX #6: WCAG AA contrast fix ---
   "WHAT YOU GET" boxes on Capabilities page use copper (#C17817)
   on cream (#F5F0EB) at 12px — fails WCAG AA (3.8:1, needs 4.5:1).
   Fix: darken text to copper-dark (#A66614) and bump to 13px.
   Ratio ~5.0:1 — passes AA for normal text.
*/
.jstp-card .jstp-overline,
.jstp-card .jstp-label,
.jstp-deliverable-label {
  color: var(--jstp-copper-dark) !important;
  font-size: 13px !important;
}

/* --- FIX #7: Hero section padding standardization ---
   All hero sections: 80px top/bottom, 40px sides.
   Already consistent on most pages, but reinforcing
   to prevent Gutenberg block padding overrides.
*/
.jstp-hero-dark {
  padding: 80px 40px !important;
}

/* --- FIX #8: H3 spacing standardization ---
   Measured: margin-top varies 0-48px, margin-bottom varies 8-24px
   Canonical: margin-top 32px, margin-bottom 16px
*/
.entry-content h3,
.site-content h3 {
  margin-top: 32px !important;
  margin-bottom: 16px !important;
  font-size: 22px;
  font-weight: 600;
  line-height: 1.4;
  color: var(--jstp-steel);
}

/* --- FIX #9: CTA button normalization ---
   Homepage: 14px/600wt, Model: 12px/700wt/2.5px ls, Mfg: 14px/700wt/2px ls
   Canonical: 14px / 600 / 1.5px letter-spacing / uppercase
*/
.jstp-btn-primary,
.wp-block-button__link,
.entry-content .wp-block-button__link {
  font-family: var(--font-body) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  padding: 16px 40px !important;
  border-radius: 2px !important;
}

/* --- FIX #10: Mobile responsive overrides ---
   Issues: H1 at 40px wraps to 5 lines on 375px,
   horizontal padding too generous (40px),
   tables overflow horizontally.
*/
@media (max-width: 768px) {

  /* H1 size reduction */
  .entry-content h1,
  .site-content h1,
  .jstp-hero-dark h1 {
    font-size: 32px !important;
    line-height: 1.2 !important;
  }

  /* H2 size reduction */
  .entry-content h2,
  .site-content h2 {
    font-size: 24px !important;
    line-height: 1.3 !important;
  }

  /* Hero padding: reduce sides from 40px to 24px */
  .jstp-hero-dark {
    padding: 60px 24px !important;
  }

  /* General section side padding */
  .entry-content,
  .site-content {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }

  /* Tables: horizontal scroll on mobile */
  .wp-block-table,
  .entry-content table,
  .site-content table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* Paragraph max-width: let it fill mobile screen */
  .entry-content p,
  .site-content p,
  .entry-content li,
  .site-content li {
    max-width: 100%;
  }

  /* CTA buttons: slightly smaller padding on mobile */
  .jstp-btn-primary,
  .wp-block-button__link {
    padding: 14px 32px !important;
    font-size: 13px !important;
  }
}

/* --- FIX #11: Section-to-section spacing ---
   Was: dark sections 80/80, cream sections 60/40, 
        capabilities 64/0, model 96/96 in places
   Canonical: 80px padding top/bottom on all major sections.
   Override Gutenberg block padding where needed.
*/
.entry-content > .wp-block-group,
.entry-content > .wp-block-cover {
  padding-top: 80px;
  padding-bottom: 80px;
}

/* Update the CSS variable for reference */
:root {
  --prose-max: 680px;
}

/* --- FIX #12: Hero subtitle paragraphs max-width ---
   Astra theme entry-header paragraphs sit outside .entry-content.
   Also ensure centered hero text is capped for readability.
*/
.entry-header p,
.ast-no-thumbnail p {
  max-width: 680px;
}

/* For centered hero text, center the constrained block */
.entry-header[style*="text-align: center"] p,
.has-text-align-center .entry-header p {
  margin-left: auto;
  margin-right: auto;
}

/* ═══ FIX: Prevent dark-bg selector from indenting non-div elements ═══ */
.entry-content h1[style*="0D1B2A"],
.entry-content h2[style*="0D1B2A"],
.entry-content h3[style*="0D1B2A"],
.entry-content p[style*="0D1B2A"],
.entry-content strong[style*="0D1B2A"],
.entry-content span[style*="0D1B2A"],
.entry-content a[style*="0D1B2A"],
.entry-content table[style*="0D1B2A"],
.entry-content h1[style*="1a2a3a"],
.entry-content h2[style*="1a2a3a"],
.entry-content h3[style*="1a2a3a"],
.entry-content p[style*="1a2a3a"],
.entry-content strong[style*="1a2a3a"],
.entry-content span[style*="1a2a3a"],
.entry-content a[style*="1a2a3a"],
.entry-content h1[style*="0a1520"],
.entry-content h2[style*="0a1520"],
.entry-content h3[style*="0a1520"],
.entry-content p[style*="0a1520"],
.entry-content strong[style*="0a1520"],
.entry-content span[style*="0a1520"],
.entry-content a[style*="0a1520"] {
  padding: 0 !important;
}

/* ═══ FIX: Standardize H2 spacing site-wide ═══ */
.entry-content h2 {
  margin-top: 8px !important;
  margin-bottom: 20px !important;
}

/* ═══ FIX: Tighten separator margins ═══ */
.entry-content div[style*="border-top"] {
  margin-top: 40px !important;
  margin-bottom: 40px !important;
}

/* ═══ FIX: Capabilities hero padding ═══ */
.page-id-65 .entry-content > div:first-child {
  padding: 64px 40px 48px !important;
}

/* ═══ FIX: Work With Us hero padding ═══ */
.page-id-70 .entry-content > div:first-child {
  padding: 64px 40px 48px !important;
}

/* ═══ FIX: Work With Us form section spacing ═══ */
.page-id-70 .entry-content div[style*="background-color:#0D1B2A"]:last-of-type {
  padding-top: 64px !important;
  padding-bottom: 56px !important;
}

/* ═══ FIX: Remove alternating gray band on even-numbered sections ═══ */
.entry-content h2:nth-of-type(2n) {
  background: transparent !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.entry-content h2:nth-of-type(2n) + p,
.entry-content h2:nth-of-type(2n) + p + p,
.entry-content h2:nth-of-type(2n) + p + p + p,
.entry-content h2:nth-of-type(2n) + p + p + p + p {
  background: transparent !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-bottom: 0 !important;
}

/* ═══ FIX: Remove white line between stats bar and footer on Homepage ═══ */
.page-id-62 .site-main {
  background-color: #0D1B2A !important;
}

/* ═══ FIX: Remove white border-top line on footer ═══ */
.site-footer {
  border-top: none !important;
}

/* ═══ FIX: Manufacturing page — even H2 gray band removal ═══ */
.page-id-64 .entry-content h2:nth-of-type(2n) {
  background: transparent !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding: 0 !important;
}
.page-id-64 .entry-content h2:nth-of-type(2n) + p,
.page-id-64 .entry-content h2:nth-of-type(2n) + p + p,
.page-id-64 .entry-content h2:nth-of-type(2n) + p + p + p,
.page-id-64 .entry-content h2:nth-of-type(2n) + p + p + p + p {
  background: transparent !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-bottom: 0 !important;
}

/* ═══ FIX: Manufacturing — close gap between hero and first section ═══ */
.page-id-64 .entry-content h2:first-of-type {
  margin-top: 0 !important;
}

/* ═══════════════════════════════════════════════════════════════
   HEADER / NAV OVERHAUL — March 2026
   ═══════════════════════════════════════════════════════════════ */

/* ─── STICKY HEADER ─── */
#masthead {
  position: sticky !important;
  top: 0 !important;
  z-index: 999 !important;
  background-color: rgba(255, 255, 255, 0.95) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  transition: box-shadow 0.3s ease !important;
}

/* Admin bar offset (logged-in users only) */
.admin-bar #masthead {
  top: 32px !important;
}

@media screen and (max-width: 782px) {
  .admin-bar #masthead {
    top: 46px !important;
  }
}

/* Subtle shadow when scrolled */
#masthead.jstp-scrolled {
  box-shadow: 0 1px 12px rgba(13, 27, 42, 0.08) !important;
}

/* ─── LOGO / SITE TITLE UPGRADE ─── */
.site-branding .site-title a {
  font-family: 'DM Serif Display', Georgia, serif !important;
  font-weight: 400 !important;
  font-size: 26px !important;
  letter-spacing: 3px !important;
  color: #0D1B2A !important;
  text-transform: uppercase !important;
  position: relative !important;
  display: inline-block !important;
  padding-bottom: 4px !important;
}

/* Copper accent underline on logo */
.site-branding .site-title a::after {
  content: '' !important;
  position: absolute !important;
  bottom: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 2px !important;
  background-color: #C17817 !important;
}

/* ─── NAV LINK STYLING ─── */
.main-header-menu > .menu-item > a,
.ast-header-sections-navigation a {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  letter-spacing: 0.8px !important;
  text-transform: uppercase !important;
  color: #415A77 !important;
  transition: color 0.25s ease !important;
  position: relative !important;
}

/* Animated underline on hover — slides in from center */
.main-header-menu > .menu-item:not(:last-child) > a::after {
  content: '' !important;
  position: absolute !important;
  bottom: 0 !important;
  left: 50% !important;
  width: 0 !important;
  height: 2px !important;
  background-color: #C17817 !important;
  transition: width 0.3s ease, left 0.3s ease !important;
}

.main-header-menu > .menu-item:not(:last-child) > a:hover::after,
.main-header-menu > .menu-item.current-menu-item:not(:last-child) > a::after {
  width: 100% !important;
  left: 0 !important;
}

.main-header-menu > .menu-item > a:hover,
.main-header-menu > .menu-item.current-menu-item > a {
  color: #0D1B2A !important;
}

/* ─── CTA BUTTON REFINEMENT ─── */
.main-header-menu > .menu-item:last-child > a {
  background-color: #C17817 !important;
  color: #FFFFFF !important;
  padding: 8px 20px !important;
  border-radius: 4px !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  letter-spacing: 1.2px !important;
  text-transform: uppercase !important;
  transition: background-color 0.25s ease, transform 0.15s ease !important;
  border: none !important;
}

.main-header-menu > .menu-item:last-child > a:hover {
  background-color: #A66614 !important;
  transform: translateY(-1px) !important;
}

/* Remove underline effect from CTA button */
.main-header-menu > .menu-item:last-child > a::after {
  display: none !important;
}

/* ─── HEADER BAR CLEANUP ─── */
.ast-primary-header-bar {
  border-bottom: 1px solid rgba(232, 230, 225, 0.6) !important;
  padding: 0 !important;
}

/* Tighter vertical spacing on header row */
.site-primary-header-wrap {
  padding-top: 16px !important;
  padding-bottom: 16px !important;
}

/* ─── DROPDOWN / SUBMENU STYLING ─── */
.main-header-menu .sub-menu {
  background-color: #FFFFFF !important;
  border: 1px solid rgba(232, 230, 225, 0.8) !important;
  border-radius: 6px !important;
  box-shadow: 0 8px 24px rgba(13, 27, 42, 0.1) !important;
  padding: 8px 0 !important;
  min-width: 200px !important;
  margin-top: 8px !important;
}

.main-header-menu .sub-menu .menu-item a {
  font-size: 13px !important;
  font-weight: 400 !important;
  text-transform: none !important;
  letter-spacing: 0.2px !important;
  color: #415A77 !important;
  padding: 10px 20px !important;
  transition: background-color 0.2s ease, color 0.2s ease !important;
}

.main-header-menu .sub-menu .menu-item a:hover {
  background-color: #F7F5F2 !important;
  color: #0D1B2A !important;
}

/* Remove underline from dropdown items */
.main-header-menu .sub-menu .menu-item a::after {
  display: none !important;
}


/* ═══════════════════════════════════════════════════════════════
   HOMEPAGE SECTIONS — March 2026
   ═══════════════════════════════════════════════════════════════ */

/* ─── BRANDS SECTION — CENTER HEADING ─── */
div[style*="background-color:#F5F2EC"] > p:first-child {
  text-align: center !important;
  display: block !important;
  max-width: var(--content-max, 1140px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 20px !important;
  padding-bottom: 12px !important;
}

/* Brand logo images — fix white backgrounds */
div[style*="background-color:#F5F2EC"] img {
  mix-blend-mode: multiply !important;
  opacity: 0.85 !important;
  transition: opacity 0.3s ease !important;
}

div[style*="background-color:#F5F2EC"] img:hover {
  opacity: 1 !important;
}

/* ─── ENGAGEMENT CARDS — EQUAL HEIGHTS ─── */
.jstp-pathway-card,
.entry-content .wp-block-columns > .wp-block-column {
  display: flex !important;
  flex-direction: column !important;
}

/* ─── FINAL CTA — BUTTON CONSISTENCY ─── */
/* Make "Start a Conversation" ghost button match the copper system */
.jstp-btn-ghost-white,
.entry-content a.wp-block-button__link[style*="background-color:transparent"],
.entry-content .wp-block-button__link:not(.jstp-btn-primary):not(.jstp-btn-secondary) {
  border: 1.5px solid rgba(255,255,255,0.5) !important;
  border-radius: 4px !important;
  transition: all 0.25s ease !important;
}

/* Ghost button hover — fill copper */
.entry-content a.wp-block-button__link[style*="background-color:transparent"]:hover {
  background-color: #C17817 !important;
  border-color: #C17817 !important;
  color: #FFFFFF !important;
}

/* ─── WHITE GAP FIX — CTA TO STATS BAR ─── */
/* Remove margin/padding between CTA section and data bar */
.entry-content > div:last-child {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* Target the dark CTA section specifically */
div[style*="background-color:#0D1B2A"] {
  margin-bottom: 0 !important;
}

/* Target the content area that might have bottom margin */
#primary.content-area,
.site-content .ast-container,
.site-main {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* Remove bottom margin from the page entry-content */
.page-id-62 .entry-content {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* Kill the gap between main content area and footer stats bar */
.page-id-62 #primary {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

.page-id-62 .site-content {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* ─── CHAMBER OF COMMERCE — TIGHTER SECTION ─── */
/* Reduce vertical padding on the chamber badge section */
div[style*="background-color:#F5F2EC"] + div {
  padding-top: 40px !important;
  padding-bottom: 40px !important;
}


/* ─── BOTTOM CTA BUTTON — HOVER COPPER + ROUNDED ─── */
div[style*="background-color:#0D1B2A"] a[style*="background:#fff"] {
  border-radius: 4px !important;
  transition: all 0.25s ease !important;
  border: 1.5px solid rgba(255,255,255,0.3) !important;
}

div[style*="background-color:#0D1B2A"] a[style*="background:#fff"]:hover {
  background: #C17817 !important;
  color: #FFFFFF !important;
  border-color: #C17817 !important;
  transform: translateY(-1px) !important;
}

/* ─── HERO SUBTEXT — INCREASE CONTRAST ─── */
div[style*="background-color:#0D1B2A"] p[style*="color:rgba(255,255,255,0.5)"],
div[style*="background-color:#0D1B2A"] p[style*="opacity"] {
  color: rgba(255,255,255,0.7) !important;
}


/* ═══════════════════════════════════════════════════════════════
   FIVE-DOMAIN DIAGRAM FIXES — Model Page
   ═══════════════════════════════════════════════════════════════ */

/* ─── FIX 1: REMOVE BEIGE GAPS ABOVE/BELOW DIAGRAM ─── */
#jstp-five-domain-diagram {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* Override the parent container inline margin */
.page-id-55 .entry-content > div:nth-child(3) {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* More specific: target the navy diagram wrapper by background */
div[style*="background:#0D1B2A"][style*="margin:40px"] {
  margin: 0 auto !important;
}

/* ─── FIX 2: INCREASE CONNECTOR LABEL TYPOGRAPHY ─── */
#jstp-five-domain-diagram .fd-ilabel {
  font-size: 9px !important;
  letter-spacing: 1px !important;
  padding: 5px 10px !important;
}

/* Increase domain detail text (origin certification, etc.) */
#jstp-five-domain-diagram .fd-detail {
  font-size: 10px !important;
  line-height: 1.4 !important;
}

/* Increase domain number labels */
#jstp-five-domain-diagram .fd-num {
  font-size: 9.5px !important;
}

/* ─── FIX 3: MOBILE RESPONSIVENESS ─── */
@media screen and (max-width: 800px) {
  #jstp-five-domain-diagram .fd-wrap {
    transform: scale(0.7) !important;
    transform-origin: top center !important;
    height: 470px !important;
  }
  
  div[style*="background:#0D1B2A"][style*="padding"] {
    padding: 20px 0 !important;
    overflow: hidden !important;
  }
}

@media screen and (max-width: 600px) {
  #jstp-five-domain-diagram .fd-wrap {
    transform: scale(0.42) translateX(-30px) !important;
    transform-origin: top center !important;
    height: 290px !important;
  }
  
  #jstp-five-domain-diagram .fd-ilabel {
    font-size: 10px !important;
    padding: 5px 10px !important;
  }
}

@media screen and (max-width: 400px) {
  #jstp-five-domain-diagram .fd-wrap {
    transform: scale(0.37) translateX(-35px) !important;
    transform-origin: top center !important;
    height: 260px !important;
  }
}

/* ─── FIX 4: CLICKABLE NODE CURSOR ─── */
#jstp-five-domain-diagram .fd-node {
  cursor: pointer !important;
}

#jstp-five-domain-diagram .fd-node .fd-circle:hover {
  border-color: #C17817 !important;
  box-shadow: 0 0 40px rgba(193,120,23,0.25) !important;
  transform: scale(1.06) !important;
}






/* ─── CTA BUTTON — COPPER BG VARIANT (Model page) ─── */
div[style*="background-color:#C17817"] a[style*="background:#fff"] {
  border-radius: 4px !important;
  transition: all 0.25s ease !important;
  border: 1.5px solid rgba(255,255,255,0.3) !important;
}

div[style*="background-color:#C17817"] a[style*="background:#fff"]:hover {
  background: #0D1B2A !important;
  color: #FFFFFF !important;
  border-color: #0D1B2A !important;
  transform: translateY(-1px) !important;
}


/* ═══════════════════════════════════════════════════════════════
   DOMAIN NAV BAR + SECTION BADGES — Model Page
   ═══════════════════════════════════════════════════════════════ */

/* ─── DOMAIN NAV BAR ─── */
.jstp-domain-nav {
  display: flex;
  justify-content: center;
  gap: 6px;
  padding: 16px 20px;
  margin: 0 auto 40px;
  max-width: 780px;
  flex-wrap: wrap;
  position: fixed;
  top: 100px;
  left: 50%;
  transform: translateX(-50%) translateY(-200%);
  opacity: 0;
  pointer-events: none;
  z-index: 50;
  background: rgba(245,242,236,0.95);
  backdrop-filter: blur(8px);
  border-radius: 8px;
  border: 1px solid rgba(193,120,23,0.1);
  transition: box-shadow 0.3s ease;
}

.admin-bar .jstp-domain-nav {
  top: 165px;
}

.jstp-domain-nav {
  transition: transform 0.3s ease, opacity 0.25s ease !important;
  width: calc(100% - 40px);
}

.jstp-domain-nav a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  font-family: Outfit, sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.5px;
  color: #415A77;
  text-decoration: none;
  border-radius: 4px;
  border: 1px solid rgba(65,90,119,0.15);
  background: transparent;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.jstp-domain-nav a:hover {
  background: #0D1B2A;
  color: #FFFFFF;
  border-color: #0D1B2A;
}

.jstp-domain-nav a .dn-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #C17817;
  color: #FFFFFF;
  font-size: 10px;
  font-weight: 700;
  flex-shrink: 0;
}

.jstp-domain-nav a:hover .dn-num {
  background: #C17817;
}

/* ─── DOMAIN SECTION BADGES ─── */
.page-id-55 h3[id^="domain-"] {
  display: flex;
  align-items: center;
  gap: 12px;
}

.jstp-domain-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #C17817;
  color: #FFFFFF;
  font-family: Outfit, sans-serif;
  font-size: 14px;
  font-weight: 700;
  flex-shrink: 0;
  line-height: 1;
}

/* ─── MOBILE NAV BAR ─── */
@media screen and (max-width: 600px) {
  .jstp-domain-nav {
    gap: 4px;
    padding: 12px 10px;
    top: 80px;
  }
  
  .jstp-domain-nav a {
    padding: 6px 10px;
    font-size: 10px;
  }
  
  .jstp-domain-nav a .dn-num {
    width: 16px;
    height: 16px;
    font-size: 9px;
  }
  
  .jstp-domain-badge {
    width: 26px;
    height: 26px;
    font-size: 12px;
  }
}





/* ─── DOMAIN NAV — VISIBLE STATE ─── */
.jstp-domain-nav.jstp-nav-visible {
  transform: translateX(-50%) translateY(0) !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  box-shadow: 0 4px 20px rgba(13,27,42,0.08) !important;
}


/* ═══════════════════════════════════════════════════════════════
   PLATFORM ECONOMICS — COMPARISON CARD
   ═══════════════════════════════════════════════════════════════ */
.jstp-compare {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin: 48px auto;
  max-width: 680px;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid rgba(13,27,42,0.08);
}

.jstp-compare-col {
  padding: 28px 24px;
}

.jstp-compare-col.col-left {
  background: #F5F2EC;
}

.jstp-compare-col.col-right {
  background: #0D1B2A;
}

.jstp-compare-label {
  font-family: Outfit, sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-bottom: 16px;
}

.col-left .jstp-compare-label {
  color: #778DA9;
}

.col-right .jstp-compare-label {
  color: #C17817;
}

.jstp-compare-item {
  font-family: Outfit, sans-serif;
  font-size: 14px;
  line-height: 1.6;
  padding: 8px 0;
  border-bottom: 1px solid rgba(0,0,0,0.06);
}

.col-left .jstp-compare-item {
  color: #415A77;
}

.col-right .jstp-compare-item {
  color: rgba(255,255,255,0.85);
  border-bottom-color: rgba(255,255,255,0.06);
}

.jstp-compare-item:last-child {
  border-bottom: none;
}

@media screen and (max-width: 600px) {
  .jstp-compare {
    grid-template-columns: 1fr;
    margin: 32px auto;
  }
}


/* ─── FIX: Restore bottom padding on CTA sections ─── */
.page-id-55 .entry-content > div:last-child[style*="C17817"] {
  padding-bottom: 48px !important;
}

.page-id-62 .entry-content > div:last-child {
  padding-bottom: 0px !important;
}


/* ─── SCROLL MARGIN — Anchor offset for fixed header + nav bar ─── */
[id^="cap-"],
[id^="domain-"] {
  scroll-margin-top: 220px;
}

.admin-bar [id^="cap-"],
.admin-bar [id^="domain-"] {
  scroll-margin-top: 250px;
}


/* ─── CAPABILITIES PAGE — H2 badge flex layout ─── */
.page-id-65 h2[id^="cap-"] {
  display: flex;
  align-items: center;
  gap: 12px;
}


/* ═══════════════════════════════════════════════════════════════
   CAPABILITIES PAGE — CTA BUTTON STYLING
   ═══════════════════════════════════════════════════════════════ */

/* Copper fill button (START A CONVERSATION) on navy bg */
div[style*="background-color:#0D1B2A"] a[style*="background:#C17817"] {
  border-radius: 4px !important;
  transition: all 0.25s ease !important;
}

div[style*="background-color:#0D1B2A"] a[style*="background:#C17817"]:hover {
  background: #FFFFFF !important;
  color: #0D1B2A !important;
  transform: translateY(-1px) !important;
}

/* Outline button (GET TARIFF INTELLIGENCE) on navy bg */
div[style*="background-color:#0D1B2A"] a[style*="border:1.5px solid"] {
  border-radius: 4px !important;
  transition: all 0.25s ease !important;
}

div[style*="background-color:#0D1B2A"] a[style*="border:1.5px solid"]:hover {
  background: rgba(255,255,255,0.12) !important;
  border-color: #FFFFFF !important;
  transform: translateY(-1px) !important;
}


/* ─── CAPABILITIES PAGE — Section CTA link pill treatment ─── */
.page-id-65 a[style*="color:#C17817"][style*="text-decoration:none"] {
  display: inline-block;
  padding: 8px 20px !important;
  border: 1.5px solid rgba(193,120,23,0.3) !important;
  border-radius: 4px !important;
  transition: all 0.2s ease !important;
  font-weight: 600 !important;
}

.page-id-65 a[style*="color:#C17817"][style*="text-decoration:none"]:hover {
  background: #C17817 !important;
  color: #FFFFFF !important;
  border-color: #C17817 !important;
  transform: translateY(-1px) !important;
}


/* ═══════════════════════════════════════════════════════════════
   PORTFOLIO PAGE — LOGO GRID & BRAND CARDS
   ═══════════════════════════════════════════════════════════════ */

/* Proof of Execution — Client Logo Grid */
.jstp-logo-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
  max-width: 780px;
  margin: 0 auto;
}

.jstp-logo-item {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 160px;
  height: 90px;
  background: #fff;
  border-radius: 10px;
  transition: all 0.25s ease;
  padding: 16px;
}

.jstp-logo-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(193,120,23,0.15);
}

.jstp-logo-item img {
  max-height: 54px;
  max-width: 120px;
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: 1;
  filter: none;
  transition: opacity 0.25s ease;
}

.jstp-logo-name {
  font-family: 'Outfit', sans-serif;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  color: #0D1B2A;
  text-align: center;
  line-height: 1.1;
  margin-top: 4px;
}

.jstp-logo-item:hover img {
  opacity: 0.85;
}

/* Brand Partnerships — Clickable Brand Cards */
.jstp-brand-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.jstp-brand-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
  background: #FAFAF8;
  border: 1px solid rgba(13,27,42,0.06);
  border-radius: 8px;
  padding: 32px 16px 20px;
  transition: all 0.25s ease;
  cursor: pointer;
}

.jstp-brand-card:hover {
  border-color: #C17817;
  box-shadow: 0 4px 20px rgba(193,120,23,0.12);
  transform: translateY(-2px);
}

.jstp-brand-logo-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 60px;
  margin-bottom: 12px;
}

.jstp-brand-logo-wrap img {
  max-height: 56px;
  max-width: 160px;
}

.jstp-brand-label {
  font-family: Outfit, sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.5px;
  color: #778DA9;
  margin: 0;
  text-align: center;
}

.jstp-brand-card:hover .jstp-brand-label {
  color: #C17817;
}

@media screen and (max-width: 768px) {
  .jstp-brand-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
  .jstp-logo-item {
    width: 130px;
  }
}

@media screen and (max-width: 480px) {
  .jstp-brand-grid {
    grid-template-columns: 1fr;
  }
}

/* Portfolio page bottom CTA padding fix */
.page-id-67 .entry-content > div:last-child {
  padding-bottom: 48px !important;
}


/* ─── FIX: Hide WP auto-inserted empty paragraph tags in grids ─── */
.jstp-brand-grid > p,
.jstp-logo-grid > p {
  display: none !important;
}


/* =============================================
   PRODUCT CATALOG — Card UX Overhaul
   ============================================= */

/* Grid: ensure rows stretch to tallest card */
.jstp-product-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 24px !important;
  align-items: stretch !important;
}

/* Card: flex column so button pins to bottom */
.jstp-product-card {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  border-radius: 10px !important;
  border: 1px solid rgba(13, 27, 42, 0.06) !important;
  overflow: hidden !important;
  background: #fff !important;
  transition: box-shadow 0.25s ease, transform 0.25s ease !important;
}
.jstp-product-card:hover {
  box-shadow: 0 8px 24px rgba(13, 27, 42, 0.08) !important;
  transform: translateY(-2px) !important;
}

/* Image container: fixed height, centered, subtle bg for white-bg images */
.jstp-product-img {
  height: 220px !important;
  min-height: 220px !important;
  max-height: 220px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 24px !important;
  background: #f8f7f5 !important;
  position: relative !important;
  overflow: hidden !important;
}
.jstp-product-img::after {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  box-shadow: inset 0 0 12px rgba(0, 0, 0, 0.03) !important;
  pointer-events: none !important;
  border-radius: 0 !important;
}

/* Product photo: consistent sizing with contain */
.jstp-product-photo {
  max-height: 175px !important;
  max-width: 85% !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
  display: block !important;
  margin: 0 auto !important;
  mix-blend-mode: multiply !important;
}

/* Image placeholder text */
.jstp-img-placeholder {
  font-family: 'Outfit', sans-serif !important;
  font-size: 11px !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  color: rgba(13, 27, 42, 0.18) !important;
  font-weight: 600 !important;
}

/* Info section: flex-grow to fill space and push button down */
.jstp-product-info {
  flex: 1 1 auto !important;
  display: flex !important;
  flex-direction: column !important;
  padding: 20px 20px 12px !important;
}

/* Product name: fixed 2-line height for alignment */
.jstp-product-name {
  font-family: 'DM Serif Display', serif !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  line-height: 1.35 !important;
  color: #0D1B2A !important;
  margin: 0 0 12px 0 !important;
  min-height: 40px !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

/* Details: compact, muted */
.jstp-product-detail {
  font-family: 'Outfit', sans-serif !important;
  font-size: 12.5px !important;
  color: #415A77 !important;
  margin: 0 0 4px 0 !important;
  line-height: 1.5 !important;
}

/* Push remaining space before button */
.jstp-product-info::after {
  content: '' !important;
  flex: 1 1 auto !important;
}

/* Request Quote button: pinned to bottom */
.jstp-quote-btn {
  display: block !important;
  margin: 0 !important;
  margin-top: auto !important;
  padding: 13px 16px !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  text-align: center !important;
  text-decoration: none !important;
  color: #fff !important;
  background: #0D1B2A !important;
  border: none !important;
  border-radius: 0 0 10px 10px !important;
  cursor: pointer !important;
  transition: background 0.2s ease !important;
}
.jstp-quote-btn:hover {
  background: #C17817 !important;
  color: #fff !important;
}

/* Mobile: 2-column on tablet, 1 on phone */
@media (max-width: 900px) {
  .jstp-product-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 16px !important;
  }
}
@media (max-width: 520px) {
  .jstp-product-grid {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }
  .jstp-product-img {
    height: 180px !important;
    min-height: 180px !important;
    max-height: 180px !important;
  }
}

/* Broken/missing product images — hide alt text */
.jstp-product-photo[alt] {
  font-size: 0 !important;
  color: transparent !important;
}

/* Fix WP wpautop breaking grid layouts on Portfolio page */
div[style*="grid-template-columns"] > p {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  height: 0 !important;
  line-height: 0 !important;
}

/* Portfolio brand card hover */
a[href*="/products/?brand"]:hover {
  border-color: #C17817 !important;
  box-shadow: 0 6px 20px rgba(13, 27, 42, 0.08) !important;
  transform: translateY(-2px) !important;
}


/* Distribution partner cards - subtle bg */
a[href*="/products/?brand"][style*="FAFAF9"] {
  background: #FAFAF9 !important;
}


/* Portfolio brand card — hover effect */
a[href*="/products/?brand"]:hover {
  border-color: #C17817 !important;
  box-shadow: 0 6px 20px rgba(13, 27, 42, 0.08) !important;
  transform: translateY(-2px) !important;
}

/* Portfolio SKU badges — CSS pseudo-element approach */
a[data-sku] {
  position: relative !important;
}
a[data-sku]::after {
  content: attr(data-sku);
  position: absolute;
  top: 0;
  right: 0;
  background: #0D1B2A;
  color: #C17817;
  font-family: Outfit, sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1px;
  padding: 5px 12px;
  border-radius: 0 8px 0 8px;
  z-index: 2;
  pointer-events: none;
}