.hm-about {
  max-width: 1240px;
  margin: 0 auto;
  padding: 80px 20px;
  background: #fff;
  font-family: 'SF Pro Regular', sans-serif;
}

.hm-about-grid {
  display: grid;
  grid-template-columns: 1fr 1.05fr;
  gap: 60px;
  align-items: center;
}

.hm-about-visual {
  position: relative;
  border-radius: 14px;
  overflow: visible;
}

.hm-about-visual img {
  display: block;
  width: 100%;
  height: 440px;
  object-fit: cover;
  border-radius: 14px;
  box-shadow: 0 16px 44px rgba(26, 26, 26, 0.10);
  transition: transform 0.6s ease, box-shadow 0.6s ease;
}

/* Floating stat badge */
.hm-about-badge {
  position: absolute;
  right: -18px;
  bottom: -18px;
  display: flex;
  align-items: center;
  gap: 12px;
  background: #90191c;
  color: #fff;
  border-radius: 12px;
  padding: 18px 24px;
  box-shadow: 0 12px 32px rgba(144, 25, 28, 0.28);
  transition: transform 0.45s ease;
}

.hm-about-badge-num {
  font-family: 'LemonmilkReg', sans-serif;
  font-size: 34px;
  line-height: 1;
}

.hm-about-badge-label {
  font-size: 12.5px;
  line-height: 1.35;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  opacity: 0.92;
}

.hm-about-eyebrow {
  font-family: 'LemonmilkReg', sans-serif;
  font-size: 13px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: #c9a656;
  margin: 0 0 14px;
}

.hm-about-title {
  font-family: 'LemonmilkReg', sans-serif;
  font-size: 36px;
  line-height: 1.22;
  color: #1a1a1a;
  margin: 0;
}

.hm-about-title span {
  color: #90191c;
}

.hm-about-line {
  width: 50px;
  height: 3px;
  background: #c9a656;
  border-radius: 2px;
  margin: 20px 0 24px;
}

.hm-about-text {
  font-size: 16px;
  line-height: 1.75;
  color: #555;
  margin: 0 0 18px;
}

.hm-about-content .vm-btn-primary {
  margin-top: 12px;
}


/* ===============================================================
   .hm-services - eight service cards, 4 across    (Homepage only)
   =============================================================== */
.hm-services {
  position: relative;
  overflow: hidden;
  background: #F9F5F5;
  padding: 78px 20px;
  font-family: 'SF Pro Regular', sans-serif;
}

/* Diagonal lines pattern - same treatment as .vm-hero-wrap */
.hm-services::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(
    45deg,
    rgba(144, 25, 28, 0.03) 0px,
    rgba(144, 25, 28, 0.03) 1px,
    transparent 1px,
    transparent 11px
  );
  pointer-events: none;
}

.hm-services > * {
  position: relative;
  z-index: 1;
}

.hm-services-grid {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
}

.hm-svc {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid #eee;
  border-radius: 12px;
  overflow: hidden;
  text-decoration: none !important;
  transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
}

.hm-svc-media {
  display: block;
  aspect-ratio: 16 / 11;
  overflow: hidden;
  background: #F9F5F5;
}

.hm-svc-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s ease;
}

/* Fine Art has no photograph - show a tinted icon panel instead */
.hm-svc--noimg .hm-svc-media {
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #fdf2f2 0%, #f7ece0 100%);
}

.hm-svc--noimg .hm-svc-media svg {
  stroke: #90191c;
  opacity: 0.55;
  transition: transform 0.6s ease, opacity 0.4s ease;
}

.hm-svc-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  padding: 22px 22px 24px;
}

.hm-svc-name {
  display: block;
  font-family: 'LemonmilkReg', sans-serif;
  font-size: 16.5px;
  line-height: 1.35;
  color: #1a1a1a;
  margin: 0 0 10px;
  transition: color 0.3s ease;
}

.hm-svc-text {
  display: block;
  font-size: 14px;
  line-height: 1.65;
  color: #777;
  margin: 0 0 18px;
}

.hm-svc-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: auto;
  font-family: 'LemonmilkReg', sans-serif;
  font-size: 12.5px;
  letter-spacing: 0.4px;
  color: #90191c;
}

.hm-svc-cta svg {
  stroke: currentColor;
  transition: transform 0.35s ease;
}


/* ===============================================================
   .hm-reviews - Trustindex Google reviews embed   (Homepage only)
   =============================================================== */
.hm-reviews {
  max-width: 1240px;
  margin: 0 auto;
  padding: 70px 20px;
  background: #fff;
  font-family: 'SF Pro Regular', sans-serif;
}

/* The plugin renders its own slider markup and stylesheet; this only gives it
   the house container width and keeps a wide slider from causing page-level
   horizontal scroll. */
.hm-reviews-embed {
  max-width: 1200px;
  margin: 0 auto;
  overflow: hidden;
}


/* ===============================================================
   Hover animation - scoped to .eh-home so shared-sections.css and
   every other page that loads it are untouched.
   =============================================================== */

/* Service cards: lift, warm the border, zoom the photo, slide the arrow */
.eh-home .hm-svc:hover {
  transform: translateY(-6px);
  border-color: rgba(144, 25, 28, 0.25);
  box-shadow: 0 18px 40px rgba(144, 25, 28, 0.12);
}

.eh-home .hm-svc:hover .hm-svc-media img {
  transform: scale(1.07);
}

.eh-home .hm-svc:hover .hm-svc--noimg .hm-svc-media svg,
.eh-home .hm-svc--noimg:hover .hm-svc-media svg {
  transform: scale(1.12) rotate(-4deg);
  opacity: 0.8;
}

.eh-home .hm-svc:hover .hm-svc-name {
  color: #90191c;
}

.eh-home .hm-svc:hover .hm-svc-cta svg {
  transform: translateX(5px);
}

/* About: gentle zoom on the photo, badge lifts to meet it */
.eh-home .hm-about-visual:hover img {
  transform: scale(1.02);
  box-shadow: 0 22px 56px rgba(26, 26, 26, 0.16);
}

.eh-home .hm-about-visual:hover .hm-about-badge {
  transform: translateY(-6px);
}

/* Shared components, homepage only - a little extra life on the cards */
.eh-home .vm-service-card {
  transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
}

.eh-home .vm-service-card:hover {
  transform: translateY(-5px);
  border-color: rgba(144, 25, 28, 0.22);
  box-shadow: 0 16px 36px rgba(144, 25, 28, 0.10);
}

.eh-home .vm-service-card .vm-service-icon,
.eh-home .vm-service-card .vm-service-num {
  transition: transform 0.4s ease, background 0.4s ease, color 0.4s ease;
}

.eh-home .vm-service-card:hover .vm-service-icon {
  transform: translateY(-3px) scale(1.06);
}

.eh-home .vm-service-card:hover .vm-service-num {
  color: #c9a656;
}

/* Blog cards: zoom the thumbnail, redden the title */
.eh-home .eh-post-thumb {
  display: block;
  overflow: hidden;
}

.eh-home .eh-post-thumb img {
  transition: transform 0.7s ease;
}

.eh-home .eh-post-card:hover .eh-post-thumb img {
  transform: scale(1.06);
}

.eh-home .eh-post-card .eh-post-title a {
  transition: color 0.3s ease;
}

.eh-home .eh-post-card:hover .eh-post-title a {
  color: #90191c;
}

/* Destination links: nudge right on hover (shared rule already does colour) */
.eh-home .eh-dest-list a {
  transition: color 0.25s ease, transform 0.25s ease;
}

/* Respect users who ask for reduced motion */
@media (prefers-reduced-motion: reduce) {
  .eh-home .hm-svc,
  .eh-home .hm-svc-media img,
  .eh-home .hm-svc-cta svg,
  .eh-home .hm-about-visual img,
  .eh-home .hm-about-badge,
  .eh-home .vm-service-card,
  .eh-home .vm-service-card .vm-service-icon,
  .eh-home .eh-post-thumb img,
  .eh-home .eh-dest-list a {
    transition: none !important;
  }
  .eh-home .hm-svc:hover,
  .eh-home .hm-svc:hover .hm-svc-media img,
  .eh-home .hm-about-visual:hover img,
  .eh-home .hm-about-visual:hover .hm-about-badge,
  .eh-home .vm-service-card:hover,
  .eh-home .vm-service-card:hover .vm-service-icon,
  .eh-home .eh-post-card:hover .eh-post-thumb img {
    transform: none !important;
  }
}


/* ===============================================================
   Responsive
   =============================================================== */
@media (max-width: 1100px) {
  .hm-services-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 960px) {
  .hm-about-grid {
    grid-template-columns: 1fr;
    gap: 44px;
  }
  .hm-about-visual img { height: 340px; }
  .hm-about-title { font-size: 28px; }
  .hm-services-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 700px) {
  .hm-about { padding: 56px 16px; }
  .hm-services { padding: 56px 16px; }
  .hm-reviews { padding: 50px 16px; }
  .hm-about-visual img { height: 260px; }
  .hm-about-badge {
    right: 12px;
    bottom: -14px;
    padding: 14px 18px;
  }
  .hm-about-badge-num { font-size: 27px; }
}

@media (max-width: 520px) {
  .hm-services-grid { grid-template-columns: 1fr; gap: 18px; }
  .hm-about-title { font-size: 24px; }
}
