html { scroll-behavior: smooth }
*, *::before, *::after { box-sizing: border-box }
body { overflow-x: hidden }
img { max-width: 100%; height: auto }

/* Buttons */
.wp-block-button__link,
.wp-element-button {
  transition: all .25s ease;
  padding: .85rem 2rem;
}
.wp-block-button__link:hover,
.wp-element-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px color-mix(in srgb, var(--wp--preset--color--primary) 40%, transparent);
}
.wp-block-button.is-style-outline .wp-block-button__link {
  border: 2px solid var(--wp--preset--color--primary);
  color: var(--wp--preset--color--primary);
  background: transparent;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--white);
}

/* Service cards */
.service-card {
  transition: transform .3s ease, box-shadow .3s ease;
  border: 1px solid var(--wp--preset--color--border);
  border-radius: 16px;
  overflow: hidden;
}
.service-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 40px rgba(0,0,0,.1);
}

/* Navigation */
.wp-block-navigation-item a {
  color: var(--wp--preset--color--link) !important;
  transition: color .2s ease;
}
.wp-block-navigation-item a:hover {
  color: var(--wp--preset--color--link-hover) !important;
}

/* Cover blocks - subtle grid pattern overlay */
.wp-block-cover {
  overflow: hidden;
  position: relative;
}
.wp-block-cover::after {
  content: '';
  position: absolute;
  inset: 0;
  opacity: 0.08;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 20h40M20 0v40' stroke='%23ffffff' stroke-width='0.5' fill='none'/%3E%3Ccircle cx='20' cy='20' r='1.5' fill='%23ffffff' opacity='0.6'/%3E%3C/svg%3E");
  background-size: 40px 40px;
  z-index: 1;
}
.wp-block-cover .wp-block-cover__inner-container {
  position: relative;
  z-index: 2;
}

/* Footer - absolutely no red anywhere. Everything gray/white */
.has-dark-background-color,
.has-dark-background-color * {
  color: var(--wp--preset--color--border) !important;
}
.has-dark-background-color h1,
.has-dark-background-color h2,
.has-dark-background-color h3,
.has-dark-background-color h4,
.has-dark-background-color .has-white-color {
  color: var(--wp--preset--color--white) !important;
}
.has-dark-background-color .has-text-secondary-color {
  color: var(--wp--preset--color--text-secondary) !important;
}
.has-dark-background-color a {
  color: var(--wp--preset--color--border) !important;
  text-decoration: none;
  transition: color .2s ease;
}
.has-dark-background-color a:hover {
  color: var(--wp--preset--color--white) !important;
}
.has-dark-background-color .wp-block-button__link {
  color: var(--wp--preset--color--white) !important;
  background-color: var(--wp--preset--color--primary) !important;
}
.has-dark-background-color .wp-block-button__link:hover {
  background-color: var(--wp--preset--color--primary-dark) !important;
}

/* Product card images - fixed 450px height, crop overflow */
.wp-block-column > .wp-block-group > .wp-block-image img {
  height: 280px;
  object-fit: cover;
  width: 100%;
}

/* Responsive */
@media (max-width: 782px) {
  .wp-block-columns {
    flex-direction: column !important;
  }
  .wp-block-column {
    flex-basis: 100% !important;
    width: 100% !important;
  }
  .wp-block-column > .wp-block-group > .wp-block-image img {
    height: 200px;
  }
}
