/* home page blocks, top to bottom */

.is-home-hero {
  overflow: hidden;
  padding-top: 2.75rem;
  padding-bottom: 2.5rem;
}
.is-home-hero .h1-home { margin-bottom: 1rem; }
.is-home-hero p { color: var(--text-color--secondary-light); }

.home-hero-shot-wrap {
  position: relative;
  margin-top: 2.25rem;
}
.img-home-hero-roof {
  width: 100%;
  border-radius: var(--radius--card);
  border: 1px solid #202225;
  background: #131416;
}
.img-home-hero-card {
  position: absolute;
  right: -0.5rem;
  bottom: -1.25rem;
  width: 52%;
  max-width: 17.5rem;
  border-radius: 0.75rem;
  box-shadow: 0 1.5rem 3rem rgba(0, 0, 0, .55);
  background: #1b1d20;
}
.home-hero-blob {
  position: absolute;
  left: 50%;
  bottom: -12rem;
  width: 46rem;
  height: 26rem;
  transform: translateX(-50%);
  background: radial-gradient(ellipse farthest-side at center, var(--glow--teal) 0%, rgba(15, 95, 87, .18) 55%, rgba(8, 9, 10, 0) 78%);
  pointer-events: none;
  z-index: 0;
}

.home-sections-wrap { position: relative; z-index: 2; }

/* facts strip */
.flex-home-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem 1rem;
  border-top: 1px solid var(--line-color--hairline);
  border-bottom: 1px solid var(--line-color--hairline);
  padding: 1.5rem 0;
  text-align: center;
  font-size: 0.8125rem;
  color: var(--text-color--secondary-light);
}
.flex-home-facts li { display: flex; flex-direction: column; align-items: center; }
.svg-fact { color: var(--accent--green); }

/* 2x2 move blocks */
.home-move-wrap {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
  background: radial-gradient(ellipse farthest-side at center, #393939 90%, var(--background-color--background-primary) 100%);
  padding: 0;
}
.home-move-block-parent { min-width: 0; }
.home-move-block {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  justify-content: space-between;
  height: 100%;
  padding: 1.5rem 1.25rem;
  background: var(--background-color--panel);
  border: 1px solid #1f2124;
  border-radius: var(--radius--card);
  overflow: hidden;
}
.home-move-block h3 { margin-bottom: 0.5rem; }
.home-move-block p { color: var(--text-color--secondary-light); font-size: 0.9375rem; }
.img-home-move-wrap {
  position: relative;
  height: 11rem;
  border-radius: 0.75rem;
  overflow: hidden;
  background: #1d1f22;
}
.img-absolute {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  will-change: transform;
  transition: transform 0.8s ease-out;
}
.home-move-block:hover .img-absolute { transform: scale(1.02); }

/* what is included */
.panel-included-wrap {
  position: relative;
  border-radius: var(--radius--card);
  overflow: hidden;
  background: var(--background-color--panel);
  border: 1px solid #1f2124;
}
.panel-included-parent { position: relative; z-index: 2; padding: 1.75rem 1.25rem 2rem; }
.panel-included-parent .h2-home { margin-bottom: 1.25rem; }
.list-included { display: flex; flex-direction: column; gap: 1.25rem; }
.li-included { padding-top: 1.25rem; border-top: 1px solid #2a2d31; }
.li-included.is-top { padding-top: 0; border-top: 0; }
.li-included h3 { font-size: 0.9375rem; }
.li-included p { margin-top: 0.5rem; font-size: 0.9375rem; color: var(--text-color--secondary-light); }
.li-included .svg-24 { color: var(--accent--green); flex: 0 0 auto; }
.included-bg-wrap { position: relative; height: 14rem; }
.img-included-bg { width: 100%; height: 100%; object-fit: cover; }
.img-included-dark {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(19, 20, 22, .96) 0%, rgba(19, 20, 22, .35) 60%, rgba(19, 20, 22, .2) 100%);
}

/* six feature blocks */
.grid-3-2-1-1 {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.5rem;
}
.home-feature-block {
  padding: 1.5rem 1.25rem 1.625rem;
  border: 1px solid #1f2124;
  border-radius: var(--radius--card);
  background: linear-gradient(180deg, #131416 0%, #0e0f11 100%);
}
.home-feature-block h3 { margin: 0.875rem 0 0.5rem; }
.home-feature-block p { font-size: 0.9375rem; }
.svg-feature { color: var(--accent--green); }

/* trade band */
.panel-trade-cta {
  position: relative;
  border-radius: var(--radius--card);
  overflow: hidden;
  min-height: 21rem;
  display: flex;
  align-items: flex-end;
  border: 1px solid #1f2124;
}
.panel-trade-cta::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(8, 9, 10, .35) 0%, rgba(8, 9, 10, .92) 72%);
}
.home-trade-cta-block { position: relative; z-index: 2; padding: 1.5rem 1.25rem 1.75rem; max-width: 34rem; }
.home-trade-cta-block .h2-home { margin-bottom: 0.75rem; }
.home-trade-cta-block p { color: var(--text-color--secondary-light); font-size: 0.9375rem; }
.panel-trade-cta:hover .img-absolute { transform: scale(1.01); }
.img-absolute.is-trade-cta { object-position: 50% 42%; }

/* jobs grid */
.grid-home-jobs {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.25rem;
}
.home-job-block {
  position: relative;
  padding: 0.875rem 0.875rem 1.125rem;
  border: 1px solid #1f2124;
  border-radius: var(--radius--card);
  background: var(--background-color--panel);
}
.home-job-block img { width: 100%; height: 11.5rem; object-fit: cover; background: #1d1f22; }
.job-place {
  margin: 0.875rem 0 0.375rem;
  font-family: var(--font--display);
  font-size: 0.8125rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent--green);
}
.job-figure {
  margin-top: 0.75rem;
  font-family: var(--font--display);
  font-size: 1.25rem;
  font-weight: 700;
}
.grid-home-jobs.is-second { margin-top: 1.25rem; }

.faq_card_wrap.is-job-grid { margin-top: 0; }
.faq_card_content {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .45s ease;
}
.faq_card_clip { overflow: hidden; }
.faq_card_wrap:has(.faq_card_checkbox:checked) .faq_card_content { grid-template-rows: 1fr; }
.faq_card_toggle.is-home-job {
  display: flex;
  justify-content: center;
  margin-top: 1.5rem;
  cursor: pointer;
}
.faq_card_toggle .faq_card_checkbox {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}
#button-less { display: none; }
.faq_card_wrap.is-job-grid:has(.faq_card_checkbox:checked) #button-less { display: block; }
.faq_card_wrap.is-job-grid:has(.faq_card_checkbox:checked) #button-more { display: none; }

/* survey block */
.home-survey-wrap {
  position: relative;
  border-radius: var(--radius--card);
  overflow: hidden;
  border: 1px solid #1f2124;
}
.img-home-survey { width: 100%; height: 15rem; object-fit: cover; background: #1d1f22; }
.home-survey-badge {
  position: absolute;
  left: 1rem;
  bottom: 1rem;
  padding: 0.5rem 0.875rem;
  border-radius: var(--radius--pill);
  background: rgba(8, 9, 10, .78);
  border: 1px solid #33363a;
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* notes */
.flex-home-notes {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.5rem;
}
.home-note-block { position: relative; }
.home-note-block img { width: 100%; height: 11rem; object-fit: cover; background: #1d1f22; }
.home-note-block h3 { margin-bottom: 0.5rem; }

/* faqs */
.grid-faqs { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
.faq_card_wrap {
  border: 1px solid #1f2124;
  border-radius: 0.875rem;
  background: var(--background-color--panel);
  padding: 1rem 1.125rem;
}
.faq_card_wrap.is-job-grid { border: 0; background: none; padding: 0; }
.faq_card_toggle {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  cursor: pointer;
}
.faq_card_icon {
  flex: 0 0 auto;
  width: 1.75rem;
  height: 1.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 1px solid #34383c;
  transition: transform .3s ease;
}
.faq_card_wrap:has(.faq_card_checkbox:checked) .faq_card_icon { transform: rotate(45deg); }
.faq_card_svg { display: block; color: var(--text-color--secondary-light); }
.rt-faq p { font-size: 0.9375rem; color: var(--text-color--secondary-light); }

/* closing cta */
.panel-quote-cta {
  position: relative;
  border-radius: var(--radius--card);
  overflow: hidden;
  padding: 2.5rem 1.25rem 2.75rem;
  text-align: center;
  border: 1px solid #1f2124;
  min-height: 16rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1.25rem;
}
.panel-quote-cta::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(8, 9, 10, .55) 0%, rgba(8, 9, 10, .88) 100%);
}
.panel-quote-cta .h2-home { max-width: 34rem; margin: 0 auto; }

/* Marquee settings */
@keyframes loop-move-left {
  to {transform: translateX(-100%);}
}
[data-hover-pause] * {animation-play-state: running;}
[data-hover-pause]:hover * {animation-play-state: paused;}

.marquee-wrap {
  overflow: hidden;
  -webkit-mask-image:
    linear-gradient(to left, transparent, black 20%),
    linear-gradient(to right, transparent, black 20%);
  -webkit-mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-composite: destination-in;
          mask-composite: intersect;
}
.flex-marquee {
  display: flex;
  gap: 0.75rem;
  width: max-content;
  animation: 26s linear infinite;
}
.loop-move-left { animation-name: loop-move-left; }
.flex-marquee img { width: 9rem; height: 5.625rem; object-fit: cover; border-radius: 0.5rem; background: #1d1f22; }

@media screen and (min-width: 40rem) {
  .is-home-hero { padding-top: 4rem; }
  .flex-home-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .home-move-wrap { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
  .img-home-move-wrap { height: 12.5rem; }
  .included-bg-wrap { height: 18rem; }
  .grid-3-2-1-1 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid-home-jobs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .flex-home-notes { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
  .img-home-survey { height: 20rem; }
  .panel-quote-cta { padding: 3.5rem 2rem 3.75rem; }
}

@media screen and (min-width: 64rem) {
  .is-home-hero { padding-top: 5.5rem; padding-bottom: 4rem; }
  .home-hero-shot-wrap { margin-top: 3.5rem; max-width: 60rem; margin-left: auto; margin-right: auto; }
  .img-home-hero-roof { height: 30rem; object-fit: cover; }
  .img-home-hero-card { right: -3rem; bottom: -2.5rem; width: 20rem; }
  .home-hero-blob { width: 64rem; height: 34rem; bottom: -16rem; }
  .flex-home-facts { grid-template-columns: repeat(5, minmax(0, 1fr)); padding: 2rem 0; font-size: 0.875rem; }
  .home-move-wrap { gap: 1.5rem; }
  .home-move-block { padding: 2rem 1.75rem; }
  .img-home-move-wrap { height: 14rem; }
  .panel-included-wrap { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); }
  .panel-included-parent { padding: 3rem 2.5rem 3.25rem; }
  .included-bg-wrap { height: auto; }
  .img-included-dark { background: linear-gradient(90deg, rgba(19, 20, 22, .98) 0%, rgba(19, 20, 22, .25) 55%, rgba(19, 20, 22, 0) 100%); }
  .grid-3-2-1-1 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.75rem; }
  .panel-trade-cta { min-height: 26rem; }
  .home-trade-cta-block { padding: 3rem 2.5rem 3.25rem; }
  .grid-home-jobs { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .home-job-block img { height: 10rem; }
  .dir-vert-tab { flex-direction: row; align-items: center; }
  .home-survey-wrap { flex: 1 1 58%; }
  .img-home-survey { height: 25rem; }
  .grid-faqs { grid-template-columns: minmax(0, 0.55fr) minmax(0, 1fr); gap: 3rem; }
  .faq_card_wrap { padding: 1.125rem 1.5rem; }
  .panel-quote-cta { min-height: 21rem; }
}
