/* ── UV Consultancy — Theme Enhancements ── */

:root {
  --uv-gold:         #28245f;
  --uv-gold-dim:     rgba(40,36,95,.10);
  --uv-gold-border:  rgba(40,36,95,.30);
  --uv-dark:         #1a1a1a;
  --uv-mid:          #555555;
  --uv-light-border: rgba(0,0,0,.08);
}

/* ============================================================
   GLOBAL TYPOGRAPHY — Montserrat body, Cormorant headings,
   fluid & comfortable on every screen
   ============================================================ */

body,
.wp-site-blocks,
.wp-block-post-content,
p, li, a, span, button, input, textarea, select, label, blockquote {
  font-family: 'Montserrat', sans-serif;
}

/* Comfortable fluid base size — grows from phone → desktop */
body {
  font-size: clamp(1rem, 0.95rem + 0.3vw, 1.15rem);
  line-height: 1.7;
}

/* Body copy in content areas */
.wp-block-post-content p,
.entry-content p {
  font-size: clamp(1rem, 0.95rem + 0.35vw, 1.18rem);
  line-height: 1.8;
}

/* Headings — Cormorant Garamond, fluid scale */
h1, h2, h3, h4, h5, h6,
.wp-block-heading {
  font-family: 'Cormorant Garamond', Georgia, serif;
  line-height: 1.12;
}
h1, .wp-block-heading.has-xx-large-font-size { font-size: clamp(2.6rem, 1.8rem + 3.4vw, 4.6rem); }
h2, .wp-block-heading.has-x-large-font-size  { font-size: clamp(2.1rem, 1.6rem + 2.2vw, 3.4rem); }
h3, .wp-block-heading.has-large-font-size    { font-size: clamp(1.7rem, 1.4rem + 1.4vw, 2.5rem); }
h4 { font-size: clamp(1.4rem, 1.2rem + 0.9vw, 2rem); }
h5 { font-size: clamp(1.2rem, 1.1rem + 0.5vw, 1.5rem); }
h6 { font-size: clamp(1.05rem, 1rem + 0.3vw, 1.25rem); }

/* ============================================================
   HEADER — White, fixed, scroll-aware
   ============================================================ */

/* The header bar — anchored on .uv-header-wrap so it is identical on
   EVERY template (homepage wraps it in a template-part element, inner
   pages render it bare; this matches both). */
.wp-site-blocks > header,
header.wp-block-template-part,
header.uv-header-wrap,
.uv-header-wrap {
  position: fixed !important;
  top: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  background: #fff !important;
  border-bottom: 1px solid var(--uv-light-border) !important;
  box-shadow: none;
  transition: box-shadow .3s ease, border-color .3s ease;
  height: 68px;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: nowrap !important;
}

/* On the homepage the part adds an outer <header class="wp-block-template-part">
   wrapper around .uv-header-wrap. Collapse it so we never get two stacked
   fixed bars — the inner .uv-header-wrap becomes the single bar. (Only the
   header wrapper uses this tag+class; the footer uses footer.…) */
header.wp-block-template-part {
  display: contents !important;
}

/* Push body below fixed header */
.wp-site-blocks {
  padding-top: 68px !important;
}

/* ── WordPress admin bar: keep the fixed header (and progress bar)
   clear of the toolbar when logged in. Mirrors WP's own breakpoints. ── */
body.admin-bar .wp-site-blocks > header,
body.admin-bar header.wp-block-template-part,
body.admin-bar header.uv-header-wrap,
body.admin-bar #uv-progress {
  top: 46px; /* admin bar height on tablet / small screens */
}
@media screen and (min-width: 783px) {
  body.admin-bar .wp-site-blocks > header,
  body.admin-bar header.wp-block-template-part,
  body.admin-bar header.uv-header-wrap,
  body.admin-bar #uv-progress {
    top: 32px; /* admin bar height on desktop */
  }
}
@media screen and (max-width: 600px) {
  /* Below 600px WP makes the admin bar scroll away (non-fixed),
     so the header sits flush to the top again. */
  body.admin-bar .wp-site-blocks > header,
  body.admin-bar header.wp-block-template-part,
  body.admin-bar header.uv-header-wrap,
  body.admin-bar #uv-progress {
    top: 0;
  }
}

/* Scrolled state — more depth */
.wp-site-blocks > header.uv-scrolled,
header.wp-block-template-part.uv-scrolled,
header.uv-header-wrap.uv-scrolled,
.uv-header-wrap.uv-scrolled {
  box-shadow: 0 2px 20px rgba(0,0,0,.09) !important;
  border-bottom-color: var(--uv-gold-border) !important;
}

/* Outer constrained wrapper fills height */
.wp-site-blocks > header > .wp-block-group,
header.wp-block-template-part > .wp-block-group {
  width: 100%;
  height: 68px;
  display: flex;
  align-items: center;
}

/* Inner row — logo on left, nav+cta on right */
.unibiz-header-nav-template {
  width: 100%;
  height: 68px;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: nowrap !important;
  gap: 1rem;
}

/* ── Logo / Site Title ── */
.unibiz-header-nav-template .wp-block-site-title,
.unibiz-header-nav-template .wp-block-site-title a {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: clamp(1.35rem, 1.2rem + 0.5vw, 1.6rem) !important;
  font-weight: 700 !important;
  color: var(--uv-dark) !important;
  letter-spacing: .03em !important;
  text-decoration: none !important;
  white-space: nowrap;
  flex-shrink: 0;
  line-height: 1;
  transition: color .2s;
}
.unibiz-header-nav-template .wp-block-site-title a:hover {
  color: var(--uv-gold) !important;
}

/* ── Right-side group: nav + button ── */
.unibiz-header-nav {
  display: flex !important;
  align-items: center !important;
  gap: 1rem;
  flex-shrink: 0;
}

/* ── Nav block ── */
.unibiz-header-nav .wp-block-navigation,
.uv-header-wrap .wp-block-navigation {
  display: flex;
  align-items: center;
}

/* ── Give each nav item its own breathing room ── */
.uv-header-wrap .wp-block-navigation-item.wp-block-navigation-link,
.uv-header-wrap .wp-block-navigation-item.wp-block-navigation-submenu {
  padding: 0 !important;
  margin: 0 !important;
}
.uv-header-wrap .wp-block-navigation-item.wp-block-navigation-link > .wp-block-navigation-item__content,
.uv-header-wrap .wp-block-navigation-item.wp-block-navigation-submenu > .wp-block-navigation-item__content {
  padding: 0.5rem 0.85rem !important;
}

/* ── Hide social links only when inside the nav block, keep .uv-header-socials ── */
.wp-block-navigation .wp-block-social-links:not(.uv-header-socials),
.wp-block-navigation li:has(.wp-block-social-links:not(.uv-header-socials)) {
  display: none !important;
}

/* Logo — never wrap */
.uv-header-wrap .wp-block-image,
.uv-header-wrap .wp-block-site-title {
  flex-shrink: 0 !important;
  white-space: nowrap !important;
}
.uv-header-wrap .wp-block-image img {
  height: 54px !important;
  width: auto !important;
  display: block;
}

/* Right side group */
.uv-nav-right {
  display: flex !important;
  align-items: center !important;
  gap: 1.2rem !important;
  flex-shrink: 0 !important;
}

/* ── Nav links (desktop) ── */
.unibiz-header-nav .wp-block-navigation-item__content,
.uv-header-wrap .wp-block-navigation-item__content {
  font-family: 'Montserrat', sans-serif !important;
  font-size: clamp(.72rem, .68rem + .18vw, .8rem) !important;
  font-weight: 500 !important;
  letter-spacing: .11em !important;
  text-transform: uppercase !important;
  color: var(--uv-mid) !important;
  text-decoration: none !important;
  padding: .45rem .8rem !important;
  transition: color .2s !important;
  position: relative;
  white-space: nowrap;
}

/* Gold underline slide-in on top-level items */
.unibiz-header-nav .wp-block-navigation > ul > li > .wp-block-navigation-item__content::after,
.uv-header-wrap .wp-block-navigation .wp-block-navigation__container > li > .wp-block-navigation-item__content::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: .8rem;
  right: .8rem;
  height: 1px;
  background: var(--uv-gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s ease;
}
.unibiz-header-nav .wp-block-navigation > ul > li:hover > .wp-block-navigation-item__content,
.uv-header-wrap .wp-block-navigation .wp-block-navigation__container > li:hover > .wp-block-navigation-item__content {
  color: var(--uv-dark) !important;
}
.unibiz-header-nav .wp-block-navigation > ul > li:hover > .wp-block-navigation-item__content::after,
.uv-header-wrap .wp-block-navigation .wp-block-navigation__container > li:hover > .wp-block-navigation-item__content::after {
  transform: scaleX(1);
}

/* ── Dropdown ── */
.wp-block-navigation__submenu-container {
  background: #fff !important;
  border: 1px solid rgba(0,0,0,.09) !important;
  border-top: 2px solid var(--uv-gold) !important;
  box-shadow: 0 8px 28px rgba(0,0,0,.10) !important;
  min-width: 200px;
  border-radius: 0 !important;
  padding: .3rem 0 !important;
}
.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  font-size: .85rem !important;
  padding: .65rem 1.1rem !important;
  color: var(--uv-mid) !important;
  border-bottom: 1px solid rgba(0,0,0,.05) !important;
  letter-spacing: .06em !important;
  text-transform: none !important;
  transition: background .18s, color .18s !important;
}
.wp-block-navigation__submenu-container .wp-block-navigation-item:last-child .wp-block-navigation-item__content {
  border-bottom: none !important;
}
.wp-block-navigation__submenu-container .wp-block-navigation-item:hover .wp-block-navigation-item__content {
  background: var(--uv-gold-dim) !important;
  color: var(--uv-dark) !important;
}
/* Submenu chevron */
.wp-block-navigation__submenu-icon {
  opacity: .5;
}

/* ── CTA Button ── */
.uv-nav-cta .wp-block-button__link {
  background: var(--uv-gold) !important;
  color: #fff !important;
  border: 1.5px solid var(--uv-gold) !important;
  font-family: 'Montserrat', sans-serif !important;
  font-size: .76rem !important;
  font-weight: 600 !important;
  letter-spacing: .13em !important;
  text-transform: uppercase !important;
  padding: .52rem 1.2rem !important;
  border-radius: 0 !important;
  text-decoration: none !important;
  white-space: nowrap;
  transition: background .22s, color .22s !important;
  display: inline-block;
}
.uv-nav-cta .wp-block-button__link:hover {
  background: transparent !important;
  color: var(--uv-gold) !important;
}

/* ── Hamburger button (mobile) ── */
.wp-block-navigation__responsive-container-open {
  background: none !important;
  border: none !important;
  cursor: pointer;
  padding: 4px !important;
  display: flex;
  align-items: center;
  justify-content: center;
}
.wp-block-navigation__responsive-container-open svg {
  width: 22px;
  height: 22px;
  color: var(--uv-dark) !important;
  fill: var(--uv-dark) !important;
  stroke: var(--uv-dark) !important;
}
.wp-block-navigation__responsive-container-open:hover svg {
  color: var(--uv-gold) !important;
  fill: var(--uv-gold) !important;
}

/* ── Mobile overlay — full screen, clean white ── */
.wp-block-navigation__responsive-container.is-menu-open {
  background: #ffffff !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column;
}

/* Close button row */
.wp-block-navigation__responsive-close {
  display: flex;
  justify-content: flex-end;
  padding: 1.2rem 1.5rem;
  border-bottom: 1px solid rgba(0,0,0,.07);
}
.wp-block-navigation__responsive-container-close {
  background: none !important;
  border: none !important;
  cursor: pointer;
  padding: 4px;
}
.wp-block-navigation__responsive-container-close svg {
  width: 22px;
  height: 22px;
  color: var(--uv-dark) !important;
}
.wp-block-navigation__responsive-container-close:hover svg {
  color: var(--uv-gold) !important;
}

/* Menu items list */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
  padding: .5rem 0 !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
  border-bottom: 1px solid rgba(0,0,0,.06) !important;
  margin: 0 !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
  font-family: 'Montserrat', sans-serif !important;
  font-size: .86rem !important;
  font-weight: 500 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  color: var(--uv-dark) !important;
  padding: 1rem 1.5rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  transition: color .2s, background .2s !important;
  text-decoration: none !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover {
  color: var(--uv-gold) !important;
  background: rgba(40,36,95,.06) !important;
}

/* Gold left bar on current/active item */
.wp-block-navigation__responsive-container.is-menu-open .current-menu-item > .wp-block-navigation-item__content {
  color: var(--uv-gold) !important;
  border-left: 2px solid var(--uv-gold);
}

/* Submenu inside mobile — indented, no box */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
  position: static !important;
  box-shadow: none !important;
  border: none !important;
  border-top: none !important;
  background: #f9f9f9 !important;
  min-width: unset !important;
  padding: 0 !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  font-size: .88rem !important;
  letter-spacing: .08em !important;
  text-transform: none !important;
  padding: .75rem 1.5rem .75rem 2.5rem !important;
  color: var(--uv-mid) !important;
  font-weight: 400 !important;
}

/* CTA inside mobile menu — shown at bottom */
.wp-block-navigation__responsive-container.is-menu-open ~ .uv-nav-cta,
.wp-block-navigation__responsive-container-content .uv-nav-cta {
  display: block !important;
  padding: 1.5rem !important;
  border-top: 1px solid rgba(0,0,0,.07) !important;
}

/* ── Hide CTA button on mobile ── */
@media (max-width: 767px) {
  .uv-nav-cta {
    display: none !important;
  }
}

/* ── Header social icons ── */
.uv-header-socials {
  display: flex !important;
  align-items: center !important;
  gap: 4px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  flex-shrink: 0;
}
.uv-header-socials .wp-social-link {
  width: 32px !important;
  height: 32px !important;
  border-radius: 50% !important;
  background: transparent !important;
  border: 1px solid rgba(0,0,0,.12) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: background .2s, border-color .2s !important;
}
.uv-header-socials .wp-social-link:hover {
  background: var(--uv-gold-dim) !important;
  border-color: var(--uv-gold) !important;
}
.uv-header-socials .wp-social-link svg {
  width: 14px !important;
  height: 14px !important;
  fill: var(--uv-dark) !important;
  color: var(--uv-dark) !important;
}
.uv-header-socials .wp-social-link:hover svg {
  fill: var(--uv-gold) !important;
  color: var(--uv-gold) !important;
}
.uv-header-socials .wp-block-social-link-anchor {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  width: 100% !important;
  height: 100% !important;
}

/* ============================================================
   RESPONSIVE HEADER — premium scaling, socials kept on every screen
   ============================================================ */

/* Tablet & small laptops: tighten the right-side cluster a touch */
@media (max-width: 991px) {
  .uv-nav-right { gap: 1rem !important; }
  .uv-header-wrap .wp-block-navigation-item.wp-block-navigation-link > .wp-block-navigation-item__content,
  .uv-header-wrap .wp-block-navigation-item.wp-block-navigation-submenu > .wp-block-navigation-item__content {
    padding: 0.5rem 0.6rem !important;
  }
}

/* Phones / narrow tablets: shorter bar, smaller logo, compact socials */
@media (max-width: 781px) {
  .wp-site-blocks > header,
  header.wp-block-template-part,
  header.uv-header-wrap,
  .wp-site-blocks > header > .wp-block-group,
  header.wp-block-template-part > .wp-block-group,
  .unibiz-header-nav-template { height: 60px !important; }

  .wp-site-blocks { padding-top: 60px !important; }

  .uv-header-wrap .wp-block-image img { height: 46px !important; }

  /* Keep the socials — just compact them and sit them before the menu button */
  .uv-nav-right { gap: .65rem !important; }
  .uv-header-socials { order: -1; gap: 3px !important; }
  .uv-header-socials .wp-social-link { width: 30px !important; height: 30px !important; }
  .uv-header-socials .wp-social-link svg { width: 13px !important; height: 13px !important; }
}

/* Very small phones: protect the layout from overflow, socials stay */
@media (max-width: 400px) {
  .uv-header-wrap .wp-block-image img { height: 40px !important; }
  .uv-header-socials { gap: 0 !important; }
  .uv-header-socials .wp-social-link { width: 28px !important; height: 28px !important; }
}

/* ── Desktop: nav links visible, hamburger hidden ── */
@media (min-width: 782px) {
  .wp-block-navigation__responsive-container-open {
    display: none !important;
  }
}

/* ============================================================
   HERO — Full-screen photo, white-zone left, clean separation
   ============================================================ */

.uv-hero {
  position: relative;
  min-height: 100vh;            /* fallback */
  min-height: calc(100svh + 7rem); /* extended, immersive — mobile-safe unit */
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #fff;
}

/* Full-screen photo — Wessam's wide landscape */
.uv-hero__photo {
  position: absolute;
  inset: 0;
  background-image: url('../wessam-hero.jpg');
  background-size: cover;
  background-position: center right;
  background-repeat: no-repeat;
  z-index: 0;
}

/* White gradient left → transparent right
   Text sits on white, photo shows clearly on right */
.uv-hero__gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to right,
    #ffffff 0%,
    #ffffff 36%,
    rgba(255,255,255,0.88) 50%,
    rgba(255,255,255,0.10) 72%,
    rgba(255,255,255,0.0) 100%
  );
  z-index: 1;
}

/* Left content — floats above white zone, properly padded */
.uv-hero__left {
  position: relative;
  z-index: 2;
  width: 52%;
  padding: clamp(7rem, 13vh, 10rem) clamp(2rem, 5vw, 6rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 1;
}

/* Eyebrow label */
.uv-hero__eyebrow {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(.72rem, .68rem + .2vw, .82rem);
  font-weight: 600;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--uv-gold);
  display: flex;
  align-items: center;
  gap: .8rem;
  margin-bottom: 1.6rem;
}
.uv-hero__eyebrow::before {
  content: '';
  display: inline-block;
  width: 30px;
  height: 1px;
  background: var(--uv-gold);
  flex-shrink: 0;
}

/* Main headline */
.uv-hero__title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(3rem, 1.8rem + 4.4vw, 5.6rem);
  font-weight: 700;
  line-height: .94;
  color: #111111;
  margin: 0 0 1.6rem;
}
.uv-hero__title em {
  color: var(--uv-gold);
  font-style: italic;
  display: block;
}

/* Subtitle */
.uv-hero__sub {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(1.02rem, .96rem + .35vw, 1.2rem);
  font-weight: 400;
  color: #555;
  line-height: 1.82;
  max-width: 440px;
  margin: 0 0 2.4rem;
}

/* CTA buttons — side by side, no overlap */
.uv-hero__btns {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.uv-hero__btn-primary {
  display: inline-block;
  padding: .88rem 2rem;
  background: var(--uv-gold);
  color: #fff;
  border: 2px solid var(--uv-gold);
  font-family: 'Montserrat', sans-serif;
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .13em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background .24s, color .24s;
  white-space: nowrap;
}
.uv-hero__btn-primary:hover {
  background: transparent;
  color: var(--uv-gold);
}
.uv-hero__btn-ghost {
  display: inline-block;
  padding: .88rem 2rem;
  background: transparent;
  color: #333;
  border: 1.5px solid rgba(0,0,0,.22);
  font-family: 'Montserrat', sans-serif;
  font-size: .82rem;
  font-weight: 500;
  letter-spacing: .13em;
  text-transform: uppercase;
  text-decoration: none;
  transition: border-color .24s, color .24s;
  white-space: nowrap;
}
.uv-hero__btn-ghost:hover {
  border-color: var(--uv-gold);
  color: var(--uv-gold);
}

/* Stats bar — full width strip at the bottom,
   white background, clear visual separation from hero */
.uv-hero__stats-bar {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  background: #fff;
  border-top: 1px solid rgba(0,0,0,.08);
  padding: 1.8rem 5rem;
  gap: 0;
}
.uv-hero__stat {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: .25rem;
  padding: 0 2rem;
}
.uv-hero__stat:first-child {
  padding-left: 0;
}
.uv-hero__stat-divider {
  width: 1px;
  height: 36px;
  background: rgba(0,0,0,.10);
  flex-shrink: 0;
}
.uv-hero__stat-num {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(2.6rem, 2rem + 1.8vw, 3.4rem);
  font-weight: 700;
  color: var(--uv-gold);
  line-height: 1;
}
.uv-hero__stat-label {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(.7rem, .66rem + .2vw, .8rem);
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #888;
}

/* ── Mobile ── */
@media (max-width: 900px) {
  .uv-hero {
    min-height: calc(100svh + 2rem);
  }
  .uv-hero__left {
    width: 100%;
    padding: clamp(6rem, 12vh, 8rem) clamp(1.5rem, 6vw, 2.5rem);
  }
  .uv-hero__gradient {
    background: linear-gradient(
      to right,
      rgba(255,255,255,1) 0%,
      rgba(255,255,255,1) 50%,
      rgba(255,255,255,0.85) 70%,
      rgba(255,255,255,0.55) 100%
    );
  }
  .uv-hero__stats-bar {
    padding: 1.4rem 2rem;
    flex-wrap: wrap;
    gap: 1rem;
  }
  .uv-hero__stat {
    flex: 1 1 40%;
    padding: 0;
  }
  .uv-hero__stat-divider {
    display: none;
  }
}
@media (max-width: 600px) {
  .uv-hero__title {
    font-size: clamp(2.7rem, 8.5vw, 3.4rem);
  }
  .uv-hero__btns {
    flex-direction: column;
    align-items: flex-start;
  }
  .uv-hero__photo {
    background-position: 65% center;
  }
}

/* ============================================================
   SCROLL PROGRESS BAR
   ============================================================ */

#uv-progress {
  position: fixed;
  top: 0;
  left: 0;
  height: 2px;
  background: var(--uv-gold);
  z-index: 10001;
  width: 0%;
  transition: width .08s linear;
  pointer-events: none;
}

/* ============================================================
   SCROLL REVEAL ANIMATIONS
   ============================================================ */

.uv-fade-up {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .6s ease, transform .6s ease;
}
.uv-fade-left {
  opacity: 0;
  transform: translateX(-24px);
  transition: opacity .6s ease, transform .6s ease;
}
.uv-fade-right {
  opacity: 0;
  transform: translateX(24px);
  transition: opacity .6s ease, transform .6s ease;
}
.uv-fade-up.uv-visible,
.uv-fade-left.uv-visible,
.uv-fade-right.uv-visible {
  opacity: 1;
  transform: none;
}

.uv-delay-1 { transition-delay: .10s; }
.uv-delay-2 { transition-delay: .20s; }
.uv-delay-3 { transition-delay: .30s; }
.uv-delay-4 { transition-delay: .40s; }
.uv-delay-5 { transition-delay: .50s; }

/* ============================================================
   INNER PAGE INTRO — shared, premium, on-brand starter
   ============================================================ */

.uv-page-head {
  max-width: 880px;
  margin: 0 auto;
  padding: clamp(2.5rem, 5vw, 5rem) 4vw clamp(1.5rem, 3vw, 3rem);
  text-align: center;
}
.uv-eyebrow {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(.72rem, .68rem + .2vw, .82rem);
  font-weight: 600;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--uv-gold);
  margin: 0 0 1rem;
}
.uv-page-head h1.wp-block-heading {
  margin: 0;
  color: #111;
}
.uv-lead {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(1.05rem, 1rem + .4vw, 1.3rem);
  font-weight: 400;
  line-height: 1.8;
  color: var(--uv-mid);
  max-width: 680px;
  margin: 1.4rem auto 0;
}

/* ============================================================
   FOOTER — premium navy + gold, universal across all pages
   ============================================================ */

.uv-footer {
  background: linear-gradient(135deg, #0C184C 0%, #011222 55%, #0C184C 100%);
  color: rgba(255,255,255,.72);
  font-family: 'Montserrat', sans-serif;
  padding: clamp(3.5rem, 6vw, 6rem) 4vw clamp(1.5rem, 3vw, 2.5rem);
  margin-top: 0;
}
.uv-footer a {
  color: rgba(255,255,255,.72);
  text-decoration: none;
  transition: color .2s ease;
}
.uv-footer a:hover { color: var(--uv-gold); }

/* Top row layout */
.uv-footer__top {
  max-width: 1200px;
  margin: 0 auto !important;
  gap: clamp(2rem, 4vw, 4rem) !important;
  align-items: flex-start;
}

/* Brand column */
.uv-footer__name {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  color: #fff;
  font-size: clamp(1.6rem, 1.3rem + 1vw, 2.15rem) !important;
  font-weight: 700;
  line-height: 1.1;
  margin: 0 0 .7rem !important;
}
.uv-footer__tag {
  color: var(--uv-gold);
  font-size: .76rem;
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
  margin: 0 0 1.3rem;
}
.uv-footer__blurb {
  line-height: 1.85;
  font-size: .95rem;
  max-width: 330px;
  margin: 0 0 1.6rem;
  color: rgba(255,255,255,.62);
}

/* Column headings */
.uv-footer__h {
  font-family: 'Montserrat', sans-serif !important;
  color: #fff;
  font-size: .78rem !important;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  margin: 0 0 1.4rem !important;
  position: relative;
  padding-bottom: .8rem;
}
.uv-footer__h::after {
  content: '';
  position: absolute;
  left: 0; bottom: 0;
  width: 28px; height: 2px;
  background: var(--uv-gold);
}

/* Link lists */
.uv-footer__list {
  list-style: none !important;
  margin: 0; padding: 0 !important;
}
.uv-footer__list li { margin: 0 0 .75rem; }
.uv-footer__list a { font-size: .95rem; }

/* Contact block */
.uv-footer__contact {
  font-size: .95rem;
  line-height: 2.1;
  color: rgba(255,255,255,.62);
  margin: 0;
}

/* Social icons */
.uv-footer__socials { gap: 8px !important; margin: 0; }
.uv-footer__socials .wp-social-link {
  width: 34px !important; height: 34px !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,.07) !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  display: flex !important; align-items: center; justify-content: center;
  transition: background .2s, border-color .2s !important;
}
.uv-footer__socials .wp-social-link:hover {
  background: var(--uv-gold) !important;
  border-color: var(--uv-gold) !important;
}
.uv-footer__socials .wp-social-link svg {
  width: 15px !important; height: 15px !important;
  fill: #fff !important;
}

/* Bottom bar */
.uv-footer__bottom {
  max-width: 1200px;
  margin: clamp(2.5rem, 5vw, 4rem) auto 0 !important;
  padding-top: 1.8rem;
  border-top: 1px solid rgba(255,255,255,.12);
  text-align: center;
  font-size: .8rem;
  letter-spacing: .04em;
  color: rgba(255,255,255,.45);
}

/* Stack neatly on mobile */
@media (max-width: 781px) {
  .uv-footer__top { gap: 2.5rem !important; }
  .uv-footer__blurb { max-width: none; }
}

/* ============================================================
   PAGE CONTENT COMPONENTS — sections, cards, steps, CTA
   (reuses brand gold/navy; fully responsive)
   ============================================================ */

.uv-section { padding: clamp(3.5rem, 7vw, 7rem) 0; }
.uv-section.is-muted { background: #F7F6F3; }
.uv-section.is-dark {
  background: linear-gradient(135deg, #0C184C 0%, #011222 60%, #0C184C 100%);
  color: rgba(255,255,255,.78);
}
.uv-wrap { max-width: 1140px; margin: 0 auto; padding: 0 4vw; }
.uv-wrap.is-narrow { max-width: 820px; }

/* Section heading group */
.uv-section__head { max-width: 760px; margin: 0 0 clamp(2rem, 4vw, 3.5rem); }
.uv-section__head.is-center { margin-left: auto; margin-right: auto; text-align: center; }
/* Head-only sections (no cards/steps beside them) center for balance */
.uv-wrap > .uv-section__head:only-child {
  margin-left: auto; margin-right: auto; margin-bottom: 0; text-align: center;
}
.uv-section__title {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: clamp(2rem, 1.5rem + 2vw, 3.2rem) !important;
  line-height: 1.12;
  color: #111;
  font-weight: 700;
  margin: .4rem 0 1rem !important;
}
.is-dark .uv-section__title { color: #fff; }
.uv-section__intro {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(1rem, .97rem + .3vw, 1.15rem);
  line-height: 1.85;
  color: var(--uv-mid);
  margin: 0 0 1rem;
}
.is-dark .uv-section__intro { color: rgba(255,255,255,.72); }

/* Card grid */
.uv-cards {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr);   /* equal columns — every box aligns */
  gap: clamp(1rem, 2vw, 1.6rem) !important;
  align-items: stretch;
}
@media (max-width: 900px) { .uv-cards { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .uv-cards { grid-template-columns: 1fr; } }
.uv-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--uv-light-border);
  padding: clamp(1.6rem, 2.5vw, 2.3rem);
  transition: border-color .25s, box-shadow .25s, transform .25s;
}
.uv-card:hover {
  border-color: var(--uv-gold-border);
  box-shadow: 0 14px 40px rgba(0,0,0,.06);
  transform: translateY(-3px);
}
.uv-card__k {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 1.7rem; font-weight: 700; color: var(--uv-gold);
  display: block; margin: 0 0 .5rem; line-height: 1;
}
.uv-card__t {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 1.45rem !important; color: #111; font-weight: 700;
  line-height: 1.2; margin: 0 0 .6rem !important;
}
.uv-card__d {
  font-family: 'Montserrat', sans-serif;
  font-size: .96rem; line-height: 1.7; color: var(--uv-mid); margin: 0;
}
.uv-card__t a { color: inherit; text-decoration: none; }
.uv-card:hover .uv-card__t a { color: var(--uv-gold); }
.uv-card__more {
  display: inline-block;
  font-family: 'Montserrat', sans-serif; font-size: .72rem; font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--uv-gold) !important; text-decoration: none !important;
}
/* pin the "Explore →" link to a consistent bottom edge across cards */
.uv-card p:has(.uv-card__more) { margin-top: auto; padding-top: 1.1rem; margin-bottom: 0; }

/* Steps (methodology) */
.uv-steps {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: clamp(1.4rem, 3vw, 2.5rem) !important;
}
.uv-step { padding-top: 1.1rem; border-top: 2px solid var(--uv-gold-border); }
.uv-step__n {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 2.5rem; font-weight: 700; color: var(--uv-gold);
  line-height: 1; margin: 0 0 .6rem;
}
.uv-step__t {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 1.4rem !important; color: #111; font-weight: 700; margin: 0 0 .5rem !important;
}
.uv-step__d {
  font-family: 'Montserrat', sans-serif;
  font-size: .95rem; line-height: 1.7; color: var(--uv-mid); margin: 0;
}

/* Checklist */
.uv-checks {
  list-style: none !important; margin: 0; padding: 0 !important;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: .85rem 2.5rem;
}
.uv-checks li {
  position: relative; padding-left: 1.9rem;
  line-height: 1.6; color: var(--uv-mid);
  font-family: 'Montserrat', sans-serif; font-size: 1.02rem;
}
.uv-checks li::before {
  content: '✓'; position: absolute; left: 0; top: 0;
  color: var(--uv-gold); font-weight: 700;
}
.is-dark .uv-checks li { color: rgba(255,255,255,.78); }

/* Founder / split-image layouts */
.uv-founder__img img,
.uv-split__img img {
  width: 100%; height: auto; display: block;
  box-shadow: 0 24px 60px rgba(12,24,76,.14);
}
.uv-split { gap: clamp(2rem, 4vw, 4.5rem) !important; align-items: center; }
.uv-split .uv-section__intro { margin-bottom: 1.4rem; }

/* Clients / sectors strip */
.uv-clients {
  display: flex; flex-wrap: wrap; justify-content: center;
  gap: .6rem 2.4rem; margin: 0; padding: 0; list-style: none;
}
.uv-clients li {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.2rem, 1rem + .8vw, 1.7rem);
  color: rgba(255,255,255,.82); line-height: 1.5;
}
.uv-sectors {
  text-align: center; color: var(--uv-gold);
  font-family: 'Montserrat', sans-serif; font-size: .8rem;
  letter-spacing: .18em; text-transform: uppercase; margin: 1.6rem 0 0;
}

/* CTA band */
.uv-cta {
  background: linear-gradient(135deg, #0C184C 0%, #011222 60%, #0C184C 100%);
  text-align: center;
  padding: clamp(3.5rem, 7vw, 6rem) 4vw;
}
.uv-cta__title {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  color: #fff; font-size: clamp(1.8rem, 1.4rem + 2vw, 3rem) !important;
  line-height: 1.15; max-width: 720px; margin: .6rem auto 1rem !important; font-weight: 700;
}
.uv-cta__sub {
  font-family: 'Montserrat', sans-serif;
  color: rgba(255,255,255,.7); max-width: 580px; margin: 0 auto 2rem; line-height: 1.8;
}
.uv-cta .uv-eyebrow { text-align: center; }

/* Buttons */
.uv-btn {
  display: inline-block;
  background: var(--uv-gold); color: #fff !important;
  border: 2px solid var(--uv-gold);
  font-family: 'Montserrat', sans-serif; font-size: .78rem; font-weight: 600;
  letter-spacing: .13em; text-transform: uppercase; text-decoration: none !important;
  padding: .95rem 2.3rem; transition: background .24s, color .24s;
}
.uv-btn:hover { background: transparent; color: var(--uv-gold) !important; }
.uv-btn.is-ghost { background: transparent; color: #fff !important; border-color: rgba(255,255,255,.4); }
.uv-btn.is-ghost:hover { border-color: var(--uv-gold); color: var(--uv-gold) !important; }
.uv-btnwrap { margin: 0; }

/* ============================================================
   FLOATING WHATSAPP
   ============================================================ */
.uv-wa {
  position: fixed;
  right: clamp(16px, 2.5vw, 28px);
  bottom: clamp(16px, 2.5vw, 28px);
  width: 58px; height: 58px;
  border-radius: 50%;
  background: #25D366;
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
  z-index: 9998;
  transition: transform .2s ease, box-shadow .2s ease;
  animation: uv-wa-in .4s ease both .8s;
}
.uv-wa:hover { transform: scale(1.08); box-shadow: 0 14px 36px rgba(0,0,0,.3); color: #fff; }
@keyframes uv-wa-in { from { opacity: 0; transform: scale(.6); } to { opacity: 1; transform: scale(1); } }
@media (max-width: 600px) { .uv-wa { width: 52px; height: 52px; } }

/* ============================================================
   LEAD POP-UP MODAL
   ============================================================ */
.uv-modal { position: fixed; inset: 0; z-index: 10010; display: flex; align-items: center; justify-content: center; padding: 1.2rem; }
.uv-modal[hidden] { display: none; }
.uv-modal__overlay { position: absolute; inset: 0; background: rgba(1,18,34,.62); backdrop-filter: blur(3px); animation: uv-fade .25s ease; }
.uv-modal__card {
  position: relative; z-index: 1;
  width: 100%; max-width: 560px;
  background: #fff;
  border-top: 4px solid var(--uv-gold);
  padding: clamp(1.8rem, 4vw, 3rem);
  box-shadow: 0 40px 90px rgba(1,18,34,.35);
  animation: uv-pop .3s cubic-bezier(.2,.8,.2,1);
  max-height: 92vh; overflow-y: auto;
}
@keyframes uv-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes uv-pop { from { opacity: 0; transform: translateY(16px) scale(.98); } to { opacity: 1; transform: none; } }
.uv-modal__x {
  position: absolute; top: .8rem; right: 1rem;
  background: none; border: 0; font-size: 1.8rem; line-height: 1;
  color: #999; cursor: pointer; transition: color .2s;
}
.uv-modal__x:hover { color: var(--uv-gold); }
.uv-modal__title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.6rem, 1.3rem + 1.2vw, 2.3rem);
  line-height: 1.12; color: #111; font-weight: 700; margin: .3rem 0 .6rem;
}
.uv-modal__sub { font-family: 'Montserrat', sans-serif; color: var(--uv-mid); line-height: 1.65; margin: 0 0 1.4rem; font-size: .98rem; }

/* Form */
.uv-form { display: block; }
.uv-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.uv-form__row { display: flex; gap: .8rem; }
.uv-form__row + .uv-form__row { margin-top: .8rem; }
.uv-form input, .uv-form textarea {
  width: 100%; font-family: 'Montserrat', sans-serif; font-size: .95rem;
  padding: .85rem 1rem; border: 1px solid rgba(0,0,0,.16); background: #fafafa;
  color: #111; border-radius: 0; transition: border-color .2s, background .2s;
}
.uv-form textarea { margin-top: .8rem; resize: vertical; }
.uv-form input:focus, .uv-form textarea:focus { outline: none; border-color: var(--uv-gold); background: #fff; }
.uv-form__submit { width: 100%; margin-top: 1rem; cursor: pointer; border: 2px solid var(--uv-gold); }
.uv-form__submit:disabled { opacity: .6; cursor: default; }
.uv-form__msg { margin: .8rem 0 0; font-size: .9rem; min-height: 1em; }
.uv-form__msg.is-err { color: #c0392b; }
.uv-form__done { color: #1e7e4f; font-family: 'Cormorant Garamond', serif; font-size: 1.4rem; text-align: center; padding: 1.5rem 0; }
.uv-form__alt { margin: 1rem 0 0; font-size: .85rem; color: var(--uv-mid); text-align: center; }
.uv-form__alt a { color: var(--uv-gold); text-decoration: none; font-weight: 600; }
@media (max-width: 520px) { .uv-form__row { flex-direction: column; gap: .8rem; } }

/* ============================================================
   MOBILE FIXES — sharp & contained on phones
   ============================================================ */
/* never allow horizontal overflow */
html, body { overflow-x: hidden; max-width: 100%; }

@media (max-width: 600px) {
  /* Header: hide social icons so logo + menu button fit cleanly
     (socials remain in the footer and on tablets/desktop) */
  .uv-header-socials { display: none !important; }

  /* Hero text must wrap and stay inside the viewport */
  .uv-hero__title {
    font-size: clamp(2.1rem, 8.5vw, 2.9rem) !important;
    overflow-wrap: break-word;
  }
  .uv-hero__title, .uv-hero__sub, .uv-hero__eyebrow {
    max-width: 100% !important;
  }
  .uv-hero__sub { font-size: 1rem; line-height: 1.7; }

  /* Trim the empty space so content sits higher and tighter */
  .uv-hero { min-height: calc(100svh - 10px); }
  .uv-hero__left { padding: 5.5rem 1.4rem 3rem !important; }
}

/* ============================================================
   MOBILE NAV — guarantee the hamburger shows & links collapse
   (unify the nav breakpoint to 782px)
   ============================================================ */
@media (max-width: 781px) {
  .uv-header-wrap .wp-block-navigation__responsive-container-open {
    display: flex !important;
    margin-left: .25rem;
  }
  /* hide the inline menu when it's not the open overlay */
  .uv-header-wrap .wp-block-navigation__responsive-container:not(.is-menu-open) {
    display: none !important;
  }
}
@media (min-width: 782px) {
  .uv-header-wrap .wp-block-navigation__responsive-container-open { display: none !important; }
}

/* ============================================================
   REFINEMENTS — balanced split images, hero/CTA spacing
   ============================================================ */
/* Contain portraits so they don't tower over short copy */
.uv-split__img img  { max-height: 470px; object-fit: cover; object-position: center 20%; border-radius: 2px; }
.uv-founder__img img { max-height: 540px; object-fit: cover; object-position: center 16%; }

/* Hero — cleaner rhythm between copy and buttons */
.uv-hero__sub { margin-bottom: 2.1rem; max-width: 460px; }
.uv-hero__btns { gap: 1rem; }
.uv-hero__btn-primary, .uv-hero__btn-ghost {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 52px; line-height: 1;
}

/* CTA band — a touch more breathing room around the button */
.uv-cta__sub { margin-bottom: 2.2rem; }
.uv-cta .uv-btn { min-height: 54px; display: inline-flex; align-items: center; }

/* ============================================================
   MOBILE OVERFLOW FIX — size full-bleed sections to the real
   container, not 100vw (theme sets content-size:100vw)
   ============================================================ */
@media (max-width: 900px) {
  .uv-section.alignfull,
  .uv-cta.alignfull,
  .uv-page-head.alignfull {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  .uv-wrap { width: 100%; box-sizing: border-box; }
}

@media (max-width: 900px) {
  .uv-section, .uv-cta, .uv-page-head, .uv-footer { overflow-x: clip; }
  .uv-wrap, .uv-section__head, .uv-cards, .uv-steps, .uv-split,
  .wp-block-columns, .wp-block-column, .uv-card, .uv-step {
    min-width: 0 !important;
    max-width: 100% !important;
  }
  .uv-section__intro, .uv-lead, .uv-card__d, .uv-step__d,
  .uv-section__title, .uv-page-head h1, .uv-eyebrow, .uv-cta__title, .uv-cta__sub {
    overflow-wrap: break-word;
  }
}

/* ============================================================
   CONTACT PAGE — two-column info + form
   ============================================================ */
.uv-contact { gap: clamp(2rem, 4vw, 4rem) !important; align-items: start; }
.uv-contact__list { list-style: none !important; margin: 1.6rem 0 1.8rem; padding: 0 !important; }
.uv-contact__list li { margin: 0 0 1.15rem; line-height: 1.55; color: var(--uv-mid); font-family: 'Montserrat', sans-serif; }
.uv-contact__list strong { display: inline-block; color: #111; font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; margin-bottom: .25rem; }
.uv-contact__list a { color: var(--uv-gold); text-decoration: none; }
.uv-contact__list a:hover { text-decoration: underline; }
/* Form as a card on the contact page */
.uv-form--page { background: #fff; border: 1px solid var(--uv-light-border); padding: clamp(1.6rem, 3vw, 2.6rem); }
.uv-form--page .uv-form__submit { width: auto; padding-left: 2.4rem; padding-right: 2.4rem; }
/* Ensure form-row inputs fill evenly */
.uv-form__row { align-items: stretch; }
.uv-form__row > input { flex: 1 1 0; min-width: 0; }

/* ============================================================
   ALIGNMENT & SPACING FIXES (site-wide)
   Root causes found in audit:
   - core buttons render with line-height:0; custom buttons use
     display:inline-block + inherited line-height ~1.7, so uppercase
     labels sit optically high/off-centre.
   - theme zeroes .wp-block-post-content top margin (theme.json) and
     all <p> margins (.wp-site-blocks p), out-specifying blockGap, so
     post bodies hug the title and paragraphs collapse together.
   ============================================================ */

/* 1) Buttons — vertically (and horizontally) centre the label, normalise
      line-height. Covers EVERY button: core, search, file, comment/contact
      submit, and all custom button variants. Padding/line-height only —
      colours and box size are left to their existing rules. */
.wp-block-button__link,
.wp-element-button,
.wp-block-search__button,
.wp-block-file__button,
.uv-btn,
.uv-hero__btn-primary,
.uv-hero__btn-ghost,
.uv-form__submit,
.uv-nav-cta .wp-block-button__link,
.unibiz-comment-column .comment-form .form-submit.wp-block-button .wp-block-button__link.wp-element-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1.1 !important;
}
/* submit/button inputs can't flex — centre their label via line-height */
input[type="submit"],
input[type="button"],
button.wp-element-button {
  line-height: 1.1 !important;
}
/* keep full-width buttons full width after switching to inline-flex */
.wp-block-button.wp-block-button__width-100 > .wp-block-button__link,
.wp-block-button__link.is-fullwidth {
  width: 100%;
}

/* 1b) Two button groups sat flush against the text above them (measured
       gap 0px). Restore spacing. Margin only — position/structure unchanged.
       - Hero: .uv-hero__sub margin-bottom:0 + .uv-hero__btns margin-top:0
       - Final CTA: .uv-cta__sub had no bottom margin on desktop */
.uv-hero__btns { margin-top: 1.9rem !important; }
.uv-cta__sub   { margin-bottom: 2rem !important; }
@media (max-width: 767px) {
  .uv-hero__btns { margin-top: 1.4rem !important; }
}

/* 2) Core content — restore top padding + block rhythm that the theme's
      `.wp-site-blocks p{margin:0}` reset and the theme.json
      `core/post-content` top-margin:0 had removed. Scoped to core-content
      containers so the bespoke uv-* sections (full-width groups) are NOT
      disturbed and layout structure is preserved. */
.single .wp-block-post-content,
.single .entry-content {
  margin-top: 2rem !important;
}
.wp-block-post-content > :is(p, h1, h2, h3, h4, h5, h6, ul, ol, blockquote, figure, pre, table):not(:first-child),
.wp-block-comment-content > :is(p, ul, ol, blockquote):not(:first-child) {
  margin-top: 1.4rem !important;
}
.wp-block-post-content > :is(h2, h3):not(:first-child) {
  margin-top: 2.1rem !important;
}

/* 3) Mobile — button centring above is not media-scoped (applies on every
      breakpoint); here we only tighten the content rhythm. */
@media (max-width: 767px) {
  .single .wp-block-post-content,
  .single .entry-content { margin-top: 1.4rem !important; }
  .wp-block-post-content > :is(p, h1, h2, h3, h4, h5, h6, ul, ol, blockquote, figure, pre, table):not(:first-child),
  .wp-block-comment-content > :is(p, ul, ol, blockquote):not(:first-child) {
    margin-top: 1.15rem !important;
  }
  .wp-block-post-content > :is(h2, h3):not(:first-child) { margin-top: 1.7rem !important; }
}

/* ============================================================
   HOME LAYOUT TUNING (requested)
   - picture<->text gap matches the hero's 64px content padding
   - uniform section-image boxes (crop-to-fill)
   - uniform card heights within every grid
   ============================================================ */

/* 4) Image<->text gap in split sections -> 64px (matches hero padding),
      scaling down on smaller screens. */
.uv-split { gap: clamp(2.5rem, 5vw, 4rem) !important; }

/* 5) Uniform image boxes: every split image fills an identical box
      (crop-to-fill) so the short one no longer breaks the rhythm. */
.uv-split__img img {
  width: 100% !important;
  height: 470px !important;
  max-height: none !important;
  object-fit: cover !important;
}

/* 6) Uniform cards: equal height across every row of each card grid. */
.uv-cards { grid-auto-rows: 1fr !important; }
.uv-card  { height: 100% !important; }

@media (max-width: 767px) {
  .uv-split__img img { height: 300px !important; }
}

/* ============================================================
   SITE-WIDE BOX UNIFORMITY + INNER-PAGE FOOTER GAP
   Applies to every page (home + Training/Coaching/About/etc.).
   ============================================================ */

/* 7) Same-size boxes: force every card AND every step box to equal height,
      top-aligned, with no stray margins (kills the "one big, some small"
      look on all pages). */
.uv-cards {
  grid-auto-rows: 1fr !important;
  align-items: stretch !important;
}
.uv-cards > .uv-card {
  height: 100% !important;
  align-self: stretch !important;
  margin: 0 !important;
}
.uv-steps {
  align-items: stretch !important;
  grid-auto-rows: 1fr !important;
}
.uv-steps > .uv-step {
  height: 100% !important;
  align-self: stretch !important;
  margin: 0 !important;
}

/* 8) Inner pages built via page.html wrap content in <main> with
      padding-bottom:40px, which shows as a white band between the dark CTA
      and the footer. Remove it on pages that end with the full-width CTA so
      the CTA meets the footer (same as the home page). */
main.wp-block-group:has(.uv-cta) {
  padding-bottom: 0 !important;
}

/* ============================================================
   DARK-SECTION CONTRAST + FOOTER SOCIAL ICONS (fixes)
   The brand colour (#28245f) is dark, so eyebrow/tagline labels that
   use it became invisible on dark backgrounds. Give them a light brand
   tint on dark sections; make footer social icons visible by default.
   ============================================================ */

/* 9) Eyebrow / tagline labels on DARK backgrounds -> light brand tint
      (footer "WHERE PERFORMANCE MEETS PRECISION" + CTA "START THE CONVERSATION"). */
.uv-cta .uv-eyebrow,
.is-dark .uv-eyebrow,
.uv-footer .uv-eyebrow,
.uv-footer__tag {
  color: #9b97e0 !important;
}

/* 10) Footer social icons: visible by default (were ~7% white = looked empty),
       and a clearly-visible hover instead of dark-on-dark. */
.uv-footer__socials .wp-social-link {
  background: rgba(255,255,255,.14) !important;
  border-color: rgba(255,255,255,.34) !important;
}
.uv-footer__socials .wp-social-link svg { fill: #fff !important; }
.uv-footer__socials .wp-social-link:hover {
  background: #fff !important;
  border-color: #fff !important;
}
.uv-footer__socials .wp-social-link:hover svg { fill: #28245f !important; }

/* 11) Footer social row was too close to the blurb above — add top spacing. */
.uv-footer__socials { margin-top: 1.75rem !important; }

/* 12) Ghost buttons on LIGHT sections ("Meet the Founder", "View All
       Articles") had a white (invisible) border. Give them a visible brand
       outline + indigo text, and an indigo fill on hover. */
.uv-btn.is-ghost[style*="color:#111"] {
  color: #28245f !important;
  border-color: #28245f !important;
}
.uv-btn.is-ghost[style*="color:#111"]:hover {
  background: #28245f !important;
  border-color: #28245f !important;
  color: #fff !important;
}

/* 13) Sector list (.uv-sectors, e.g. "GOVERNMENT · FINANCIAL SERVICES …")
       used the dark brand colour -> invisible on dark sections. */
.is-dark .uv-sectors { color: rgba(255,255,255,.6) !important; }

/* 14) White strips between full-width sections on page.html pages:
       the theme's blockGap added a 19px top margin to each section, and the
       white page background showed through that gap (a white strip wherever
       a dark section was adjacent). Make full-width sections flush — each
       already carries its own top/bottom padding (matches the home page). */
.wp-block-post-content > .alignfull {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
