/*
Theme Name: LOT Gutenberg
Theme URI: https://www.lotmanagement.com/
Description: Native block-theme child of Twenty Twenty-Five for the LOT Management migration.
Author: LOT Management
Template: twentytwentyfive
Version: 1.0.1
Text Domain: lot-gutenberg
*/

:root {
  --lot-red: #c90000;
  --lot-red-bright: #e62449;
  --lot-charcoal: #232323;
  --lot-ink: #343434;
  --lot-gray: #f4f4f4;
  --lot-white: #ffffff;
  --lot-shadow: 0 18px 50px rgba(0, 0, 0, 0.13);
}

html { scroll-behavior: smooth; }

body {
  background: var(--lot-white);
  color: #5b5b5b;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.75;
}

h1, h2, h3, h4, h5, h6,
.wp-block-heading {
  color: var(--lot-ink);
  font-family: "Fjalla One", "Arial Narrow", Arial, sans-serif;
  font-weight: 400;
  letter-spacing: .01em;
}

a { color: var(--lot-red); }

.wp-site-blocks { padding: 0; }
.wp-site-blocks > * { margin-block-start: 0; }

.lot-site-header {
  background: rgba(255, 255, 255, .96);
  border-bottom: 1px solid rgba(0, 0, 0, .08);
  box-shadow: 0 2px 18px rgba(0, 0, 0, .06);
  position: sticky;
  top: 0;
  z-index: 100;
}

.admin-bar .lot-site-header { top: 32px; }

.lot-header-inner {
  min-height: 88px;
  padding: 10px 28px;
}

.lot-brand-logo {
  display: block;
  height: auto;
  max-width: 156px;
  width: 100%;
}

.lot-primary-nav { font-size: 14px; font-weight: 700; }
.lot-primary-nav .wp-block-navigation__container { column-gap: 28px; row-gap: 10px; }
.lot-primary-nav .wp-block-navigation-item__content { padding-block: 10px; }
.lot-primary-nav a,
.lot-primary-nav .wp-block-navigation-item__content { color: var(--lot-red) !important; text-decoration: none; }
.lot-primary-nav a:hover,
.lot-primary-nav a:focus { color: var(--lot-red); }

/* Match the compact The7 desktop flyout while keeping the block navigation native. */
@media (min-width: 782px) {
  .lot-primary-nav .wp-block-navigation-item.has-child > .wp-block-navigation__submenu-container {
    background: #fff !important;
    border: 1px solid #d4d4d4 !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .12) !important;
    left: 0 !important;
    min-width: 270px !important;
    padding: 0 !important;
    right: auto !important;
    transform: none !important;
    width: 270px !important;
  }

  .lot-primary-nav .wp-block-navigation__submenu-container a,
  .lot-primary-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    color: var(--lot-ink) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
    padding: 11px 12px !important;
    text-decoration: none !important;
    white-space: normal !important;
  }

  .lot-primary-nav .wp-block-navigation__submenu-container a:hover,
  .lot-primary-nav .wp-block-navigation__submenu-container a:focus,
  .lot-primary-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
  .lot-primary-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus {
    background: #f6f6f6 !important;
    color: #a90000 !important;
  }

  .lot-primary-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
    position: relative;
    text-decoration: none !important;
  }

  .lot-primary-nav .wp-block-navigation__container > .wp-block-navigation-item.has-child:hover > .wp-block-navigation-item__content,
  .lot-primary-nav .wp-block-navigation__container > .wp-block-navigation-item.has-child:focus-within > .wp-block-navigation-item__content {
    color: var(--lot-ink) !important;
  }

  .lot-primary-nav .wp-block-navigation__container > .wp-block-navigation-item.has-child:hover > .wp-block-navigation-item__content::after,
  .lot-primary-nav .wp-block-navigation__container > .wp-block-navigation-item.has-child:focus-within > .wp-block-navigation-item__content::after {
    background: #b84b4b;
    bottom: 2px;
    content: "";
    height: 2px;
    left: 0;
    position: absolute;
    right: 0;
  }
}

.lot-hero {
  min-height: clamp(225px, 26vw, 300px);
}

.lot-hero .wp-block-cover__background {
  background: linear-gradient(90deg, rgba(0,0,0,.66), rgba(0,0,0,.12)) !important;
  opacity: 1 !important;
}

.lot-hero .wp-block-cover__inner-container {
  max-width: none !important;
  width: 100%;
}

.lot-hero-copy {
  margin-left: max(68px, calc((100vw - 1180px) / 2)) !important;
  margin-right: auto !important;
  max-width: 460px;
  padding: 38px 24px;
}

.lot-hero h1 {
  color: #fff;
  font-size: clamp(2.15rem, 3.6vw, 3rem);
  line-height: 1;
  margin: 0;
  text-shadow: 0 4px 20px rgba(0,0,0,.48);
}

.lot-hero-kicker {
  color: #fff;
  font-size: clamp(.95rem, 1.6vw, 1.15rem);
  font-weight: 700;
  letter-spacing: .02em;
  margin-top: 18px;
  text-shadow: 0 2px 12px rgba(0,0,0,.6);
}

.lot-content-section { padding: clamp(34px, 4vw, 52px) 28px; }
.lot-content-section h2 { font-size: clamp(1.65rem, 2.8vw, 2.1rem); }
.lot-content-section p { margin-bottom: 1.35em; }
.lot-service-list { columns: 2; column-gap: 34px; }
.lot-service-list li { break-inside: avoid; margin-bottom: .35em; }

.lot-standard-page .lot-content-section {
  padding-bottom: clamp(54px, 6vw, 82px);
  padding-top: clamp(48px, 5vw, 70px);
}

.lot-standard-page .lot-editorial-copy > p:first-child {
  color: #444;
  font-size: 1.08rem;
}

.lot-standard-page .lot-editorial-copy h2 {
  margin-bottom: .3em;
  margin-top: 1.25em;
}

.lot-standard-page .lot-editorial-copy ul {
  margin-bottom: 1.5em;
}

.lot-standard-page .lot-editorial-copy li {
  margin-bottom: .45em;
}

.lot-standard-page .lot-photo-rotator {
  align-self: start;
  margin-top: 6px;
}

.lot-standard-page .lot-photo-rotator img {
  aspect-ratio: 1;
  border: 7px solid #fff;
  border-radius: 50%;
  box-shadow: var(--lot-shadow);
  object-fit: cover;
}

.lot-about-purpose {
  background: var(--lot-gray);
  padding: clamp(48px, 6vw, 76px) 28px;
}

.lot-about-purpose h2 {
  color: var(--lot-red);
  margin-bottom: .3em;
}

.lot-values-grid {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 24px;
}

.lot-value-card {
  background: #fff;
  border-top: 3px solid var(--lot-red);
  box-shadow: 0 8px 24px rgba(0,0,0,.07);
  padding: 22px 24px;
}

.lot-value-card h3 { font-size: 1.3rem; margin: 0 0 6px; }
.lot-value-card p { margin: 0; }

.lot-clients-section {
  background: #fff;
  padding: clamp(48px, 6vw, 76px) 28px clamp(64px, 8vw, 96px);
}

.lot-client-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  justify-content: center;
}

.lot-client-logo {
  align-items: center;
  background: #fff;
  border: 1px solid #ececec;
  box-sizing: border-box;
  box-shadow: 0 7px 22px rgba(0,0,0,.055);
  display: flex;
  flex: 0 1 calc(25% - 23px);
  justify-content: center;
  min-height: 148px;
  padding: 20px;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.lot-client-logo:hover {
  border-color: #ddd;
  box-shadow: 0 12px 30px rgba(0,0,0,.09);
  transform: translateY(-2px);
}

.lot-client-logo .wp-block-image { margin: 0; text-align: center; width: 100%; }
.lot-client-logo img { display: block; height: auto; margin: 0 auto; max-height: 105px; object-fit: contain; width: 100%; }

.lot-news-intro {
  background: #fff;
  padding: clamp(48px, 6vw, 76px) 28px;
}

.lot-news-intro .wp-block-columns { margin-bottom: 0; }
.lot-news-intro p { color: #444; font-size: 1.08rem; }
.lot-news-intro .wp-block-image { margin: 0 auto; max-width: 260px; }
.lot-news-intro .wp-block-image img {
  aspect-ratio: 1;
  border: 7px solid #fff;
  border-radius: 50%;
  box-shadow: var(--lot-shadow);
  object-fit: cover;
}

.lot-news-section {
  background: var(--lot-gray);
  padding: clamp(50px, 6vw, 78px) 28px clamp(64px, 8vw, 96px);
}

.lot-news-section-title {
  font-size: clamp(1.8rem, 3vw, 2.35rem);
  margin: 0 0 30px;
}

.lot-news-query .wp-block-post-template {
  list-style: none;
  margin: 0;
  padding: 0;
}

.lot-news-card {
  background: #fff;
  border-top: 3px solid var(--lot-red);
  box-shadow: 0 8px 25px rgba(0,0,0,.07);
  display: grid;
  gap: clamp(24px, 4vw, 42px);
  grid-template-columns: minmax(190px, 28%) 1fr;
  margin-bottom: 28px;
  padding: clamp(22px, 3vw, 34px);
}

.lot-news-card .wp-block-post-featured-image { margin: 0; }
.lot-news-card .wp-block-post-featured-image img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.lot-news-card .wp-block-post-title { font-size: clamp(1.45rem, 2.5vw, 1.9rem); margin: 0 0 10px; }
.lot-news-card .wp-block-post-title a { color: var(--lot-ink); text-decoration: none; }
.lot-news-card .wp-block-post-title a:hover { color: var(--lot-red); }
.lot-news-card .wp-block-post-excerpt { margin: 0; }
.lot-news-card .wp-block-post-excerpt__more-link { font-weight: 700; text-decoration: none; }
.lot-news-query .wp-block-query-pagination { gap: 14px; margin-top: 34px; }
.lot-news-query .wp-block-query-pagination a { font-weight: 700; text-decoration: none; }
.lot-news-query .wp-block-query-pagination-numbers { display: flex; gap: 10px; }

.lot-careers-intro {
  background: #fff;
  padding: clamp(48px, 6vw, 76px) 28px clamp(36px, 5vw, 60px);
}

.lot-careers-intro .wp-block-columns { margin-bottom: 0; }
.lot-careers-copy > p:first-child { color: #444; font-size: 1.08rem; }
.lot-careers-copy p { margin-bottom: 1.35em; }
.lot-careers-intro .lot-photo-rotator { align-self: start; margin-top: 4px; }
.lot-careers-intro .lot-photo-rotator img {
  aspect-ratio: 1;
  border: 7px solid #fff;
  border-radius: 50%;
  box-shadow: var(--lot-shadow);
  object-fit: cover;
}

.lot-jobs-section {
  background: var(--lot-gray);
  padding: clamp(48px, 6vw, 76px) 28px clamp(64px, 8vw, 96px);
}

.lot-jobs-section h2 { font-size: clamp(1.8rem, 3vw, 2.35rem); margin: 0 0 26px; }
.lot-jobs-feed {
  background: #fff;
  border-top: 3px solid var(--lot-red);
  box-shadow: 0 8px 25px rgba(0,0,0,.07);
  padding: clamp(24px, 4vw, 42px);
}

.paylocity-job-filters {
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(220px, 2fr) minmax(170px, 1fr) minmax(170px, 1fr);
  margin-bottom: 26px;
}

.paylocity-job-filters label { margin: 0; }
.paylocity-job-filters input,
.paylocity-job-filters select {
  background: #fff;
  border: 1px solid #c9c9c9;
  border-radius: 0;
  box-sizing: border-box;
  color: #3f3f3f;
  font: inherit;
  min-height: 48px;
  padding: 10px 13px;
  width: 100%;
}

.paylocity-job-filters input:focus,
.paylocity-job-filters select:focus {
  border-color: var(--lot-red);
  outline: 2px solid rgba(201,0,0,.16);
  outline-offset: 1px;
}

.paylocity-accordion { border-top: 1px solid #dedede; }
.paylocity-job {
  border-bottom: 1px solid #dedede;
  margin: 0;
}

.paylocity-job[hidden] { display: none; }
.paylocity-job summary {
  color: var(--lot-ink);
  cursor: pointer;
  font-family: "Fjalla One", "Arial Narrow", Arial, sans-serif;
  font-size: clamp(1.08rem, 2vw, 1.32rem);
  list-style: none;
  padding: 17px 42px 17px 2px;
  position: relative;
}

.paylocity-job summary::-webkit-details-marker { display: none; }
.paylocity-job summary::after {
  color: var(--lot-red);
  content: "+";
  font-family: Arial, sans-serif;
  font-size: 1.65rem;
  font-weight: 400;
  line-height: 1;
  position: absolute;
  right: 8px;
  top: 15px;
}

.paylocity-job[open] summary::after { content: "−"; }
.paylocity-job-body { padding: 0 2px 28px; }
.paylocity-job-meta { color: #555; margin: 0 0 18px; }
.paylocity-job-description ul,
.paylocity-job-requirements ul { padding-left: 1.35em; }
.paylocity-job-requirements { margin-top: 22px; }
.paylocity-apply-button {
  background: var(--lot-red);
  color: #fff !important;
  display: inline-block;
  font-weight: 700;
  margin-top: 14px;
  padding: 10px 22px;
  text-decoration: none;
}
.paylocity-apply-button:hover,
.paylocity-apply-button:focus { background: #a80000; }
.paylocity-jobs-empty,
.paylocity-jobs-error { margin: 18px 0 0; }

.lot-form-page {
  background: var(--lot-gray);
  padding: clamp(48px, 6vw, 78px) 28px clamp(64px, 8vw, 100px);
}

.lot-form-panel {
  background: #fff;
  border-top: 3px solid var(--lot-red);
  box-shadow: 0 8px 25px rgba(0,0,0,.07);
  padding: clamp(24px, 4vw, 46px);
}

.lot-form-panel > h1 {
  font-size: clamp(2rem, 4vw, 3rem);
  margin: 0 0 16px;
}

.lot-form-panel .gform_wrapper { margin-top: 30px; }
.lot-form-panel .gform_button {
  background: var(--lot-red) !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: #fff !important;
  font-weight: 700 !important;
  padding: 12px 24px !important;
}

.lot-news-article {
  background: #fff;
  padding: clamp(48px, 7vw, 86px) 28px clamp(64px, 9vw, 110px);
}

.lot-news-article-header,
.lot-news-article-body { max-width: 920px; }
.lot-news-article-header { margin: 0 auto 34px; text-align: center; }
.lot-news-article-header h1 { font-size: clamp(2.2rem, 5vw, 3.8rem); margin: 0 0 10px; }
.lot-news-article-date { color: #777; font-size: .93rem; }
.lot-news-article-featured { margin: 0 auto 38px; max-width: 1120px; }
.lot-news-article-featured img { max-height: 620px; object-fit: cover; width: 100%; }
.lot-news-article-body { font-size: 1.05rem; margin: 0 auto; }
.lot-news-article-body > p { margin-bottom: 1.4em; }
.lot-news-gallery { margin: 36px auto 0; max-width: 1120px; }
.lot-news-gallery.has-nested-images figure.wp-block-image img { aspect-ratio: 4 / 3; object-fit: cover; }
.lot-news-back { margin: 42px auto 0; max-width: 920px; }
.lot-news-back a { font-weight: 700; text-decoration: none; }

.lot-services-intro {
  padding: clamp(48px, 6vw, 76px) 28px 30px;
  text-align: center;
}

.lot-services-intro h2 {
  font-size: clamp(2rem, 3.6vw, 2.7rem);
  margin-bottom: 13px;
}

.lot-services-intro h2::after {
  background: var(--lot-red-bright);
  content: "";
  display: block;
  height: 3px;
  margin: 18px auto 0;
  width: 100px;
}

.lot-services-intro p {
  color: #555;
  font-size: clamp(1.05rem, 2vw, 1.35rem);
  margin: 0;
}

.lot-services-grid-section { padding: 18px 28px clamp(54px, 7vw, 88px); }

.lot-services-grid {
  display: grid;
  gap: clamp(28px, 3vw, 42px) clamp(22px, 2.7vw, 36px);
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.lot-service-card {
  height: 100%;
  text-align: center;
}

.lot-service-card .wp-block-image {
  margin: 0 auto 20px;
  max-width: 280px;
}

.lot-service-card .wp-block-image a { display: block; }

.lot-service-card .wp-block-image img {
  aspect-ratio: 1;
  border: 7px solid #fff;
  border-radius: 50%;
  box-shadow: var(--lot-shadow);
  display: block;
  object-fit: cover;
  transition: transform .2s ease, box-shadow .2s ease;
  width: 100%;
}

.lot-service-card:hover .wp-block-image img,
.lot-service-card:focus-within .wp-block-image img {
  box-shadow: 0 22px 55px rgba(0, 0, 0, .19);
  transform: translateY(-3px);
}

.lot-service-card h3 {
  font-size: clamp(1.35rem, 2vw, 1.7rem);
  line-height: 1.2;
  margin: 0 auto 10px;
}

.lot-service-card h3 a { color: var(--lot-ink); text-decoration: none; }
.lot-service-card h3 a:hover,
.lot-service-card h3 a:focus { color: var(--lot-red); }
.lot-service-card p { font-size: .96rem; line-height: 1.65; margin: 0 auto; max-width: 31em; }

/* Ten cards form two full rows of four; center the final pair. */
.lot-services-grid > .lot-service-card:nth-child(9) { grid-column: 2; }

.lot-home-hero {
  min-height: clamp(430px, 58vw, 650px);
}

.lot-home-hero .wp-block-cover__background {
  background: linear-gradient(90deg, rgba(0,0,0,.3), rgba(0,0,0,0) 68%) !important;
  opacity: 1 !important;
}

.lot-home-hero .wp-block-cover__inner-container { width: 100%; }

.lot-home-hero-copy {
  margin-left: max(28px, calc((100vw - 1180px) / 2)) !important;
  margin-right: auto !important;
  max-width: 820px;
  padding: 60px 24px;
}

.lot-home-hero h1,
.lot-home-hero .lot-home-hero-main,
.lot-home-hero .lot-home-hero-sub {
  color: #fff;
  font-family: "Fjalla One", "Arial Narrow", Arial, sans-serif;
  line-height: 1;
  margin: 0;
  text-shadow: 2px 2px 3px rgba(0,0,0,.92);
  text-transform: uppercase;
}

.lot-home-hero h1 { font-size: clamp(3rem, 6vw, 4.5rem); }
.lot-home-hero .lot-home-hero-main { font-size: clamp(3.4rem, 7vw, 5.1rem); margin-top: 4px; }
.lot-home-hero .lot-home-hero-sub { font-size: clamp(1.35rem, 3vw, 2rem); margin-top: 10px; }

.lot-home-button .wp-block-button__link,
.lot-family-band .wp-block-button__link {
  border-radius: 0;
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .05em;
  padding: 13px 24px;
  text-transform: uppercase;
}

.lot-home-button { margin-top: 30px; }
.lot-home-button .wp-block-button__link { background: var(--lot-red); color: #fff; }

.lot-home-mission { padding-top: clamp(34px, 4vw, 52px); }

.lot-family-band {
  min-height: 220px;
  padding: 36px 24px;
}

.lot-family-band .wp-block-cover__background { background: rgba(201,0,0,.86) !important; opacity: 1 !important; }
.lot-family-band h2 { color: #fff; font-size: clamp(1.8rem, 3.2vw, 2.5rem); line-height: 1.18; margin: 0 0 22px; text-transform: uppercase; }
.lot-family-band .wp-block-button__link { background: transparent; border: 2px solid #fff; color: #fff; }

.lot-partners { padding: clamp(40px, 5vw, 62px) 28px; }
.lot-partners h2 { font-size: clamp(1.35rem, 2.5vw, 1.75rem); margin: 0 0 28px; }
.lot-partner-logos { align-items: center !important; gap: 28px; }
.lot-partner-logos .wp-block-image { margin: 0; text-align: center; }
.lot-partner-logos img { height: auto; max-height: 115px; object-fit: contain; width: 100%; }

.lot-home-services { padding: 20px 28px clamp(60px, 7vw, 90px); }
.lot-home-services > h2 { font-size: clamp(2rem, 3.5vw, 2.7rem); margin-bottom: 42px; text-align: center; }
.lot-home-services > h2::after,
.lot-difference-copy > h2::after {
  background: var(--lot-red-bright);
  content: "";
  display: block;
  height: 3px;
  margin: 18px auto 0;
  width: 100px;
}

.lot-difference { overflow: hidden; padding: 0 28px; }
.lot-difference .wp-block-columns { margin-bottom: 0; }
.lot-difference-figure { align-self: end !important; }
.lot-difference-figure figure { margin: 0; }
.lot-difference-figure img { display: block; margin: 0 auto; max-height: 520px; object-fit: contain; object-position: center bottom; }
.lot-difference-copy { padding: clamp(42px, 5vw, 68px) 0; }
.lot-difference-copy > h2 { font-size: clamp(2rem, 3.5vw, 2.7rem); }
.lot-difference-copy > h2::after { margin-left: 0; }

.lot-difference-points { display: grid; gap: 24px 32px; grid-template-columns: 1fr 1fr; margin-top: 30px; }
.lot-difference-point { display: grid; grid-template-columns: 30px 1fr; }
.lot-difference-check { color: var(--lot-red); font-size: 1.75rem; grid-row: 1 / 3; line-height: 1; }
.lot-difference-point h3 { font-size: 1.15rem; margin: 0 0 4px; }
.lot-difference-point p { font-size: .92rem; line-height: 1.55; margin: 0; }

.lot-testimonials {
  min-height: 390px;
  padding: clamp(48px, 6vw, 78px) 28px;
}

.lot-testimonials .wp-block-cover__background { background: rgba(0,0,0,.58) !important; opacity: 1 !important; }
.lot-testimonials h2 { color: #fff; font-family: Arial, Helvetica, sans-serif; font-size: clamp(1.8rem, 3.5vw, 2.6rem); font-weight: 700; }
.lot-testimonial-track { display: flex; gap: 0; overflow-x: auto; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; }
.lot-testimonial-track::-webkit-scrollbar { display: none; }
.lot-testimonial { color: #fff; flex: 0 0 100%; scroll-snap-align: start; }
.lot-testimonial blockquote { border: 0; margin: 0; padding: 0 20px 0 0; }
.lot-testimonial blockquote p { color: #fff; font-size: 1rem; font-style: italic; line-height: 1.75; }
.lot-testimonial cite { color: #fff; display: block; font-size: 1.05rem; font-style: normal; font-weight: 700; margin-top: 14px; }
.lot-testimonial-dots { display: flex; gap: 10px; justify-content: center; margin-top: 24px; }
.lot-testimonial-dots a { background: rgba(255,255,255,.55); border-radius: 50%; display: block; height: 8px; overflow: hidden; text-indent: -999px; width: 8px; }
.lot-testimonial-dots a:first-child { background: #fff; }

.lot-home-contact { margin-top: 0; }

.lot-photo-rotator {
  aspect-ratio: 1;
  margin: 0 auto;
  max-width: 335px;
  position: relative;
}

.lot-photo-rotator .wp-block-image {
  animation: lot-photo-fade 10s infinite;
  inset: 0;
  margin: 0;
  position: absolute;
}

.lot-photo-rotator .wp-block-image:nth-child(2) { animation-delay: -5s; }
.lot-photo-rotator .wp-block-image:only-child { animation: none; }

.lot-photo-rotator img {
  border: 8px solid #fff;
  border-radius: 50%;
  box-shadow: var(--lot-shadow);
  height: 100%;
  object-fit: cover;
  width: 100%;
}

@keyframes lot-photo-fade {
  0%, 42% { opacity: 1; transform: scale(1); }
  50%, 92% { opacity: 0; transform: scale(.98); }
  100% { opacity: 1; transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .lot-photo-rotator .wp-block-image { animation: none; }
  .lot-photo-rotator .wp-block-image:nth-child(2) { display: none; }
}

.lot-red-divider {
  background-color: var(--lot-red);
  background-position: center;
  background-size: cover;
  min-height: 95px;
}

.lot-contact-section {
  background: #fff;
  overflow: hidden;
  padding: clamp(52px, 6vw, 78px) 28px 0;
}

.lot-contact-copy { padding-bottom: 58px; }
.lot-contact-copy h2 { color: var(--lot-red); font-size: clamp(1.7rem, 3vw, 2.15rem); }
.lot-contact-details { font-size: 1.1rem; }
.lot-contact-details a { color: #222; display: inline-block; font-weight: 700; text-decoration: none; }

.lot-contact-section .wp-block-columns { position: relative; }
.lot-contact-figure {
  align-self: stretch !important;
  min-height: 420px;
  overflow: visible;
  position: relative;
}

.lot-contact-figure figure {
  inset: 0;
  margin: 0;
  position: absolute;
}

.lot-contact-figure img {
  filter: drop-shadow(0 18px 22px rgba(0,0,0,.18));
  bottom: -16px;
  margin: 0;
  max-height: none;
  object-fit: contain;
  position: absolute;
  right: 0;
  transform: scale(1.2);
  transform-origin: center bottom;
  width: 100%;
}

.lot-form-grid { display: grid; gap: 8px; grid-template-columns: 1fr; max-width: 590px; }
.lot-form-field { margin: 0; }
.lot-form-wide { grid-column: 1 / -1; }
.lot-form-field label { color: #333; display: block; font-size: .85rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.lot-form-field input,
.lot-form-field textarea {
  background: #fff;
  border: 1px solid #cfcfcf;
  border-radius: 2px;
  box-sizing: border-box;
  font: inherit;
  margin-top: 6px;
  padding: 9px 12px;
  width: 100%;
}
.lot-form-field textarea { min-height: 82px; resize: vertical; }
.lot-form-field input:focus,
.lot-form-field textarea:focus { border-color: var(--lot-red); box-shadow: 0 0 0 2px rgba(201,0,0,.13); outline: 0; }
.lot-form-submit input {
  background: var(--lot-red);
  border: 0;
  border-radius: 2px;
  color: #fff;
  cursor: pointer;
  font-weight: 800;
  letter-spacing: .05em;
  padding: 14px 28px;
  text-transform: uppercase;
}
.lot-form-submit input:hover { background: #a90000; }

.lot-phone-cta { min-height: 240px; }
.lot-phone-cta .wp-block-cover__background { background: rgba(0,0,0,.48) !important; opacity: 1 !important; }
.lot-phone-cta h2 { color: #fff; font-size: clamp(1.65rem, 3vw, 2.25rem); margin-bottom: 4px; }
.lot-phone-cta p { color: #fff; font-size: clamp(.95rem, 1.5vw, 1.1rem); }
.lot-phone-cta .lot-phone-number a { color: #fff; font-size: clamp(2rem, 4vw, 3rem); font-weight: 600; text-decoration: none; }

.lot-mission-section { background: #fff; padding: clamp(36px, 4vw, 52px) 28px 28px; }
.lot-mission-card { height: 100%; padding: 8px 24px 16px; text-align: center; }
.lot-mission-icon {
  align-items: center;
  background: var(--lot-red);
  border: 4px solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 3px var(--lot-red), 0 12px 30px rgba(0,0,0,.16);
  color: #fff;
  display: flex;
  height: 180px;
  justify-content: center;
  margin: 0 auto 18px;
  width: 180px;
}
.lot-mission-icon svg {
  fill: none;
  height: 76px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.4;
  width: 76px;
}
.lot-mission-card h3 { font-size: 2rem; margin-bottom: 6px; }

.lot-footer { background: var(--lot-charcoal); color: #d4d4d4; padding: 48px 28px 24px; }
.lot-footer h2, .lot-footer h3 { color: #fff; }
.lot-footer a { color: #fff; }
.lot-footer-rule { border-top: 1px solid rgba(255,255,255,.16); margin-top: 35px; padding-top: 22px; }
.lot-footer-brand { color: #fff; font-family: Arial, Helvetica, sans-serif; font-size: 1rem; font-weight: 400; letter-spacing: 0; }

@media (max-width: 781px) {
  .admin-bar .lot-site-header { top: 46px; }
  .lot-header-inner { min-height: 72px; padding-inline: 18px; }
  .lot-brand-logo { max-width: 120px; }
  .lot-primary-nav .wp-block-navigation__container { gap: 0; }
  .lot-content-section, .lot-contact-section, .lot-mission-section { padding-inline: 20px; }
  .lot-service-list { columns: 1; }
  .lot-services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lot-services-grid > .lot-service-card:nth-child(9) { grid-column: auto; }
  .lot-home-hero { min-height: 480px; }
  .lot-home-hero-copy { margin-left: 0 !important; padding-inline: 20px; }
  .lot-partner-logos { display: grid !important; grid-template-columns: 1fr 1fr; }
  .lot-difference-figure { display: none; }
  .lot-difference-points { grid-template-columns: 1fr; }
  .lot-photo-rotator { margin-top: 35px; max-width: 340px; }
  .lot-standard-page .lot-photo-rotator { margin-inline: auto; }
  .lot-values-grid { grid-template-columns: 1fr; }
  .lot-client-logo { flex-basis: calc(50% - 15px); }
  .lot-news-card { grid-template-columns: 1fr; }
  .lot-news-card .wp-block-post-featured-image { max-width: 420px; }
  .lot-careers-intro .lot-photo-rotator { margin-inline: auto; }
  .paylocity-job-filters { grid-template-columns: 1fr; }
  .lot-contact-section { background: #fff; }
  .lot-contact-copy { padding-bottom: 45px; }
  .lot-contact-figure { display: none; }
  .lot-contact-figure figure { position: static; }
  .lot-form-grid { grid-template-columns: 1fr; }
  .lot-form-wide { grid-column: auto; }
}

@media (max-width: 520px) {
  .lot-services-intro, .lot-services-grid-section { padding-inline: 20px; }
  .lot-services-grid { grid-template-columns: 1fr; }
  .lot-service-card .wp-block-image { max-width: 260px; }
  .lot-home-hero h1 { font-size: 2.55rem; }
  .lot-home-hero .lot-home-hero-main { font-size: 3rem; }
  .lot-home-hero .lot-home-hero-sub { font-size: 1.2rem; line-height: 1.25; }
  .lot-partner-logos { grid-template-columns: 1fr; }
  .lot-client-grid { gap: 18px; }
  .lot-client-logo { flex-basis: 100%; min-height: 130px; }
  .lot-news-intro, .lot-news-section { padding-inline: 20px; }
  .lot-careers-intro, .lot-jobs-section, .lot-form-page, .lot-news-article { padding-inline: 20px; }
}
