/* Work Sans (SIL OFL) — bundled variable font */
@font-face {
  font-family: 'Work Sans';
  src: url('../fonts/worksans-var.woff2') format('woff2-variations'),
       url('../fonts/worksans-var.woff2') format('woff2'),
       url('../fonts/worksans-var.ttf') format('truetype');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Work Sans';
  src: url('../fonts/worksans-var-italic.woff2') format('woff2-variations'),
       url('../fonts/worksans-var-italic.woff2') format('woff2'),
       url('../fonts/worksans-var-italic.ttf') format('truetype');
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
}

/* =====================================================================
   Capurro Trucking — theme stylesheet
   Faithful recreation of capurrotrucking.com design system.
   ===================================================================== */

:root {
  --maincolor: #188896;
  --dark: #262c31;
  --dark-alt: #252c31;
  --light: #f4f4f4;
  --body: #43484d;
  --footer-text: #bebfc4;
}

/* ------------------------------------------------ base */
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--body);
  font-family: 'Work Sans', sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  -webkit-font-smoothing: antialiased;
  background: #fff;
  overflow-x: hidden;
}
h1, h2, h3, h4, h5, h6 {
  color: var(--dark);
  font-family: 'Work Sans', sans-serif;
  font-weight: 700;
  line-height: 1.16;
  margin: 0.65em 0 0.25em;
  text-transform: capitalize;
  word-break: break-word;
}
h1 { font-size: 48px; }
h2 { font-size: 42px; }
h3 { font-size: 36px; line-height: 1.23; }
h1:first-child, h2:first-child, h3:first-child, h4:first-child, h5:first-child, h6:first-child { margin-top: 0; }
a { color: var(--maincolor); text-decoration: none; transition: 0.2s; }
a:hover { color: var(--dark); }
img { max-width: 100%; height: auto; }
p { margin: 0 0 1em; }
.ct-main { overflow-x: hidden; }

/* container helper (mirrors bootstrap .container 1140px) */
.ct-container, .ct-inner {
  max-width: 1140px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 15px;
  padding-right: 15px;
}

/* ------------------------------------------------ header */
.ct-header {
  position: absolute;
  top: 0; left: 0; right: 0;
  z-index: 100;
  background: transparent;
  transition: 0.5s ease-in-out;
}
body.admin-bar .ct-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .ct-header { top: 46px; } }
.ct-header.header-sticky {
  position: fixed;
  background: var(--dark);
  box-shadow: 0 2px 15px 0 rgba(100, 100, 100, 0.05);
  opacity: 0.98;
}
.ct-header-inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 6px 15px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.ct-logo { display: flex; align-items: center; }
.ct-logo .logo-image { margin: 0; }
.ct-logo .logo-image img { max-height: 110px; width: auto; display: block; transition: max-height 0.3s ease; }
.ct-header.header-sticky .ct-logo .logo-image img { max-height: 86px; }

/* navigation (core nav block skinned to match sp-megamenu) — same Work Sans as the rest of the site */
.ct-nav { font-size: 16px; font-family: 'Work Sans', sans-serif; }
.ct-nav .wp-block-navigation-item { display: flex; align-items: center; }
.ct-nav .wp-block-navigation-item > a { color: #fff !important; }
.ct-nav .wp-block-navigation-submenu { gap: 0; justify-content: flex-start; }
.ct-nav .wp-block-navigation__submenu-icon { padding: 0; width: 14px !important; height: 14px !important; margin: 0 0 0 3px; display: inline-flex; align-items: center; justify-content: center; overflow: hidden; }
.ct-nav .wp-block-navigation__submenu-icon svg { stroke: currentColor; width: 14px; height: 14px; display: block; }
.ct-nav .wp-block-navigation__container { gap: 0; align-items: center; }
.ct-nav .wp-block-navigation-item > a,
.ct-nav .wp-block-navigation-item > button {
  color: #fff;
  font-family: inherit;
  font-size: 16px;
  font-weight: 700;
  line-height: 16px;
  text-transform: uppercase;
  padding: 52px 20px;
  transition-duration: 0.15s;
  letter-spacing: 0;
}
.ct-header.header-sticky .ct-nav .wp-block-navigation-item > a { padding-top: 43px; padding-bottom: 43px; }
.ct-nav .wp-block-navigation-item > a:hover,
.ct-nav .current-menu-item > a,
.ct-nav .wp-block-navigation-item.current-menu-item > a { color: var(--maincolor); }
.ct-nav .wp-block-navigation__submenu-icon { color: #fff; }
.ct-nav .wp-block-navigation-item:hover > .wp-block-navigation__submenu-icon { color: var(--maincolor); }

/* dropdown */
.ct-nav .wp-block-navigation__submenu-container {
  background: #fff !important;
  border: 0;
  border-top: 4px solid var(--maincolor) !important;
  border-radius: 0;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
  padding: 21px 0 !important;
  min-width: 240px !important;
}
.ct-nav .wp-block-navigation__submenu-container .wp-block-navigation-item > a {
  color: #6b6f72 !important;
  font-size: 17px;
  font-weight: 600;
  line-height: 18px;
  text-transform: uppercase;
  padding: 13px 30px;
  margin: 0 10px 4px;
}
.ct-nav .wp-block-navigation__submenu-container .wp-block-navigation-item > a:hover { color: var(--maincolor) !important; }

/* ------------------------------------------------ generic sections */
.ct-section { position: relative; }
.ct-section > .ct-inner { position: relative; z-index: 2; }
.ct-dark { background-color: var(--dark); }
.ct-dark-alt { background-color: var(--dark-alt); }
.ct-light { background-color: var(--light); }
.ct-teal-divider { background-color: var(--maincolor); height: 10px; }

.ct-eyebrow {
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  margin: 5px 0 10px;
  text-transform: uppercase;
}
.ct-heading-lg { font-size: 36px; font-weight: 400; text-transform: uppercase; }
.ct-heading-lg strong { font-weight: 700; color: var(--maincolor); }
.ct-on-dark, .ct-on-dark h1, .ct-on-dark h2, .ct-on-dark h3, .ct-on-dark h4 { color: #fff; }

/* ------------------------------------------------ hero (home) */
.ct-hero {
  position: relative;
  height: 100vh;
  min-height: 600px;
  padding-top: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background-image: url('/wp-content/uploads/capurro/renosignheader.jpg');
  background-repeat: no-repeat;
  background-size: cover;
  background-attachment: fixed;
}
.ct-hero-video {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: 0;
}
.ct-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  z-index: 1;
}
.ct-hero .ct-inner { position: relative; z-index: 2; width: 100%; text-align: center; }

/* animated headline (text-clip style) */
.ct-animated-heading {
  color: #fff;
  /* fluid size: longest phrase (DELIVERING DEPENDABILITY) always fits the screen */
  font-size: clamp(40px, min(6.2vw, 3.4vw + 37px), 100px);
  font-weight: 700;
  line-height: 1.1;
  margin: 0;
  text-transform: uppercase;
  white-space: nowrap;
}
.ct-animated-heading .ct-ah-words {
  display: inline-block;
  position: relative;
  color: var(--maincolor);
  text-align: left;
  overflow: hidden;
  vertical-align: bottom;
}
.ct-animated-heading .ct-ah-words::after {
  /* blinking cursor bar */
  content: "";
  position: absolute;
  right: 0;
  top: 12%;
  height: 76%;
  width: 3px;
  background: #fff;
  animation: ct-cursor-pulse 0.9s infinite;
}
.ct-animated-heading .ct-ah-word {
  display: inline-block;
  white-space: nowrap;
  padding-left: 0.24em;
}
@keyframes ct-cursor-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0; }
}

/* ------------------------------------------------ home: white band */
.ct-band { padding: 80px 0 0; text-align: center; }
.ct-band h3 { font-size: 40px; font-weight: 300; line-height: 50px; text-transform: uppercase; color: var(--dark); margin-bottom: 25px; }
.ct-band h3 strong { color: var(--maincolor); font-weight: 700; display: block; }
.ct-band-pad { padding-bottom: 80px; }

/* ------------------------------------------------ home: dark video band */
.ct-video-band { padding: 50px 0; background: var(--dark-alt); }
.ct-video-band .ct-inner { display: flex; align-items: center; gap: 40px; }
.ct-video-band .ct-vb-text { flex: 1 1 45%; }
.ct-video-band .ct-vb-text h3 {
  color: #fff;
  font-size: 38px;
  font-weight: 400;
  text-transform: uppercase;
  line-height: 1.2;
}
.ct-video-band .ct-vb-text h3 strong { color: var(--maincolor); font-weight: 700; }
.ct-video-band .ct-vb-text hr {
  border: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.35);
  width: 200px;
  margin: 40px 0 0;
}
.ct-video-band .ct-vb-video { flex: 0 0 630px; max-width: 630px; margin-left: auto; }
.ct-video-band video { width: 100%; display: block; background: #000; }

/* ------------------------------------------------ home: our services band */
.ct-services-band { padding: 80px 0 50px; background: var(--light); text-align: center; }
.ct-services-band h3 { font-size: 40px; font-weight: 300; line-height: 1; text-transform: uppercase; color: var(--dark); }
.ct-services-band h3 strong { color: var(--maincolor); font-weight: 700; }

/* ------------------------------------------------ home: feature rows */
.ct-features { padding: 60px 0 30px; }
.ct-feature { display: flex; align-items: center; overflow: visible; margin-bottom: 90px; }
.ct-feature-img { width: 52.5%; flex: 0 0 52.5%; position: relative; z-index: 2; }
.ct-feature-img img { width: 100%; display: block; }
.ct-feature-box {
  flex: 1 1 auto;
  border: 4px solid var(--maincolor);
  position: relative;
  padding: 85px 40px;
}
.ct-feature.is-left .ct-feature-box { margin-left: -70px; padding-left: 80px; padding-right: 0; }
.ct-feature.is-right { flex-direction: row-reverse; }
.ct-feature.is-right .ct-feature-box { margin-right: -70px; padding: 56px 50px 54px 0; text-align: right; }
.ct-feature-box h6 {
  font-size: 48px;
  font-weight: 300;
  margin: 0 0 10px;
  text-transform: uppercase;
  line-height: 1.1;
}
.ct-feature.is-left .ct-feature-box h6 { padding-left: 30px; }
.ct-feature.is-right .ct-feature-box h6 { padding-right: 70px; }
.ct-feature-box h6 a { color: var(--dark); }
.ct-feature-box h6 a:hover { opacity: 0.8; color: var(--dark); }
.ct-feature-box h6 strong { font-weight: 700; color: var(--maincolor); }

/* ------------------------------------------------ CTA band (teal, home + careers) */
.ct-cta { padding: 80px 0 90px; background: #399ba5; text-align: center; }
.ct-cta .ct-eyebrow { color: #fff; }
.ct-cta h3 {
  color: #fff;
  font-size: 64px;
  font-weight: 300;
  text-transform: uppercase;
  margin: 0 0 35px;
}
.ct-cta h3 strong { color: #262c31; font-weight: 700; }
.ct-btns { display: flex; gap: 20px; justify-content: center; flex-wrap: wrap; }
.ct-btn {
  display: inline-block;
  background: #fff;
  color: #262c31;
  border-radius: 5px;
  font-size: 18px;
  font-weight: 500;
  line-height: 20px;
  padding: 17px 30px;
  text-transform: uppercase;
  cursor: pointer;
  border: 0;
}
.ct-btn:hover { background: var(--dark); color: #fff; }

/* ------------------------------------------------ interior page title */
.ct-page-title {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 90px 20px 30px;
  min-height: 446px;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: cover;
  text-align: center;
}
.ct-pth-390 { min-height: 390px; }
.ct-pth-446 { min-height: 446px; }
.ct-pth-590 { min-height: 590px; }
.ct-page-title::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, 0.35); z-index: 1; }
.ct-page-title h1 {
  position: relative;
  z-index: 2;
  color: #fff;
  font-size: 72px;
  font-weight: 600;
  line-height: 1;
  margin: 0;
  text-transform: uppercase;
}
.ct-pt-services { background-image: url('/wp-content/uploads/capurro/servicesheader.jpg'); }
.ct-pt-reno { background-image: url('/wp-content/uploads/capurro/renosignheader.jpg'); }
.ct-pt-construction { background-image: url('/wp-content/uploads/capurro/constructionheader2.jpg'); }
.ct-pt-team { background-image: url('/wp-content/uploads/capurro/ct-team-1016.jpg'); }

/* ------------------------------------------------ service pages */
.ct-service-body { padding: 100px 0; }
.ct-service-body .ct-inner { max-width: 1680px; width: 86%; }
.ct-service-cols { display: flex; gap: 55px; align-items: flex-start; }
.ct-service-menu { flex: 0 0 21%; }
.ct-service-menu ul { list-style: none; margin: 0; padding: 0; }
.ct-service-menu li { margin-bottom: 5px; }
.ct-service-menu a {
  display: block;
  background: #efefef;
  color: var(--body);
  padding: 16px 18px;
  font-size: 16px;
  line-height: 1.4;
}
.ct-service-menu li.is-active a, .ct-service-menu a:hover { color: var(--maincolor); }
.ct-service-content { flex: 1 1 auto; min-width: 0; }
.ct-service-content h2 { font-size: 36px; font-weight: 700; text-transform: none; margin-bottom: 25px; }
.ct-service-content img { display: block; width: 100%; margin-bottom: 25px; }
.ct-service-pane { display: none; }
.ct-service-pane.is-active { display: block; }
.ct-service-aside { flex: 0 0 19%; }
.ct-service-aside h2 { font-size: 42px; font-weight: 700; text-transform: none; }
.ct-service-aside hr { border: 0; border-top: 2px solid var(--maincolor); width: 60px; margin: 18px 0 30px; }
.ct-service-aside p strong { color: var(--dark); }
.ct-service-aside .ct-aside-block > p:first-child { color: var(--body); }

/* ------------------------------------------------ about page */
.ct-about-hero { padding: 60px 0; }
.ct-about-hero .ct-inner { display: flex; gap: 40px; align-items: center; }
.ct-about-hero .ct-ab-text { flex: 1 1 45%; }
.ct-about-hero .ct-ab-text h3 { font-size: 38px; font-weight: 400; text-transform: uppercase; color: var(--dark); }
.ct-about-hero .ct-ab-text h3 strong { color: var(--maincolor); font-weight: 700; }
.ct-about-hero .ct-ab-text hr { border: 0; border-top: 1px solid #ccc; width: 200px; margin: 40px 0 0; }
.ct-about-hero .ct-ab-video { flex: 1 1 55%; }
.ct-about-hero video { width: 100%; display: block; }

.ct-about-story { display: flex; align-items: stretch; }
.ct-about-story .ct-as-img { flex: 1 1 50%; background-size: cover; background-position: center; min-height: 500px; }
.ct-about-story .ct-as-text { flex: 1 1 50%; padding: 80px 60px; }
.ct-about-story h3 { font-size: 34px; font-weight: 400; text-transform: uppercase; }
.ct-about-story h3 strong { color: var(--maincolor); font-weight: 700; display: block; }
.ct-about-story p { text-align: justify; margin-top: 1.4em; }

/* ------------------------------------------------ careers */
.ct-careers-body { padding: 100px 0; }
.ct-careers-cols { display: flex; flex-direction: column; gap: 45px; align-items: stretch; }
.ct-careers-intro { flex: none; width: 100%; }
.ct-careers-intro h2 { font-size: 40px; font-weight: 300; text-transform: uppercase; }
.ct-careers-intro h2 strong { color: var(--maincolor); font-weight: 700; }
.ct-careers-tabs { flex: none; width: 100%; }
.ct-career-tab-btns { display: flex; flex-direction: row; flex-wrap: wrap; align-items: stretch; }
.ct-career-tab-btn {
  border: 0;
  background: var(--light);
  color: var(--dark);
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  padding: 30px 40px;
  cursor: pointer;
}
.ct-career-tab-btn:not(:last-child) { border-right: 1px solid #d9d9d9; }
.ct-career-tab-btn { border-top: 1px solid #d9d9d9; border-bottom: 1px solid #d9d9d9; }
.ct-career-tab-btn.is-active { border-right-color: transparent; border-top-color: transparent; border-bottom-color: transparent; }
.ct-career-tab-btn.is-active { background: var(--maincolor); color: #fff; }
.ct-career-pane {
  display: none;
  border: 2px solid var(--maincolor);
  border-top-width: 2px;
  padding: 45px 60px;
}
.ct-career-pane.is-active { display: block; }
.ct-career-pane h4 { text-transform: none; }
.ct-career-pane ol, .ct-career-pane ul { padding-left: 20px; }
.ct-career-pane li { margin-bottom: 8px; }

/* ------------------------------------------------ careers forms */
.ct-forms-body { padding: 100px 0; }
.ct-forms-body h2 { font-size: 42px; font-weight: 400; text-transform: none; margin-bottom: 40px; }
.ct-forms-body h2 strong { color: var(--maincolor); font-weight: 700; }
.ct-forms-list { list-style: none; margin: 0; padding: 0; max-width: 700px; }
.ct-forms-list li { margin-bottom: 14px; }
.ct-forms-list a {
  display: block;
  background: var(--light);
  color: var(--body);
  padding: 20px 25px;
  font-size: 18px;
}
.ct-forms-list a:hover { background: var(--maincolor); color: #fff; }
.ct-forms-list i { color: var(--maincolor); margin-right: 12px; }
.ct-forms-list a:hover i { color: #fff; }

/* ------------------------------------------------ contact */
.ct-contact-head { background: var(--dark); text-align: center; padding: 150px 0 55px; position: relative; }
.ct-contact-head::before { content: ""; position: absolute; top: 106px; left: 0; right: 0; height: 10px; background: var(--maincolor); }
.ct-contact-head .ct-eyebrow { color: #fff; }
.ct-contact-head h1 { color: #fff; font-size: 42px; font-weight: 400; text-transform: uppercase; margin: 0; }
.ct-contact-head h1 strong { color: var(--maincolor); font-weight: 700; }

.ct-contact-split { display: flex; align-items: stretch; }
.ct-contact-split > div { box-sizing: border-box; }
.ct-contact-split > div { flex: 1 1 50%; padding: 80px 60px; }
.ct-contact-offices { background: var(--maincolor); color: #fff; padding: 80px 5% 80px 11% !important; }
.ct-contact-offices .ct-eyebrow { color: #fff; margin-bottom: 6px; }
.ct-contact-offices h2 { color: #fff; font-size: 34px; font-weight: 300; text-transform: uppercase; margin: 0 0 30px; }
.ct-contact-offices h2 strong { font-weight: 700; }
.ct-contact-inquiries { background: var(--light); padding: 80px 11% 80px 3.5% !important; }
.ct-contact-inquiries .ct-eyebrow { color: #9b9ea0; }
.ct-contact-inquiries h2 { color: var(--dark); font-size: 34px; font-weight: 300; text-transform: uppercase; margin: 0 0 30px; }
.ct-contact-inquiries h2 strong { font-weight: 700; }
.ct-contact-inquiries p strong { color: var(--dark); }

.ct-contact-offices .ct-office-tabs { margin-bottom: 35px; }
.ct-contact-offices .ct-tab-btn { background: var(--dark); color: #fff; }
.ct-contact-offices .ct-tab-btn.is-active { background: #fff; color: var(--dark); }
.ct-contact-offices .ct-office-list i { color: #fff; }
.ct-contact-offices .ct-office-list a, .ct-contact-offices .ct-office-list span { color: #fff; }
.ct-contact-offices .ct-tab-btn { font-size: 15px; padding: 16px 26px; font-weight: 600; }
.ct-contact-offices a { color: #fff; }
.ct-contact-offices a:hover { color: var(--dark); }

/* team grid */
.ct-team-band { text-align: center; padding: 60px 0 45px; }
.ct-team-band .ct-eyebrow { color: #9b9ea0; }
.ct-team-band h2 { font-size: 36px; font-weight: 300; text-transform: uppercase; }
.ct-team-band h2 strong { color: var(--maincolor); font-weight: 700; }
.ct-team {
  background-image: url('/wp-content/uploads/capurro/contactbg.jpg');
  background-attachment: fixed;
  background-size: cover;
  background-position: center;
  padding: 100px 0;
}
.ct-team-grid {
  max-width: 1350px;
  margin: 0 auto;
  padding: 0 15px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: 1fr;
  gap: 30px;
  align-items: stretch;
}
.ct-team-card {
  background: rgba(40, 46, 52, 0.85);
  padding: 65px 30px 75px;
  text-align: center;
  min-height: 300px;
  box-sizing: border-box;
}
.ct-team-card h3, .ct-team-card h3 strong, .ct-team-card p,
.ct-team-card p strong, .ct-team-card .ct-team-icon { color: #fff; }
.ct-team-card a { color: #fff !important; }
.ct-team-card a:hover { color: #7fd4de !important; }
.ct-team-card h3 { font-size: 24px; font-weight: 300; text-transform: uppercase; color: #fff; letter-spacing: 1px; }
.ct-team-card h3 strong { font-weight: 700; color: #fff; }
.ct-team-card .ct-team-icon { font-size: 30px; color: #fff; margin: 16px 0; }
.ct-team-card p { margin: 0; line-height: 1.6; color: #fff !important; font-size: 16px; }
.ct-team-card p strong { color: #fff !important; }
.ct-team-card a { color: #fff; }

/* ------------------------------------------------ gallery */
.ct-gallery-body { padding: 60px 0 70px; }
.ct-gallery-body .ct-inner { max-width: none; width: 88%; }
.ct-gallery-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 4px;
}
.ct-gallery-grid a { aspect-ratio: 4 / 3; }
.ct-gallery-grid a.ct-page-hidden { display: none; }
.ct-gallery-dots { text-align: center; margin-top: 40px; }
.ct-gallery-dots button {
  width: 12px; height: 12px; border-radius: 50%;
  border: 0; background: #c9cdd0; margin: 0 5px; cursor: pointer; padding: 0;
}
.ct-gallery-dots button.is-active { background: #8a9198; }
.ct-gallery-grid a { display: block; overflow: hidden; }
.ct-gallery-grid img { width: 100%; height: 100%; object-fit: cover; display: block; transition: 0.3s; }
.ct-gallery-grid a:hover img { transform: scale(1.05); }

/* lightbox */
.ct-lightbox {
  position: fixed; inset: 0; z-index: 10000;
  background: rgba(0, 0, 0, 0.9);
  display: none;
  align-items: center; justify-content: center;
}
.ct-lightbox.is-open { display: flex; }
.ct-lightbox img { max-width: 92vw; max-height: 92vh; }
.ct-lightbox button {
  position: absolute; top: 20px; right: 25px;
  background: none; border: 0; color: #fff; font-size: 34px; cursor: pointer;
}
.ct-lightbox .ct-lb-prev, .ct-lightbox .ct-lb-next {
  top: 50%; transform: translateY(-50%); font-size: 44px;
}
.ct-lightbox .ct-lb-prev { left: 20px; right: auto; }
.ct-lightbox .ct-lb-next { right: 20px; }

/* ------------------------------------------------ policies */
.ct-policy-body { padding: 120px 0 80px; }
.ct-policy-body h1 { font-size: 42px; }

/* ------------------------------------------------ footer */
.ct-footer { background: var(--dark); color: var(--footer-text); font-size: 16px; }
.ct-footer-main { padding: 110px 0 110px; }
.ct-footer-cols {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 0 0 50px;
  display: flex;
  gap: 35px;
  flex-wrap: nowrap;
}
.ct-footer-brand { flex: 0 0 24% !important; }
.ct-footer-cols .ct-footer-col:nth-child(2) { flex: 0 0 14% !important; }
.ct-footer-cols .ct-footer-col:nth-child(3) { flex: 0 0 19% !important; }
.ct-footer-offices { flex: 1 1 auto !important; }
.ct-footer-brand .ct-footer-logo { margin: 0 0 25px; }
.ct-footer-brand .ct-footer-logo img { width: 250px; height: auto; }
.ct-footer a { color: #fff; }
.ct-footer a:hover { color: var(--maincolor); }
.ct-footer-title {
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  margin: 5px 0 25px;
  text-transform: uppercase;
}
.ct-footer-list { list-style: none; margin: 0; padding: 0; line-height: 1.5; }
.ct-footer-list li { margin-bottom: 14px; position: relative; padding-left: 16px; }
.ct-footer-list li::before {
  content: "\f0da";
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  color: var(--maincolor);
  position: absolute;
  left: 0;
  top: 1px;
  font-size: 12px;
}
.ct-footer-list a { color: var(--footer-text); text-transform: uppercase; font-size: 15px; }
.ct-footer-list a:hover { color: #fff; }

/* social icons */
ul.social-icons { list-style: none; padding: 0; margin: -5px; display: inline-block; }
ul.social-icons > li { display: inline-block; margin: 5px 7px 5px 0; }
ul.social-icons > li a.border-icon {
  display: inline-block;
  background: #30373d;
  border: 1px solid #34373a;
  border-radius: 50%;
  color: #fff;
  height: 2.6em;
  width: 2.6em;
  line-height: 2.6em;
  text-align: center;
  font-size: 14px;
}
ul.social-icons > li a.border-icon:hover { background: var(--maincolor); color: #fff; }

/* office tabs (footer + contact) */
.ct-office-tabs { display: flex; gap: 10px; margin-bottom: 30px; flex-wrap: nowrap; }
.ct-tab-btn {
  border: 0;
  border-radius: 3px;
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  padding: 12px 14px;
  white-space: nowrap;
  cursor: pointer;
  background: var(--maincolor);
  color: #fff;
  font-family: inherit;
  transition: 0.2s;
}
.ct-tab-btn.is-active { background: #fff; color: var(--dark); }
.ct-office-pane { display: none; }
.ct-office-pane.is-active { display: block; }
.ct-office-list { list-style: none; margin: 0; padding: 0; }
.ct-office-list li { display: flex; gap: 15px; margin-bottom: 22px; align-items: flex-start; }
.ct-office-list i { color: #fff; font-size: 16px; margin-top: 4px; }
.ct-office-list a, .ct-office-list span { color: var(--footer-text); }
.ct-office-list a:hover { color: #fff; }

/* footer bottom strip */
.ct-footer-bottom { background: #22272b; padding: 26px 0 20px; text-align: center; }
.ct-privacy { margin: 0 0 14px; }
.ct-privacy a { color: var(--footer-text); font-size: 15px; }
.ct-privacy a:hover { color: #fff; }
.ct-onyx { margin: 0; }

/* scroll up */
.ct-scroll-up {
  display: none;
  position: fixed;
  bottom: 30px; right: 30px;
  width: 36px; height: 36px; line-height: 36px;
  text-align: center;
  font-size: 16px;
  color: #fff;
  background: var(--maincolor);
  border-radius: 3px;
  z-index: 1000;
  border: 0;
  cursor: pointer;
}
.ct-scroll-up.is-visible { display: block; }

/* ------------------------------------------------ reveal animations */
.ct-wow { opacity: 0; transform: translate3d(0, -40px, 0); transition: opacity 0.7s ease, transform 0.7s ease; }
.ct-wow.ct-wow-left { transform: translate3d(60px, 0, 0); }
.ct-wow.ct-wow-right { transform: translate3d(-60px, 0, 0); }
.ct-wow.is-inview { opacity: 1; transform: translate3d(0, 0, 0); }

/* ------------------------------------------------ responsive */
@media (max-width: 1199px) {
  .ct-feature-box h6 { font-size: 40px; }
  .ct-footer-cols { padding-left: 40px; }
}
@media (max-width: 991px) {
  .ct-animated-heading { font-size: 45px; white-space: normal; }
  .ct-video-band .ct-inner, .ct-about-hero .ct-inner { flex-direction: column; }
  /* features: title above image, no border box, alternating gray bands (matches original mobile) */
  .ct-feature, .ct-feature.is-right { flex-direction: column-reverse; margin-bottom: 40px; }
  .ct-feature-img { width: 100%; flex-basis: auto; }
  .ct-feature.is-left .ct-feature-box, .ct-feature.is-right .ct-feature-box { border: 0; margin: 0; padding: 0 5px 14px; text-align: left; }
  .ct-feature.is-left .ct-feature-box h6, .ct-feature.is-right .ct-feature-box h6 { padding: 0; font-size: 25px; line-height: 29px; }
  .ct-feature.is-right { background: var(--light); margin-left: -15px; margin-right: -15px; padding: 35px 20px; }
  .ct-features { padding: 40px 0 10px; }
  .ct-features .ct-feature:last-child { margin-bottom: 0; }
  .ct-service-cols, .ct-careers-cols { flex-direction: column; }
  .ct-service-menu, .ct-service-aside { flex-basis: auto; width: 100%; }
  .ct-contact-split { flex-direction: column; }
  .ct-team-grid { grid-template-columns: 1fr; }
  .ct-about-story { flex-direction: column; }
  .ct-about-story .ct-as-img { min-height: 320px; }
  .ct-footer-cols { flex-wrap: wrap; padding-left: 15px; }
  .ct-footer-cols > div { flex: 1 1 45% !important; }
  .ct-page-title h1 { font-size: 48px; }
  .ct-gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .ct-cta h3 { font-size: 42px; }
}
@media (max-width: 600px) {
  .ct-footer-cols > div { flex: 1 1 100% !important; }
  .ct-gallery-grid { grid-template-columns: 1fr; }
  .ct-contact-split > div { padding: 60px 20px; }
  .ct-page-title h1 { font-size: 36px; }
}

/* WP admin bar offset for sticky header */
body.admin-bar .ct-header.header-sticky { top: 32px; }

/* WordPress alignment/editor niceties */
.wp-block-group.ct-section { margin: 0; }

/* ------------------------------------------------ teal buttons + forms page */
.ct-btn-teal {
  display: inline-block;
  background: var(--maincolor);
  color: #fff !important;
  border-radius: 4px;
  font-size: 16px;
  font-weight: 400;
  text-transform: uppercase;
  padding: 18px 28px;
  margin: 6px 12px 6px 0;
  line-height: 1.2;
}
.ct-btn-teal:hover { background: #10646e; color: #fff; }
.ct-career-pane .ct-btn-teal { text-transform: none; padding: 16px 24px; }
.ct-career-pane p:has(> .ct-btn-teal) { display: inline-block; margin: 0 12px 12px 0; }
.ct-forms-body h2 { font-size: 40px; font-weight: 400; text-transform: uppercase; margin-bottom: 35px; }
.ct-forms-body h2 strong { color: var(--maincolor); font-weight: 700; }
.ct-forms-body hr { border: 0; border-top: 1px solid #e3e3e3; margin: 50px 0; }
.ct-forms-body p { color: #6f7376; margin: 2em 0 1.2em; }
.ct-forms-body p strong { color: #55595c; }

/* policies */
.ct-policies-head { background: var(--dark); padding: 150px 0 70px; }
.ct-policies-head h1 { color: #fff; font-size: 52px; font-weight: 400; text-transform: none; margin: 0; }
.ct-policy-body { padding: 80px 0; }
.ct-policy-body { font-size: 14px; line-height: 1.9; }
.ct-policy-body p { margin-bottom: 1.5em; }
.ct-policy-body h1 { font-size: 38px; text-transform: none; margin-top: 0; }
.ct-policy-body h2 { font-size: 40px; text-transform: none; margin-top: 1.5em; }
.ct-policy-body h3 { font-size: 28px; text-transform: none; margin-top: 2em; margin-bottom: 0.8em; }
.ct-policy-body p, .ct-policy-body li { color: #6f7376; }

/* careers CTA teal variant */
.ct-cta-teal { background: #399ba5; }
.ct-cta-teal h3 strong { color: #262c31; }
.ct-cta-teal .ct-btn { background: #fff; color: #262c31; font-weight: 500; }
.ct-cta-teal .ct-btn:hover { background: var(--dark); color: #fff; }


/* gallery head band */
.ct-gallery-head { background: var(--dark); text-align: center; padding: 150px 0 55px; position: relative; }
.ct-gallery-head::before { content: ""; position: absolute; top: 106px; left: 0; right: 0; height: 10px; background: var(--maincolor); }
.ct-gallery-head .ct-eyebrow { color: #9b9ea0; }
.ct-gallery-head h1 { color: #fff; font-size: 42px; font-weight: 400; text-transform: uppercase; margin: 0; }
.ct-gallery-head h1 strong { color: var(--maincolor); font-weight: 700; }
.ct-gallery-divider { display: none; }


/* forms upload block */
.ct-upload-form { margin-top: 30px; }
.ct-upload-form .ct-upload-row { display: flex; gap: 20px; align-items: flex-start; margin-bottom: 25px; }
.ct-upload-form label { font-weight: 600; color: #55595c; white-space: nowrap; padding-top: 2px; }
.ct-upload-form .ct-files input[type=file] { display: block; margin-bottom: 6px; font-size: 14px; color: #6f7376; }
.ct-upload-form .ct-add-file { background: #e9e9e9; border: 1px solid #cfcfcf; font-size: 12px; padding: 3px 8px; border-radius: 3px; cursor: pointer; }
.ct-upload-form .ct-submit { background: var(--maincolor); color: #fff; border: 0; border-radius: 3px; padding: 8px 14px; font-size: 14px; cursor: pointer; }

/* page-title background video */
.ct-page-title { overflow: hidden; }
.ct-page-title .ct-pt-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}
.ct-page-title.has-video::after { background: rgba(0, 0, 0, 0.35); z-index: 1; }

/* =====================================================================
   MOBILE REFINEMENTS — matches original responsive behaviour
   ===================================================================== */

/* ---- mobile menu (core navigation overlay skinned as offcanvas) ---- */
.ct-nav .wp-block-navigation__responsive-container-open {
  color: #fff;
  background: none;
  border: 0;
  padding: 6px;
}
.ct-nav .wp-block-navigation__responsive-container-open svg { width: 30px; height: 30px; }
.ct-header.header-sticky .ct-nav .wp-block-navigation__responsive-container-open { color: #fff; }

@media (max-width: 991px) {
  /* force hamburger below 992px (original switches to offcanvas here) */
  .ct-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
  .ct-nav .wp-block-navigation__responsive-container-open { display: flex !important; }
  .ct-logo .logo-image img { max-height: 84px; }
  .ct-header-inner { padding-top: 14px; padding-bottom: 10px; }
  .ct-nav .wp-block-navigation-item > a { padding: 0; }
}

/* offcanvas-style panel */
.ct-nav .wp-block-navigation__responsive-container.is-menu-open {
  left: auto !important;
  right: 0;
  width: 300px;
  max-width: 86vw;
  background: #fff !important;
  padding: 64px 30px 30px !important;
  box-shadow: 0 0 0 100vmax rgba(0, 0, 0, 0.5);
  overflow-y: auto;
}
.ct-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
  display: block;
  padding: 0;
}
.ct-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
  display: block;
}
.ct-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
  display: block;
  margin: 0 0 4px;
}
.ct-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item > a {
  color: #262c31 !important;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.5;
  text-transform: none;
  padding: 6px 0 !important;
  display: inline-block;
}
.ct-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item > a:hover { color: var(--maincolor) !important; }
.ct-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon {
  color: #8b9196;
  margin-left: 8px;
}
.ct-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
  position: static !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 0 4px 14px !important;
  min-width: 0 !important;
}
.ct-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item > a {
  color: #55595c !important;
  font-size: 15px;
  text-transform: none;
  padding: 4px 0 !important;
  margin: 0;
}
.ct-nav .wp-block-navigation__responsive-container-close {
  position: absolute;
  top: 16px;
  right: 16px;
  background: #333;
  color: #fff;
  border-radius: 50%;
  width: 28px;
  height: 28px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ct-nav .wp-block-navigation__responsive-container-close svg { width: 16px; height: 16px; }

/* ---- responsive layout fixes ---- */
@media (max-width: 991px) {
  /* footer: stack in one column like the original */
  .ct-footer-cols { display: block !important; padding: 0 15px !important; }
  .ct-footer-brand,
  .ct-footer-cols .ct-footer-col:nth-child(2),
  .ct-footer-cols .ct-footer-col:nth-child(3),
  .ct-footer-offices { flex: none !important; width: 100% !important; margin-bottom: 48px !important; }
  .ct-footer-main { padding: 70px 0 30px; }
  .ct-office-tabs { flex-wrap: wrap; }

  /* dark video band: stack + center like original mobile variant */
  .ct-video-band .ct-inner { display: block; text-align: center; }
  .ct-video-band .ct-vb-text { text-align: center; }
  .ct-video-band .ct-vb-text hr { margin: 30px auto 0; }
  .ct-video-band .ct-vb-video { flex: none; max-width: 100%; margin: 30px auto 0; }

  .ct-about-hero .ct-ab-video { width: 100%; }
  .ct-about-hero .ct-ab-text { text-align: center; }
  .ct-about-hero .ct-ab-text hr { margin: 30px auto 0; }
}

@media (max-width: 600px) {
  /* hero: keep the video playing on phones (photo behind it as fallback) */
  .ct-hero { min-height: 100vh; padding-top: 70px; background-image: url('/wp-content/uploads/capurro/renosignheader_mobile.jpg'); background-attachment: scroll; background-position: center top; }
  .ct-animated-heading { font-size: 45px; line-height: 1.15; }
  .ct-animated-heading .ct-ah-words { display: block; margin: 4px auto 0; text-align: center; }
  .ct-animated-heading .ct-ah-word { padding-left: 0; }

  .ct-band h3 { font-size: 28px; line-height: 42px; }
  .ct-services-band h3 { font-size: 40px; line-height: 1.1; }
  .ct-video-band .ct-vb-text h3 { font-size: 45px; line-height: 55px; }
  .ct-video-band .ct-vb-text hr { display: none; }
  .ct-about-hero .ct-ab-text h3 { font-size: 26px; }
  .ct-cta h3 { font-size: 50px; line-height: 1; }
  .ct-cta .ct-eyebrow { font-size: 22px; font-weight: 400; }
  .ct-btn { font-size: 16px; padding: 14px 22px; }

  /* gallery: 2-up tiles like the original phone layout */
  .ct-gallery-grid { grid-template-columns: repeat(2, 1fr); }

  /* interior page headers shorter on phones */
  .ct-pth-390, .ct-pth-446 { min-height: 300px; }
  .ct-pth-590 { min-height: 380px; }
  .ct-page-title h1 { font-size: 34px; }

  .ct-contact-offices, .ct-contact-inquiries { padding: 55px 25px !important; }
  .ct-team-grid { padding: 0 20px; }
  .ct-team { padding: 60px 0; background-attachment: scroll; }
  .ct-about-story .ct-as-text { padding: 50px 25px; }
  .ct-careers-body, .ct-service-body, .ct-forms-body { padding: 60px 0; }
  .ct-career-tab-btn { width: 100%; text-align: left; padding: 20px 24px; }
  .ct-career-pane { padding: 30px 22px; }
  .ct-service-content h2 { font-size: 28px; }
  .ct-careers-intro h2 { font-size: 26px; }
  .ct-policies-head { padding: 110px 0 45px; }
  .ct-policies-head h1 { font-size: 38px; }
}

/* ---- mobile: contact team + about story + policies (match original phone variants) ---- */
@media (max-width: 991px) {
  .ct-team-band { background: var(--maincolor); padding: 40px 0 30px; }
  .ct-team-band .ct-eyebrow { color: #d7f0f3; }
  .ct-team-band h2 { color: var(--dark); }
  .ct-team-band h2 strong { color: #1d2024; }
  .ct-team-card { background: #3a4046; padding: 90px 25px 100px; }
  .ct-team-grid { gap: 30px; }

  .ct-about-story { flex-direction: column-reverse; }
  .ct-about-story .ct-as-img { min-height: 60vw; width: calc(100% - 30px); margin: 0 15px 40px; }
  .ct-about-story .ct-as-text { padding: 55px 20px 35px; }

  .ct-policy-body { font-size: 15px; line-height: 2; }
  .ct-policy-body p { margin-bottom: 1.7em; }
  .ct-policy-body h2 { font-size: 32px; }
  .ct-policy-body h3 { font-size: 24px; }
}

/* ---- forms (visual match; wire to a form plugin for submissions) ---- */
.ct-form input[type=text], .ct-form input[type=email], .ct-form textarea {
  display: block;
  width: 100%;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid #d9dcdE;
  border-radius: 4px;
  padding: 13px 16px;
  margin-bottom: 14px;
  font-family: inherit;
  font-size: 15px;
  color: #444;
}
.ct-form textarea { resize: vertical; }
.ct-form .ct-captcha-row { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.ct-form .ct-captcha-row span { font-weight: 600; }
.ct-form .ct-captcha-row input { margin: 0; max-width: 120px; }
.ct-form .ct-form-send {
  background: var(--dark);
  color: #fff;
  border: 0;
  border-radius: 4px;
  padding: 14px 26px;
  font-family: inherit;
  font-size: 15px;
  text-transform: uppercase;
  cursor: pointer;
}
.ct-contact-inquiries .ct-form-send { background: var(--maincolor); }
.ct-contact-offices .ct-form-send { background: #fff; color: var(--maincolor); }
.ct-form .ct-form-file { display: block; margin: 4px 0 16px; font-weight: 600; color: #55595c; }
.ct-form .ct-form-file input { display: block; margin-top: 8px; font-weight: 400; }
.ct-inquiry-title { font-size: 20px; font-weight: 700; margin: 30px 0 16px; text-transform: none; }
.ct-contact-offices .ct-inquiry-title { color: #fff; }

/* mobile-only wrapper (original shows inquiry forms on phones only) */
.ct-mobile-only { display: none; }
@media (max-width: 991px) {
  .ct-mobile-only { display: block; }
  .ct-team { background-image: none; padding: 40px 0 60px; }
  .ct-office-tabs { flex-direction: column; align-items: flex-start; }
  .ct-tab-btn { min-width: 210px; text-align: center; padding: 14px 20px; font-size: 13px; }
}

/* ------------------------------------------------ accessibility */
.ct-skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 10001;
  background: var(--maincolor);
  color: #fff;
  padding: 12px 22px;
  font-weight: 600;
  border-radius: 0 0 4px 0;
}
.ct-skip-link:focus { left: 0; color: #fff; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--maincolor);
  outline-offset: 2px;
}

/* Forminator: match site styling */
.forminator-custom-form .forminator-button-submit {
  background: var(--maincolor) !important;
  border-color: var(--maincolor) !important;
  color: #fff !important;
  border-radius: 4px !important;
  text-transform: uppercase;
  padding: 12px 26px !important;
}
.forminator-custom-form .forminator-button-submit:hover { background: #10646e !important; }

/* chevron toggle button: kill inherited nav-item padding so the arrow hugs its label */
.ct-nav .wp-block-navigation-item > button.wp-block-navigation__submenu-icon,
.ct-nav .wp-block-navigation-item > button,
.ct-nav button.wp-block-navigation-submenu__toggle ~ button,
.ct-nav .wp-block-navigation-submenu > button {
  padding: 0 !important;
  min-width: 0 !important;
  width: auto !important;
  background: none;
  border: 0;
  margin: 0 0 0 2px !important;
}
/* desktop nav caret: match the original site's FontAwesome angle-down glyph
   (the WP SVG chevron is hidden; the caret is drawn inside the link like the original) */
@media (min-width: 992px) {
  .ct-nav .wp-block-navigation__submenu-icon { display: none !important; }
  .ct-nav .wp-block-navigation-submenu > a { padding-right: 20px !important; }
  .ct-nav .wp-block-navigation-submenu > a::after {
    content: "\f107";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: 16px;
    line-height: 1;
    margin-left: 7px;
    display: inline-block;
    vertical-align: -1px;
  }
}
