/*
Name:   Performance Ready Spaces
URI:    https://irvinecompany.com
Author: Jeremy Schuler
*/

/* =============================================================================
   TABLE OF CONTENTS
   Last Updated: 08.19.2026
   =============================================================================
   1.0 Design System (Colors & Typography Variables)
   2.0 Typography (Scoped to page template)
   3.0 Headings (Scoped to page template)
   4.0 Navigation & Buttons
   5.0 Components
   6.0 Utility Classes (Helper Classes)
   7.0 Salient Theme Overrides
   8.0 Plugins
   9.0 Media Queries

   Note:
   All styles scoped to .page-template-template-performance-ready-spaces
   for white-label override approach
   ============================================================================= */

/* =============================================================================
   1.0 Design System (Colors & Typography Variables)
   ============================================================================= */
:root {
  /* Brand Colors */
  --color-charcoal: #323131;
  --color-charcoal-rgb: 50, 49, 49;

  --color-slate-blue: #506478;
  --color-slate-blue-rgb: 80, 100, 120;
  --color-slate-blue-dark: #405060;
  --color-slate-blue-dark-rgb: 64, 80, 96;

  --color-ghost: #C7CCD1;
  --color-ghost-rgb: 199, 204, 209;

  --color-bone: #F0ECE0;
  --color-bone-rgb: 240, 236, 224;

  /* Flip Box Colors - Subtle, sophisticated palette for card components */
  --flipbox-slate-light: #8A9BA8;      /* Soft slate blue - lighter, more approachable */
  --flipbox-slate-light-rgb: 138, 155, 168;

  --flipbox-bone-warm: #E8E4D8;        /* Warm neutral - sophisticated cream */
  --flipbox-bone-warm-rgb: 232, 228, 216;

  --flipbox-ghost-cool: #B8BFC5;       /* Cool mid-tone - refined gray-blue */
  --flipbox-ghost-cool-rgb: 184, 191, 197;

  --flipbox-charcoal-soft: #5A5858;    /* Soft charcoal - not as heavy as primary */
  --flipbox-charcoal-soft-rgb: 90, 88, 88;

  /* Color Aliases */
  --color-primary: var(--color-charcoal);
  --color-accent: var(--color-slate-blue);
  --color-background-light: var(--color-bone);
  --color-background-neutral: var(--color-ghost);

  /* Typography - Font Families */
  --font-primary: 'TT Hoves Pro VF', 'hoves', sans-serif;
  --font-secondary: 'Inter', sans-serif;

  /* Typography - Font Weights */
  --font-weight-medium: 500;
  --font-weight-demibold: 600;
  --font-weight-bold: 700;

  /* Typography - Font Sizes (Perfect Fourth Scale - 1.333 ratio) */
  --font-size-h1: 4.5rem;         /* 72px - Hero statements */
  --font-size-h2: 3.375rem;       /* 54px - Section headers */
  --font-size-h3: 2.5rem;         /* 40px - Subsections */
  --font-size-h4: 1.875rem;       /* 30px - Card titles */
  --font-size-h5: 1.375rem;       /* 22px - Small headings */
  --font-size-h6: 1rem;           /* 16px - Overlines/labels */
  --font-size-body: 1rem;         /* 16px - Body text */
  --font-size-large: 1.125rem;    /* 18px - Intro paragraphs */
  --font-size-small: 0.875rem;    /* 14px - Captions/footnotes */

  /* Typography - Line Heights */
  --line-height-tight: 1.1;
  --line-height-normal: 1.2;
  --line-height-relaxed: 1.4;

  /* Typography - Letter Spacing */
  --letter-spacing-tight: -0.125rem;    /* -2px */
  --letter-spacing-normal: -0.0625rem;  /* -1px */
  --letter-spacing-none: 0;

  /* Spacing Scale */
  --spacing-xs: 0.5rem;   /* 8px */
  --spacing-sm: 1rem;     /* 16px */
  --spacing-md: 1.5rem;   /* 24px */
  --spacing-lg: 2rem;     /* 32px */
  --spacing-xl: 3rem;     /* 48px */

  /* Border Radius */
  --radius-sm: 0.25rem;   /* 4px */
  --radius-md: 0.5rem;    /* 8px */
  --radius-lg: 1.25rem;   /* 20px */
  --radius-full: 9999px;

  /* Transitions */
  --transition-fast: 0.15s ease;
  --transition-base: 0.3s ease;
  --transition-slow: 0.45s cubic-bezier(0.25, 1, 0.2, 1);
}

/* Color Utility Classes */
.text-charcoal { color: var(--color-charcoal); }
.text-slate-blue { color: var(--color-slate-blue); }
.text-slate-blue-dark { color: var(--color-slate-blue-dark); }
.text-ghost { color: var(--color-ghost); }
.text-bone { color: var(--color-bone); }

.bg-charcoal { background-color: var(--color-charcoal); }
.bg-slate-blue { background-color: var(--color-slate-blue); }
.bg-slate-blue-dark { background-color: var(--color-slate-blue-dark); }
.bg-ghost { background-color: var(--color-ghost); }
.bg-bone { background-color: var(--color-bone); }

/* Flip Box Color Utility Classes */
.bg-flipbox-slate-light { background-color: var(--flipbox-slate-light); }
.bg-flipbox-bone-warm { background-color: var(--flipbox-bone-warm); }
.bg-flipbox-ghost-cool { background-color: var(--flipbox-ghost-cool); }
.bg-flipbox-charcoal-soft { background-color: var(--flipbox-charcoal-soft); }

/* =============================================================================
   2.0 Typography
   ============================================================================= */

/* Font Family Helpers */
.font-family-inter,
.font-family-inter span,
.nectar-split-heading.font-family-inter,
.nectar-split-heading.font-family-inter span { 
  font-family: 'Inter', sans-serif!important; 
}
.font-family-tt-hoves-pro,
.font-family-tt-hoves-pro span,
.nectar-split-heading.font-family-tt-hoves-pro,
.nectar-split-heading.font-family-tt-hoves-pro span { 
  font-family: 'TT Hoves Pro VF', 'hoves', sans-serif!important; 
}

/* Font Size Helpers */
.font-size-h1,
.font-size-h1 span,
.nectar-split-heading.font-size-h1 span { 
  font-size: var(--font-size-h1)!important; 
}
.font-size-h2,
.font-size-h2 span,
.nectar-split-heading.font-size-h2 span { 
  font-size: var(--font-size-h2)!important; 
}
.font-size-h3,
.font-size-h3 span,
.nectar-split-heading.font-size-h3 span { 
  font-size: var(--font-size-h3)!important; 
}
.font-size-h4,
.font-size-h4 span,
.nectar-split-heading.font-size-h4 span {
  font-size: var(--font-size-h4)!important;
}
.font-size-h5,
.font-size-h5 span,
.nectar-split-heading.font-size-h5 span {
  font-size: var(--font-size-h5)!important;
}
.font-size-h6,
.font-size-h6 span,
.nectar-split-heading.font-size-h6 span {
  font-size: var(--font-size-h6)!important;
}
.font-size-body,
.font-size-body span {
  font-size: var(--font-size-body)!important;
}

/* Line Height Helpers */
.line-height-150,
.line-height-150 span {
  line-height: 1.5!important;
}

/* Body Text - Secondary Font (Inter) */
.page-template-template-performance-ready-spaces #ajax-content-wrap p,
.page-template-template-performance-ready-spaces #ajax-content-wrap p span,
.page-template-template-performance-ready-spaces #ajax-content-wrap p strong,
.page-template-template-performance-ready-spaces #ajax-content-wrap p span strong,
.page-template-template-performance-ready-spaces #ajax-content-wrap p strong span,
.page-template-template-performance-ready-spaces #ajax-content-wrap strong span,
.page-template-template-performance-ready-spaces #ajax-content-wrap ul span,
.page-template-template-performance-ready-spaces #ajax-content-wrap span strong,
.page-template-template-performance-ready-spaces #ajax-content-wrap .nectar-badge__inner {
  font-family: var(--font-secondary);
  font-size: var(--font-size-body);
  line-height: var(--line-height-normal);
}

/* Headings - Primary Font (TT Hoves Pro VF) */
.page-template-template-performance-ready-spaces #ajax-content-wrap h1,
.page-template-template-performance-ready-spaces #ajax-content-wrap h1 strong,
.page-template-template-performance-ready-spaces #ajax-content-wrap h1 span.inner,
.page-template-template-performance-ready-spaces #ajax-content-wrap h2,
.page-template-template-performance-ready-spaces #ajax-content-wrap h2 span,
.page-template-template-performance-ready-spaces #ajax-content-wrap h2 strong,
.page-template-template-performance-ready-spaces #ajax-content-wrap h3,
.page-template-template-performance-ready-spaces #ajax-content-wrap h3 span,
.page-template-template-performance-ready-spaces #ajax-content-wrap h3 strong,
.page-template-template-performance-ready-spaces #ajax-content-wrap h4,
.page-template-template-performance-ready-spaces #ajax-content-wrap h4 span,
.page-template-template-performance-ready-spaces #ajax-content-wrap span.in-sight,
.page-template-template-performance-ready-spaces #ajax-content-wrap .subject,
.page-template-template-performance-ready-spaces #ajax-content-wrap .nectar-split-heading h1 {
  font-family: var(--font-primary);
}

/* Hero Section - White Headings */
.page-template-template-performance-ready-spaces #ajax-content-wrap #hero .nectar-split-heading h1 span,
.page-template-template-performance-ready-spaces #ajax-content-wrap #hero .nectar-split-heading h2 span,
.page-template-template-performance-ready-spaces #ajax-content-wrap #hero .nectar-split-heading h3 span,
.page-template-template-performance-ready-spaces #ajax-content-wrap #hero .nectar-split-heading h4 span {
  color: #fff;
}

/* Stat Suffix */
p span.stat-suffix,
.nectar-responsive-text p span.stat-suffix {
  font-size: 2.25rem!important;
}

/* Services Item Meta - see section 5.0, which sets colour and size together
   (raised from .889rem to .9375rem for contrast). Declared there to keep the
   caption's colour and size in one place. */

/* Gravity Forms Typography */
.page-template-template-performance-ready-spaces .gform_wrapper.gravity-theme .top_label .gfield_label,
.page-template-template-performance-ready-spaces .gform_wrapper.gravity-theme .gfield-choice-input+label,
.page-template-template-performance-ready-spaces .gform_wrapper.gravity-theme .gf_progressbar_percentage span,
.page-template-template-performance-ready-spaces .gform_wrapper.gravity-theme .ginput_container_image_choice .gchoice label {
  font-weight: 400;
}

/* Popup Close Button */
.page-template-template-performance-ready-spaces .pum-content + .pum-close,
.page-template-template-performance-ready-spaces .pum-theme-enterprise-blue .pum-content + .pum-close {
  font-weight: 600;
}

/* =============================================================================
   3.0 Headings (Scoped to .page-template-template-performance-ready-spaces)
   ============================================================================= */

/* H1 Styles - Bold, 60px, line-height: 1, letter-spacing: -2px */
.page-template-template-performance-ready-spaces #ajax-content-wrap h1,
.page-template-template-performance-ready-spaces #ajax-content-wrap h1 strong,
.page-template-template-performance-ready-spaces #ajax-content-wrap h1 span.inner,
.page-template-template-performance-ready-spaces #ajax-content-wrap .nectar-split-heading h1 {
  font-size: var(--font-size-h1);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-normal);
  letter-spacing: var(--letter-spacing-tight);
  color: var(--color-slate-blue);
}

/* Hero H1 - fixed size, overrides the --font-size-h1 scale above  */
.page-template-template-performance-ready-spaces #ajax-content-wrap #hero h1 {
  font-size: 4.2rem;
}

/* H2 Styles - Medium, 48px, line-height: 1, letter-spacing: -2px */
.page-template-template-performance-ready-spaces #ajax-content-wrap h2 {
  font-size: var(--font-size-h2);
  font-weight: var(--font-weight-medium);
  line-height: var(--line-height-normal);
  letter-spacing: var(--letter-spacing-tight);
  color: var(--color-slate-blue);
}

/* H3 Styles - Medium, 36px, line-height: 1.3, letter-spacing: -1px */
.page-template-template-performance-ready-spaces #ajax-content-wrap h3 {
  font-size: var(--font-size-h3);
  font-weight: var(--font-weight-medium);
  line-height: var(--line-height-normal);
  letter-spacing: var(--letter-spacing-normal);
}

/* H4/Callouts - Compact Demibold, 28px, line-height: 1.3, letter-spacing: 0 */
.page-template-template-performance-ready-spaces #ajax-content-wrap h4,
.page-template-template-performance-ready-spaces #ajax-content-wrap .callout {
  font-size: var(--font-size-h4);
  font-weight: var(--font-weight-medium);
  line-height: var(--line-height-normal);
  letter-spacing: var(--letter-spacing-none);
}

/* =============================================================================
   4.0 Navigation & Buttons
   ============================================================================= */

#top {
  max-width: 1385px;
  margin: 0 auto;
  margin-top: 30px;
  margin-bottom: 30px;
  border-radius: 10px;
  box-shadow: 1px 1px 5px 2px #0000001f;
}

#top-bar a { font-size: .8125rem; color: #506478; }
#header-outer[data-transparent-header="true"].transparent.dark-slide >header #logo img {
  opacity: 1!important;
}
#header-outer.transparent[data-permanent-transparent="false"].dark-slide #top .slide-out-widget-area-toggle.mobile-icon i:before,
#header-outer.transparent[data-permanent-transparent="false"].dark-slide #top .slide-out-widget-area-toggle.mobile-icon i:after { 
  background-color: #fff!important;
}
#header-outer #top .span_9 > .slide-out-widget-area-toggle i::after {
  color: #fff!important;
}
/* OnScroll Sticky State - Glass Effect */
body.page-template-template-performance-ready-spaces #header-outer {
  top: 20px!important;
}
body.page-template-template-performance-ready-spaces #header-outer.small-nav {
  top: 25px!important;
}
body.page-template-template-performance-ready-spaces.logged-in #header-outer {
  top: 62px!important;
}
body.page-template-template-performance-ready-spaces.logged-in #header-outer.small-nav { 
  top: 52px!important;
}

.page-template-template-performance-ready-spaces .small-nav #top .container  {
  background-color: #fff!important;
}
.page-template-template-performance-ready-spaces .small-nav span.menu-title-text {
  color: #506478;
}
.page-template-template-performance-ready-spaces .small-nav .button_solid_color span.menu-title-text {
  color: #fff;
}
.page-template-template-performance-ready-spaces #header-outer[data-lhe="animated_underline"].dark-slide.small-nav #top nav > ul > li > a .menu-title-text:after {
  border-color: #506478!important;
}

/* Desktop Header & Navigation */

  /* Hero Background */
  .page-template-template-performance-ready-spaces div#header-space {
    background-color: var(--color-slate-blue)!important;
    background-position: center center!important;
    background-repeat: no-repeat!important;
    background-size: cover!important;
    border-bottom: none;
  }

  /* Transparent Header Outer */
  .page-template-template-performance-ready-spaces div#header-outer {
    background-color: transparent!important;
  }

  /* Remove Box Shadow */
  .page-template-template-performance-ready-spaces #header-outer[data-box-shadow="small"],
  body.page-template-template-performance-ready-spaces.material[data-hhun="1"] #header-outer[data-header-resize="0"][data-box-shadow="small"][data-remove-fixed="0"]:not(.transparent):not(.invisible),
  body.page-template-template-performance-ready-spaces.material[data-hhun="1"] #header-outer[data-header-resize="0"][data-box-shadow="small"][data-remove-fixed="1"]:not(.transparent) {
    box-shadow: none;
  }

  /* Floating Nav Container */
  .page-template-template-performance-ready-spaces #top {
    max-width: 1385px; width: 98%;
    margin: 0 auto;
    border-radius: 10px;
    box-shadow: 1px 1px 5px 2px #0000001f;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }

  /* Nav Container Inner - Glass Effect */
  .page-template-template-performance-ready-spaces #top .container {
    display: flex;
    background: rgba(255, 255, 255, 0.10); border-radius: 10px;
    box-shadow: 0 4px 12px 0 rgba(0, 0, 0, 0.25);
    padding-right: 2rem; padding-left: 2rem;
  }
  /* Sticky Nav State */
  .page-template-template-performance-ready-spaces .small-nav #top {
    margin-top: 0!important;
  }
  .page-template-template-performance-ready-spaces #header-outer:not([data-format=left-header]) #top>.container>.row {
    justify-content: space-between; align-items: center;
    width: 100%;
  }
  .page-template-template-performance-ready-spaces #header-outer #top #logo {
    margin: 0;
  }

  /* Logo Color Change on Scroll */
  .page-template-template-performance-ready-spaces .small-nav .custom-logo {
    filter: brightness(0) saturate(100%) invert(37%) sepia(15%) saturate(747%) hue-rotate(169deg) brightness(95%) contrast(90%);
    transition: filter 0.3s ease;
  }

  .page-template-template-performance-ready-spaces #header-outer #top .container .row {
    min-height: 75px;
  }
  .page-template-template-performance-ready-spaces #header-outer:not([data-format=left-header]) #top>.container>.row nav>ul {
    gap: 2rem; align-items: center;
  }
  .page-template-template-performance-ready-spaces #header-outer[data-lhe="animated_underline"].dark-slide #top nav > ul > li > a .menu-title-text:after {
    border-color: #fff!important;
  }
  .page-template-template-performance-ready-spaces #top .container .row::after,
  .page-template-template-performance-ready-spaces #top .container .row::before {
    display: none;
  }

  /* Button Defaults - All CTA Button Variations
     State-independent: must NOT be scoped to .transparent or .small-nav.
     On a hard refresh while scrolled, Salient drops .transparent and never adds
     .small-nav, so a state-scoped selector stops matching and Salient's inline
     CSS wins (square #DA291C). The state persists for the whole page view.
     !important is required - Salient declares both properties !important. */
  .page-template-template-performance-ready-spaces #header-outer #top nav > ul > .button_solid_color > a:before {
    border-radius: 100px!important;
    background: #8695a7!important;
    transition: var(--transition-base);
  }

  /* Nav Link Typography */
  .page-template-template-performance-ready-spaces span.menu-title-text {
    font-size: 1rem; letter-spacing: 0;
    text-transform: none;
    color: #fff;
  }

  /* Nav Link Opacity - Override Transparent Header Default */
  .page-template-template-performance-ready-spaces #header-outer.transparent #top nav > ul > li > a,
  .page-template-template-performance-ready-spaces #header-outer.transparent #top nav > .sf-menu > li > a {
    opacity: 1;
  }

  /* Popup Trigger CTA (Popup Maker Plugin) - Additional Styles */
  .page-template-template-performance-ready-spaces #header-outer #top nav li.pum-trigger a {
    border-radius: 100px!important;
    padding: 0.75rem 1.5rem!important;
  }

/* Mobile Header & Navigation */
@media only screen and (max-width: 999px) {
  /* Mobile Menu Typography */
  body.page-template-template-performance-ready-spaces #slide-out-widget-area.slide-out-from-right a {
    font-family: var(--font-primary);
    font-weight: var(--font-weight-medium);
    font-size: 1.5rem;
    text-transform: none;
  }
  /* Header Border */
  .page-template-template-performance-ready-spaces div#header-outer {
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  }
  .page-template-template-performance-ready-spaces #header-outer #top .container .row {
    display: grid; max-width: 100%;
  }
  /* Remove header shadow on tablet/mobile */
  .page-template-template-performance-ready-spaces #top {
    box-shadow: none;
  }
}

/* =============================================================================
   5.0 Components
   ============================================================================= */

/* Sticky Media Section */
.nectar-sticky-media-section__content-section-inner {
  background: radial-gradient(var(--color-bone) 25%, var(--color-ghost) 100%);
}

/* Fancy Box */
.nectar-fancy-box[data-style="color_box_hover"]:hover .inner-wrap *,
.nectar-fancy-box[data-style="color_box_hover"] .box-bg,
.nectar-fancy-box[data-style="color_box_hover"] .box-bg:after {
  transition: var(--transition-slow);
  color: var(--color-charcoal);
}

.nectar-fancy-box[data-style="color_box_hover"][data-color].box_color_506478:not(:hover) i.icon-default-style {
  opacity: 0.9;
}

.nectar-fancy-box[data-style="color_box_hover"][data-color*="gradient"] .inner i.hover-only {
  opacity: 1;
  color: var(--color-slate-blue);
}

/* Badge */
.page-template-template-performance-ready-spaces #ajax-content-wrap .nectar-cta .link_wrap,
.page-template-template-performance-ready-spaces #ajax-content-wrap .nectar-badge .nectar-badge__inner {
  margin-bottom: var(--spacing-xs);
  border-radius: 50px;
  background: rgba(0, 0, 0, 0.00);
  box-shadow: 0 9.5px 19px 0 rgba(0, 0, 0, 0.15);
}
.page-template-template-performance-ready-spaces #ajax-content-wrap .nectar-cta {
  display: flex;
}
.page-template-template-performance-ready-spaces #ajax-content-wrap .nectar-cta i,
.page-template-template-performance-ready-spaces #ajax-content-wrap .nectar-cta span {
  color: rgba(255, 255, 255, .8);
  transition: color 0.3s ease-in-out;
}
.page-template-template-performance-ready-spaces #ajax-content-wrap .nectar-cta .link_wrap {
  color: #fff; background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, .25);
  padding: .5em .75em!important;
  transition: background-color 0.3s ease-in-out;
}
.page-template-template-performance-ready-spaces #ajax-content-wrap .nectar-badge .nectar-badge__inner {
  margin-bottom: 12px;
}
.page-template-template-performance-ready-spaces #ajax-content-wrap .nectar-cta:hover i,
.page-template-template-performance-ready-spaces #ajax-content-wrap .nectar-cta:hover span {
  color: rgba(255, 255, 255, 1);
}
.page-template-template-performance-ready-spaces #ajax-content-wrap .nectar-cta:hover .link_wrap {
  background: rgba(255, 255, 255, 0.25);
}

/* Flickity Slider */
#customers .flickity-slider .cell:nth-child(5) .inner-wrap {
  background-position: left!important;
}
.nectar-flickity.nectar-carousel .cell:nth-child(4) .inner-wrap,
.nectar-flickity.nectar-carousel .cell:nth-child(6) .inner-wrap {
  background-position: 0 center;
}

/* Icon List Centering */
.nectar-icon-list-justify-content-center .nectar-icon-list {
  justify-content: center;
}

/* Row Background Opacity Overrides */
#mid-tech .row-bg-wrap .row-bg::before,
#manufacturing .row-bg-wrap .row-bg::before,
#campus-office .row-bg-wrap .row-bg::before {
  opacity: .33;
}

/* Services Section - Item Meta
   Colour/size lifted from #5b6e7f @13.3px (3.26:1) to meet 4.5:1 on the card gradient. */
.wpb_row#services .item-meta p {
  color: var(--color-slate-blue-dark);  /* #405060 = 6.0:1 */
  font-size: .9375rem;
}

/* Services Badge Background
   Darkened from rgba(91,110,127,.75) (3.79:1) to meet 4.5:1 against white text. */
.page-template-template-performance-ready-spaces #ajax-content-wrap .wpb_row#services .nectar-badge .nectar-badge__inner {
  background: rgba(64, 80, 96, .85);    /* = 5.4:1 */
}

/* Milestone Colors */
#milestone h1,
#milestone span.inner {
  color: #ffffff !important;
}

/* Services Section - Sticky Media Links */
#services .nectar-sticky-media-section__content-section .cell a.entire-slide-link::after {
  content: "Learn More";
  position: absolute;
  right: 1rem; bottom: 3rem;
  z-index: 999;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  background-color: #4B647E;
  color: #FFFFFF;
  border: 1px solid #5F758E;
  border-radius: 999px;
  padding: 0.75rem 1.35rem;

  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  pointer-events: none;

  transition: background-color 0.25s ease-in-out,
    border-color 0.25s ease-in-out,
    transform 0.25s ease-in-out;
}

#services .nectar-sticky-media-section__content-section .cell a.entire-slide-link:hover::after,
#services .nectar-sticky-media-section__content-section .cell a.entire-slide-link:focus-visible::after {
  background-color: #5F758E;
  border-color: #5F758E;
  transform: translateY(-2px);
}

/* =============================================================================
   6.0 Utility Classes (Helper Classes)
   ============================================================================= */

/* Border Radius Helpers */
.border-radius-15,
.wpb_gallery.border-radius-15 img {
  border-radius: 15px;
}

/* Letter Spacing Helpers */
.ls-2,
.ls-2 span.inner {
  letter-spacing: .2px !important;
}
.ls-25,
.ls-25 span.inner {
  letter-spacing: .25px !important;
}
.ls-33,
.ls-33 span.inner {
  letter-spacing: .33px !important;
}
.ls-4,
.ls-4 span.inner {
  letter-spacing: .4px !important;
}
.ls-5,
.ls-5 span.inner {
  letter-spacing: .5px !important;
}
.ls-75,
.ls-75 span.inner {
  letter-spacing: .75px !important;
}
.ls-120,
.ls-120 span.inner {
  letter-spacing: 1.2px !important;
}
.ls-125,
.ls-125 span.inner {
  letter-spacing: 1.25px !important;
}

/* Split Heading Adjustments
   These only take effect once Salient's split-heading animation adds
   .markup-generated.animated-in, so they cannot be merged into the plain .ls-*
   helpers above.
   Note: .ls-121 is a marker class only - it has no letter-spacing helper of its
   own and exists purely as a hook for the margin reset below. */
.nectar-split-heading.ls-120.markup-generated.animated-in span {
  font-size: .99em !important;
}
/* .ls-121 kills Salient's `.wpb_wrapper > div { margin-bottom: 24px }` so a heading
   split across two split-heading blocks reads as one headline.
   Deliberately NOT gated on .animated-in/.markup-generated: those are added by the
   split-heading animation, so the gated version never matched when the animation
   hadn't run and the 24px gap stayed. */
.nectar-split-heading.ls-121 {
  margin-bottom: 0;
}

/* Subject Styling */
.page-template-template-performance-ready-spaces .subject {
  font-weight: var(--font-weight-bold);
  color: var(--color-charcoal);
  font-family: var(--font-primary);
}

/* Min Width Helpers */
.minwidth200 {
  min-width: 300px;
}

/* =============================================================================
   7.0 Salient Theme Overrides
   ============================================================================= */

/* Container Padding Override */
.page-template-template-performance-ready-spaces #top .container {
  padding-left: 1.5rem!important;
  padding-right: 1.5rem!important;
}

/* Services Section Overrides */
.wpb_row#services .item-meta p {
  text-align: left;
}
.wpb_row#services .wpb_gallery .nectar-flickity .item-meta {
  padding-top: .25em;
}
.wpb_row#services .nectar-fancy-ul {
  margin-bottom: 0;
}

/* Find the Space */
@media only screen and (max-width: 1024px) {
  .page-template-template-performance-ready-spaces #services
  .nectar-sticky-media-section__content-section-inner > .vc_row.inner_row {
    height: auto;
  }
}

/* CTA Tap Targets */
.page-template-template-performance-ready-spaces #ajax-content-wrap .nectar-cta .link_wrap {
  display: inline-flex;
  padding: 0!important;
}
.page-template-template-performance-ready-spaces #ajax-content-wrap .nectar-cta .link_wrap > a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .5em .75em;
  min-height: 44px;
}

/* Services Galleries */
.page-template-template-performance-ready-spaces #services
.nectar-flickity[data-controls*="arrows_overlaid"] .flickity-prev-next-button.previous {
  left: 16px;
}
.page-template-template-performance-ready-spaces #services
.nectar-flickity[data-controls*="arrows_overlaid"] .flickity-prev-next-button.next {
  right: 16px;
}
@media only screen and (max-width: 690px) {
  .page-template-template-performance-ready-spaces #services
  .nectar-flickity[data-controls*="arrows_overlaid"] .flickity-prev-next-button.previous {
    left: 10px;
  }
  .page-template-template-performance-ready-spaces #services
  .nectar-flickity[data-controls*="arrows_overlaid"] .flickity-prev-next-button.next {
    right: 10px;
  }
}

/* Success Stories Carousel - restore the overlaid arrows below 1000px.
   Salient hides them outright in flickity.css:

     @media only screen and (max-width: 999px) {
       .nectar-flickity[data-controls*="arrows_overlaid"][data-overflow="visible"]
       .flickity-prev-next-button { opacity:0; visibility:hidden; pointer-events:none }
     }

   The trigger is the carousel's "Overflow: Visible" builder option - #customers carries
   data-overflow="visible", the #services galleries do not, which is exactly why theirs
   still show. The buttons are in the DOM and correctly placed the whole time (left/right
   35px, scale(.65)); they are only hidden.

   Salient's blanket rule assumes overflow-visible means neighbouring cells bleed across
   the frame edge, where an overlaid arrow would sit on top of the wrong slide. That does
   not hold here: at data-phone-columns="1" the cell is exactly frame width, so the arrows
   land over the one visible card. Without them the section has NO navigation affordance
   on mobile - these controls are set to next_prev_arrows_overlaid, so there are no dots
   either, and nothing signals that six more stories exist. */
@media only screen and (max-width: 999px) {
  .page-template-template-performance-ready-spaces #customers
  .nectar-flickity[data-controls*="arrows_overlaid"][data-overflow="visible"]
  .flickity-prev-next-button {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
}

/* Video Player Override */
.page-template-template-performance-ready-spaces
.nectar_video_player_self_hosted .play_button .play {
  top: unset; right: 0; bottom: 0; left: unset;
  margin: 0 4% 4% 0;
}

/* Icon List Overrides */
.page-template-template-performance-ready-spaces
.nectar-icon-list-justify-content-center .nectar-icon-list {
  padding-right: 40px; padding-left: 40px;
}
.page-template-template-performance-ready-spaces
.nectar-icon-list .list-icon-holder[data-icon_type="numerical"] span,
.page-template-template-performance-ready-spaces
.nectar-icon-list[data-icon-size=medium] .nectar-icon-list-item .list-icon-holder {
  width: 48px; height: 48px;
  font-size: 18px; line-height: 44px;
}
.page-template-template-performance-ready-spaces
.nectar-icon-list[data-direction=horizontal] .nectar-icon-list-item {
  padding-left: 72px;
}

/* Back to Top Button */
#to-top:hover {
  background-color: #506478!important;
}

/* Toggles/Accordions - Minimal Style */
.toggles[data-style="minimal"] h3.toggle-title,
.toggles[data-style="minimal"] h3.toggle-title a {
  font-size: var(--font-size-h3); font-family: var(--font-primary);
  color: var(--color-slate-blue);
}
.toggles[data-style="minimal"] .toggle > .toggle-title a {
  padding: 40px 70px 40px 0;
}
.toggles[data-style="minimal"] .toggle .toggle-heading i {
  border-color: var(--color-ghost);
}
div[data-style="minimal"] .toggle.extra-color-1.open > .toggle-title a,
div[data-style="minimal"] .toggle.extra-color-1:hover > .toggle-title a {
  color: var(--color-slate-blue-dark);
} 

.toggles[data-style="minimal"] .toggle .toggle-heading i:before,
.toggles[data-style="minimal"] .toggle .toggle-heading i:after {
  border-color: var(--color-ghost);
}
.toggles[data-style="minimal"] .toggle.open .toggle-heading i {
  border-color: var(--color-slate-blue);
}
.toggles[data-style="minimal"] .toggle.open .toggle-heading i:before,
.toggles[data-style="minimal"] .toggle.open .toggle-heading i:after {
  background-color: var(--color-slate-blue);
}

.page-template-template-performance-ready-spaces #ajax-content-wrap .toggles[data-style="minimal"] p {
  font-size: var(--font-size-h5);
}

/* 
 * Flip Box - Clean Minimal Card Style 
*/
#stats .nectar-flip-box,
#stats .nectar-flip-box .flip-box-back,
#stats .nectar-flip-box .flip-box-front {
  min-height: 240px!important; 
}
#stats .nectar-flip-box {
  border-radius: var(--radius-lg);
}

/* Front & Back Faces */
#stats .nectar-flip-box p:empty {
  display: none;
}
#stats .nectar-flip-box .flip-box-front,
#stats .nectar-flip-box .flip-box-back {
  border-radius: var(--radius-lg);
  backface-visibility: hidden!important;
  -webkit-backface-visibility: hidden!important;
}
#stats .nectar-flip-box .flip-box-back {
  background-color: var(--color-slate-blue)!important;
}
#stats .nectar-flip-box .flip-box-back .inner,
#stats .nectar-flip-box .flip-box-front .inner {
  display: grid;
  padding-right: var(--spacing-md); padding-left: var(--spacing-md);
}
#stats .nectar-flip-box .flip-box-back .inner {
  justify-content: center;
}

/* Visibility Controls - Prevent bleed-through */
#stats .nectar-flip-box .flip-box-front {
  z-index: 2;
}
#stats nectar-flip-box .flip-box-back {
  visibility: hidden;
}
#stats .nectar-flip-box:hover .flip-box-back,
#stats .nectar-flip-box.flipped .flip-box-back {
  visibility: visible;
}

/* Front - Color Variations */
.flip-box-color-1 .nectar-flip-box .flip-box-front {
  background-color: var(--flipbox-slate-light)!important;
}
.flip-box-color-2 .nectar-flip-box .flip-box-front {
  background-color: var(--flipbox-bone-warm)!important;
}
.flip-box-color-3 .nectar-flip-box .flip-box-front {
  background-color: var(--flipbox-ghost-cool)!important;
}
.flip-box-color-4 .nectar-flip-box .flip-box-front {
  background-color: var(--flipbox-charcoal-soft)!important;
}

/* Typography */
.page-template-template-performance-ready-spaces .nectar-flip-box h3 {
  font-size: var(--font-size-h1)!important;
  font-weight: var(--font-weight-bold)!important;
  font-family: var(--font-primary)!important;
  line-height: var(--line-height-tight)!important;
  margin: 0;
}
.page-template-template-performance-ready-spaces .nectar-flip-box p {
  font-size: 1.125rem;
  font-family: var(--font-secondary);
  line-height: var(--line-height-relaxed!important);
  margin: 0;
  color: var(--color-charcoal);
}

/* Typography - Back Side (White) */
.page-template-template-performance-ready-spaces .nectar-flip-box .flip-box-back p,
.page-template-template-performance-ready-spaces .nectar-flip-box .flip-box-back h3 {
  color: #fff;
}

/* Icon - Position at Bottom */
.nectar-flip-box .flip-box-front .im-icon-wrap {
  order: 99;
  margin-top: auto;
}

/* Icon - Front Color (Subtle) */
.flip-box-color-1 .nectar-flip-box .flip-box-front .im-icon-wrap i,
.flip-box-color-1 .nectar-flip-box .flip-box-front .im-icon-wrap svg,
.flip-box-color-2 .nectar-flip-box .flip-box-front .im-icon-wrap i,
.flip-box-color-2 .nectar-flip-box .flip-box-front .im-icon-wrap svg,
.flip-box-color-3 .nectar-flip-box .flip-box-front .im-icon-wrap i,
.flip-box-color-3 .nectar-flip-box .flip-box-front .im-icon-wrap svg,
.flip-box-color-4 .nectar-flip-box .flip-box-front .im-icon-wrap i,
.flip-box-color-4 .nectar-flip-box .flip-box-front .im-icon-wrap svg {
  color: var(--color-charcoal);
  opacity: 0.75;
}
.flip-box-color-1 .nectar-flip-box .flip-box-front .im-icon-wrap path,
.flip-box-color-4 .nectar-flip-box .flip-box-front .im-icon-wrap path {
  fill: #fff;
}
.flip-box-color-1 .inner p,
.flip-box-color-4 .inner p,
.flip-box-color-1 .inner h3,
.flip-box-color-4 .inner h3,
.flip-box-color-4 .nectar-flip-box .im-icon-wrap i,
.flip-box-color-4 .nectar-flip-box .im-icon-wrap svg { 
  color: #fff;
}
.flip-box-color-4 .nectar-flip-box .im-icon-wrap i {
  opacity: 0.4;
}

.nectar-flip-box .flip-box-front .im-icon-wrap { 
  margin: 0;
}

/* Icon - Back Color */
.nectar-flip-box .flip-box-back .im-icon-wrap i,
.nectar-flip-box .flip-box-back .im-icon-wrap svg {
  color: #fff;
  opacity: 0.6;
}

/* Custom Row Backgrounds */
#mid-tech .row-bg-wrap .row-bg::before,
#manufacturing .row-bg-wrap .row-bg::before,
#campus-office .row-bg-wrap .row-bg::before { content: '';
  position: absolute; z-index: 1;
  top: 0; left: 0; right: 0; bottom: 0;
  background-size: 100%;
  background-position: right center;
  background-repeat: no-repeat;
  opacity: 0.65;
}
#mid-tech .row-bg-wrap .row-bg::before,
#campus-office .row-bg-wrap .row-bg::before,
#manufacturing .row-bg-wrap .row-bg::before {
   background-image: url('/wp-content/uploads/2026/04/GRID_AdobeStock_41533545-Converted.jpg');
}

/* Background Image Sections */
#mid-tech .row-bg-wrap .row-bg::before,
#campus-office .row-bg-wrap .row-bg::before,
#manufacturing .row-bg-wrap .row-bg::before {
  background-size: cover;
}

/* =============================================================================
   8.0 Plugins
   ============================================================================= */

/* Gravity Forms */
.gform_wrapper.gravity-theme .gf_progressbar_percentage.percentbar_blue {
  background-color: var(--color-slate-blue);
}

.gform_page_fields a {
  color: var(--color-slate-blue);
}

/* Form Submit Buttons */
input[type=button],
input[type=submit],
button[type=submit],
body[data-form-submit="regular"] input[type=submit] {
  background-color: var(--color-slate-blue);
}

/* =============================================================================
   9.0 Media Queries
   ============================================================================= */

@media only screen and (min-width: 1000px) {
  .page-template-template-performance-ready-spaces #top .container {
    max-width: none;
  }

  #mobilemenu {
    display: none;
  }
}

/* Typography Scale Adjustment - 1500px and below */
@media screen and (max-width: 1500px) {
  .page-template-template-performance-ready-spaces
  #ajax-content-wrap #services h3.font-size-h1,
  .page-template-template-performance-ready-spaces
  #ajax-content-wrap #services h3.font-size-h1 span {
    font-size: var(--font-size-h2)!important;
  }
}

@media screen and (max-width: 1380px) {
  body.page-template-template-performance-ready-spaces #ajax-content-wrap #services h2,
  body.page-template-template-performance-ready-spaces #ajax-content-wrap #services h2 span {
    font-size: 3.157rem;
  }
}

/* Tablet / Mobile */
@media screen and (max-width: 1000px) {
  .page-template-template-performance-ready-spaces #header-outer:not([data-format="left-header"]) #top > .container > .row {
    display: none;
  }

  #ajax-content-wrap .vc_row.right_padding_32px > .row_col_wrap_12,
  .nectar-global-section .vc_row.right_padding_32px > .row_col_wrap_12 {
    padding-right: 10px;
    padding-left: 10px;
  }

  #ajax-content-wrap .vc_row.inner_row.right_padding_56px > .row_col_wrap_12_inner,
  .nectar-global-section .vc_row.inner_row.right_padding_56px > .row_col_wrap_12_inner {
    padding-right: 20px;
    padding-left: 20px;
  }

  #top-bar .row_col_wrap_12.col.span_12.dark.left {
    padding: 0;
  }

  #mobilemenu .vc_col-sm-6.wpb_column.column_container.vc_column_container.col {
    float: left;
    width: 50%;
  }

  #mobilemenu .nectar-cta span {
    color: #506b87 !important;
    font-family: "Hoves", sans-serif;
    font-weight: 600;
  }

  #services h2,
  #services h2 span.inner {
    text-align: center !important;
  }

  .page-template-template-performance-ready-spaces #campus-office h2,
  .page-template-template-performance-ready-spaces #campus-office h2 span.inner,
  .page-template-template-performance-ready-spaces #mid-tech h2,
  .page-template-template-performance-ready-spaces #mid-tech h2 span.inner,
  .page-template-template-performance-ready-spaces #manufacturing h2,
  .page-template-template-performance-ready-spaces #manufacturing h2 span.inner {
    text-align: left !important;
  }
}

/* Services gallery captions */
@media only screen and (min-width: 1000px) {
  .page-template-template-performance-ready-spaces
  .wpb_row#services .wpb_gallery .nectar-flickity .item-meta {
    width: 100%;
    max-width: 100%;
    text-align: left;
  }
}

/* -----------------------------------------------------------------------------
   Tablet/Mobile Layout Fixes - 999px
   ----------------------------------------------------------------------------- */

/* Icon list */
@media only screen and (max-width: 1024px) {
  .page-template-template-performance-ready-spaces #ajax-content-wrap
  .nectar-icon-list-justify-content-center .nectar-icon-list {
    width: 100%;
    padding-right: 0;
    padding-left: 0;
    justify-content: flex-start;
  }
}

@media only screen and (max-width: 999px) {
  .page-template-template-performance-ready-spaces #ajax-content-wrap .vc_row.full-width-content.left_margin_tablet_0px,
  .page-template-template-performance-ready-spaces #ajax-content-wrap .vc_row.full-width-content.left_margin_phone_0px {
    margin-left: calc(-50vw + var(--scroll-bar-w, 0px) / 2);
  }

  /* Success Stories */
  .page-template-template-performance-ready-spaces #ajax-content-wrap
  #customers .nectar-split-heading {
    padding-left: 6%;
  }

  .page-template-template-performance-ready-spaces #ajax-content-wrap
  #customers .nectar-flickity {
    margin-left: 6%;
    margin-right: 6%;
  }

  /* Features checklist - close the seam where the two stacked half-columns meet
    (.col margin-bottom:25px + ul margin-bottom:30px = 79px gap vs 29px pitch). */
  .page-template-template-performance-ready-spaces #services
  .nectar-fancy-ul .col:not(.col_last) {
    margin-bottom: 0;
  }
  .page-template-template-performance-ready-spaces #services
  .nectar-fancy-ul .col ul {
    margin-bottom: 0;
  }

  .page-template-template-performance-ready-spaces
  #ajax-content-wrap #hero > .row_col_wrap_12 {
    /* kill the generated tablet 20px */
    padding-right: 0!important;
    padding-left: 0!important;
    /* and Salient's -1% span pull, which the column's pl-0/pr-0 leaves uncompensated */
    margin-right: 0;
    margin-left: 0;
  }

}

@media only screen and (max-width: 768px) {
  /* Services Section - Sticky Media Links Mobile */
  #services .nectar-sticky-media-section__content-section .cell a.entire-slide-link::after {
    font-size: 0.9rem;
  }
}

/* -----------------------------------------------------------------------------
   Mobile Layout Fixes - 480px
   ----------------------------------------------------------------------------- */

@media only screen and (max-width: 480px) {
  .wpb_row#services .wpb_gallery .nectar-flickity .item-meta {
    width: 350px!important; max-width: 100%; margin: auto;
  }
  #services .nectar-sticky-media-section__content-section 
  .cell a.entire-slide-link::after {
    bottom: 2.75rem;
  }
  .page-template-template-performance-ready-spaces #ajax-content-wrap 
  #customers .nectar-split-heading {
    margin-top: 24px; padding-left: 0;
  }
  .page-template-template-performance-ready-spaces #ajax-content-wrap 
  #customers .vc_row.inner_row.left_padding_tablet_40px > .row_col_wrap_12_inner {
    padding-left: 0!important;
  }
  .page-template-template-performance-ready-spaces #ajax-content-wrap 
  #customers .vc_col-sm-12 {
    display: flex; justify-content: center; 
    padding-left: 0;
  }
  .page-template-template-performance-ready-spaces #ajax-content-wrap 
  #services .row_col_wrap_12_inner .wpb_column {
    margin-bottom: 0;
  }
  .page-template-template-performance-ready-spaces #ajax-content-wrap 
  #services .col.span_6.col_last {
    margin-bottom: 0;
  }
  .page-template-template-performance-ready-spaces #ajax-content-wrap 
  #services  .nectar-flickity .flickity-viewport {
    margin-bottom: 0;
  }
}

/* =============================================================================
   9.1 Responsive Typography
   Strategy: Update CSS variables at each breakpoint so utility classes and
   components inherit the responsive scaling automatically
   ============================================================================= */

/* Tablet Landscape - 1024px and below */
@media only screen and (max-width: 1024px) {
  :root {
    --font-size-h1: 3.5rem;        /* 56px - gentler reduction from 72px */
    --font-size-h2: 2.75rem;       /* 44px - smoother from 54px */
    --font-size-h3: 2rem;          /* 32px - from 40px */
    --font-size-h4: 1.5rem;        /* 24px - from 30px */
    --font-size-h5: 1.25rem;       /* 20px - from 22px */
    --font-size-large: 1.0625rem;  /* 17px - from 18px */

    /* Slightly more relaxed line heights for smaller screens */
    --line-height-tight: 1.15;
    --line-height-normal: 1.25;
  }

  /* Component-specific adjustments */
  .page-template-template-performance-ready-spaces .nectar-flip-box h3 {
    font-size: 3.5rem!important;  /* Match H1 variable */
  }

  .page-template-template-performance-ready-spaces .nectar-flip-box p {
    font-size: 1.0625rem;  /* 17px - slightly smaller */
  }

  body.page-template-template-performance-ready-spaces #slide-out-widget-area.slide-out-from-right a {
    font-size: 1.375rem;  /* 22px - reduced from 24px */
  }
}

/* Tablet Portrait / Large Mobile - 768px and below */
@media only screen and (max-width: 768px) {
  :root {
    --font-size-h1: 2.75rem;       /* 44px - smoother progression */
    --font-size-h2: 2.25rem;       /* 36px - balanced scaling */
    --font-size-h3: 1.75rem;       /* 28px - more readable than 24px */
    --font-size-h4: 1.375rem;      /* 22px - improved from 20px */
    --font-size-h5: 1.125rem;      /* 18px */
    --font-size-large: 1rem;       /* 16px */

    /* More relaxed spacing on tablet */
    --line-height-tight: 1.2;
    --line-height-normal: 1.3;
    --line-height-relaxed: 1.5;

    /* Reduce aggressive letter spacing on smaller screens */
    --letter-spacing-tight: -0.0625rem;   /* -1px instead of -2px */
    --letter-spacing-normal: 0;
  }

  /* Component overrides */
  .page-template-template-performance-ready-spaces .nectar-flip-box h3 {
    font-size: 2.75rem!important;  /* Match H1 for flip box stats */
  }

  .page-template-template-performance-ready-spaces .nectar-flip-box p {
    font-size: 1rem;  /* 16px - match body text */
  }

  .toggles[data-style="minimal"] h3.toggle-title,
  .toggles[data-style="minimal"] h3.toggle-title a {
    font-size: 1.75rem;  /* Match H3 scale */
  }

  .toggles[data-style="minimal"] .toggle > .toggle-title a {
    padding: 32px 60px 32px 0;  /* Reduce padding proportionally */
  }

  .page-template-template-performance-ready-spaces #ajax-content-wrap .toggles[data-style="minimal"] p {
    font-size: 1.125rem;  /* 18px - from 22px */
  }

  body.page-template-template-performance-ready-spaces #slide-out-widget-area.slide-out-from-right a {
    font-size: 1.25rem;  /* 20px */
  }

  /* Services Section - Sticky Media Links Mobile */
  #services .nectar-sticky-media-section__content-section .cell a.entire-slide-link::after {
    font-size: 0.9rem;
  }
}

@media only screen and (max-width: 690px) {
  /* Same box as .nectar-flickity / .flickity-viewport, but outside flickity's own
     markup - nothing here is positioned or resized by its JS, so the containment
     that `container-type` brings with it has nothing to act on. */
  .page-template-template-performance-ready-spaces #services
  .wpb_gallery [class*="wpb_gallery_slides"] {
    container-type: inline-size;
  }

  #services .nectar-sticky-media-section__content-section .cell a.entire-slide-link::after {
    right: max(1.25rem, calc(50% - 50cqw + 1.25rem));
  }
}

/* Mobile - 480px and below */
@media only screen and (max-width: 480px) {
  :root {
    --font-size-h1: 2rem;          /* 32px */
    --font-size-h2: 1.75rem;       /* 28px */
    --font-size-h3: 1.5rem;        /* 24px - improved from 20px */
    --font-size-h4: 1.25rem;       /* 20px - improved from 18px */
    --font-size-h5: 1.0625rem;     /* 17px */
    --font-size-body: 1rem;        /* 16px - keep readable */
    --font-size-large: 1rem;       /* 16px */

    /* Most relaxed spacing for mobile readability */
    --line-height-tight: 1.25;
    --line-height-normal: 1.35;
    --line-height-relaxed: 1.6;

    /* Remove negative letter spacing on mobile */
    --letter-spacing-tight: 0;
    --letter-spacing-normal: 0;

    /* Adjust spacing scale for mobile */
    --spacing-md: 1.25rem;  /* 20px - reduced from 24px */
    --spacing-lg: 1.75rem;  /* 28px - reduced from 32px */
    --spacing-xl: 2.5rem;   /* 40px - reduced from 48px */
  }

  .page-template-template-performance-ready-spaces #ajax-content-wrap #hero h1 {
    font-size: 2.25rem;
  }
  
  /* Component overrides */
  .page-template-template-performance-ready-spaces .nectar-flip-box h3 {
    font-size: 2rem!important;  /* Match mobile H1 */
  }

  .page-template-template-performance-ready-spaces .nectar-flip-box p {
    font-size: 1rem;  /* 16px - consistent body text */
  }

  #stats .nectar-flip-box,
  #stats .nectar-flip-box .flip-box-back,
  #stats .nectar-flip-box .flip-box-front {
    min-height: 200px!important;  /* Reduce from 240px */
  }

  #stats .nectar-flip-box .flip-box-back .inner,
  #stats .nectar-flip-box .flip-box-front .inner {
    padding-right: var(--spacing-sm);  /* 16px - reduced from 24px */
    padding-left: var(--spacing-sm);
  }

  .toggles[data-style="minimal"] h3.toggle-title,
  .toggles[data-style="minimal"] h3.toggle-title a {
    font-size: 1.5rem;  /* Match H3 scale */
  }

  .toggles[data-style="minimal"] .toggle > .toggle-title a {
    padding: 24px 50px 24px 0;  /* Further reduced for mobile */
  }

  .page-template-template-performance-ready-spaces #ajax-content-wrap .toggles[data-style="minimal"] p {
    font-size: 1rem;  /* 16px - match body text */
  }

  body.page-template-template-performance-ready-spaces #slide-out-widget-area.slide-out-from-right a {
    font-size: 1.125rem;  /* 18px */
  }

  /* Badge/CTA adjustments */
  .page-template-template-performance-ready-spaces #ajax-content-wrap .nectar-cta .link_wrap {
    padding: .4em .65em!important;  /* Slightly tighter on mobile */
  }
}

/* =============================================================================
   10.0 Split-Heading Type Scale
   ============================================================================= */

body.page-template-template-performance-ready-spaces {
  --prs-h1: 4rem;        /* 64px - section headings (#features, #services, h2) */
  --prs-hero-h1: 4rem;   /* 64px - hero headline, tracked separately */
}

/* Laptop - 1500px and below */
@media only screen and (max-width: 1500px) {
  body.page-template-template-performance-ready-spaces {
    --prs-h1: 3.75rem;        /* 60px */
    --prs-hero-h1: 3.625rem;  /* 58px */
  }
}

/* Small laptop / the reported 1265px device - 1280px and below */
@media only screen and (max-width: 1280px) {
  body.page-template-template-performance-ready-spaces {
    --prs-h1: 3.25rem;        /* 52px */
    --prs-hero-h1: 3.125rem;  /* 50px */
  }
}

/* Hero column narrows ahead of the section headings here */
@media only screen and (max-width: 1100px) {
  body.page-template-template-performance-ready-spaces {
    --prs-hero-h1: 2.75rem;   /* 44px */
  }
}

/* Tablet landscape - 1024px and below */
@media only screen and (max-width: 1024px) {
  body.page-template-template-performance-ready-spaces {
    --prs-h1: 3rem;           /* 48px */
  }
}

/* ---------------------------------------------------------------------------
   Tablet and mobile: ONE size for every section heading.
   Below 1000px the hero column goes full width, so the hero no longer needs its
   own smaller curve - `--prs-hero-h1` is held equal to `--prs-h1` from here down
   and every h1/h2 on the page renders at the same size.
   --------------------------------------------------------------------------- */

/* Only three tiers are needed below 1000px, because Salient already steps the
   root font-size down (16px -> 15px at <=768 -> 14px at <=480) and these are
   rem, so each tier renders smaller again as the root drops. Rendered result:
   40px -> 33.75px -> 30px -> 28px. A separate <=480 tier would be redundant. */

/* Tablet - 1000px and below */
@media only screen and (max-width: 1000px) {
  body.page-template-template-performance-ready-spaces {
    --prs-h1: 2.5rem;         /* 40px */
    --prs-hero-h1: 2.5rem;
  }
}

/* Tablet portrait - 768px and below */
@media only screen and (max-width: 768px) {
  body.page-template-template-performance-ready-spaces {
    --prs-h1: 2.25rem;        /* 33.75px - root is 15px here */
    --prs-hero-h1: 2.25rem;
  }
}

/* Phone - 600px and below */
@media only screen and (max-width: 600px) {
  body.page-template-template-performance-ready-spaces {
    --prs-h1: 2rem;           /* 30px, then 28px once root drops to 14px at <=480 */
    --prs-hero-h1: 2rem;
  }
}
body.page-template-template-performance-ready-spaces #ajax-content-wrap h1:not(.ensTitle),
body.page-template-template-performance-ready-spaces #ajax-content-wrap h2:not(.ensTitle) {
  font-size: var(--prs-h1) !important;
}

body.page-template-template-performance-ready-spaces #ajax-content-wrap h1:not(.ensTitle) span,
body.page-template-template-performance-ready-spaces #ajax-content-wrap h1:not(.ensTitle) strong,
body.page-template-template-performance-ready-spaces #ajax-content-wrap h2:not(.ensTitle) span,
body.page-template-template-performance-ready-spaces #ajax-content-wrap h2:not(.ensTitle) strong {
  font-size: inherit !important;
}

/* The hero is the one exception, and only on desktop: its column is narrower
   than the content columns above 1000px, so "Performance - Ready" needs a
   slightly smaller size to hold one line. At <=1000px the two variables are
   equal, so this rule stops having any effect. */
body.page-template-template-performance-ready-spaces #ajax-content-wrap #hero h1:not(.ensTitle) {
  font-size: var(--prs-hero-h1) !important;
}

/* Safety net: a split heading may never exceed its column. Salient's nowrap is
   what let the 64px heading punch 182px past the viewport on phones; allowing
   a wrap degrades to an extra line instead of horizontal overflow. */
body.page-template-template-performance-ready-spaces #ajax-content-wrap .nectar-split-heading,
body.page-template-template-performance-ready-spaces #ajax-content-wrap .nectar-split-heading h1,
body.page-template-template-performance-ready-spaces #ajax-content-wrap .nectar-split-heading h2 {
  max-width: 100%;
  white-space: normal;
}