/* I&D Engineering Group: additions to the copied WordPress theme, written by improve.py's pages.
   Same font (Manrope), colours and spacing as the theme: red #ed1d24, ink #292b2c, grey #707070. */

/* ---------- Home hero: three photos cross-fading, in the old slider's place and size (replaces Slider Revolution) */
.idg-hero { position: relative; width: 100%; height: 750px; overflow: hidden; background: #f2f2f2; font-family: Manrope, sans-serif; }
.idg-hero__img { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; opacity: 0; transition: opacity 1.2s ease; }
.idg-hero__img.is-active { opacity: 1; }
/* The menu and contact line sit on top of the photo: fade the top of the photo to white so they stay readable. */
.idg-hero::before { content: ""; position: absolute; z-index: 1; top: 0; left: 0; right: 0; height: 260px; pointer-events: none; background: linear-gradient(180deg, rgba(255,255,255,.95) 0, rgba(255,255,255,.85) 45%, rgba(255,255,255,0) 100%); }
/* ...and fade the left side, where the headline sits, so it reads on any photo (grass, trees, floors). */
.idg-hero::after { content: ""; position: absolute; z-index: 1; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(255,255,255,.93) 0, rgba(255,255,255,.86) 28%, rgba(255,255,255,.4) 44%, rgba(255,255,255,0) 58%); }
.idg-hero__content { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: flex-end; height: 100%; box-sizing: border-box; padding: 150px 0 80px 5.1%; max-width: calc(520px + 5.1%); }
.idg-hero__h1 { margin: 0 0 10px; font-size: 30px; line-height: 1.15; font-weight: 800; color: #292b2c; letter-spacing: -0.3px; }
.idg-hero__texts { display: grid; }
.idg-hero__text { grid-area: 1 / 1; opacity: 0; visibility: hidden; transition: opacity .8s ease, visibility 0s linear .8s; }
.idg-hero__text.is-active { opacity: 1; visibility: visible; transition: opacity .8s ease .2s; }
.idg-hero__name { margin: 0 0 20px; font-size: 70px; line-height: 72px; font-weight: 800; color: #ed1d24; letter-spacing: -1.5px; }
.idg-hero__desc { max-width: 360px; margin: 0 0 22px; font-size: 18px; line-height: 26px; font-weight: 500; color: #5f5f5f; }
.idg-hero__link { display: inline-flex; align-items: center; gap: 18px; font-size: 18px; line-height: 30px; font-weight: 800; color: #292b2c; text-decoration: none; }
.idg-hero__link:hover, .idg-hero__link:focus-visible { color: #ed1d24; }
.idg-hero__arrow { display: inline-flex; align-items: center; justify-content: center; width: 70px; height: 30px; border: 1px solid rgba(41, 43, 44, .25); color: #ed1d24; transition: background .3s, color .3s; }
.idg-hero__link:hover .idg-hero__arrow { background: #ed1d24; color: #fff; }
.idg-hero__bar { display: block; width: 406px; max-width: 100%; height: 10px; margin-top: 30px; background: #ed1d24; }
.idg-hero__thumbs { position: absolute; z-index: 3; right: 30px; bottom: 80px; display: flex; gap: 30px; }
.idg-hero__thumb { width: 188px; height: 96px; padding: 0; border: 0; background: none; cursor: pointer; opacity: .55; transition: opacity .3s; }
.idg-hero__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.idg-hero__thumb.is-active, .idg-hero__thumb:hover, .idg-hero__thumb:focus-visible { opacity: 1; }
.idg-hero__thumb:focus-visible { outline: 2px solid #ed1d24; outline-offset: 3px; }
@media (max-width: 1024px) {
  .idg-hero { height: 640px; }
  .idg-hero__content { padding-top: 120px; }
  .idg-hero__name { font-size: 56px; line-height: 60px; }
  .idg-hero__thumbs { display: none; }
}
@media (max-width: 767px) {
  .idg-hero { height: auto; min-height: 600px; }
  .idg-hero__img { object-position: 72% center; }
  .idg-hero::before { height: 120px; }
  .idg-hero::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(255,255,255,0) 30%, rgba(255,255,255,.85) 58%, #fff 100%); }
  .idg-hero__content { justify-content: flex-end; min-height: 600px; max-width: none; padding: 110px 20px 36px; }
  .idg-hero__h1 { font-size: 22px; }
  .idg-hero__name { margin-bottom: 14px; font-size: 44px; line-height: 48px; letter-spacing: -1px; }
  .idg-hero__desc { max-width: none; font-size: 16px; line-height: 24px; }
  .idg-hero__bar { width: 100%; margin-top: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .idg-hero__img, .idg-hero__text, .idg-hero__text.is-active { transition: none; }
}

/* ---------- Call button, phones only */
.idg-call { display: none; }
@media (max-width: 767px) {
  .idg-call { position: fixed; z-index: 9999; right: 16px; bottom: 16px; display: inline-flex; align-items: center; gap: 8px; padding: 14px 22px; border-radius: 999px; background: #ed1d24; color: #fff; font: 800 19px/1 Manrope, sans-serif; text-decoration: none; box-shadow: 0 6px 18px rgba(0, 0, 0, .25); }
  .idg-call:hover, .idg-call:focus { color: #fff; }
}

/* ---------- Footer and contact details */
.site-footer .idg-registry { margin-top: 12px; font-size: 14px; opacity: .8; }
.site-footer a[href^="tel:"], .site-footer a[href^="mailto:"], .site-footer a[href*="google.com/maps"] { color: inherit; }
.pp-info-box-description a { color: #fff; text-decoration: none; }
.pp-info-box-description a:hover, .pp-info-box-description a:focus-visible { color: #ed1d24; }
.header-info-text a { color: inherit; text-decoration: none; }
.header-info-text a:hover { color: #ed1d24; }
.idg-form-note { display: block; margin-top: 14px; font-size: 14px; line-height: 1.6; color: #5f5f5f; }

/* ---------- Pages the WordPress site did not have: Work, Privacy, 404 */
.idg-page { padding: 210px 0 110px; font-family: Manrope, sans-serif; font-size: 17px; line-height: 1.7; color: #5f5f5f; }
.idg-page__kicker { margin: 0 0 18px; font-size: 18px; font-weight: 500; color: #ed1d24; }
.idg-page h1 { max-width: 900px; margin: 0 0 22px; font-size: 48px; line-height: 1.17; font-weight: 800; letter-spacing: -1px; color: #292b2c; }
.idg-page__lede { max-width: 720px; margin: 0 0 60px; font-size: 19px; }
.idg-jobs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 60px; border-top: 1px solid #e3e3e3; }
.idg-job { padding: 34px 0; border-bottom: 1px solid #e3e3e3; }
.idg-job__place { margin: 0 0 8px; font-size: 14px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #292b2c; }
.idg-job__place span { margin-right: 6px; color: #ed1d24; }
.idg-job h2 { margin: 0 0 8px; font-size: 24px; line-height: 1.25; font-weight: 800; letter-spacing: -.3px; color: #292b2c; }
.idg-job p:last-child { margin: 0; }
.idg-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 20px; margin-top: 64px; }
.idg-cta h2 { flex-basis: 100%; margin: 0 0 6px; font-size: 30px; font-weight: 800; letter-spacing: -.5px; color: #292b2c; }
.idg-btn { display: inline-block; padding: 16px 30px; border: 2px solid #ed1d24; background: #ed1d24; color: #fff; font-weight: 800; font-size: 16px; line-height: 1; text-decoration: none; transition: background .3s, color .3s; }
.idg-btn:hover, .idg-btn:focus-visible { background: #c8161c; border-color: #c8161c; color: #fff; }
.idg-btn--line { background: transparent; color: #292b2c; border-color: #292b2c; }
.idg-btn--line:hover, .idg-btn--line:focus-visible { background: #292b2c; border-color: #292b2c; color: #fff; }
.idg-prose h2 { margin: 44px 0 10px; font-size: 24px; font-weight: 800; letter-spacing: -.3px; color: #292b2c; }
.idg-prose p { max-width: 760px; }
.idg-prose a, .idg-page__lede a { color: #ed1d24; }
.idg-muted { margin-top: 40px; font-size: 14px; color: #8a8a8a; }
@media (max-width: 1024px) {
  .idg-page { padding-top: 150px; }
}
@media (max-width: 767px) {
  .idg-page { padding: 120px 0 80px; font-size: 16px; }
  .idg-page h1 { font-size: 32px; }
  .idg-page__lede { margin-bottom: 40px; font-size: 17px; }
  .idg-jobs { grid-template-columns: 1fr; }
  .idg-cta h2 { font-size: 24px; }
}
