/*
Theme Name: GI Practice Revenue Classic
Theme URI: https://gipracticerevenue.com/
Author: GI Practice Revenue
Author URI: https://gipracticerevenue.com/
Description: A classic WordPress theme for GI Practice Revenue with Appearance > Customize, Appearance > Menus, widgets, a responsive header, and full-width landing-page support.
Version: 4.4.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 8.1
Text Domain: gi-practice-revenue
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Tags: custom-logo, custom-menu, featured-images, right-sidebar, accessibility-ready, translation-ready
*/

:root {
  --gipr-navy: #0B2239;
  --gipr-teal: #0F7C80;
  --gipr-teal-dark: #0B6266;
  --gipr-text: #4E6374;
  --gipr-heading: #183247;
  --gipr-surface: #F3F7F8;
  --gipr-surface-teal: #E8F1F2;
  --gipr-border: #D9E4E8;
  --gipr-success: #2E7258;
  --gipr-white: #FFFFFF;
  --gipr-shadow: 0 18px 50px rgba(11, 34, 57, 0.08);
  --gipr-radius-sm: 8px;
  --gipr-radius: 14px;
  --gipr-radius-lg: 22px;
  --gipr-container: 1180px;
  --gipr-header-height: 82px;
  --gipr-font-heading: Manrope, Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --gipr-font-body: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--gipr-text);
  background: var(--gipr-white);
  font-family: var(--gipr-font-body);
  font-size: 17px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img { max-width: 100%; height: auto; }
a { color: var(--gipr-teal); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--gipr-teal-dark); }
button, input, textarea, select { font: inherit; }

h1, h2, h3, h4, h5, h6 {
  margin: 0 0 0.55em;
  color: var(--gipr-navy);
  font-family: var(--gipr-font-heading);
  line-height: 1.14;
  letter-spacing: -0.025em;
}
h1 { font-size: clamp(2.45rem, 5.1vw, 3.65rem); }
h2 { font-size: clamp(2rem, 3.8vw, 2.65rem); }
h3 { font-size: clamp(1.25rem, 2.5vw, 1.55rem); }
p { margin: 0 0 1.25em; }

.screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.screen-reader-text:focus {
  clip: auto !important;
  width: auto;
  height: auto;
  top: 12px;
  left: 12px;
  z-index: 100000;
  padding: 12px 16px;
  color: var(--gipr-white);
  background: var(--gipr-navy);
  border-radius: var(--gipr-radius-sm);
}

.gipr-container,
.site-main > .wp-block-group.alignfull > .wp-block-group__inner-container,
.wp-site-blocks > *:not(.alignfull) {
  width: min(100% - 40px, var(--gipr-container));
  margin-inline: auto;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 9999;
  min-height: 76px;
  background: #08223A;
  border-bottom: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 5px 20px rgba(4,24,42,.13);
}
.admin-bar .site-header { top: 32px; }

.header-inner {
  min-height: 76px;
  display: grid;
  grid-template-columns: minmax(230px,1fr) auto minmax(230px,1fr);
  gap: 34px;
  align-items: center;
}

.gipr-global-brand {
  justify-self: start;
  color: #FFFFFF !important;
  font-family: var(--gipr-font-heading);
  font-size: 1.35rem;
  font-weight: 780;
  letter-spacing: -0.035em;
  text-decoration: none !important;
  white-space: nowrap;
}

.gipr-global-brand:hover {
  color: #FFFFFF !important;
}

.primary-navigation {
  justify-self: center;
  margin: 0;
}

.primary-navigation ul {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 38px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.primary-navigation a {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding: 27px 0 25px;
  color: rgba(255,255,255,.90);
  font-size: .84rem;
  font-weight: 720;
  text-decoration: none;
}

.primary-navigation a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 18px;
  height: 1px;
  background: #6FC6C9;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .2s ease;
}

.primary-navigation a:hover,
.primary-navigation .current-menu-item > a,
.primary-navigation .current-menu-ancestor > a {
  color: #FFFFFF;
}

.primary-navigation a:hover::after,
.primary-navigation .current-menu-item > a::after,
.primary-navigation .current-menu-ancestor > a::after {
  transform: scaleX(1);
}

.header-cta {
  justify-self: end;
  min-height: 46px;
  padding-inline: 20px;
  white-space: nowrap;
  border-color: #54B7BB;
  border-radius: 4px;
  box-shadow: 0 8px 22px rgba(4,24,42,.18);
  font-size: .82rem;
}

.menu-toggle {
  display: none;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  padding: 0;
  color: #FFFFFF;
  background: transparent;
  border: 1px solid rgba(255,255,255,.30);
  border-radius: 4px;
  cursor: pointer;
}

.menu-toggle svg {
  width: 23px;
  height: 23px;
}

.gipr-button,
.wp-block-button__link,
input[type="submit"],
button[type="submit"] {
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 0 22px;
  color: var(--gipr-white) !important;
  background: var(--gipr-teal);
  border: 1px solid var(--gipr-teal);
  border-radius: var(--gipr-radius-sm);
  font-family: var(--gipr-font-heading);
  font-size: 0.98rem;
  font-weight: 750;
  line-height: 1;
  text-decoration: none;
  box-shadow: none;
  cursor: pointer;
  transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}
.gipr-button:hover,
.wp-block-button__link:hover,
input[type="submit"]:hover,
button[type="submit"]:hover {
  color: var(--gipr-white) !important;
  background: var(--gipr-teal-dark);
  border-color: var(--gipr-teal-dark);
  transform: translateY(-1px);
}
.gipr-button--secondary,
.is-style-outline > .wp-block-button__link {
  color: var(--gipr-navy) !important;
  background: var(--gipr-white);
  border-color: var(--gipr-border);
}
.gipr-button--secondary:hover,
.is-style-outline > .wp-block-button__link:hover {
  color: var(--gipr-navy) !important;
  background: var(--gipr-surface);
  border-color: #C6D6DC;
}

.site-main { min-height: 55vh; }
.page-hero,
.gipr-page-hero {
  padding: 96px 0 76px;
  background: linear-gradient(180deg, var(--gipr-surface) 0%, #fff 100%);
  border-bottom: 1px solid var(--gipr-border);
}
.page-hero__inner { max-width: 820px; }
.page-hero p { max-width: 720px; font-size: 1.12rem; }
.gipr-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
  color: var(--gipr-teal);
  font-family: var(--gipr-font-heading);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.gipr-kicker::before { content: ""; width: 28px; height: 2px; background: var(--gipr-teal); }

.gipr-section { padding: 96px 0; }
.gipr-section--soft { background: var(--gipr-surface); }
.gipr-section--tint { background: var(--gipr-surface-teal); }
.gipr-section--dark { color: rgba(255,255,255,.82); background: var(--gipr-navy); }
.gipr-section--dark h2,
.gipr-section--dark h3,
.gipr-section--dark h4 { color: var(--gipr-white); }
.gipr-section-heading { max-width: 760px; margin-bottom: 42px; }
.gipr-section-heading p { max-width: 680px; font-size: 1.08rem; }

.gipr-grid { display: grid; gap: 24px; }
.gipr-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gipr-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gipr-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gipr-card {
  height: 100%;
  padding: 30px;
  background: var(--gipr-white);
  border: 1px solid var(--gipr-border);
  border-radius: var(--gipr-radius);
}
.gipr-card--elevated { box-shadow: var(--gipr-shadow); }
.gipr-card h3 { margin-bottom: 12px; }
.gipr-card p:last-child { margin-bottom: 0; }
.gipr-icon {
  width: 48px;
  height: 48px;
  display: inline-grid;
  place-items: center;
  margin-bottom: 18px;
  color: var(--gipr-teal);
  background: var(--gipr-surface-teal);
  border-radius: 12px;
  font-weight: 800;
}

.gipr-check-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 30px; margin: 0; padding: 0; list-style: none; }
.gipr-check-list li { position: relative; padding-left: 30px; color: var(--gipr-heading); font-weight: 600; }
.gipr-check-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0.05em;
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  color: var(--gipr-white);
  background: var(--gipr-success);
  border-radius: 50%;
  font-size: 0.75rem;
  line-height: 1;
}

.gipr-process { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; counter-reset: step; }
.gipr-process__step { position: relative; padding: 28px; background: var(--gipr-white); border: 1px solid var(--gipr-border); border-radius: var(--gipr-radius); }
.gipr-process__step::before {
  counter-increment: step;
  content: counter(step, decimal-leading-zero);
  display: block;
  margin-bottom: 18px;
  color: var(--gipr-teal);
  font-family: var(--gipr-font-heading);
  font-size: 0.85rem;
  font-weight: 850;
  letter-spacing: 0.08em;
}

.gipr-trust-strip { display: flex; flex-wrap: wrap; gap: 12px 26px; align-items: center; color: var(--gipr-heading); font-size: 0.92rem; font-weight: 650; }
.gipr-trust-strip span { display: inline-flex; align-items: center; gap: 8px; }
.gipr-trust-strip span::before { content: ""; width: 7px; height: 7px; background: var(--gipr-teal); border-radius: 50%; }

.gipr-cta {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 36px;
  align-items: center;
  padding: 52px;
  color: rgba(255,255,255,.84);
  background: var(--gipr-navy);
  border-radius: var(--gipr-radius-lg);
}
.gipr-cta h2 { color: var(--gipr-white); }
.gipr-cta p { max-width: 700px; margin-bottom: 0; }

.entry-content { padding: 72px 0 96px; }
.entry-content > * { max-width: 760px; margin-left: auto; margin-right: auto; }
.entry-content > .alignwide { max-width: var(--gipr-container); }
.entry-content > .alignfull { max-width: none; width: 100%; }
.entry-content h2 { margin-top: 1.6em; }
.entry-content h3 { margin-top: 1.4em; }
.entry-content ul, .entry-content ol { padding-left: 1.35em; }
.entry-content blockquote {
  padding: 22px 26px;
  margin: 30px auto;
  color: var(--gipr-heading);
  background: var(--gipr-surface);
  border-left: 4px solid var(--gipr-teal);
}

input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="search"], select, textarea {
  width: 100%;
  min-height: 50px;
  padding: 12px 14px;
  color: var(--gipr-heading);
  background: var(--gipr-white);
  border: 1px solid var(--gipr-border);
  border-radius: 8px;
  outline: none;
}
textarea { min-height: 150px; resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: var(--gipr-teal); box-shadow: 0 0 0 3px rgba(15,124,128,.12); }
label { display: inline-block; margin-bottom: 7px; color: var(--gipr-heading); font-weight: 700; }

.site-footer { color: rgba(255,255,255,.72); background: var(--gipr-navy); }
.footer-main { display: grid; grid-template-columns: 1.3fr repeat(3, 1fr); gap: 52px; padding: 72px 0 46px; }
.footer-brand .site-title a { color: var(--gipr-white); }
.footer-brand p { max-width: 360px; }
.footer-title { margin-bottom: 18px; color: var(--gipr-white); font-size: 0.95rem; letter-spacing: 0.04em; text-transform: uppercase; }
.footer-menu, .footer-contact { margin: 0; padding: 0; list-style: none; }
.footer-menu li, .footer-contact li { margin-bottom: 10px; }
.footer-menu a { color: rgba(255,255,255,.72); text-decoration: none; }
.footer-menu a:hover { color: var(--gipr-white); }
.footer-bottom { display: flex; justify-content: space-between; gap: 30px; padding: 24px 0; border-top: 1px solid rgba(255,255,255,.12); font-size: 0.86rem; }
.footer-bottom p { margin: 0; }
.gipr-phi-notice { padding: 14px 0; color: rgba(255,255,255,.78); background: #081A2B; font-size: 0.84rem; text-align: center; }

.error-404 { padding: 120px 0; text-align: center; }
.error-404 .error-code { color: var(--gipr-teal); font-family: var(--gipr-font-heading); font-size: 5rem; font-weight: 850; line-height: 1; }

:focus-visible { outline: 3px solid rgba(15,124,128,.45); outline-offset: 3px; }

@media (max-width: 980px) {
  .admin-bar .site-header { top: 46px; }
  .menu-toggle { display: inline-flex; }
  .header-cta { display: none; }
  .primary-navigation {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    display: none;
    margin: 0;
    padding: 18px 20px 24px;
    background: var(--gipr-white);
    border-bottom: 1px solid var(--gipr-border);
    box-shadow: 0 20px 35px rgba(11,34,57,.08);
  }
  .primary-navigation.is-open { display: block; }
  .primary-navigation ul { align-items: stretch; flex-direction: column; gap: 4px; }
  .primary-navigation a { width: 100%; padding: 11px 4px; }
  .primary-navigation .menu-item-cta a { display: inline-flex; width: auto; margin-top: 10px; padding: 14px 18px; color: var(--gipr-white); background: var(--gipr-teal); border-radius: 8px; }
  .gipr-grid--4, .gipr-process { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
  :root { --gipr-header-height: 72px; }
  body { font-size: 16px; }
  .gipr-container, .wp-site-blocks > *:not(.alignfull) { width: min(100% - 32px, var(--gipr-container)); }
  .site-branding { min-width: 0; }
  .site-description { display: none; }
  .gipr-section { padding: 58px 0; }
  .page-hero, .gipr-page-hero { padding: 66px 0 54px; }
  .gipr-grid--2, .gipr-grid--3, .gipr-grid--4, .gipr-process { grid-template-columns: 1fr; }
  .gipr-check-list { grid-template-columns: 1fr; }
  .gipr-card { padding: 24px; }
  .gipr-cta { grid-template-columns: 1fr; padding: 34px 26px; }
  .gipr-cta__actions { width: 100%; }
  .gipr-cta__actions .gipr-button { width: 100%; }
  .entry-content { padding: 52px 0 72px; }
  .footer-main { grid-template-columns: 1fr; gap: 34px; padding: 54px 0 36px; }
  .footer-bottom { flex-direction: column; gap: 10px; }
}


/* Global footer refinements */
.site-footer {
  position: relative;
  color: rgba(255,255,255,.72);
  background:
    radial-gradient(circle at 90% 8%, rgba(15,124,128,.14), transparent 28%),
    #08223A;
}

.footer-main {
  grid-template-columns: 1.35fr repeat(3,minmax(0,1fr));
  gap: 54px;
  padding-top: 68px;
}

.footer-brand .site-title a,
.footer-brand .site-title {
  color: #FFFFFF;
}

.footer-title {
  color: #FFFFFF;
}

.footer-contact a,
.footer-bottom a {
  color: rgba(255,255,255,.74);
  text-decoration: none;
}

.footer-contact a:hover,
.footer-bottom a:hover {
  color: #FFFFFF;
}

/* Floating quick back-to-top control */
.gipr-back-to-top {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 9998;
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  padding: 0;
  color: #FFFFFF;
  background: #0F7C80;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 50%;
  box-shadow: 0 14px 32px rgba(11,34,57,.25);
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(14px);
  transition: opacity .22s ease, visibility .22s ease, transform .22s ease, background .22s ease;
}

.gipr-back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.gipr-back-to-top:hover {
  background: #0B6266;
  transform: translateY(-3px);
}

.gipr-back-to-top svg {
  width: 22px;
  height: 22px;
}

@media (max-width: 1050px) {
  .header-inner {
    grid-template-columns: auto 1fr auto;
  }

  .primary-navigation ul {
    gap: 24px;
  }
}

@media (max-width: 980px) {
  .header-inner {
    position: relative;
    display: grid;
    grid-template-columns: 1fr auto;
    min-height: 70px;
  }

  .admin-bar .site-header {
    top: 46px;
  }

  .menu-toggle {
    display: inline-flex;
    justify-self: end;
  }

  .header-cta {
    display: none;
  }

  .primary-navigation {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    display: none;
    justify-self: stretch;
    margin: 0;
    padding: 13px 20px 20px;
    background: #FFFFFF;
    border-bottom: 1px solid var(--gipr-border);
    box-shadow: 0 20px 36px rgba(11,34,57,.13);
  }

  .primary-navigation.is-open {
    display: block;
  }

  .primary-navigation ul {
    align-items: stretch;
    flex-direction: column;
    gap: 2px;
  }

  .primary-navigation a {
    width: 100%;
    padding: 11px 5px;
    color: var(--gipr-heading);
  }

  .primary-navigation a::after {
    display: none;
  }

  .primary-navigation a:hover,
  .primary-navigation .current-menu-item > a,
  .primary-navigation .current-menu-ancestor > a {
    color: var(--gipr-teal);
  }

  .primary-navigation .menu-item-cta a {
    display: inline-flex;
    width: auto;
    margin-top: 8px;
    padding: 13px 17px;
    color: #FFFFFF;
    background: var(--gipr-teal);
    border-radius: 4px;
  }
}

@media (max-width: 700px) {
  .gipr-global-brand {
    font-size: 1.12rem;
  }

  .gipr-back-to-top {
    right: 16px;
    bottom: 16px;
    width: 44px;
    height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gipr-back-to-top {
    transition: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}


/* Classic theme landing-page support */
.gipr-landing-content { width: 100%; overflow: hidden; }
.gipr-landing-content > * { max-width: none; }
.footer-widgets { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; padding: 42px 0 0; border-top: 1px solid rgba(255,255,255,.12); }
.footer-widgets:empty { display: none; }
.widget ul { margin: 0; padding: 0; list-style: none; }
.widget li { margin-bottom: 10px; }
.widget a { color: rgba(255,255,255,.76); }
@media (max-width: 760px) { .footer-widgets { grid-template-columns: 1fr; } }

/* =========================================================
   V4.1 — FORCE GLOBAL NAVY HEADER
   Placed last so older theme/customizer header rules cannot
   restore the white desktop header.
   ========================================================= */
html body #masthead.site-header,
html body header.site-header {
  position: sticky !important;
  top: 0;
  z-index: 99999 !important;
  min-height: 76px !important;
  background-color: #08223A !important;
  background-image: none !important;
  border-bottom: 1px solid rgba(255,255,255,.10) !important;
  box-shadow: 0 5px 20px rgba(4,24,42,.15) !important;
}

html body.admin-bar #masthead.site-header {
  top: 32px !important;
}

html body #masthead .header-inner {
  min-height: 76px !important;
  display: grid !important;
  grid-template-columns: minmax(230px,1fr) auto minmax(230px,1fr) !important;
  gap: 34px !important;
  align-items: center !important;
}

/* Supports both the recent and older theme brand markup */
html body #masthead .gipr-global-brand,
html body #masthead .site-title,
html body #masthead .site-title a,
html body #masthead .site-branding a {
  color: #FFFFFF !important;
  background: transparent !important;
  text-decoration: none !important;
}

html body #masthead .gipr-global-brand,
html body #masthead .site-title {
  font-family: var(--gipr-font-heading) !important;
  font-size: 1.35rem !important;
  font-weight: 780 !important;
  line-height: 1.15 !important;
  letter-spacing: -.035em !important;
}

html body #masthead .site-description {
  display: none !important;
}

html body #masthead .site-branding,
html body #masthead .gipr-global-brand {
  justify-self: start !important;
}

html body #masthead .primary-navigation {
  justify-self: center !important;
  background: transparent !important;
}

html body #masthead .primary-navigation ul {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 38px !important;
  margin: 0 !important;
  padding: 0 !important;
}

html body #masthead .primary-navigation a {
  color: rgba(255,255,255,.91) !important;
  background: transparent !important;
  border: 0 !important;
  text-decoration: none !important;
}

html body #masthead .primary-navigation a:hover,
html body #masthead .primary-navigation .current-menu-item > a,
html body #masthead .primary-navigation .current-menu-ancestor > a {
  color: #FFFFFF !important;
}

html body #masthead .header-cta {
  justify-self: end !important;
  display: inline-flex !important;
  min-height: 46px !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 20px !important;
  color: #FFFFFF !important;
  background: #0D858A !important;
  border: 1px solid #54B7BB !important;
  border-radius: 4px !important;
  box-shadow: 0 8px 22px rgba(4,24,42,.18) !important;
}

html body #masthead .header-cta:hover {
  color: #FFFFFF !important;
  background: #0A6F73 !important;
}

html body #masthead .menu-toggle {
  color: #FFFFFF !important;
  background: transparent !important;
  border-color: rgba(255,255,255,.30) !important;
}

@media (max-width: 980px) {
  html body #masthead .header-inner {
    position: relative !important;
    grid-template-columns: 1fr auto !important;
    min-height: 70px !important;
  }

  html body.admin-bar #masthead.site-header {
    top: 46px !important;
  }

  html body #masthead .header-cta {
    display: none !important;
  }

  html body #masthead .menu-toggle {
    display: inline-flex !important;
    justify-self: end !important;
  }

  html body #masthead .primary-navigation {
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: 0 !important;
    display: none !important;
    padding: 13px 20px 20px !important;
    background: #FFFFFF !important;
    border-bottom: 1px solid #D9E4E8 !important;
    box-shadow: 0 20px 36px rgba(11,34,57,.13) !important;
  }

  html body #masthead .primary-navigation.is-open {
    display: block !important;
  }

  html body #masthead .primary-navigation ul {
    align-items: stretch !important;
    flex-direction: column !important;
    gap: 2px !important;
  }

  html body #masthead .primary-navigation a {
    width: 100% !important;
    padding: 11px 5px !important;
    color: #153047 !important;
  }

  html body #masthead .primary-navigation a:hover,
  html body #masthead .primary-navigation .current-menu-item > a {
    color: #0F7C80 !important;
  }
}

@media (max-width: 600px) {
  html body #masthead .gipr-global-brand,
  html body #masthead .site-title {
    font-size: 1.1rem !important;
  }
}

/* =========================================================
   V4.2 — GLOBAL CUSTOM LOGO
   ========================================================= */
html body #masthead .gipr-header-brand {
  justify-self: start !important;
  display: flex !important;
  min-width: 0 !important;
  align-items: center !important;
}

html body #masthead .gipr-header-brand .custom-logo-link {
  display: inline-flex !important;
  align-items: center !important;
  line-height: 0 !important;
  text-decoration: none !important;
}

html body #masthead .gipr-header-brand .custom-logo {
  display: block !important;
  width: auto !important;
  max-width: 245px !important;
  height: auto !important;
  max-height: 54px !important;
  object-fit: contain !important;
}

.site-footer .footer-brand .custom-logo-link {
  display: inline-flex;
  margin-bottom: 18px;
  line-height: 0;
}

.site-footer .footer-brand .custom-logo {
  display: block;
  width: auto;
  max-width: 235px;
  height: auto;
  max-height: 58px;
  object-fit: contain;
}

@media (max-width: 700px) {
  html body #masthead .gipr-header-brand .custom-logo {
    max-width: 195px !important;
    max-height: 44px !important;
  }

  .site-footer .footer-brand .custom-logo {
    max-width: 205px;
    max-height: 50px;
  }
}

/* =========================================================
   V4.3 — FORCE HEADER + FOOTER ON MOBILE
   This final block overrides page-level Custom HTML CSS too.
   ========================================================= */

/* Never allow page code to hide the global header or footer */
html body #masthead.site-header,
html body header#masthead.site-header {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

html body #colophon.site-footer,
html body footer#colophon.site-footer {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.header-cta-mobile {
  display: none;
}

@media (max-width: 980px) {
  html body #masthead.site-header {
    min-height: 68px !important;
    background: #08223A !important;
  }

  html body #masthead .header-inner {
    position: relative !important;
    display: grid !important;
    grid-template-columns: minmax(0,1fr) auto auto !important;
    gap: 9px !important;
    align-items: center !important;
    min-height: 68px !important;
  }

  html body #masthead .gipr-header-brand {
    grid-column: 1 !important;
    min-width: 0 !important;
  }

  html body #masthead .gipr-header-brand .custom-logo {
    width: auto !important;
    max-width: 155px !important;
    max-height: 42px !important;
  }

  html body #masthead .gipr-global-brand {
    max-width: 155px !important;
    overflow: hidden !important;
    font-size: 1rem !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  html body #masthead .header-cta {
    grid-column: 2 !important;
    justify-self: end !important;
    display: inline-flex !important;
    min-height: 38px !important;
    padding: 0 11px !important;
    border-radius: 4px !important;
    font-size: .68rem !important;
    line-height: 1 !important;
  }

  html body #masthead .header-cta-desktop {
    display: none !important;
  }

  html body #masthead .header-cta-mobile {
    display: inline !important;
  }

  html body #masthead .menu-toggle {
    grid-column: 3 !important;
    justify-self: end !important;
    display: inline-flex !important;
    width: 40px !important;
    height: 40px !important;
    color: #FFFFFF !important;
    background: rgba(255,255,255,.04) !important;
    border: 1px solid rgba(255,255,255,.32) !important;
  }

  html body #masthead .primary-navigation {
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 100000 !important;
    display: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 12px 18px 18px !important;
    background: #08223A !important;
    border-top: 1px solid rgba(255,255,255,.10) !important;
    border-bottom: 1px solid rgba(255,255,255,.12) !important;
    box-shadow: 0 20px 36px rgba(4,24,42,.24) !important;
  }

  html body #masthead .primary-navigation.is-open {
    display: block !important;
  }

  html body #masthead .primary-navigation ul {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    width: 100% !important;
  }

  html body #masthead .primary-navigation li {
    width: 100% !important;
    border-bottom: 1px solid rgba(255,255,255,.09) !important;
  }

  html body #masthead .primary-navigation li:last-child {
    border-bottom: 0 !important;
  }

  html body #masthead .primary-navigation a {
    display: flex !important;
    width: 100% !important;
    padding: 13px 4px !important;
    color: rgba(255,255,255,.92) !important;
    background: transparent !important;
    font-size: .9rem !important;
  }

  html body #masthead .primary-navigation a:hover,
  html body #masthead .primary-navigation .current-menu-item > a,
  html body #masthead .primary-navigation .current-menu-ancestor > a {
    color: #7FD0D2 !important;
  }

  html body #masthead .primary-navigation .menu-item-cta {
    display: block !important;
  }

  html body #masthead .primary-navigation .menu-item-cta a {
    display: flex !important;
    width: 100% !important;
    margin-top: 9px !important;
    padding: 13px 14px !important;
    color: #FFFFFF !important;
    background: #0F7C80 !important;
    border-radius: 4px !important;
    justify-content: center !important;
  }

  /* Keep every footer section visible and stacked */
  html body #colophon.site-footer {
    width: 100% !important;
    overflow: visible !important;
    color: rgba(255,255,255,.74) !important;
    background:
      radial-gradient(circle at 90% 8%, rgba(15,124,128,.14), transparent 28%),
      #08223A !important;
  }

  html body #colophon .footer-main {
    display: grid !important;
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: 36px 28px !important;
    width: min(100% - 32px, var(--gipr-container)) !important;
    padding: 50px 0 34px !important;
  }

  html body #colophon .footer-main > * {
    display: block !important;
    min-width: 0 !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  html body #colophon .footer-brand {
    grid-column: 1 / -1 !important;
  }

  html body #colophon .footer-brand .custom-logo {
    max-width: 205px !important;
    max-height: 50px !important;
  }

  html body #colophon .footer-title {
    color: #FFFFFF !important;
  }

  html body #colophon .footer-menu,
  html body #colophon .footer-contact {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  html body #colophon .footer-bottom {
    display: flex !important;
    width: min(100% - 32px, var(--gipr-container)) !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 9px !important;
    padding: 22px 0 !important;
  }

  html body #colophon .gipr-phi-notice {
    display: block !important;
    padding: 14px 18px !important;
  }
}

@media (max-width: 620px) {
  html body #masthead .header-inner {
    width: min(100% - 22px, var(--gipr-container)) !important;
    gap: 7px !important;
  }

  html body #masthead .gipr-header-brand .custom-logo {
    max-width: 128px !important;
    max-height: 38px !important;
  }

  html body #masthead .gipr-global-brand {
    max-width: 128px !important;
    font-size: .9rem !important;
  }

  html body #masthead .header-cta {
    min-height: 36px !important;
    padding: 0 9px !important;
    font-size: .63rem !important;
  }

  html body #masthead .menu-toggle {
    width: 38px !important;
    height: 38px !important;
  }

  html body #colophon .footer-main {
    grid-template-columns: 1fr !important;
    gap: 29px !important;
    padding: 44px 0 30px !important;
  }

  html body #colophon .footer-brand {
    grid-column: auto !important;
  }

  html body #colophon .footer-main > * {
    width: 100% !important;
  }
}

@media (max-width: 370px) {
  html body #masthead .gipr-header-brand .custom-logo {
    max-width: 108px !important;
  }

  html body #masthead .gipr-global-brand {
    max-width: 108px !important;
    font-size: .82rem !important;
  }

  html body #masthead .header-cta {
    padding: 0 7px !important;
    font-size: .58rem !important;
  }
}

/* =========================================================
   V4.4 — CLEAN MOBILE HEADER AND FOOTER STRUCTURE
   ========================================================= */
@media (max-width: 980px) {

  html body #masthead.site-header {
    display: block !important;
    min-height: 0 !important;
    background: #08223A !important;
  }

  html body #masthead .header-inner {
    position: relative !important;
    display: grid !important;
    grid-template-columns: minmax(0,1fr) 44px !important;
    grid-template-areas:
      "brand menu"
      "cta cta" !important;
    gap: 10px 12px !important;
    align-items: center !important;
    min-height: 0 !important;
    padding-top: 11px !important;
    padding-bottom: 12px !important;
  }

  html body #masthead .gipr-header-brand {
    grid-area: brand !important;
    grid-column: auto !important;
    justify-self: start !important;
    width: auto !important;
    min-width: 0 !important;
  }

  html body #masthead .gipr-header-brand .custom-logo-link {
    display: inline-flex !important;
    max-width: 100% !important;
  }

  html body #masthead .gipr-header-brand .custom-logo {
    display: block !important;
    width: auto !important;
    max-width: 190px !important;
    height: auto !important;
    max-height: 46px !important;
    object-fit: contain !important;
  }

  html body #masthead .gipr-global-brand {
    display: block !important;
    max-width: 210px !important;
    overflow: hidden !important;
    color: #FFFFFF !important;
    font-size: 1.08rem !important;
    line-height: 1.15 !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  html body #masthead .menu-toggle {
    grid-area: menu !important;
    grid-column: auto !important;
    justify-self: end !important;
    display: inline-flex !important;
    width: 44px !important;
    height: 44px !important;
    align-items: center !important;
    justify-content: center !important;
    color: #FFFFFF !important;
    background: rgba(255,255,255,.055) !important;
    border: 1px solid rgba(255,255,255,.32) !important;
    border-radius: 5px !important;
  }

  html body #masthead .menu-toggle svg {
    width: 22px !important;
    height: 22px !important;
  }

  html body #masthead .header-cta {
    grid-area: cta !important;
    grid-column: auto !important;
    justify-self: stretch !important;
    display: flex !important;
    width: 100% !important;
    min-height: 43px !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 16px !important;
    color: #FFFFFF !important;
    background: #0F7C80 !important;
    border: 1px solid #61BFC2 !important;
    border-radius: 5px !important;
    box-shadow: 0 8px 20px rgba(4,24,42,.17) !important;
    font-size: .79rem !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
    text-align: center !important;
    text-decoration: none !important;
  }

  html body #masthead .header-cta-desktop {
    display: inline !important;
  }

  html body #masthead .header-cta-mobile {
    display: none !important;
  }

  html body #masthead .primary-navigation {
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 100000 !important;
    display: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 10px 18px 18px !important;
    background: #08223A !important;
    border-top: 1px solid rgba(255,255,255,.10) !important;
    border-bottom: 1px solid rgba(255,255,255,.12) !important;
    box-shadow: 0 20px 38px rgba(4,24,42,.28) !important;
  }

  html body #masthead .primary-navigation.is-open {
    display: block !important;
  }

  html body #masthead .primary-navigation ul {
    display: flex !important;
    width: 100% !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
  }

  html body #masthead .primary-navigation li {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.10) !important;
  }

  html body #masthead .primary-navigation li:last-child {
    border-bottom: 0 !important;
  }

  html body #masthead .primary-navigation a {
    display: flex !important;
    width: 100% !important;
    align-items: center !important;
    padding: 13px 4px !important;
    color: rgba(255,255,255,.94) !important;
    background: transparent !important;
    font-size: .92rem !important;
    font-weight: 720 !important;
  }

  html body #masthead .primary-navigation a:hover,
  html body #masthead .primary-navigation .current-menu-item > a,
  html body #masthead .primary-navigation .current-menu-ancestor > a {
    color: #82D1D3 !important;
  }

  /* The separate header CTA is already visible, so avoid a duplicate menu CTA */
  html body #masthead .primary-navigation .menu-item-cta {
    display: none !important;
  }

  /* Structured mobile footer */
  html body #colophon.site-footer {
    display: block !important;
    width: 100% !important;
    overflow: visible !important;
    background:
      radial-gradient(circle at 88% 6%, rgba(15,124,128,.16), transparent 28%),
      #08223A !important;
  }

  html body #colophon .footer-main {
    display: grid !important;
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: 0 26px !important;
    width: min(100% - 32px, var(--gipr-container)) !important;
    padding: 46px 0 30px !important;
  }

  html body #colophon .footer-main > div {
    display: block !important;
    min-width: 0 !important;
    padding: 26px 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.10) !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  html body #colophon .footer-main > div:first-child {
    grid-column: 1 / -1 !important;
    padding-top: 0 !important;
  }

  html body #colophon .footer-main > div:last-child {
    grid-column: 1 / -1 !important;
    border-bottom: 0 !important;
  }

  html body #colophon .footer-brand .custom-logo {
    width: auto !important;
    max-width: 220px !important;
    height: auto !important;
    max-height: 54px !important;
  }

  html body #colophon .footer-brand p {
    max-width: 520px !important;
    margin-top: 13px !important;
    color: rgba(255,255,255,.66) !important;
    line-height: 1.7 !important;
  }

  html body #colophon .footer-title {
    margin: 0 0 14px !important;
    color: #FFFFFF !important;
    font-size: .78rem !important;
    letter-spacing: .10em !important;
    text-transform: uppercase !important;
  }

  html body #colophon .footer-menu,
  html body #colophon .footer-contact {
    display: grid !important;
    gap: 10px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }

  html body #colophon .footer-menu a,
  html body #colophon .footer-contact a,
  html body #colophon .footer-contact li {
    color: rgba(255,255,255,.74) !important;
    font-size: .88rem !important;
    line-height: 1.55 !important;
    overflow-wrap: anywhere !important;
  }

  html body #colophon .footer-bottom {
    display: flex !important;
    width: min(100% - 32px, var(--gipr-container)) !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 10px !important;
    padding: 22px 0 !important;
    color: rgba(255,255,255,.56) !important;
  }

  html body #colophon .footer-bottom p {
    margin: 0 !important;
  }

  html body #colophon .footer-bottom > div {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 5px !important;
  }

  html body #colophon .gipr-phi-notice {
    display: block !important;
    padding: 14px 18px !important;
    font-size: .72rem !important;
    line-height: 1.55 !important;
    text-align: center !important;
  }
}

@media (max-width: 620px) {
  html body #masthead .header-inner {
    width: min(100% - 24px, var(--gipr-container)) !important;
  }

  html body #masthead .gipr-header-brand .custom-logo {
    max-width: 160px !important;
    max-height: 42px !important;
  }

  html body #masthead .gipr-global-brand {
    max-width: 175px !important;
    font-size: .96rem !important;
  }

  html body #colophon .footer-main {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    padding-top: 40px !important;
  }

  html body #colophon .footer-main > div,
  html body #colophon .footer-main > div:first-child,
  html body #colophon .footer-main > div:last-child {
    grid-column: auto !important;
    width: 100% !important;
    padding: 24px 0 !important;
  }

  html body #colophon .footer-main > div:first-child {
    padding-top: 0 !important;
  }

  html body #colophon .footer-main > div:last-child {
    border-bottom: 0 !important;
  }
}

@media (max-width: 380px) {
  html body #masthead .gipr-header-brand .custom-logo {
    max-width: 135px !important;
  }

  html body #masthead .gipr-global-brand {
    max-width: 145px !important;
    font-size: .88rem !important;
  }

  html body #masthead .menu-toggle {
    width: 40px !important;
    height: 40px !important;
  }

  html body #masthead .header-cta {
    min-height: 41px !important;
    font-size: .73rem !important;
  }
}

