/* Client-requested shared controls and August QA fixes. Loaded after style.css. */
html,
body {
  max-width: 100%;
  overflow-x: clip;
}

/* September checklist row 15: show the complete Advancements artwork rather
 * than cropping its title treatment inside the Blog card. */
body.page-id-15 .protech-blog-card:has(a[href*="the-importance-of-adas-calibrations-featured-on-advancements"])
  .protech-blog-card__image {
  background-color: #0878bd !important;
}

body.page-id-15 .protech-blog-card:has(a[href*="the-importance-of-adas-calibrations-featured-on-advancements"])
  .protech-blog-card__image img {
  object-fit: contain !important;
  object-position: center !important;
}

/* September checklist row 17: Blog filters and category chips use sentence
 * case even where older card styles force uppercase presentation. */
body.page-id-15 :is(.protech-blog-filters, .protech-blog-card__terms),
body.page-id-15 :is(.protech-blog-filters, .protech-blog-card__terms) a {
  text-transform: none !important;
}

body.page-id-15 .protech-blog-search :is(input, input::placeholder) {
  text-transform: none !important;
}

body :is(h1, h2, h3, h4, h5, h6),
body :is(h1, h2, h3, h4, h5, h6).wp-block-heading {
  font-family: "Protech Google Sans Flex", "Google Sans Flex", legacy-gotham, Arial, sans-serif !important;
}

@media (max-width: 440px) {
  /* Resource titles and excerpts vary, but the design calls for one consistent
   * card size. Use the tallest phone composition as the shared row height. */
  body.page-id-86 .protech-resources-grid > .wp-block-group__inner-container,
  body.page-id-86 .protech-resources-grid:not(:has(> .wp-block-group__inner-container)) {
    grid-auto-rows: 284px;
  }

  body.page-id-86 .protech-resources-grid .protech-resources-card,
  body.page-id-86 .protech-resources-grid .protech-resources-card > .wp-block-group__inner-container {
    box-sizing: border-box;
    height: 100% !important;
    min-height: 0 !important;
  }
}

/* Mobile primary navigation
 * Keep this final in the stylesheet. Several older responsive rules turn the
 * entire nav element into a flex drawer, which separates the submenu buttons
 * from their labels and lets the header CTAs overlap the menu. */
@media (max-width: 900px) {
  body.menu-open {
    overflow: hidden !important;
  }

  .site-header .main-navigation .menu-toggle {
    position: relative !important;
    inset: auto !important;
    z-index: 1003 !important;
    display: grid !important;
    place-items: center !important;
    flex: 0 0 46px !important;
    width: 46px !important;
    min-width: 46px !important;
    height: 46px !important;
    min-height: 46px !important;
    margin: 0 !important;
    padding: 11px !important;
    border: 1px solid rgba(126, 208, 248, .28) !important;
    border-radius: 50% !important;
    background: rgba(7, 34, 63, .92) !important;
    box-shadow: none !important;
  }

  .site-header .main-navigation .menu-toggle-icon,
  .site-header .main-navigation .menu-toggle-icon::before,
  .site-header .main-navigation .menu-toggle-icon::after {
    width: 22px !important;
    height: 2px !important;
    background: #dff4ff !important;
  }

  .site-header .main-navigation.toggled .menu-toggle-icon {
    background: transparent !important;
  }

  .site-header .main-navigation.toggled .menu-toggle-icon::before {
    top: 0 !important;
    transform: rotate(45deg);
  }

  .site-header .main-navigation.toggled .menu-toggle-icon::after {
    top: 0 !important;
    transform: rotate(-45deg);
  }

  .site-header .main-navigation.toggled {
    position: static !important;
    inset: auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    width: auto !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .site-header .main-navigation .primary-menu-container,
  .site-header .main-navigation .header-cta {
    display: none !important;
  }

  .site-header .main-navigation.toggled .primary-menu-container {
    position: fixed !important;
    top: 78px !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    z-index: 1001 !important;
    display: block !important;
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 18px 18px 150px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    background: #052744 !important;
    border-top: 1px solid rgba(126, 208, 248, .22) !important;
    box-shadow: 0 18px 40px rgba(0, 15, 29, .42) !important;
  }

  .admin-bar .site-header .main-navigation.toggled .primary-menu-container {
    top: 124px !important;
  }

  .site-header .main-navigation.toggled #primary-menu {
    display: block !important;
    width: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
  }

  .site-header .main-navigation.toggled #primary-menu > li {
    position: relative !important;
    z-index: auto !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 42px !important;
    align-items: center !important;
    gap: 0 10px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border-bottom: 1px solid rgba(126, 208, 248, .16) !important;
  }

  .site-header .main-navigation.toggled #primary-menu > li:not(.menu-item-has-children) {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .site-header .main-navigation.toggled #primary-menu > li::before,
  .site-header .main-navigation.toggled #primary-menu > li::after {
    content: none !important;
    display: none !important;
  }

  .site-header .main-navigation.toggled #primary-menu > li > a {
    grid-column: 1 !important;
    display: flex !important;
    align-items: center !important;
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 58px !important;
    margin: 0 !important;
    padding: 15px 4px !important;
    color: #fff !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    font-size: 1.05rem !important;
    font-weight: 650 !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
  }

  .site-header .main-navigation.toggled #primary-menu > li > a::after {
    content: none !important;
    display: none !important;
  }

  .site-header .main-navigation.toggled #primary-menu > li > .dropdown-toggle {
    grid-column: 2 !important;
    grid-row: 1 !important;
    position: static !important;
    inset: auto !important;
    display: grid !important;
    place-items: center !important;
    box-sizing: border-box !important;
    width: 38px !important;
    min-width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #001a29 !important;
    background: #00d9ff !important;
    border: 0 !important;
    border-radius: 50% !important;
    box-shadow: none !important;
    font: inherit !important;
  }

  .site-header .main-navigation.toggled #primary-menu > li > .dropdown-toggle::before {
    content: "+" !important;
    font-size: 22px !important;
    font-weight: 500 !important;
    line-height: 1 !important;
  }

  .site-header .main-navigation.toggled #primary-menu > li > .dropdown-toggle[aria-expanded="true"]::before {
    content: "−" !important;
  }

  .site-header .main-navigation.toggled #primary-menu > li > .sub-menu {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    position: static !important;
    inset: auto !important;
    display: block !important;
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 0 0 14px !important;
    overflow: hidden !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    transition: max-height .25s ease !important;
  }

  .site-header .main-navigation.toggled #primary-menu > li > .sub-menu.toggled {
    max-height: 1200px !important;
    padding-bottom: 10px !important;
  }

  .site-header .main-navigation.toggled #primary-menu > li > .sub-menu::before,
  .site-header .main-navigation.toggled #primary-menu > li > .sub-menu::after {
    content: none !important;
    display: none !important;
  }

  .site-header .main-navigation.toggled #primary-menu > li > .sub-menu > li {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
  }

  .site-header .main-navigation.toggled #primary-menu > li > .sub-menu a {
    display: block !important;
    width: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 10px 8px !important;
    color: #dff4ff !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    font-size: .94rem !important;
    font-weight: 500 !important;
    line-height: 1.3 !important;
  }

  .site-header .main-navigation.toggled .protech-menu-item-image,
  .site-header .main-navigation.toggled .protech-menu-item-description {
    display: none !important;
  }

  .site-header .main-navigation.toggled .protech-menu-item-title {
    color: inherit !important;
    font: inherit !important;
  }

  .site-header .main-navigation.toggled .header-cta {
    position: fixed !important;
    right: 18px !important;
    bottom: 18px !important;
    left: 18px !important;
    z-index: 1002 !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    width: auto !important;
    margin: 0 !important;
    padding: 12px !important;
    border: 1px solid rgba(126, 208, 248, .2) !important;
    border-radius: 18px !important;
    background: rgba(5, 39, 68, .97) !important;
    box-shadow: 0 14px 30px rgba(0, 15, 29, .38) !important;
  }

  .site-header .main-navigation.toggled .header-cta .btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 50px !important;
    margin: 0 !important;
    padding: 10px 12px !important;
    border-radius: 999px !important;
    font-size: .8rem !important;
    line-height: 1.15 !important;
    text-align: center !important;
  }

  .site-header .main-navigation.toggled .header-intake-btn {
    color: #001a29 !important;
    border-color: transparent !important;
    background: #00d9ff !important;
  }
}

/* Row 33: the phone footer is one centered composition. */
@media (max-width: 782px) {
  .site-footer .footer-layout,
  .site-footer .footer-brand-contact,
  .site-footer .footer-bottom-content {
    align-items: center !important;
  }

  .site-footer .footer-brand-contact {
    flex-direction: column !important;
    width: 100% !important;
    text-align: center !important;
  }

  .site-footer .footer-contact {
    width: min(100%, 310px) !important;
    padding: 18px 0 0 !important;
    border-top: 1px solid rgba(180, 216, 236, .54) !important;
    border-left: 0 !important;
  }

  .site-footer .footer-links-grid {
    max-width: 330px !important;
    margin-inline: auto !important;
    text-align: center !important;
  }

  .site-footer .footer-bottom-content {
    text-align: center !important;
  }

  .site-footer .footer-social {
    justify-content: center !important;
  }
}

/* August 25 client-list completion pass. */
.wp-block-cover.has-protech-background-size > .wp-block-cover__image-background {
  object-fit: var(--protech-background-size, cover) !important;
}

.wp-block-cover.has-protech-background-opacity > .wp-block-cover__image-background {
  opacity: var(--protech-background-opacity, 1) !important;
}

.wp-block-image.has-protech-image-opacity img,
.wp-block-uagb-image.has-protech-image-opacity img {
  opacity: var(--protech-image-opacity, 1) !important;
}

/* Group background opacity uses a separate layer so text and nested blocks do
 * not fade with the background artwork. WordPress's native background-size,
 * position, repeat, and attachment values are mirrored onto this layer. */
.wp-block-group.has-protech-group-background-opacity {
  position: relative;
  isolation: isolate;
  background-image: none !important;
}

.wp-block-group.has-protech-group-background-opacity::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: inherit;
  background-image: var(--protech-group-background-image);
  background-size: var(--protech-group-background-size, cover);
  background-position: var(--protech-group-background-position, center);
  background-repeat: var(--protech-group-background-repeat, no-repeat);
  background-attachment: var(--protech-group-background-attachment, scroll);
  opacity: var(--protech-group-background-opacity, 1);
  pointer-events: none;
}

.wp-block-group.has-protech-group-background-opacity > * {
  position: relative;
  z-index: 1;
}

body,
button,
input,
select,
textarea,
.wp-element-button {
  font-family: "Protech Google Sans Flex", "Google Sans Flex", legacy-gotham, Arial, sans-serif;
}

/* The footer is now one editable WordPress menu, flowed into the approved columns. */
.site-footer .footer-links-grid {
  display: block;
  max-width: 590px;
}
.site-footer .footer-links-list {
  display: grid;
  grid-auto-flow: column;
  grid-template-rows: repeat(4, auto);
  grid-template-columns: repeat(2, minmax(190px, 1fr));
  gap: 12px 64px;
}
.site-footer .footer-links-list li + li { margin-top: 0; }

/* Desktop dropdown behavior and type consistency. */
@media (min-width: 901px) {
  .primary-menu-container .sub-menu :is(a, .protech-menu-item-title, .protech-menu-item-description) {
    font-family: "Protech Google Sans Flex", "Google Sans Flex", legacy-gotham, sans-serif;
  }
  .primary-menu-container .sub-menu .protech-menu-item-title { font-size: 1.1rem; }
  .primary-menu-container .sub-menu .protech-menu-item-description { font-size: .92rem; line-height: 1.35; }
}

.uagb-slider-container :is(.swiper-button-prev, .swiper-button-next) {
  width: 48px !important;
  height: 48px !important;
  border: 2px solid #00d9ff !important;
  border-radius: 50% !important;
  color: #001a29 !important;
  background: #00d9ff !important;
  opacity: 1 !important;
  box-shadow: 0 8px 20px rgba(0, 20, 35, .32) !important;
}

.uagb-slider-container :is(.swiper-button-prev, .swiper-button-next)::after {
  color: #001a29 !important;
  font-size: 18px !important;
  font-weight: 700;
}

/* Checklist row 26: keep slider navigation dots legible on dark imagery and
 * dark panels, with an unmistakable active slide. */
.uagb-slider-container .swiper-pagination {
  z-index: 4 !important;
}

.uagb-slider-container .swiper-pagination-bullet {
  box-sizing: border-box;
  width: 12px !important;
  height: 12px !important;
  margin-inline: 5px !important;
  border: 2px solid #00d9ff !important;
  background: #fff !important;
  opacity: 1 !important;
  box-shadow: 0 1px 5px rgba(0, 20, 35, .55);
}

.uagb-slider-container .swiper-pagination-bullet-active {
  background: #00d9ff !important;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, .9), 0 1px 6px rgba(0, 20, 35, .65);
}

/* About page: full-width texture, centered jump controls and a more legible hero. */
.page-id-7 .protech-about-page {
  background-size: 100% auto !important;
  background-position: center top !important;
}
.page-id-7 .protech-about-hero {
  background-image:
    linear-gradient(90deg, rgba(0, 19, 31, .82), rgba(0, 35, 54, .58)),
    url("assets/images/august/press/digital-wave.jpg") !important;
  background-position: center 48% !important;
  background-size: cover !important;
}
.page-id-7 .protech-about-hero .protech-about-eyebrow {
  display: none !important;
}
.page-id-7 .protech-about-jump {
  justify-content: center !important;
}
.page-id-7 .protech-about-jump .wp-block-button__link {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

/* Checklist row 24: center the Careers & Culture CTA label within its pill. */
.page-id-7 .protech-about-careers .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

/* Press: keep an independent page heading and present the featured release as a card. */
.page-id-110 .protech-press-featured {
  min-height: 660px;
  padding: 132px 24px 72px;
  background:
    linear-gradient(90deg, rgba(0, 25, 40, .86), rgba(0, 43, 64, .54)),
    url("assets/images/august/press/digital-wave.jpg") center / cover no-repeat;
}
.page-id-110 .protech-press-featured::before { content: none; }
.page-id-110 .protech-press-featured__inner {
  display: grid;
  grid-template-columns: minmax(300px, .85fr) minmax(520px, 1.15fr);
  gap: clamp(40px, 6vw, 90px);
  align-items: center;
  width: min(100%, 1320px);
  text-align: left;
}
.page-id-110 .protech-press-featured__copy > p,
.page-id-110 .protech-press-featured__card-content > p {
  margin: 0 0 14px;
  color: #fff;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.page-id-110 .protech-press-featured h1 {
  margin: 0;
  max-width: 580px;
  font-size: clamp(3.3rem, 5.2vw, 5.6rem);
  line-height: .98;
  text-align: left;
}
.page-id-110 .protech-press-featured__card {
  position: relative;
  min-height: 470px;
  overflow: hidden;
  border-radius: 38px;
  background-position: center;
  background-size: cover;
  box-shadow: 0 24px 50px rgba(0, 10, 20, .34);
}
.page-id-110 .protech-press-featured__card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 24, 38, .12) 20%, rgba(0, 39, 58, .96) 100%);
}
.page-id-110 .protech-press-featured__card-content {
  position: absolute;
  inset: auto 36px 36px;
  z-index: 1;
}
.page-id-110 .protech-press-featured__card h2 {
  margin: 0 0 26px;
  color: #fff;
  font-size: clamp(2rem, 2.8vw, 3rem);
  line-height: 1.05;
}
.page-id-110 .protech-press-featured__actions { justify-content: flex-start; }

/* ADAS dropdown labels retain their section-specific text colors. Only the
 * disclosure indicator uses the blue caret from the approved design. */
.page-id-9 .wp-block-details summary::after {
  color: #00d9ff;
}
:is(.page-id-445, .page-id-564, .page-id-580) .protech-redesign-scheduling-section .protech-redesign-steps > .wp-block-group__inner-container::before,
:is(.page-id-445, .page-id-564, .page-id-580) .protech-redesign-scheduling-section .protech-redesign-step::before {
  content: none !important;
  display: none !important;
}
.page-id-450 .protech-redesign-info-card.has-background:not([class*="-gradient-background"]):not([style*="--wp--preset--gradient--"]) {
  background-image: none !important;
}
.page-id-450 .protech-redesign-info-card:not(.has-background) {
  background: transparent !important;
  box-shadow: none !important;
}
.page-id-450 .protech-redesign-info-card:not(.has-background) p {
  color: #07344a;
}
.page-id-580 .protech-redesign-section h2 { text-align: center !important; }
.page-id-564 .protech-redesign-card-grid,
.page-id-564 .protech-redesign-feature-grid {
  justify-content: center !important;
}

/* Resources cards keep equal heights without clipping outer shadows. */
.page-id-86 .protech-resources-featured-track,
.page-id-86 .protech-resources-grid {
  overflow: visible !important;
  padding-inline: 24px !important;
  margin-inline: -24px !important;
  padding-bottom: 46px !important;
}
.page-id-86 .protech-resources-card { height: 100%; }

/* The featured row can be rendered either as direct dynamic cards or as
 * Gutenberg Columns. Stretch both structures to the tallest featured card. */
.page-id-86 .protech-resources-featured-track {
  align-items: stretch !important;
}

.page-id-86 .protech-resources-featured-track > .protech-resources-card {
  align-self: stretch;
  height: auto !important;
}

.page-id-86 .protech-resources-featured-track > .wp-block-column {
  align-self: stretch;
  display: flex;
}

.page-id-86 .protech-resources-featured-track > .wp-block-column > .protech-resources-card {
  width: 100%;
  height: 100% !important;
}

/* Blog sections are full-bleed, and the art fades cleanly into one navy base. */
.page-id-15 .protech-blog-redesign,
.page-id-15 .protech-blog-hero,
.page-id-15 .protech-blog-listing {
  width: 100vw !important;
  max-width: none !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
}
.page-id-15 .protech-blog-hero { padding-bottom: 0 !important; }
.page-id-15 .protech-blog-hero + .protech-blog-listing { margin-top: 0 !important; }

/* Careers background artwork is aligned as one continuous full-width field. */
.page-id-13 .protech-careers-page {
  background-size: 100% auto !important;
  background-position: center 760px !important;
}
.page-id-13 :is(.protech-careers-testimonial, .protech-careers-process, .protech-careers-cta) {
  background-color: #00283c !important;
  background-image: url("assets/images/august/careers/careers-lower-wave.png") !important;
  background-size: 100% auto !important;
  background-repeat: no-repeat !important;
}
.page-id-13 .protech-careers-testimonial { background-position: center top !important; }
.page-id-13 .protech-careers-process { background-position: center 46% !important; }
.page-id-13 .protech-careers-cta { background-position: center bottom !important; }
.page-id-13 .protech-careers-process,
.page-id-13 .protech-careers-cta { margin-block: 0 !important; }
.page-id-13 .protech-careers-cta :is(h2, p) {
  width: 100%;
  margin-inline: auto !important;
  text-align: center !important;
}
.page-id-13 .protech-careers-process .wp-block-columns::before {
  top: 37px !important;
  transform: translateY(-50%);
}
.page-id-13 .protech-careers-testimonial__arrow,
.uagb-slider-container .swiper-button-prev,
.uagb-slider-container .swiper-button-next {
  opacity: 1 !important;
  box-shadow: 0 0 0 4px rgba(0, 217, 255, .2), 0 8px 20px rgba(0, 20, 35, .35);
}

/* Keep wide two-column product sections on a common alignment frame. */
:is(.page-id-594, .page-id-1123) .protech-redesign-section > .wp-block-group__inner-container,
:is(.page-id-594, .page-id-1123) .protech-redesign-section > .wp-block-columns {
  width: min(100% - 48px, 1320px) !important;
  margin-inline: auto !important;
}

/* Glass checklist layout: two aligned benefits above one centered benefit. */
@media (min-width: 783px) {
  .page-id-594 .protech-redesign-shop-assessment .protech-redesign-risk-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 84px clamp(76px, 8vw, 120px) !important;
  }

  .page-id-594 .protech-redesign-shop-assessment .protech-redesign-risk-item {
    width: 100%;
    max-width: none;
    margin-block: 0 !important;
  }

  .page-id-594 .protech-redesign-shop-assessment .protech-redesign-risk-item:last-child {
    grid-column: 1 / -1;
    width: min(100%, 620px);
    justify-self: center;
  }
}

/* Checklist row 34: Mechanical Shops uses one aligned three-card workflow
 * row. Fixed icon/title tracks keep every card's copy on the same baseline. */
@media (min-width: 901px) {
  .page-id-1123 .protech-redesign-risk-grid,
  .page-id-1123 .protech-redesign-risk-grid > .wp-block-group__inner-container {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: clamp(34px, 5vw, 76px) !important;
    align-items: start;
  }

  .page-id-1123 .protech-redesign-risk-item,
  .page-id-1123 .protech-redesign-risk-item:last-child {
    display: grid;
    grid-template-rows: 112px minmax(82px, auto) auto;
    grid-column: auto !important;
    align-content: start;
    justify-self: stretch;
    width: 100%;
    max-width: none;
    margin-block-start: 0 !important;
  }

  .page-id-1123 .protech-redesign-risk-item .protech-redesign-icon {
    align-self: center;
    width: 92px;
    height: 92px;
    margin: 0 auto !important;
  }

  .page-id-1123 .protech-redesign-risk-item h3 {
    align-self: start;
    margin: 0 0 14px !important;
  }
}

@media (max-width: 900px) {
  .site-footer .footer-links-list {
    grid-auto-flow: row;
    grid-template-rows: none;
    grid-template-columns: 1fr 1fr;
    gap: 12px 22px;
  }
  .site-footer .footer-links-list a { font-size: .82rem; }

  .page-id-110 .protech-press-featured {
    min-height: 0;
    padding: 112px 18px 52px;
  }
  .page-id-110 .protech-press-featured__inner { grid-template-columns: 1fr; gap: 28px; }
  .page-id-110 .protech-press-featured h1 { font-size: clamp(2.6rem, 13vw, 4rem); }
  .page-id-110 .protech-press-featured__card { min-height: 420px; border-radius: 26px; }
  .page-id-110 .protech-press-featured__card-content { inset: auto 22px 24px; }
  .page-id-110 .protech-press-featured__card h2 { font-size: 1.75rem; }
  .page-id-110 .protech-press-btn { width: 100%; min-width: 0; }

  .page-id-7 .protech-about-page,
  .page-id-13 .protech-careers-page { background-size: auto 1100px !important; }
  .page-id-7 .protech-about-jump { justify-content: flex-start !important; overflow-x: auto; flex-wrap: nowrap; }
  .page-id-7 .protech-about-jump .wp-block-button { flex: 0 0 auto; }

  .page-id-86 .protech-resources-featured-track,
  .page-id-86 .protech-resources-grid {
    padding-inline: 18px !important;
    margin-inline: -18px !important;
  }

  .page-id-13 .protech-careers-page { background-position: center 600px !important; }
  .page-id-13 :is(.protech-careers-testimonial, .protech-careers-process, .protech-careers-cta) {
    background-size: auto 100% !important;
  }
  .page-id-13 .protech-careers-cta :is(h2, p) { text-align: center !important; }
  .page-id-13 .protech-careers-process .wp-block-columns::before {
    top: 32px !important;
    transform: translateY(-50%);
  }

  :is(.page-id-594, .page-id-1123) .protech-redesign-section > .wp-block-group__inner-container,
  :is(.page-id-594, .page-id-1123) .protech-redesign-section > .wp-block-columns {
    width: min(100% - 32px, 1320px) !important;
  }
}

.has-google-sans-flex-font-family {
  font-family: "Protech Google Sans Flex", "Google Sans Flex", legacy-gotham, "Helvetica Neue", Arial, sans-serif !important;
}

.wp-block-cover.has-protech-background-size .wp-block-cover__image-background {
  object-fit: var(--protech-background-size, cover) !important;
}

.wp-block-image.has-protech-image-opacity img,
.wp-block-uagb-image.has-protech-image-opacity img {
  opacity: var(--protech-image-opacity, 1);
}

/* Editor option: keep a selected Group background fixed while its content scrolls. */
.is-style-protech-fixed-background {
  background-attachment: fixed !important;
}

/* The hiring-process block uses the page field; only the following CTA keeps
 * the lower wave artwork. */
.page-id-13 .protech-careers-process {
  background-color: transparent !important;
  background-image: none !important;
}

/* Center the fifth ID3 benefit in the final row. */
@media (min-width: 783px) {
  body.page-id-445 .protech-redesign-steps > .protech-redesign-step:nth-child(5),
  body.page-id-445 .protech-redesign-steps > .wp-block-group__inner-container > .protech-redesign-step:nth-child(5) {
    grid-column: 1 / -1;
    justify-self: center;
    width: 100%;
  }

  body.page-id-445 .protech-redesign-steps > .protech-redesign-step:nth-child(5) .wp-block-image,
  body.page-id-445 .protech-redesign-steps > .protech-redesign-step:nth-child(5) .wp-block-image img {
    width: 150px !important;
    height: 135px !important;
    margin-inline: auto !important;
    object-fit: contain !important;
  }
}

/* Preserve authored sentence case against legacy presentation rules. */
:is(.site-header, .site-footer, .page-id-7, .page-id-14, .page-id-15, .page-id-86, .page-id-110)
  :is(a, button, input, select, textarea, h1, h2, h3, h4, p, span) {
  text-transform: none !important;
}

/* About history now contains four metrics; center the desktop row instead of
 * leaving the fifth column from the previous layout empty. */
@media (min-width: 783px) {
  body.page-id-7 .protech-about-history .wp-block-columns {
    grid-template-columns: repeat(4, minmax(0, 248px)) !important;
    justify-content: center !important;
  }
}

/* Preserve the complete Advancements artwork instead of cropping its title. */
body.page-id-15 .protech-blog-card--featured .protech-blog-card__image {
  background: #0878bd;
}

body.page-id-15 .protech-blog-card--featured .protech-blog-card__image img {
  object-fit: contain !important;
  object-position: center !important;
}

@media (max-width: 782px) {
  /* About now has four history metrics; keep them as a complete 2×2 grid
   * instead of applying the old five-card centered-last-item layout. */
  body.page-id-7 .protech-about-history .wp-block-column:last-child {
    grid-column: auto !important;
    width: 100% !important;
    max-width: none !important;
  }

  /* Use the portrait artwork at its native ratio rather than enlarging one
   * corner of the desktop dot field across a phone screen. */
  body:is(.page-id-445, .page-id-564, .page-id-580, .page-id-9, .page-id-466)
    .protech-redesign-page {
    background-color: #fff !important;
    background-image: none !important;
  }

  body:is(.page-id-445, .page-id-564, .page-id-580, .page-id-9, .page-id-466)
    .protech-redesign-wave-run {
    background-color: #fff !important;
    background-image: url("/wp-content/uploads/2026/08/grey-wave-1-scaled.png") !important;
    background-position: center top !important;
    background-size: 100% auto !important;
    background-repeat: repeat-y !important;
  }

  /* Normalize the Spectra service carousels: readable type, larger imagery,
   * protected copy width, and no content escaping the card. */
  body:is(.page-id-564, .page-id-580, .page-id-1123)
    .uagb-slider-container .swiper-slide {
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  body:is(.page-id-564, .page-id-580, .page-id-1123)
    .uagb-slider-container .swiper-slide :is(h2, h3) {
    max-width: 100% !important;
    font-size: clamp(1.75rem, 9vw, 2.35rem) !important;
    line-height: 1.08 !important;
    overflow-wrap: break-word;
  }

  body:is(.page-id-564, .page-id-580, .page-id-1123)
    .uagb-slider-container .swiper-slide p {
    max-width: 100% !important;
    font-size: 1rem !important;
    line-height: 1.32 !important;
    overflow-wrap: break-word;
  }

  /* Virtual Diagnostics: adjacent slides must not leak narrow columns of text
   * into the active card at phone widths. */
  body.page-id-580 .uagb-slider-container .swiper-slide:not(.swiper-slide-active) {
    opacity: 0 !important;
    visibility: hidden !important;
  }

  body.page-id-580 .uagb-slider-container .swiper-slide-active :is(h2, h3) {
    font-size: 1.75rem !important;
    line-height: 1.12 !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
  }

  body:is(.page-id-564, .page-id-580, .page-id-1123)
    .uagb-slider-container .swiper-slide .wp-block-uagb-image:first-child img {
    width: 156px !important;
    max-width: 68vw !important;
    height: 156px !important;
    object-fit: cover !important;
    object-position: center !important;
  }
}

/* Approved CTA casing is authored in WordPress rather than forced to uppercase. */
:is(.wp-block-button__link, .btn, button[type="submit"], input[type="submit"]) {
  text-transform: none !important;
}

/* Checklist row 9: retain the authored sentence case in this heading. */
body.page-id-564 .protech-redesign-scheduling-section > h2 {
  text-transform: none !important;
}

@media (max-width: 782px) {
  body:is(.page-id-564, .page-id-580, .page-id-1123)
    .uagb-slider-container .swiper-slide .wp-block-uagb-image:first-child {
    width: 156px !important;
    height: 156px !important;
    margin: 0 auto 22px !important;
    flex: 0 0 156px !important;
  }

  body:is(.page-id-564, .page-id-580, .page-id-1123)
    .uagb-slider-container .swiper-slide .wp-block-uagb-image:first-child :is(figure, img) {
    width: 156px !important;
    height: 156px !important;
    margin: 0 !important;
    object-fit: cover !important;
    object-position: center !important;
  }

  body:is(.page-id-564, .page-id-580, .page-id-1123)
    .uagb-slider-container .swiper-slide p:has(> strong) {
    font-size: 1.55rem !important;
    line-height: 1.1 !important;
  }
}

.main-navigation {
  flex: 1 1 auto;
}

.main-navigation .primary-menu-container {
  flex: 1 1 auto;
}

.main-navigation #primary-menu {
  justify-content: space-evenly;
  width: 100%;
}

.main-navigation .sub-menu a {
  display: flex;
  align-items: center;
  gap: 12px;
}

#primary-menu > li.menu-item-has-children > .sub-menu::before {
  background-image:
    linear-gradient(160deg, rgba(1, 13, 24, 0.1) 0%, rgba(1, 13, 24, 0.42) 100%),
    var(--protech-menu-image, linear-gradient(135deg, #1b3d5e 0%, #0f2d49 100%)) !important;
  background-size: cover !important;
  background-position: center !important;
}


.protech-menu-item-image {
  width: 54px;
  height: 42px;
  border-radius: 8px;
  object-fit: cover;
}

.protech-menu-item-copy,
.protech-menu-item-description {
  display: block;
}

.protech-menu-item-description {
  margin-top: 3px;
  color: rgba(255,255,255,.68);
  font-size: .72rem;
  font-weight: 400;
  line-height: 1.25;
}

/* Standalone article accordion affordance. */
.single-post.postid-1216 .protech-accordion-image-item > summary::after {
  content: "+" !important;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  margin-left: auto;
  background: none !important;
  color: currentColor;
  font-size: 28px;
  font-weight: 300;
  line-height: 1;
  transform: none !important;
}

.single-post.postid-1216 .protech-accordion-image-item[open] > summary::after {
  content: "×" !important;
}

/* The upper ADAS accordion matches the blue carets used by the operation
 * accordion near the bottom of the same page. */
body.page-id-9 .protech-accordion-image-item > summary {
  position: relative;
  list-style: none;
}

body.page-id-9 .protech-accordion-image-item > summary::-webkit-details-marker {
  display: none;
}

body.page-id-9 .protech-accordion-image-item > summary::after {
  content: "⌄" !important;
  display: grid;
  place-items: center;
  position: absolute;
  top: 50%;
  right: 0;
  width: 30px;
  height: 30px;
  margin-left: 0;
  background: none !important;
  color: #00d9ff;
  font-size: 28px;
  font-weight: 300;
  line-height: 1;
  transform: translateY(-50%) !important;
  transform-origin: 50% 50%;
}

body.page-id-9 .protech-accordion-image-item[open] > summary::after {
  content: "⌄" !important;
  transform: translateY(-50%) rotate(180deg) !important;
}

/* ADAS operation accordions use the same clear open/close affordance. */
body.page-id-9 .protech-redesign-two-up .wp-block-details > summary {
  position: relative;
  list-style: none;
}

body.page-id-9 .protech-redesign-two-up .wp-block-details > summary::-webkit-details-marker {
  display: none;
}

body.page-id-9 .protech-redesign-two-up .wp-block-details > summary::after {
  content: "⌄" !important;
  display: grid;
  place-items: center;
  position: absolute;
  top: 50%;
  right: 0;
  width: 30px;
  height: 30px;
  margin-left: 0;
  background: none !important;
  color: #00d9ff;
  font-size: 28px;
  font-weight: 300;
  line-height: 1;
  transform: translateY(-50%) !important;
  transform-origin: 50% 50%;
}

body.page-id-9 .protech-redesign-two-up .wp-block-details[open] > summary::after {
  content: "⌄" !important;
  transform: translateY(-50%) rotate(180deg) !important;
}

/* Diagnostic Scanning FAQs use the same cyan carets as the other product
 * accordions instead of the legacy plus/close affordance. */
body.page-id-450 .protech-accordion-image-item > summary {
  position: relative;
  list-style: none;
  padding-right: 38px;
}

body.page-id-450 .protech-accordion-image-item > summary::-webkit-details-marker {
  display: none;
}

body.page-id-450 .protech-accordion-image-item > summary::after {
  content: "⌄" !important;
  display: grid;
  place-items: center;
  position: absolute;
  top: 50%;
  right: 0;
  width: 30px;
  height: 30px;
  margin-left: 0;
  background: none !important;
  color: #00d9ff !important;
  font-size: 28px;
  font-weight: 300;
  line-height: 1;
  transform: translateY(-50%) !important;
  transform-origin: 50% 50%;
}

body.page-id-450 .protech-accordion-image-item[open] > summary::after {
  content: "⌄" !important;
  transform: translateY(-50%) rotate(180deg) !important;
}

/* Fleet services are a single, baseline-aligned four-card row at desktop widths. */
@media (min-width: 1025px) {
  body.page-id-1247 .protech-redesign-risk-grid > .protech-redesign-risk-item {
    margin-block-start: 0 !important;
  }

  body.page-id-1247 .protech-redesign-risk-item h3 {
    min-height: 4.32em;
  }

  body.page-id-1247 .protech-redesign-risk-item:last-child {
    grid-column: auto;
    max-width: none;
    justify-self: stretch;
  }
}

/* Standalone FAQ requested by the client. */
.single-post.postid-1216 .site-content,
.single-post.postid-1216 .protech-faq-page,
.single-post.postid-1216 article,
.single-post.postid-1216 .entry-content {
  background: #003a54 !important;
}

.single-post.postid-1216 .entry-header,
.single-post.postid-1216 .entry-meta,
.single-post.postid-1216 .entry-content > p:first-child,
.single-post.postid-1216 .post-navigation {
  display: none;
}

.single-post.postid-1216 .protech-redesign-wave-run {
  justify-content: center;
  width: 100%;
  padding: 130px 0 90px;
}

.single-post.postid-1216 .protech-accordion-image-section {
  width: min(100% - 40px, 1100px) !important;
  margin-inline: auto !important;
  color: #fff;
  background: transparent !important;
}

.single-post.postid-1216 .protech-accordion-image-grid {
  width: 100%;
  margin-inline: auto;
}

.single-post.postid-1216 .protech-accordion-image-grid > .wp-block-column:first-child {
  flex-basis: 100% !important;
  max-width: 900px;
  margin-inline: auto;
}

.single-post.postid-1216 .protech-accordion-image-grid > .wp-block-column:last-child {
  display: none;
}

.single-post.postid-1216 :is(h2, summary, details p) {
  color: #fff !important;
}

.single-post.postid-1216 h2 {
  text-align: center;
}

.single-post.postid-1216 .protech-accordion-image-item {
  border-bottom-color: rgba(255,255,255,.3) !important;
}

/* Contact form select indicator and design-height message field. */
.protech-contact-redesign .protech-contact-form select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 58px;
  background-color: rgba(0, 26, 41, .62) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='11' viewBox='0 0 18 11'%3E%3Cpath d='M2 2l7 7 7-7' fill='none' stroke='%2300d9ff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-position: right 22px center !important;
  background-repeat: no-repeat !important;
  background-size: 18px 11px !important;
}

.protech-contact-redesign .protech-contact-form textarea {
  min-height: 360px;
}

.legacy-intake .protech-intake-loader {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 180px;
  margin-top: 34px;
}

.legacy-intake .protech-intake-loader[hidden] {
  display: none !important;
}

.legacy-intake .protech-intake-loader > span:first-child {
  width: 48px;
  height: 48px;
  border: 5px solid rgba(0,207,238,.22);
  border-top-color: #00cfee;
  border-radius: 50%;
  animation: protech-intake-spin .75s linear infinite;
}

.legacy-intake .noservice:not([hidden]) {
  position: fixed;
  top: 50%;
  left: 50%;
  z-index: 10020;
  display: block !important;
  width: min(calc(100% - 40px), 620px);
  margin: 0 !important;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 0 100vmax rgba(0,26,41,.78), 0 24px 65px rgba(0,26,41,.35) !important;
}

.legacy-intake .protech-intake-noservice-close {
  position: absolute;
  top: 12px;
  right: 14px;
  width: 38px;
  min-height: 38px;
  border: 0;
  border-radius: 50%;
  padding: 0;
  color: #07384e;
  background: #eaf6f8;
  font-size: 28px;
  font-weight: 300;
  line-height: 1;
}

@keyframes protech-intake-spin {
  to { transform: rotate(360deg); }
}

/* Fleet copy alignment requested in the client checklist. */
.page-id-1247 .protech-redesign-risk-item h3 {
  text-wrap: balance;
}

.page-id-1247 .protech-redesign-risk-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.page-id-1247 .protech-redesign-workflow-section > .wp-block-columns {
  align-items: start;
  justify-content: center;
  max-width: 980px;
  margin-inline: auto;
  text-align: center;
}

.page-id-1247 .protech-redesign-workflow-section > .wp-block-columns p,
.page-id-1247 .protech-redesign-workflow-section > .wp-block-columns strong {
  color: #fff !important;
  text-align: center !important;
}

@media (max-width: 900px) {
  .main-navigation #primary-menu { justify-content: flex-start; }
  .protech-contact-redesign .protech-contact-form textarea { min-height: 220px; }
  .page-id-1247 .protech-redesign-risk-grid { grid-template-columns: 1fr 1fr; }
}

/* Use one continuous artwork layer on long articles. Repeating the asset at
 * the bottom left a flat blue seam between the two copies. */
.single-post .protech-article-page::before {
  background-repeat: no-repeat !important;
  background-position: center top !important;
  background-size: 100% 100% !important;
}

.single-post .protech-article-page::after {
  content: none !important;
  display: none !important;
}

/* Press hero headline kerning requested in the content QA sheet. */
.page-id-110 .protech-press-featured h1 {
  letter-spacing: .012em;
}

/* Pre-launch row 7: continue the diagonal artwork behind the overlapping
 * Media & Press card instead of letting its side gutters fall back to white. */
.page-id-110 .protech-press-page {
  background-color: #fff;
  background-image: url("assets/images/resources/content-bg-desktop.webp");
  background-position: center top;
  background-size: 100% auto;
  background-repeat: repeat-y;
}

.page-id-110 .protech-press-media::before {
  background: linear-gradient(105deg, rgba(239, 239, 239, .90) 0%, rgba(226, 226, 226, .88) 56%, rgba(200, 201, 202, .88) 100%);
}

.protech-press-card__cta {
  display: inline-flex;
  align-items: center;
  gap: .45em;
  align-self: flex-start;
  margin-top: 16px;
  color: #00aaca;
  font-size: .9rem;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
}

.protech-press-card__cta:hover,
.protech-press-card__cta:focus-visible {
  color: #006f8b;
  text-decoration: underline;
}

/* August client-list refinements (2026-08-20). */
.page-id-7 .protech-about-page {
  background-size: 100% 100% !important;
  background-repeat: no-repeat !important;
  background-attachment: fixed !important;
}

.page-id-7 .protech-about-hero {
  background-color: #001a29 !important;
  background-image:
    linear-gradient(90deg, rgba(0, 19, 31, .82), rgba(0, 25, 40, .54)),
    url("assets/images/august/press/digital-wave.jpg") !important;
  background-position: center 48% !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
}

.page-id-13 .protech-careers-intro figure {
  isolation: isolate;
}

.page-id-13 .protech-careers-intro img {
  inset: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: 38% center !important;
}

.page-id-110 :is(.protech-press-featured, .protech-press-grid, .protech-press-faq) {
  font-family: "Protech Google Sans Flex", "Google Sans Flex", legacy-gotham, sans-serif;
}

.page-id-110 .protech-press-faq > :is(.wp-block-group__inner-container, h2, details) {
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
}

.page-id-110 .protech-press-card__cta,
.page-id-110 .protech-press-featured .wp-block-button__link,
.page-id-110 .protech-press-media__button .wp-block-button__link {
  font-family: "Protech Google Sans Flex", "Google Sans Flex", legacy-gotham, sans-serif !important;
  text-transform: none !important;
}

.page-id-110 .protech-press-faq details {
  border-bottom: 1px solid rgba(0, 217, 245, .42);
}

.page-id-110 .protech-press-faq summary {
  display: flex;
  align-items: center;
  list-style: none;
  color: #fff;
}

.page-id-110 .protech-press-faq summary::-webkit-details-marker { display: none; }
.page-id-110 .protech-press-faq summary::after {
  content: "⌄";
  margin-left: auto;
  color: #00d9f5;
  font-size: 1.6rem;
  line-height: 1;
  transition: transform .2s ease;
}
.page-id-110 .protech-press-faq details[open] summary::after { transform: rotate(180deg); }

/* Checklist map row: use the map artwork's intrinsic proportions instead of
 * stretching the landscape at desktop sizes. */
body:is(.page-id-445, .page-id-450, .page-id-466, .page-id-564, .page-id-580, .page-id-594, .page-id-1247, .page-id-1278)
  .wp-block-uagb-image img[title="Map@2x"] {
  max-width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
}

/* Keep the ADAS cards' blue gradient, but remove their internal line artwork. */
.page-id-9 .protech-redesign-info-card {
  background: linear-gradient(180deg, #004e6e 0%, #002a43 100%) !important;
}
.page-id-9 .protech-redesign-light {
  background-size: 980px auto !important;
}

/* Prevent imported image baselines or fixed heights from leaving a white strip. */
.page-id-450 .protech-redesign-page img,
.page-id-580 .protech-redesign-page img {
  vertical-align: bottom;
}
.page-id-450 .protech-redesign-page figure,
.page-id-580 .protech-redesign-page figure {
  line-height: 0;
}

/* Bring Mobile and Virtual page text/media pairs back onto the same visual axis. */
.page-id-564 .protech-redesign-section > .wp-block-group__inner-container,
.page-id-580 .protech-redesign-section > .wp-block-group__inner-container {
  margin-inline: auto;
}
.page-id-564 .protech-redesign-section .wp-block-columns,
.page-id-580 .protech-redesign-section .wp-block-columns {
  align-items: center;
}
.page-id-564 .protech-redesign-section .wp-block-columns { gap: clamp(28px, 4vw, 64px); }

/* Resource art remains contained and card shadows have breathing room. */
.page-id-86 .protech-resources-content {
  background: #fff !important;
}
.page-id-86 .protech-resources-content > .wp-block-cover__image-background {
  object-fit: var(--protech-background-size, cover) !important;
  object-position: center top;
  opacity: .66;
}
.page-id-86 .protech-resources-content > .wp-block-cover__inner-container {
  width: min(100%, 1320px);
  margin-inline: auto;
}
.page-id-86 .protech-resources-featured-track,
.page-id-86 .protech-resources-grid {
  padding-bottom: 28px;
}

/* Product hero blocks are full-bleed even when older content has constrained wrappers. */
body.protech-product-page .entry-content > :is(.wp-block-cover, .wp-block-group, .legacy-import-page):first-child,
body.protech-product-page .entry-content > .legacy-import-page > :first-child,
body.protech-product-page .protech-redesign-page,
body.protech-product-page .protech-redesign-hero {
  width: 100vw !important;
  max-width: none !important;
  margin-right: calc(50% - 50vw) !important;
  margin-left: calc(50% - 50vw) !important;
}

/* Prevent inline-image baselines and empty imported wrappers from creating white seams. */
.legacy-import-page img,
.protech-redesign-page img {
  display: block;
}

.legacy-import-page > p:empty,
.legacy-import-page > .wp-block-group:empty {
  display: none;
}

/* Full-page section wrappers should meet cleanly without theme block-gap seams. */
.protech-redesign-page > :is(.wp-block-group, .wp-block-cover),
.protech-redesign-page > .wp-block-group__inner-container > :is(.wp-block-group, .wp-block-cover) {
  margin-block: 0 !important;
}

/* Editable wave-background runs should not reveal block-gap seams between their child sections. */
.protech-redesign-wave-run > :is(.wp-block-group, .wp-block-cover),
.protech-redesign-wave-run > .wp-block-group__inner-container > :is(.wp-block-group, .wp-block-cover),
.protech-resources-content > .wp-block-group__inner-container > :is(.wp-block-group, .wp-block-cover) {
  margin-block: 0 !important;
}

/* The editable homepage texture fills its background layer instead of ending early. */
.home .protech-home-bg-texture {
  bottom: 0;
  height: auto;
  overflow: hidden;
}

.home .protech-home-bg-texture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

/* Client-editable Blog category archives. */
.protech-category-archive {
  color: #07384e;
  background: #fff url("assets/images/resources/content-bg-desktop.webp") center top / cover repeat-y;
}

.protech-category-archive__hero {
  padding: clamp(110px, 12vw, 170px) 24px 82px;
  color: #fff;
  text-align: center;
  background: #00263a url("assets/images/blog/article-bg-desktop.webp") center / cover no-repeat;
}

.protech-category-archive__hero-inner,
.protech-category-archive__content {
  width: min(100%, 1240px);
  margin-inline: auto;
}

.protech-category-archive__hero p {
  margin: 0 0 12px;
  font-size: .9rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.protech-category-archive__hero h1 {
  margin: 0;
  color: #00d9ff;
  font-size: clamp(3rem, 7vw, 6rem);
  font-weight: 400;
  line-height: .98;
}

.protech-category-archive__description {
  width: min(100%, 760px);
  margin: 24px auto 0;
  font-size: 1.15rem;
  line-height: 1.55;
}

.protech-category-archive__editor-note a {
  color: #8bccff;
}

.protech-category-archive__content {
  padding: 76px 24px 100px;
}

.protech-category-archive__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 34px;
}

.protech-category-card {
  overflow: hidden;
  border-radius: 24px;
  background: #eef0f1;
  box-shadow: 0 14px 28px rgba(0, 36, 53, .16);
}

.protech-category-card__image {
  display: block;
  aspect-ratio: 1.55 / 1;
  overflow: hidden;
  background: #003448;
}

.protech-category-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.protech-category-card__body {
  padding: 25px 26px 30px;
}

.protech-category-card time,
.protech-category-card__cta {
  color: #00aaca;
  font-size: .82rem;
  font-weight: 700;
  text-decoration: none;
  text-transform: uppercase;
}

.protech-category-card h2 {
  margin: 12px 0 16px;
  font-size: clamp(1.35rem, 2vw, 1.8rem);
  line-height: 1.08;
}

.protech-category-card h2 a {
  color: #06415a;
  text-decoration: none;
}

.protech-category-card p {
  margin-bottom: 22px;
  line-height: 1.5;
}

@media (max-width: 900px) {
  .protech-category-archive__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 600px) {
  .protech-category-archive__grid { grid-template-columns: 1fr; }
}

/* Avoid 100vw including the desktop scrollbar while preserving full-bleed layout. */
.page-id-15 .protech-blog-redesign,
.page-id-15 .protech-blog-hero,
.page-id-15 .protech-blog-listing {
  width: 100% !important;
  margin-inline: 0 !important;
}

.page-id-15 .protech-blog-search .screen-reader-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

@media (min-width: 901px) {
  .page-id-86 .protech-resources-grid .protech-resources-card {
    height: 552px;
    min-height: 552px;
  }
}

/* Design artwork used as full-bleed images must fill its editable block. */
:is(.protech-home, .protech-redesign-page) :is(.protech-hero, .protech-redesign-hero) > .wp-block-image img,
:is(.protech-home, .protech-redesign-page) :is(.protech-hero-bg, .protech-redesign-hero-bg) img,
:is(.protech-home, .protech-redesign-page) .wp-block-cover__image-background {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Keep the shared CTA card comfortably inside its blue band, with no empty-block seam before the footer. */
@media (min-width: 901px) {
  .protech-blog-partner-cta {
    padding-bottom: 110px !important;
  }

  body.page-id-466 .protech-blog-partner-cta {
    padding-bottom: 48px !important;
  }

  body.page-id-100 .protech-redesign-section:has(> .protech-redesign-workflow-callout) {
    padding-bottom: 48px !important;
    background: linear-gradient(to bottom, transparent 0 calc(100% - 48px), #002638 calc(100% - 48px) 100%) !important;
  }
}

/* Fill the repair-shop workflow card with its editable Gutenberg artwork. */
body:is(.page-id-100, .page-id-1247) .protech-redesign-workflow-bg-image > img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-height: none !important;
  object-fit: cover !important;
}

/* Rows 25–26: use the dedicated portrait artwork as a lower image band on
 * phones so the teammates remain naturally framed beneath the copy. */
@media (max-width: 600px) {
  body:is(.page-id-100, .page-id-1247) .protech-redesign-workflow-bg-image {
    inset: auto 0 0 !important;
    height: 42% !important;
  }

  body:is(.page-id-100, .page-id-1247) .protech-redesign-workflow-bg-image > img {
    content: url("assets/images/redesign/roughs/workflow-mobile-rough.png");
    object-position: center bottom !important;
  }

  body:is(.page-id-100, .page-id-1247) .protech-redesign-workflow-callout .wp-block-column:first-child {
    align-self: start !important;
  }

  body.page-id-1123 .protech-redesign-info-card h3 {
    width: 100%;
    text-align: center !important;
  }

  body.page-id-1123 .protech-coverage .wp-block-uagb-image,
  body.page-id-1123 .protech-coverage .wp-block-uagb-image__figure,
  body.page-id-1123 .protech-coverage .wp-block-uagb-image img[title="Map@2x"] {
    max-width: none !important;
  }

  body.page-id-1123 .protech-coverage .wp-block-uagb-image {
    width: calc(100vw - 44px) !important;
    margin-inline: calc(50% - 50vw + 22px) !important;
  }

  body.page-id-1123 .protech-coverage .wp-block-uagb-image__figure,
  body.page-id-1123 .protech-coverage .wp-block-uagb-image img[title="Map@2x"] {
    width: 100% !important;
    height: auto !important;
    object-fit: contain !important;
  }
}

/* The transparent teammate cutout must reach the lower edge of the dealership card. */
body.page-id-466 .protech-blog-partner-cta__image img {
  object-fit: contain !important;
  object-position: center bottom !important;
}

/* Keep featured resource-card shadows inside the horizontal scroll viewport. */
.protech-resources-hub .protech-resources-featured-track {
  padding-bottom: 30px !important;
  margin-bottom: -30px !important;
}

@media (min-width: 1101px) {
  .protech-resources-hub .protech-resources-featured-track {
    box-sizing: border-box;
    width: calc(100% + 48px);
    margin-right: -24px !important;
    margin-left: -24px !important;
    padding-right: 24px !important;
    padding-left: 24px !important;
  }
}

.entry-content > p:empty:last-child,
.entry-content > :is(.protech-home, .protech-redesign-page) + p:empty {
  display: none !important;
  margin: 0 !important;
}

/* Imported redesign pages are sometimes wrapped in a plain Group by Gutenberg.
 * Neutralize that wrapper so its default block padding cannot create white
 * seams above or below the full-bleed design. */
.entry-content > .wp-block-group.alignfull:has(> .protech-redesign-page) {
  padding: 0 !important;
  margin: 0 !important;
  max-width: none !important;
}

/* Keep the Mobile Services Spectra slider centered and prevent adjacent slide
 * copy from peeking into the active card while the carousel initializes. */
body.page-id-564 .uagb-slider-container.uagb-block-2ceec8c0 {
  width: min(100%, 1140px) !important;
  margin-inline: auto !important;
  overflow: hidden !important;
}

body.page-id-564 .uagb-slider-container.uagb-block-2ceec8c0 :is(.uagb-swiper, .swiper-wrapper, .swiper-slide, .swiper-content) {
  min-width: 0 !important;
}

body.page-id-564 .uagb-slider-container.uagb-block-2ceec8c0 .swiper-slide {
  overflow: hidden !important;
}

body.page-id-564 .uagb-slider-container.uagb-block-2ceec8c0 .swiper-content,
body.page-id-564 .uagb-slider-container.uagb-block-2ceec8c0 .uagb-container-inner-blocks-wrap {
  box-sizing: border-box;
  width: 100% !important;
  max-width: 100% !important;
  margin-inline: auto !important;
}

body.page-id-564 .uagb-slider-container.uagb-block-2ceec8c0 .wp-block-uagb-container.alignfull {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

body.page-id-564 .uagb-slider-container.uagb-block-2ceec8c0 .swiper-button-prev {
  left: 12px !important;
}

body.page-id-564 .uagb-slider-container.uagb-block-2ceec8c0 .swiper-button-next {
  right: 12px !important;
}

body.page-id-564 .uagb-slider-container.uagb-block-2ceec8c0 .swiper-content p {
  width: min(100%, 850px) !important;
  margin-inline: auto !important;
  text-align: center !important;
}

@media (min-width: 783px) {
  body.page-id-564 .uagb-slider-container.uagb-block-2ceec8c0 .swiper-pagination {
    bottom: 0 !important;
  }
}

@media (max-width: 782px) {
  /* Rows 22–23: reserve dedicated side rails for the carousel arrows and a
   * bottom rail for pagination so neither control layer sits on the copy. */
  body:is(.page-id-564, .page-id-580) .uagb-slider-container.uagb-block-2ceec8c0 {
    overflow: hidden !important;
  }

  body:is(.page-id-564, .page-id-580) .uagb-slider-container.uagb-block-2ceec8c0 .swiper-slide {
    overflow: hidden !important;
  }

  body:is(.page-id-564, .page-id-580) .uagb-slider-container.uagb-block-2ceec8c0 > .uagb-slides > .swiper-wrapper > .swiper-slide,
  body:is(.page-id-564, .page-id-580) .uagb-slider-container.uagb-block-2ceec8c0 > .uagb-slides > .swiper-wrapper > .swiper-slide > .swiper-content {
    min-height: 720px !important;
  }

  body:is(.page-id-564, .page-id-580) .uagb-slider-container.uagb-block-2ceec8c0 > .uagb-slides > .swiper-wrapper > .swiper-slide > .swiper-content > .wp-block-uagb-container > .uagb-container-inner-blocks-wrap {
    box-sizing: border-box;
    min-height: 720px !important;
    padding: 30px 20px 118px !important;
  }

  body:is(.page-id-564, .page-id-580) .uagb-slider-container.uagb-block-2ceec8c0 :is(h2, h3, p) {
    max-width: 100% !important;
    margin-inline: auto !important;
    line-height: 1.28 !important;
    text-align: center !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
  }

  /* This carousel authors its slide titles as large paragraphs. Keep Android
   * browsers from breaking words such as “Troubleshoot” between letters. */
  body.page-id-580 .uagb-slider-container.uagb-block-2ceec8c0 p.has-large-font-size {
    width: 100% !important;
    font-size: clamp(1.3rem, 6vw, 1.55rem) !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    -webkit-hyphens: none !important;
    hyphens: none !important;
  }

  body:is(.page-id-564, .page-id-580) .uagb-slider-container.uagb-block-2ceec8c0 .swiper-button-prev {
    top: auto !important;
    bottom: 48px !important;
    left: 18px !important;
  }

  body:is(.page-id-564, .page-id-580) .uagb-slider-container.uagb-block-2ceec8c0 .swiper-button-next {
    top: auto !important;
    right: 18px !important;
    bottom: 48px !important;
  }

  body:is(.page-id-564, .page-id-580) .uagb-slider-container.uagb-block-2ceec8c0 .swiper-pagination {
    bottom: 28px !important;
  }

  body:is(.page-id-564, .page-id-580) .uagb-slider-container.uagb-block-2ceec8c0 .wp-block-button,
  body:is(.page-id-564, .page-id-580) .uagb-slider-container.uagb-block-2ceec8c0 .wp-block-button__link {
    width: auto !important;
    max-width: 100% !important;
    white-space: normal !important;
    word-break: normal !important;
  }
}

/* Client checklist #24: tighten the final Mobile Services CTA so the copy and
 * teammate read as one composition on desktop. */
@media (min-width: 901px) {
  body.page-id-564 .protech-blog-partner-cta__image img {
    right: 120px !important;
  }
}

/* Client checklist #25: this page has four workflow benefits. The shared
 * three-item treatment centers the final card, so opt this grid back into an
 * even two-by-two layout. */
@media (min-width: 783px) {
  body.page-id-580 .protech-redesign-risk-grid .protech-redesign-risk-item {
    align-self: start;
  }

  body.page-id-580 .protech-redesign-risk-grid .protech-redesign-risk-item:last-child {
    grid-column: auto !important;
    width: 100%;
    max-width: none !important;
    justify-self: stretch !important;
  }
}

/* Client checklist #29: WordPress no longer emits the legacy
 * .wp-block-group__inner-container wrappers for this page. Keep the Blog hero
 * constrained and restore the featured card's designed inset spacing against
 * the current block markup. */
.protech-blog-hero__inner {
  box-sizing: border-box;
  width: 100%;
  max-width: 1200px;
  margin-inline: auto !important;
}

.protech-blog-card--dynamic > .protech-blog-card__body {
  box-sizing: border-box;
  padding: 18px !important;
}

.protech-blog-card--featured.protech-blog-card--dynamic > .protech-blog-card__body {
  padding: 26px 30px 34px !important;
}

.protech-blog-card--featured .protech-blog-card__image img {
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 44%, rgba(0, 0, 0, 0.82) 64%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 44%, rgba(0, 0, 0, 0.82) 64%, transparent 100%);
}

.protech-blog-card--featured::before {
  height: 70%;
  background: linear-gradient(180deg, rgba(0, 58, 84, 0) 0%, rgba(0, 58, 84, 0.36) 42%, #003a54 100%);
}

.protech-blog-card--featured h2 {
  max-width: 94%;
  font-size: clamp(1.45rem, 1.8vw, 2rem);
  line-height: 1.08;
}

.protech-blog-card--featured .protech-blog-date {
  margin-top: 8px;
}

/* The Blog artboard uses the dotted digital mesh, fading into a solid navy base. */
.protech-blog-hero {
  background: #003a54;
  margin-bottom: 0 !important;
}

.protech-blog-redesign > .protech-blog-listing {
  margin-block-start: 0 !important;
}

.protech-blog-hero-bg img {
  object-position: center 43%;
  opacity: 0.76;
  transform: scaleX(-1);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 48%, rgba(0, 0, 0, 0.82) 66%, transparent 96%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 48%, rgba(0, 0, 0, 0.82) 66%, transparent 96%);
}

.protech-blog-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(0, 34, 51, 0.84) 0%, rgba(0, 34, 51, 0.54) 34%, rgba(0, 34, 51, 0.12) 72%),
    linear-gradient(180deg, rgba(0, 34, 51, 0.08) 0%, rgba(0, 47, 70, 0.1) 48%, #003a54 100%);
}

.protech-blog-hero__inner {
  position: relative;
  z-index: 1;
}

/* Checklist row 17: the product scheduling cards now stand alone. Remove the
 * CSS-drawn connector paths and endpoint circles on ID3, Mobile Services, and
 * Virtual Diagnostics while leaving the card layout unchanged. */
body:is(.page-id-445, .page-id-1247, .page-id-564, .page-id-580)
  :is(.protech-redesign-steps, .protech-redesign-steps > .wp-block-group__inner-container)
  > .protech-redesign-step::before,
body:is(.page-id-445, .page-id-1247, .page-id-564, .page-id-580)
  :is(.protech-redesign-steps, .protech-redesign-steps > .wp-block-group__inner-container)
  > .protech-redesign-step::after {
  content: none !important;
  display: none !important;
}

/* The same wrapper change affected the Blog listing. The artboard keeps the
 * filters and search in one row and constrains the three portrait cards to the
 * same content frame as the hero. */
.protech-blog-listing > .protech-blog-tools,
.protech-blog-listing > .protech-blog-grid-query {
  box-sizing: border-box;
  width: 100%;
  max-width: 1200px;
  margin-inline: auto !important;
}

.protech-blog-listing > .protech-blog-tools {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
  gap: 20px;
  align-items: center;
  margin-bottom: 34px !important;
}

.protech-blog-listing .protech-blog-grid-query .protech-blog-card--dynamic {
  width: 100%;
  height: auto;
  aspect-ratio: 0.946 / 1;
}

@media (max-width: 900px) {
  .protech-blog-listing > .protech-blog-tools {
    display: block;
  }

  body.page-id-15 .protech-blog-hero {
    padding-bottom: 48px !important;
  }

  .protech-blog-listing .protech-blog-search {
    margin-top: 18px;
  }

  .protech-blog-listing .protech-blog-grid-query .protech-blog-card--dynamic {
    aspect-ratio: 0.946 / 1;
  }
}

@media (max-width: 782px) {
  /* Staging's Mechanical Shops risk grid is saved as Gutenberg nowrap flex.
   * Make the three "You don't..." cards a full-width single column on phones
   * and tablets regardless of the editor layout utility classes. */
  body.page-id-1123 .protech-redesign-risk-grid,
  body.page-id-1123 .protech-redesign-risk-grid.wp-block-group-is-layout-flex {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 32px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body.page-id-1123 .protech-redesign-risk-grid > .protech-redesign-risk-item,
  body.page-id-1123 .protech-redesign-risk-grid > .protech-redesign-risk-item:last-child {
    grid-column: auto !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
  }
}

/* Final mobile-width guardrails, kept last so page-specific desktop art does not
 * force oversized headings or fixed card dimensions into the phone layout. */
@media (max-width: 600px) {
  /* Shared partner CTA: remove the tablet-sized empty cavity on phones and
   * let the teammate image occupy a deliberate, compact row below the copy. */
  body .protech-blog-partner-cta,
  body.home .protech-blog-partner-cta {
    box-sizing: border-box;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-inline: calc(50% - 50vw) !important;
    padding: 30px 14px 34px !important;
  }

  body .protech-blog-partner-cta__inner {
    display: block !important;
    box-sizing: border-box;
    width: 100% !important;
    max-width: none !important;
    margin-inline: auto !important;
    min-height: 0 !important;
    padding: 34px 28px 0 !important;
    border-radius: 34px !important;
  }

  body .protech-blog-partner-cta h2 {
    margin-bottom: 22px !important;
    font-size: clamp(2.25rem, 11vw, 2.8rem) !important;
  }

  body .protech-blog-partner-cta p {
    max-width: none !important;
    margin-bottom: 24px !important;
    font-size: 1.05rem !important;
    line-height: 1.38 !important;
  }

  body .protech-blog-partner-cta .wp-block-buttons,
  body .protech-blog-partner-cta .wp-block-button,
  body .protech-blog-partner-cta .protech-blog-btn .wp-block-button__link {
    width: 100% !important;
  }

  body .protech-blog-partner-cta .protech-blog-btn .wp-block-button__link {
    min-width: 0 !important;
    border-radius: 999px !important;
    padding: 17px 24px !important;
  }

  body .protech-blog-partner-cta__image-col {
    height: 330px !important;
    min-height: 330px !important;
    margin-top: -58px !important;
  }

  body .protech-blog-partner-cta__image img {
    bottom: 0 !important;
    width: min(82vw, 330px) !important;
    max-height: 330px !important;
  }

  /* The FAQ artboard carries desktop inline padding and an 80% column basis.
   * Reset both on phones so questions use the complete readable width. */
  body.page-id-105 .protech-accordion-image-section {
    padding: 36px 18px 52px !important;
  }

  body.page-id-105 .protech-accordion-image-grid {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  body.page-id-105 .protech-accordion-image-grid > .wp-block-column,
  body.page-id-105 .protech-accordion-image-accordion,
  body.page-id-105 .protech-accordion-image-item,
  body.page-id-105 .protech-accordion-image-item summary {
    box-sizing: border-box;
    width: 100% !important;
    max-width: none !important;
    flex-basis: auto !important;
  }

  /* Spectra slide layouts retain their desktop column bases below the core
   * WordPress breakpoint. Stack the contents so the active slide—not fragments
   * of its columns—is readable on a phone. */
  body .protech-redesign-page .uagb-slider-container .wp-block-columns {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 22px !important;
    width: 100% !important;
  }

  body .protech-redesign-page .uagb-slider-container .wp-block-column {
    width: 100% !important;
    max-width: none !important;
    flex: none !important;
    flex-basis: auto !important;
  }

  /* Spectra's slide content container is itself a flex root. On small screens
   * that kept multi-part cards in a single, very narrow row even after the
   * nested Columns block was stacked. Let the card consume the slide and lay
   * its authored sections out vertically. */
  body .protech-redesign-page .uagb-slider-container .wp-block-uagb-container.alignfull {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: 0 !important;
  }

  body .protech-redesign-page .uagb-slider-container .uagb-container-inner-blocks-wrap {
    display: block !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Give mobile carousels the complete card width. Spectra's generated mobile
   * values left a 270px viewport inside a 346px card, which clipped the active
   * content and exposed fragments of adjacent slides. */
  body .uagb-slider-container {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: 0 !important;
  }

  body .uagb-slider-container .uagb-swiper {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: 0 !important;
  }

  /* Imported feature panels often sit beside, rather than inside, the page's
   * named wrapper. Their image/text Columns therefore missed the wrapper-based
   * responsive rule and were squeezed side-by-side. */
  body .protech-redesign-feature-card .wp-block-columns {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 22px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body .protech-redesign-feature-card .wp-block-column {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    flex: none !important;
    flex-basis: auto !important;
  }

  body .protech-redesign-feature-card :is(h2, h3) {
    font-size: clamp(1.85rem, 9vw, 2.45rem) !important;
    line-height: 1.05 !important;
    overflow-wrap: normal !important;
  }

  /* Virtual Diagnostics impact cards are also authored as four 25% columns. */
  body:is(.page-id-564, .page-id-580) .uagb-block-bbd24d3d .wp-block-columns {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 22px !important;
  }

  body:is(.page-id-564, .page-id-580) .uagb-block-bbd24d3d .wp-block-column {
    width: 100% !important;
    max-width: none !important;
    flex: none !important;
    flex-basis: auto !important;
  }

  body:is(.page-id-564, .page-id-580) .uagb-block-bbd24d3d .protech-redesign-info-card {
    width: 100% !important;
    height: auto !important;
    min-height: 260px !important;
    padding: 30px 24px !important;
  }

  body.page-id-564 .uagb-block-bbd24d3d,
  body.page-id-564 .uagb-block-bbd24d3d > .uagb-container-inner-blocks-wrap {
    box-sizing: border-box !important;
    width: auto !important;
    max-width: 100% !important;
    margin-inline: 0 !important;
  }

  /* Leadership cards are illegibly small in a two-up phone grid. */
  body.page-id-7 .protech-about-leadership .wp-block-columns {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }

  body.page-id-7 .protech-about-leadership .wp-block-column {
    width: 100% !important;
    min-height: 430px !important;
    padding: 20px !important;
  }

  body.page-id-7 .protech-about-leadership img {
    height: 300px !important;
  }

  /* Mobile Services capabilities are authored as four 25% columns. Force the
   * editor's desktop flex bases to collapse so every capability remains fully
   * on-canvas on phones. */
  body.page-id-564 .uagb-block-f9841fac .wp-block-columns {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 22px !important;
    width: 100% !important;
  }

  body.page-id-564 .uagb-block-f9841fac .wp-block-column {
    width: 100% !important;
    max-width: none !important;
    flex: none !important;
    flex-basis: auto !important;
  }

  body.page-id-564 .uagb-block-f9841fac .protech-redesign-info-card {
    box-sizing: border-box;
    width: 100% !important;
    min-height: 0 !important;
    padding: 30px 24px !important;
  }

  /* Several later Mobile Services sections were also imported with explicit
   * desktop flex bases. Core's normal responsive stack cannot override those
   * declarations, so make every page column a true one-column mobile layout. */
  body.page-id-564 .entry-content .wp-block-columns {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 22px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body.page-id-564 .entry-content .wp-block-column {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    flex: none !important;
    flex-basis: auto !important;
  }

  body.page-id-564 .entry-content .protech-redesign-info-card {
    height: auto !important;
    min-height: 260px !important;
  }

  /* Keep product and Mechanical Shops sliders on the same usable phone frame.
   * Gutenberg's constrained wrappers otherwise reduce active slides to
   * 230–270px inside a 390px viewport. */
  body:is(.page-id-564, .page-id-580, .page-id-1123) .protech-redesign-feature-card {
    box-sizing: border-box !important;
    width: calc(100vw - 44px) !important;
    max-width: calc(100vw - 44px) !important;
    margin-inline: calc(50% - 50vw + 22px) !important;
    padding-inline: 18px !important;
  }

  body:is(.page-id-564, .page-id-580, .page-id-1123) .protech-redesign-feature-card > .wp-block-group__inner-container,
  body:is(.page-id-564, .page-id-580, .page-id-1123) .protech-redesign-feature-card .uagb-slider-container.uagb-block-2ceec8c0,
  body:is(.page-id-564, .page-id-580, .page-id-1123) .protech-redesign-feature-card .uagb-slides,
  body:is(.page-id-564, .page-id-580, .page-id-1123) .protech-redesign-feature-card .swiper-wrapper {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
  }

  body:is(.page-id-564, .page-id-580, .page-id-1123) .protech-redesign-feature-card .swiper-slide {
    width: 100% !important;
    max-width: 100% !important;
  }

  .page-id-1247 .protech-redesign-risk-grid {
    grid-template-columns: 1fr !important;
    gap: 34px !important;
  }

  .page-id-1247 .protech-redesign-risk-item,
  .page-id-1247 .protech-redesign-risk-item:last-child {
    grid-column: auto !important;
    width: 100% !important;
    max-width: none !important;
  }

  .page-id-1247 .protech-redesign-risk-item h3 {
    min-height: 0 !important;
    overflow-wrap: normal !important;
  }

  body .protech-redesign-page h2,
  body .protech-redesign-page .wp-block-heading:is(h2) {
    max-width: 100%;
    margin-inline: auto;
    font-size: clamp(2rem, 10vw, 2.65rem) !important;
    line-height: 1.02 !important;
    overflow-wrap: anywhere;
    text-wrap: balance;
  }

  body .protech-redesign-page h3 {
    max-width: 100%;
    font-size: clamp(1.4rem, 7vw, 2rem) !important;
    line-height: 1.08 !important;
    overflow-wrap: anywhere;
  }

  body .protech-redesign-page :is(.wp-block-columns, .wp-block-group) {
    min-width: 0;
  }

  body .protech-redesign-page .wp-block-column {
    min-width: 0;
  }

  .page-id-110 .protech-press-featured__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }

  .page-id-110 .protech-press-btn {
    min-height: 54px;
    padding-inline: 12px;
    text-align: center;
  }

  .page-id-13 .protech-careers-testimonial__arrow,
  .uagb-slider-container .swiper-button-prev,
  .uagb-slider-container .swiper-button-next {
    width: 46px !important;
    height: 46px !important;
    color: #001a29 !important;
    background: #00d9ff !important;
  }

  /* Home ADAS card: stack the copy above the blueprint instead of allowing
   * the desktop two-column composition to collapse through the text. */
  .home .protech-roadside {
    padding-inline: 14px !important;
  }

  .home .protech-roadside .protech-wide-card,
  .home .protech-roadside .protech-wide-card:not(.has-background) {
    width: 100% !important;
    min-height: 620px !important;
    aspect-ratio: auto !important;
    border-radius: 32px !important;
  }

  .home .protech-roadside .protech-wide-card .wp-block-cover__image-background {
    inset: auto -22% 72px auto !important;
    width: 144% !important;
    height: auto !important;
    max-width: none !important;
    transform: none !important;
    object-fit: contain !important;
    object-position: center bottom !important;
    opacity: .82 !important;
  }

  .home .protech-roadside .protech-wide-card .wp-block-cover__inner-container {
    width: 100% !important;
    max-width: none !important;
    min-height: 620px !important;
    margin: 0 !important;
    padding: 30px 28px 24px !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
  }

  .home .protech-roadside .protech-wide-card h3 {
    margin: 0 0 18px !important;
    font-size: clamp(2rem, 10vw, 2.55rem) !important;
    line-height: 1.03 !important;
    white-space: normal !important;
  }

  .home .protech-roadside .protech-wide-card p {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 0 205px !important;
    font-size: 1.05rem !important;
    line-height: 1.35 !important;
  }

  .home .protech-roadside .protech-wide-card .wp-block-button {
    width: 100% !important;
    margin-top: auto !important;
  }

  .home .protech-roadside .protech-wide-card .protech-btn-primary .wp-block-button__link {
    width: 100% !important;
    min-width: 0 !important;
  }

  /* Home mobile refinement: keep the accordion composition compact and stop
   * the image column from collapsing into a shallow panoramic strip. */
  .home .protech-why {
    padding-top: 38px !important;
    padding-bottom: 42px !important;
  }

  .home .protech-why .protech-section__lede {
    margin-bottom: 10px !important;
  }

  .home .protech-why .protech-why-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 24px !important;
    margin-top: 10px !important;
  }

  .home .protech-why .protech-why-grid > .wp-block-column {
    width: 100% !important;
    max-width: none !important;
    flex-basis: auto !important;
  }

  .home .protech-why .protech-why-points {
    padding-block: 4px !important;
  }

  .home .protech-why .protech-why-photo {
    box-sizing: border-box !important;
    width: 100% !important;
    height: 210px !important;
    min-height: 210px !important;
    padding: 0 !important;
  }

  .home .protech-why .protech-why-photo .wp-block-cover__image-background {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center 38% !important;
  }

  /* The desktop carside composition previously reserved 205px of invisible
   * paragraph space on phones. Use a shorter card and position the blueprint
   * deliberately between the copy and full-width CTA. */
  .home .protech-roadside .protech-wide-card,
  .home .protech-roadside .protech-wide-card:not(.has-background) {
    min-height: 535px !important;
  }

  .home .protech-roadside .protech-wide-card .wp-block-cover__inner-container {
    min-height: 535px !important;
  }

  .home .protech-roadside .protech-wide-card p {
    padding-bottom: 145px !important;
  }

  .home .protech-roadside .protech-wide-card .wp-block-cover__image-background {
    inset: auto -8% 70px auto !important;
    width: 116% !important;
  }
}

@media (min-width:901px) {
  body.page-id-564 .uagb-block-bbd24d3d {
    margin-left: -48px !important;
    margin-right: 0 !important;
  }
}

/* One disclosure affordance everywhere: cyan down-caret when closed and the
 * same caret rotated upward when open. Navigation dropdown buttons are not
 * details/summary controls and intentionally retain their menu treatment. */
body details > summary { position:relative!important;list-style:none!important;padding-right:38px!important; }
body details > summary::-webkit-details-marker { display:none!important; }
body details > summary::after { content:"⌄"!important;display:grid!important;place-items:center!important;position:absolute!important;top:calc(50% - 3px)!important;right:0!important;width:30px!important;height:30px!important;margin:0!important;background:none!important;color:#00d9ff!important;font-size:28px!important;font-weight:300!important;line-height:1!important;transform:translateY(-50%)!important;transform-origin:50% 50%!important;transition:transform .2s ease!important; }
body details[open] > summary::after { content:"⌄"!important;transform:translateY(-50%) rotate(180deg)!important; }

.home .protech-home-roadside-carousel {
  position: relative;
  display: grid !important;
}

.home .protech-home-roadside-carousel > .protech-wide-card {
  grid-area: 1 / 1;
  width: 100%;
  margin-block: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  align-self: stretch;
}

.home .protech-home-roadside-carousel > .protech-wide-card.is-fading-in {
  z-index: 1;
}

.home .protech-home-roadside-carousel > .protech-wide-card.is-fading-out {
  z-index: 2;
}

.home .protech-home-roadside-carousel > .protech-wide-card[hidden] {
  display: none !important;
}

/* Carousel cards switch with opacity only; never inherit page reveal movement. */
.home .protech-home-roadside-carousel > .protech-wide-card,
.home .protech-home-roadside-carousel > .protech-wide-card.is-revealed {
  transform: none !important;
  translate: none !important;
}

.home .protech-home-roadside-carousel__controls {
  position: absolute;
  top: 0;
  right: auto;
  bottom: auto;
  left: 0;
  z-index: 5;
  display: flex;
  justify-content: space-between;
  transform: translateY(-50%);
  pointer-events: none;
}

.home .protech-home-roadside-carousel__button.is-prev {
  transform: translateX(calc(-100% - 14px));
}

.home .protech-home-roadside-carousel__button.is-next {
  transform: translateX(calc(100% + 14px));
}

.home .protech-home-roadside-carousel__button {
  display: grid;
  box-sizing: border-box;
  flex: 0 0 52px;
  width: 52px !important;
  min-width: 52px !important;
  max-width: 52px !important;
  height: 52px !important;
  min-height: 52px !important;
  max-height: 52px !important;
  aspect-ratio: 1;
  padding: 0;
  place-items: center;
  border: 0 !important;
  border-radius: 50% !important;
  color: #001a29;
  background: #f7f8f8;
  font-size: 0;
  cursor: pointer;
  pointer-events: auto;
}

.home .protech-home-roadside-carousel__button > span {
  display: block;
  box-sizing: border-box;
  width: 12px;
  height: 12px;
  border-top: 3px solid currentColor;
  border-right: 3px solid currentColor;
}

.home .protech-home-roadside-carousel__button.is-prev > span {
  transform: rotate(-135deg);
}

.home .protech-home-roadside-carousel__button.is-next > span {
  transform: rotate(45deg);
}

@media (max-width: 600px) {
  /* Home partner cards need enough vertical room for their full copy and CTA.
   * The legacy 400px tablet height clips the button against the rounded edge
   * once the cards stack at phone width. */
  body.home .protech-partner .protech-cta-card {
    aspect-ratio: auto !important;
    height: auto !important;
    min-height: 520px !important;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  body.home .protech-partner .protech-cta-card .wp-block-cover__inner-container {
    box-sizing: border-box;
    min-height: 520px !important;
    padding: 36px 24px 48px !important;
  }

  body.home .protech-partner .protech-cta-card__content,
  body.home .protech-partner .protech-cta-card__content .wp-block-buttons {
    width: 100% !important;
  }

  body.home .protech-partner .protech-cta-card__content .wp-block-buttons {
    justify-content: center !important;
  }

  body.home .protech-partner .protech-cta-card__content .wp-block-button {
    width: 214px !important;
    max-width: calc(100vw - 100px) !important;
    margin-bottom: 0 !important;
    margin-left: 50% !important;
    transform: translateX(-50%) !important;
  }

  body.home .protech-partner .protech-cta-card__content .wp-block-button__link {
    width: 100% !important;
    min-width: 0 !important;
  }

  .home .protech-home-roadside-carousel {
    padding-bottom: 76px !important;
  }

  .home .protech-home-roadside-carousel__controls {
    top: auto;
    right: auto;
    bottom: 8px;
    left: 50%;
    width: auto;
    gap: 16px;
    justify-content: center;
    transform: translateX(-50%);
  }

  .home .protech-home-roadside-carousel__button.is-prev,
  .home .protech-home-roadside-carousel__button.is-next {
    transform: none;
  }

  /* The desktop shadow treatment sets overflow:visible with !important. Restore
   * the featured Resources row as a real one-card mobile scroller. */
  body.page-id-86 .protech-resources-featured-track {
    box-sizing: border-box !important;
    width: 100vw !important;
    margin-inline: calc(50% - 50vw) !important;
    padding-inline: max(60px, calc((100vw - 270px) / 2)) !important;
    overflow-x: auto !important;
    scroll-behavior: smooth;
  }

  /* Checklist rows 35 and 36: phone cards use the existing landscape artwork
   * in a dedicated 16:9 image row instead of cropping it into a tall panel. */
  body.page-id-86 .protech-resources-grid .protech-resources-card > .wp-block-group__inner-container,
  body.page-id-86 .protech-resources-grid .protech-resources-card:not(:has(> .wp-block-group__inner-container)) {
    display: flex !important;
    flex-direction: column !important;
    height: auto !important;
  }

  body.page-id-86 .protech-resources-grid > .wp-block-group__inner-container,
  body.page-id-86 .protech-resources-grid:not(:has(> .wp-block-group__inner-container)) {
    grid-auto-rows: auto !important;
  }

  body.page-id-86 .protech-resources-grid .protech-resources-card {
    height: auto !important;
    min-height: 0 !important;
  }

  body.page-id-86 .protech-resources-grid .protech-resources-card__image {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 16 / 9 !important;
  }

  body.page-id-15 .protech-blog-card--dynamic {
    display: flex !important;
    flex-direction: column !important;
    box-sizing: border-box !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: auto !important;
    border: 1px solid rgba(0, 217, 255, .22) !important;
    background: #00283d !important;
    box-shadow: 0 16px 30px rgba(0, 18, 29, .28) !important;
  }

  body.page-id-15 .protech-blog-card--dynamic::before,
  body.page-id-15 .protech-blog-card--dynamic::after {
    content: none !important;
    display: none !important;
  }

  body.page-id-15 .protech-blog-card--dynamic .protech-blog-card__image {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    height: 0 !important;
    aspect-ratio: auto !important;
    padding-bottom: 56.25% !important;
    overflow: hidden !important;
    flex: none !important;
  }

  body.page-id-15 .protech-blog-card--dynamic .protech-blog-card__image a {
    position: absolute !important;
    inset: 0 !important;
  }

  body.page-id-15 .protech-blog-card--dynamic .protech-blog-card__image img {
    object-position: center !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
  }

  body.page-id-15 .protech-blog-card--dynamic > .protech-blog-card__body,
  body.page-id-15 .protech-blog-card--dynamic > .wp-block-group__inner-container {
    box-sizing: border-box !important;
    height: auto !important;
    min-height: 190px !important;
    padding: 22px !important;
    background: #00283d !important;
  }

  body.page-id-15 .protech-blog-card--featured.protech-blog-card--dynamic > .protech-blog-card__body,
  body.page-id-15 .protech-blog-card--featured.protech-blog-card--dynamic > .wp-block-group__inner-container {
    min-height: 220px !important;
    padding: 24px !important;
  }

  /* Equal side margins for the dealership workflow cards. */
  body.page-id-466 .protech-redesign-steps {
    box-sizing: border-box !important;
    width: 100vw !important;
    max-width: none !important;
    margin-inline: calc(50% - 50vw) !important;
    padding-inline: 22px !important;
  }

  body.page-id-466 .protech-redesign-step {
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
    text-align: center !important;
  }

  /* Customer stories use alternating desktop columns; mobile always presents
   * image, headline, then body copy in the same order. */
  body.page-id-1278 .protech-redesign-testimonial .wp-block-column:has(img) {
    order: 0 !important;
  }

  body.page-id-1278 .protech-redesign-testimonial .wp-block-column:not(:has(img)) {
    order: 1 !important;
  }

  body.page-id-1278 .protech-redesign-testimonial :is(h2, h3, p) {
    text-align: center !important;
  }
}
body .protech-redesign-page .protech-accordion-image-item>summary::after { content:"⌄"!important;background:none!important;color:#00d9ff!important;transform:translateY(-50%)!important; }
body .protech-redesign-page .protech-accordion-image-item[open]>summary::after { content:"⌄"!important;transform:translateY(-50%) rotate(180deg)!important; }
