/* =========================================================
   SaaSOvation theme — design system + fixes
   ========================================================= */

:root {
  --sov-navy: #001633;
  --sov-navy-2: #0a1f3a;
  /* Deeper blue for contrast on light surfaces / CTAs */
  --sov-blue: #176f9e;
  --sov-blue-hover: #125a80;
  --sov-blue-soft: #e8f4fa;
  --sov-gold: #febc39;
  --sov-text: #fbfbfb;
  --sov-muted: #c9d7e6;
  --sov-font: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  /* Match Nexter services column (.tpgb-cont-in ~79.4%) */
  --sov-content-max: 79.4%;
  /* One repeating vertical rhythm between homepage bands */
  --sov-section-space: 64px;
}

/* ---- Global typography (fixes Times New Roman nav fallback) ---- */
html,
body,
button,
input,
textarea,
select,
.wp-site-blocks,
.wp-block-navigation,
.wp-block-navigation * ,
.wp-block-navigation-item__content,
.wp-block-navigation__submenu-container,
.wp-block-button__link,
.tpgb-btn-txt,
.tp-core-heading,
.tpgb-pro-paragraph,
.pro-paragraph-inner,
.pro-paragraph-inner p,
.wpforms-field input,
.wpforms-field textarea,
.wpforms-submit {
  font-family: var(--sov-font) !important;
}

.has-plus-jakarta-sans-font-family,
.has-plus-jakarta-sans-font-family * {
  font-family: var(--sov-font) !important;
}

/* Ensure WP preset variable exists even if theme.json merge is incomplete */
body {
  --wp--preset--font-family--plus-jakarta-sans: var(--sov-font);
}

/* ---- Navigation polish ---- */
.wp-block-navigation .wp-block-navigation-item__content {
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0.01em;
}

.wp-block-navigation-item.current-menu-item .wp-block-navigation-item__content {
  color: var(--sov-gold) !important;
  position: relative;
}

.wp-block-navigation-item.current-menu-item .wp-block-navigation-item__content::after {
  content: "";
  display: block;
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: var(--sov-gold);
}

.wp-block-navigation-item.has-child > a:hover,
.wp-block-navigation-item.has-child:hover > a,
.wp-block-navigation__submenu-container .wp-block-navigation-item a:hover {
  color: var(--sov-gold);
}

@media screen and (max-width: 599px) {
  .tpgb-block-1197628d_55,
  .tpgb-block-1197628d_55 > .tpgb-cont-in {
    flex-direction: row-reverse;
  }
}

/* ---- Services tabs ---- */
.tpgb-tabs-wrapper .tpgb-tabs-nav {
  display: flex !important;
  justify-content: flex-start !important;
  align-items: stretch !important;
}

.tpgb-tab-li {
  flex: 1 1 auto;
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: stretch;
  text-align: center;
}

/* Hide dead/empty third tab entirely */
.tpgb-tabs-nav-wrapper .tpgb-tab-li:nth-child(3),
.tpgb-tab-li:nth-child(3) {
  display: none !important;
}

/* ---- Services column: center on the page (undo Nexter -50px bleed) ---- */
.tpgb-block-7965adaf_35 {
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  left: 0 !important;
}

.tpgb-block-ed90_35 > .tpgb-cont-in,
.tpgb-block-7ccd6ee3_35 > .tpgb-cont-in,
.tpgb-block-e2125f21_35 > .tpgb-cont-in {
  width: var(--sov-content-max) !important;
  max-width: var(--sov-content-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.tpgb-block-566d_35 {
  display: flex !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Expertise row (image + copy): fill the services column evenly */
.tpgb-block-c951_35 {
  display: flex !important;
  justify-content: center !important;
  align-items: flex-start !important;
  gap: clamp(24px, 4vw, 48px) !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

.tpgb-block-c951_35 > .tpgb-image {
  flex: 0 1 42% !important;
  max-width: 460px !important;
}

.tpgb-block-c951_35 > .tpgb-container-row {
  flex: 1 1 52% !important;
  min-width: 0 !important;
}

/* Same treatment for Websites tab content rows inside tabs */
.tpgb-tabs-tours .tpgb-tab-content .tpgb-container-row.alignfull.tpgb-container-full {
  justify-content: center !important;
}

/* Unify all Nexter CTAs to --sov-blue (header/hero were still #43a6d3).
   Paint .tpgb-btn-wrap (rounded); keep <a> transparent to avoid corner bleed. */
.tp-button-core .tpgb-btn-link {
  background-color: transparent !important;
  background: transparent !important;
}

.tp-button-core .tpgb-btn-wrap {
  background-color: var(--sov-blue) !important;
}

.tp-button-core .tpgb-btn-link:hover .tpgb-btn-wrap,
.tp-button-core .tpgb-btn-link:focus-visible .tpgb-btn-wrap {
  background-color: var(--sov-blue-hover) !important;
}

/* Inactive Services tab: deeper blue for contrast with navy active tab */
.tpgb-tabs-tours .tpgb-tab-li:not(:has(.active)) .tpgb-tab-header,
.tpgb-tabs-tours .tpgb-tab-header:not(.active) {
  background-color: var(--sov-blue) !important;
}

.tpgb-tabs-nav-wrapper .tpgb-tab-li:first-child .tab-icon-wrap i {
  padding-top: 7px;
  font-family: "Font Awesome 5 Free";
}

.tpgb-tabs-nav-wrapper .tpgb-tab-li:first-child .tab-icon-wrap i:before {
  content: "\f0c2";
}

.tpgb-tab-header.active::after {
  content: "";
  position: absolute;
  bottom: -5px;
  left: 50%;
  transform: translateX(-50%);
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 5px solid var(--sov-navy-2);
}

/* ---- WPForms ---- */
div.wpforms-container-full {
  width: 100% !important;
  padding: 0 24px !important;
}

div.wpforms-container-full .wpforms-confirmation-container-full p:last-child,
div[submit-success] > .wpforms-confirmation-container-full p:last-child {
  margin: 0;
  font-size: 16px;
  text-align: center;
  color: #ffffff;
}

div.wpforms-container-full .wpforms-confirmation-container-full,
div[submit-success] > .wpforms-confirmation-container-full:not(.wpforms-redirection-message) {
  background: var(--sov-blue) !important;
  border: 1px solid var(--sov-blue) !important;
  box-sizing: border-box;
  display: flex;
  align-content: center;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  flex-wrap: wrap;
}

div.wpforms-container-full .wpforms-confirmation-container-full,
div[submit-success] > .wpforms-confirmation-container-full {
  color: #ffffff;
  margin: 0 !important;
  padding: 15px;
  overflow-wrap: break-word;
}

div.wpforms-container-full button[type="submit"],
div.wpforms-container-full .wpforms-submit {
  background-color: var(--sov-blue) !important;
  background: var(--sov-blue) !important;
  border-color: var(--sov-blue) !important;
  color: #ffffff !important;
}

div.wpforms-container-full button[type="submit"]:hover,
div.wpforms-container-full .wpforms-submit:hover {
  background-color: var(--sov-blue-hover) !important;
  background: var(--sov-blue-hover) !important;
  border-color: var(--sov-blue-hover) !important;
}

/* Remove global padding ONLY on homepage */
body.home .has-global-padding {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Slightly calm hero CTA density: keep first Contact Us CTA, soften extras in hero collage zone if stacked */
body.home .entry-content > .alignfull:first-of-type .tpgb-btn-link {
  letter-spacing: 0.01em;
}

/* ---- Homepage section rhythm (identical gaps between bands) ----
   Nexter sections used 100px top+bottom; stacked that made a huge white void
   before the CntX card. One shared token, applied once per band edge. */
.tpgb-block-732ea81b_35,
.tpgb-block-e2125f21_35,
.tpgb-block-0b5ff05d_35 {
  padding-top: var(--sov-section-space) !important;
  padding-bottom: var(--sov-section-space) !important;
}

/* Avoid double-counting space where bands meet:
   Services → Product → About → Contact each contribute one unit. */
.tpgb-block-e2125f21_35 {
  padding-bottom: 0 !important;
}

/* About navy band (.bb5f49a9 paints the blue). Explicit 72px vertical —
   longhands only (Nexter + older theme shorthand were zeroing top/bottom). */
body .tpgb-block-c70ca614_35,
body .tpgb-block-bb5f49a9_35 {
  justify-content: flex-start !important;
  align-content: flex-start !important;
  min-height: 0 !important;
  height: auto !important;
}

body .tpgb-block-bb5f49a9_35 {
  padding-top: 72px !important;
  padding-bottom: 72px !important;
  padding-left: clamp(28px, 5vw, 72px) !important;
  padding-right: clamp(28px, 5vw, 72px) !important;
  gap: 24px !important;
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
}

/* About two-col: keep row height hug content (no extra section pad).
   Center-align columns so a shorter image doesn't leave a deep navy hole. */
.tpgb-block-9a31155d_35,
.tpgb-block-9a31155d_35 > .tpgb-cont-in {
  align-items: center !important;
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

/* About two-col track: same centered content width as Services / CntX */
.tpgb-block-c70ca614_35 .tpgb-block-3af70741_35,
.tpgb-block-c70ca614_35 .tpgb-block-9a31155d_35 {
  width: var(--sov-content-max) !important;
  max-width: var(--sov-content-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

.tpgb-block-0b5ff05d_35 {
  padding-top: var(--sov-section-space) !important;
}

/* ---- CntX product card (end of Services, before About) ---- */
.sov-product--card.alignwide {
  /* Same full-bleed track as centered Services — no -50px offset */
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  position: relative;
  left: auto;
  right: auto;
  box-sizing: border-box;
  /* No top pad: Services content already ends cleanly; keep bottom rhythm before About */
  padding: 0 0 var(--sov-section-space);
  background: #ffffff;
  color: var(--sov-navy);
}

.sov-product--card .sov-product__inner {
  /* Match Services .tpgb-cont-in width + center exactly */
  width: var(--sov-content-max) !important;
  max-width: var(--sov-content-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px 40px;
  padding: 28px 32px;
  border-radius: 16px;
  border: 1px solid rgba(23, 111, 158, 0.18);
  background:
    linear-gradient(135deg, rgba(23, 111, 158, 0.1), transparent 55%),
    var(--sov-blue-soft);
  box-shadow: 0 10px 30px rgba(0, 22, 51, 0.05);
}

.sov-product--card .sov-product__copy {
  flex: 1 1 auto;
  min-width: 0;
}

.sov-product--card .sov-product__eyebrow {
  margin: 0 0 8px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--sov-blue);
}

.sov-product--card .sov-product__title {
  margin: 0 0 10px;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--sov-navy);
}

.sov-product--card .sov-product__text {
  margin: 0;
  max-width: 40rem;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.55;
  color: #3d4f63;
}

.sov-product--card .sov-product__text strong {
  color: var(--sov-navy);
  font-weight: 600;
}

.sov-product--card .sov-product__aside {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}

.sov-product--card .sov-product__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 18px;
  border-radius: 8px;
  background: var(--sov-blue);
  color: #ffffff !important;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none !important;
  white-space: nowrap;
  transition: background-color 0.2s ease, transform 0.2s ease;
}

.sov-product--card .sov-product__cta:hover,
.sov-product--card .sov-product__cta:focus-visible {
  background: var(--sov-blue-hover);
  color: #ffffff !important;
  transform: translateY(-1px);
}

.sov-product--card .sov-product__aside-note {
  margin: 0;
  font-size: 12px;
  line-height: 1.4;
  color: #6a7c8f;
}

@media screen and (max-width: 900px) {
  :root {
    --sov-section-space: 48px;
  }

  .sov-product--card.alignwide {
    padding-left: 16px;
    padding-right: 16px;
  }

  .sov-product--card .sov-product__inner {
    width: 100%;
    flex-direction: column;
    align-items: flex-start;
    padding: 22px 20px;
    gap: 18px;
  }

  .sov-product--card .sov-product__aside {
    width: 100%;
  }

  .sov-product--card .sov-product__cta {
    width: 100%;
  }

  .tpgb-block-c951_35 {
    flex-direction: column !important;
  }

  .tpgb-block-c951_35 > .tpgb-image,
  .tpgb-block-c951_35 > .tpgb-container-row {
    flex: 1 1 auto !important;
    max-width: 100% !important;
    width: 100% !important;
  }
}

/* ---- Footer typography / readability ---- */
footer,
.wp-block-template-part,
[class*="footer"] .tp-core-heading,
[class*="footer"] .tpgb-btn-txt,
[class*="footer"] a,
[class*="footer"] span {
  font-family: var(--sov-font) !important;
}

/* Soften dense footer headings a bit */
.tpgb-block-aef1daaa_306,
.tpgb-block-711f0e1c_306,
.tpgb-block-1dce9d4c_306 {
  letter-spacing: 0.01em;
}
