/* ============================================================
   HOME VISION / INTRO SECTION
   ============================================================ */

.home-vision {
  background: var(--clr-white);
}

.home-vision__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 6vw, 5rem);
  align-items: start;
}

.home-vision__title {
  margin-bottom: var(--sp-5);
  width: max-content;
}

.home-vision__intro {
  font-size: var(--fs-base);
  color: var(--clr-text-muted);
  line-height: var(--lh-loose);
  margin-bottom: var(--sp-4);
}

.home-vision__intro-2 {
  font-size: var(--fs-sm);
  color: var(--clr-text-muted);
  line-height: var(--lh-loose);
}

/* Wysiwyg defaults */
.home-vision .wp-content p { margin-bottom: var(--sp-4); color: var(--clr-text-muted); line-height: var(--lh-loose); }
.home-vision .wp-content a { color: var(--clr-red); text-decoration: underline; }

/* Stats grid */
.home-vision__stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-self: center;
  gap: var(--sp-4);
}

.home-vision__stat {
  position: relative;
  overflow: hidden;
  padding: var(--sp-5) var(--sp-5) var(--sp-5) calc(var(--sp-5) + 3px);
}

/* Gold left border accent */
.home-vision__stat::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 3px;
  height: 100%;
  background: var(--clr-gold);
  border-radius: var(--radius-full);
}

.home-vision__stat-icon {
  width: 32px;
  height: 32px;
  margin-bottom: var(--sp-3);
  color: var(--clr-red);
}

.home-vision__stat-icon svg {
  width: 100%;
  height: 100%;
}

.home-vision__stat-number {
  display: block;
  font-size: clamp(var(--fs-xl), 3vw, 2.25rem);
  font-weight: var(--fw-black);
  color: var(--clr-dark);
  line-height: 1;
  letter-spacing: -0.02em;
  margin-bottom: var(--sp-2);
}

.home-vision__stat-label {
  display: block;
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  color: var(--clr-dark);
  margin-bottom: var(--sp-1);
}

.home-vision__stat-desc {
  display: block;
  font-size: var(--fs-xs);
  color: var(--clr-text-muted);
  line-height: var(--lh-normal);
}

@media (max-width: 900px) {
  .home-vision__grid { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .home-vision__stats { grid-template-columns: 1fr; }
}

/* ============================================================
   HOME SERVICES SECTION
   ============================================================ */

.home-services {
  background: var(--clr-dark);
}

.home-services__header {
  margin-bottom: var(--sp-10);
}

.home-services__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--sp-4);
}

.home-services__card {
  position: relative;
  overflow: hidden;
  padding: var(--sp-6) var(--sp-5);
  display: flex;
  flex-direction: column;
  gap: var(--sp-4);
  transition: all var(--ease-standard);
}

/* Red-to-gold bottom border on hover */
.home-services__card::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--clr-red), var(--clr-gold));
  opacity: 0;
  transition: opacity var(--ease-standard);
}

.home-services__card:hover::after { opacity: 1; }

.home-services__card-top {
  flex: 1;
}

.home-services__icon {
  width: 40px;
  height: 40px;
  border-radius: var(--radius-md);
  background: rgba(237, 50, 55, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--sp-4);
  color: var(--clr-red);
}

.home-services__icon svg {
  width: 20px;
  height: 20px;
}

.home-services__img-wrap { margin-bottom: var(--sp-4); }
.home-services__img      { width: 100%; height: 120px; object-fit: cover; border-radius: var(--radius-md); }

.home-services__card-title {
  font-size: var(--fs-base);
  font-weight: var(--fw-bold);
  color: var(--clr-white);
  line-height: var(--lh-snug);
}

.home-services__card-title a {
  color: inherit;
  text-decoration: none;
}

.home-services__card-desc {
  font-size: var(--fs-xs);
  color: rgba(255, 255, 255, 0.45);
  line-height: var(--lh-loose);
  flex: 1;
}

.home-services__card-footer {
  border-top: 0.5px solid rgba(255, 255, 255, 0.06);
  padding-top: var(--sp-3);
  margin-top: auto;
}

.home-services__card-link {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  color: rgba(255, 255, 255, 0.4);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  transition: color var(--ease-standard);
}

.home-services__card-link:hover { color: var(--clr-gold); }

@media (max-width: 1024px) {
  .home-services__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
  .home-services__grid { grid-template-columns: 1fr; }
}

/* ============================================================
   HOME CUSTOMER JOURNEY
   ============================================================ */

.home-journey {
  background: var(--clr-light);
}

.home-journey__header {
  text-align: center;
  max-width: 600px;
  margin-inline: auto;
  margin-bottom: var(--sp-12);
}

.home-journey__intro {
  margin-top: var(--sp-4);
}

/* Steps track */
.home-journey__track {
  position: relative;
  display: flex;
  gap: 0;
}

/* Connecting gradient line (desktop) */
.home-journey__connector {
  position: absolute;
  top: 27px; /* centre of badge */
  left: calc(var(--sp-6) + 28px);
  right: calc(var(--sp-6) + 28px);
  height: 1px;
  background: linear-gradient(90deg, var(--clr-red), var(--clr-gold));
  z-index: 0;
  pointer-events: none;
}

/* Individual step */
.home-journey__step {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding-inline: var(--sp-3);
  position: relative;
  z-index: 1;
}

/* Numbered badge */
.home-journey__step-badge {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--clr-white);
  border: 2px solid var(--clr-red);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--sp-4);
  flex-shrink: 0;
  transition: all var(--ease-standard);
}

.home-journey__step--even .home-journey__step-badge {
  border-color: var(--clr-gold);
}

.home-journey__step:hover .home-journey__step-badge {
  background: var(--clr-red);
}

.home-journey__step--even:hover .home-journey__step-badge {
  background: var(--clr-gold);
}

.home-journey__step-num {
  font-size: var(--fs-lg);
  font-weight: var(--fw-black);
  color: var(--clr-red);
  line-height: 1;
}

.home-journey__step--even .home-journey__step-num { color: var(--clr-mid); }

.home-journey__step:hover .home-journey__step-num { color: var(--clr-white); }
.home-journey__step--even:hover .home-journey__step-num { color: var(--clr-dark); }

.home-journey__step-icon { color: var(--clr-red); }
.home-journey__step-icon svg { width: 22px; height: 22px; }

.home-journey__step-title {
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  color: var(--clr-dark);
  margin-bottom: var(--sp-2);
  line-height: var(--lh-snug);
}

.home-journey__step-desc {
  font-size: var(--fs-xs);
  color: var(--clr-text-muted);
  line-height: var(--lh-loose);
}

.home-journey__step-link {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-1);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  color: var(--clr-red);
  text-decoration: none;
  margin-top: var(--sp-2);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

@media (max-width: 900px) {
  .home-journey__track    { flex-direction: column; gap: var(--sp-6); }
  .home-journey__connector { display: none; }
  .home-journey__step     { flex-direction: row; text-align: left; gap: var(--sp-4); }
  .home-journey__step-body { flex: 1; }
  .home-journey__step-badge { flex-shrink: 0; }
}

/* ============================================================
   HOME TECHNOLOGIES
   ============================================================ */

.home-technologies {
  background: var(--clr-white);
}

.home-technologies__header {
  margin-bottom: var(--sp-10);
}

.home-technologies__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--sp-4);
}

.home-technologies__card {
  position: relative;
  overflow: hidden;
  padding: var(--sp-6) var(--sp-5);
  transition: all var(--ease-standard);
}

/* Coloured top accent bar — defaults to gold, overrideable */
.home-technologies__card-bar {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--tech-accent, var(--clr-gold));
  opacity: 0.7;
  transition: opacity var(--ease-standard);
}

.home-technologies__card:hover .home-technologies__card-bar { opacity: 1; }

.home-technologies__card-inner {
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  height: 100%;
}

.home-technologies__icon {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-md);
  /*background: linear-gradient(135deg, rgba(255, 204, 41, 0.12), rgba(237, 50, 55, 0.08));
  */
  background: var(--clr-red);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  flex-shrink: 0;
}

.home-technologies__icon svg { width: 24px; height: 24px; }
.home-technologies__icon-img { width: 28px; height: 28px; object-fit: contain; }

.home-technologies__icon-fallback {
  font-size: var(--fs-sm);
  font-weight: var(--fw-black);
  color: var(--clr-red);
}

.home-technologies__card-title {
  font-size: var(--fs-base);
  font-weight: var(--fw-bold);
  color: var(--clr-dark);
  line-height: var(--lh-snug);
}

.home-technologies__card-desc {
  font-size: var(--fs-xs);
  color: var(--clr-text-muted);
  line-height: var(--lh-loose);
  flex: 1;
}

.home-technologies__card-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 0.5px solid var(--clr-border);
  color: var(--clr-text-muted);
  text-decoration: none;
  margin-top: auto;
  align-self: flex-start;
  transition: all var(--ease-standard);
}

.home-technologies__card-link:hover {
  background: var(--clr-red);
  border-color: var(--clr-red);
  color: var(--clr-white);
}

@media (max-width: 1024px) { .home-technologies__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .home-technologies__grid { grid-template-columns: 1fr; } }

/* ============================================================
   HOME NEWS
   ============================================================ */

.home-news {
  background: var(--clr-light);
}

.home-news__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--sp-4);
  margin-bottom: var(--sp-8);
  flex-wrap: wrap;
}

.home-news__view-all {
  flex-shrink: 0;
  align-self: flex-end;
}

.home-news__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-5);
}

/* News card */
.home-news__card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: var(--radius-lg);
}

/* Square image */
.home-news__card-img-wrap {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  display: block;
  background: var(--clr-dark);
  flex-shrink: 0;
}

.home-news__card-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.home-news__card:hover .home-news__card-img {
  transform: scale(1.04);
}

.home-news__card-img-placeholder {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, var(--clr-charcoal), var(--clr-mid));
  display: flex;
  align-items: center;
  justify-content: center;
}

.home-news__card-img-placeholder span {
  font-size: var(--fs-2xl);
  font-weight: var(--fw-black);
  color: rgba(255, 255, 255, 0.15);
  text-transform: uppercase;
}

/* Category badge on image */
.home-news__card-tag {
  position: absolute;
  top: var(--sp-3);
  left: var(--sp-3);
  background: var(--clr-red);
  color: var(--clr-white);
  font-size: 9px;
  font-weight: var(--fw-bold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 3px 8px;
  border-radius: var(--radius-sm);
}

/* Card body */
.home-news__card-body {
  padding: var(--sp-5);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  flex: 1;
}

.home-news__card-title {
  font-size: var(--fs-base);
  font-weight: var(--fw-bold);
  color: var(--clr-dark);
  line-height: var(--lh-snug);
}

.home-news__card-title a {
  color: inherit;
  text-decoration: none;
  transition: color var(--ease-standard);
}

.home-news__card-title a:hover { color: var(--clr-red); }

.home-news__card-excerpt {
  font-size: var(--fs-sm);
  color: var(--clr-text-muted);
  line-height: var(--lh-loose);
  flex: 1;
}

.home-news__card-meta {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  padding-top: var(--sp-3);
  border-top: 0.5px solid var(--clr-border);
  margin-top: auto;
}

.home-news__card-date,
.home-news__card-read-time {
  font-size: var(--fs-xs);
  color: var(--clr-muted);
}

.home-news__card-read-time::before {
  content: '·';
  margin-right: var(--sp-2);
}

@media (max-width: 900px) { .home-news__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .home-news__grid { grid-template-columns: 1fr; } }

/* ============================================================
   SITE FOOTER
   ============================================================ */

.site-footer {
  background: var(--clr-charcoal);
}

.site-footer__accent-bar {
  height: 3px;
  background: linear-gradient(90deg, var(--clr-red) 0%, var(--clr-gold) 60%, transparent 100%);
}

.site-footer__main {
  padding-block: clamp(3rem, 7vw, 5rem);
}

.site-footer__grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.3fr;
  gap: clamp(2rem, 5vw, 4rem);
}

/* Brand column */
.site-footer__logo-link {
  display: inline-block;
  margin-bottom: var(--sp-3);
}

.site-footer__logo-img {
  height: 40px;
  width: auto;
  opacity: 0.9;
}

.site-footer__logo-wordmark {
  font-size: var(--fs-lg);
  font-weight: var(--fw-black);
  color: var(--clr-white);
  letter-spacing: -0.02em;
}

.site-footer__tagline {
  font-size: var(--fs-xs);
  color: rgba(255, 255, 255, 0.3);
  text-transform: uppercase;
  letter-spacing: 0.10em;
  margin-bottom: var(--sp-4);
}

.site-footer__desc {
  font-size: var(--fs-sm);
  color: rgba(255, 255, 255, 0.4);
  line-height: var(--lh-loose);
  max-width: 240px;
}

/* Column headings */
.site-footer__col-title {
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  color: var(--clr-gold);
  text-transform: uppercase;
  letter-spacing: 0.10em;
  margin-bottom: var(--sp-5);
}

/* Footer nav */
.site-footer__menu {
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
  list-style: none;
}

.site-footer__menu a {
  font-size: var(--fs-sm);
  color: rgba(255, 255, 255, 0.45);
  text-decoration: none;
  padding-block: var(--sp-1);
  display: block;
  transition: color var(--ease-standard);
}

.site-footer__menu a:hover { color: rgba(255, 255, 255, 0.85); }

/* Contact */
.site-footer__address {
  font-style: normal;
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
}

.site-footer__address p {
  font-size: var(--fs-sm);
  color: rgba(255, 255, 255, 0.45);
  line-height: var(--lh-normal);
}

.site-footer__contact-link {
  color: rgba(255, 255, 255, 0.45);
  text-decoration: none;
  transition: color var(--ease-standard);
}

.site-footer__contact-link:hover { color: rgba(255, 255, 255, 0.85); }

/* Hours */
.site-footer__hours-list {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  list-style: none;
}

.site-footer__hours-row {
  display: flex;
  justify-content: space-between;
  gap: var(--sp-3);
  font-size: var(--fs-sm);
  color: rgba(255, 255, 255, 0.45);
  padding-bottom: var(--sp-2);
  border-bottom: 0.5px solid rgba(255, 255, 255, 0.06);
}

.site-footer__hours-days { font-weight: var(--fw-medium); color: rgba(255, 255, 255, 0.6); }

/* Bottom bar */
.site-footer__bottom {
  border-top: 0.5px solid rgba(255, 255, 255, 0.07);
  padding-block: var(--sp-5);
}

.site-footer__bottom-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
}

.site-footer__copyright {
  font-size: var(--fs-xs);
  color: rgba(255, 255, 255, 0.25);
}

/* Social icons */
.site-footer__socials {
  display: flex;
  gap: var(--sp-2);
}

.site-footer__social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 0.5px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.35);
  text-decoration: none;
  transition: all var(--ease-standard);
}

.site-footer__social-link:hover {
  border-color: var(--clr-gold);
  color: var(--clr-gold);
  background: rgba(255, 204, 41, 0.06);
}

@media (max-width: 1024px) {
  .site-footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 600px) {
  .site-footer__grid { grid-template-columns: 1fr; }
  .site-footer__bottom-inner { flex-direction: column; text-align: center; }
}
