/* victoria-build e2c553f88199a5a5: generated by scripts/build-victoria.mjs from styles.css (purged for the Victoria location page) + victoria.css. Edit those, then run "npm run build:victoria". */
:root {
  --color-primary: #2563eb;
  --color-primary-dark: #1d4ed8;
  --color-primary-light: #3b82f6;
  --color-secondary: #0f172a;
  --color-accent: #10b981;
  --color-accent-light: #34d399;
  --color-accent-dark: #047857; /* white text passes AA on this green */
  --color-text: #1e293b;
  --color-text-light: #64748b;
  --color-text-lighter: #94a3b8;
  --color-background: #ffffff;
  --color-background-alt: #f8fafc;
  --color-background-dark: #0f172a;
  --color-border: #e2e8f0;
  --color-canada: #dc2626;
  --font-heading: "Urbanist", sans-serif;
  --font-body: "DM Sans", sans-serif;
  --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1),
    0 4px 6px -4px rgb(0 0 0 / 0.1);
  --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1),
    0 8px 10px -6px rgb(0 0 0 / 0.1);
  --transition-fast: 150ms ease;
  --transition-base: 300ms ease;
  --transition-slow: 500ms ease;
  --radius-sm: 0.375rem;
  --radius-md: 0.5rem;
  --radius-lg: 0.75rem;
  --radius-xl: 1rem;
  --radius-2xl: 1.5rem;
  --radius-full: 9999px;
  --gradient-primary: linear-gradient(
    135deg,
    var(--color-primary) 0%,
    var(--color-primary-dark) 100%
  );
  --gradient-accent: linear-gradient(
    135deg,
    var(--color-primary) 0%,
    var(--color-accent) 100%
  );
  --gradient-premium: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
}
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
html {
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body {
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--color-text);
  background-color: var(--color-background);
  overflow-x: hidden;
}
img {
  max-width: 100%;
  height: auto;
  display: block;
}
a {
  text-decoration: none;
  color: inherit;
  transition: color var(--transition-fast);
}
button {
  font-family: inherit;
  cursor: pointer;
  border: none;
  background: none;
}
h1,
h2,
h3 {
  font-family: var(--font-heading);
  font-weight: 700;
  line-height: 1.2;
  color: var(--color-secondary);
}
h1 {
  font-size: clamp(2.5rem, 5vw, 4rem);
}
h2 {
  font-size: clamp(2rem, 4vw, 3rem);
}
h3 {
  font-size: clamp(1.5rem, 3vw, 2rem);
}
p {
  color: var(--color-text-light);
}
.container {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 1rem 1.5rem;
}
.section {
  padding: 4rem 0;
}
.section--dark {
  background-color: var(--color-background-dark);
  color: var(--color-background);
}
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.875rem 1.75rem;
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 600;
  border-radius: var(--radius-lg);
  transition: all var(--transition-base);
  white-space: nowrap;
}
.btn--primary {
  background: var(--gradient-primary);
  color: white;
  box-shadow: 0 4px 14px 0 rgba(37, 99, 235, 0.4);
}
.btn--primary:hover,
.btn--white:hover {
  transform: translateY(-2px);
}
.btn--primary:hover {
  box-shadow: 0 6px 20px 0 rgba(37, 99, 235, 0.5);
}
.btn--secondary {
  background: transparent;
  color: var(--color-secondary);
  border: 2px solid var(--color-border);
}
.btn--secondary:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}
.btn--secondary-light {
  background: transparent;
  color: white;
  border: 2px solid rgba(255, 255, 255, 0.3);
}
.btn--secondary-light:hover {
  border-color: white;
  background: rgba(255, 255, 255, 0.1);
}
.btn--white {
  background: white;
  color: var(--color-secondary);
}
.btn--white:hover {
  box-shadow: var(--shadow-lg);
}
.btn--large {
  padding: 1rem 2rem;
  font-size: 1.125rem;
}
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes fadeInLeft {
  from {
    opacity: 0;
    transform: translateX(-30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes fadeInRight {
  from {
    opacity: 0;
    transform: translateX(30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes scaleIn {
  from {
    opacity: 0;
    transform: scale(0.9);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
@keyframes float {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
}
@keyframes pulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}
@keyframes slideInfinite {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}
.animate-on-scroll {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.animate-on-scroll.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.animate-delay-1 {
  transition-delay: 0.1s;
}
.animate-delay-2 {
  transition-delay: 0.2s;
}
.animate-delay-3 {
  transition-delay: 0.3s;
}
.animate-delay-4 {
  transition-delay: 0.4s;
}
.card,
.service-card {
  background: white;
  border-radius: var(--radius-xl);
  padding: 2rem;
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--color-border);
  transition: all var(--transition-base);
}
.card:hover,
.project-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-xl);
}
.service-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-xl);
  border-color: transparent;
}
.service-card {
  position: relative;
  overflow: hidden;
}
.service-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: var(--gradient-accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--transition-base);
}
.service-card:hover::before {
  transform: scaleX(1);
}

.service-card__icon {
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-lg);
}
.service-card__icon {
  width: 64px;
  height: 64px;
  background: var(--gradient-primary);
  margin-bottom: 1.5rem;
}
.service-card__icon {
  width: 64px;
}
.service-card__icon img {
  width: 32px;
  height: 32px;
  filter: brightness(0) invert(1);
}
.text-gradient {
  background: var(--gradient-primary);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.service-hero__bg-grid {
  position: absolute;
  inset: 0;
  background-image: linear-gradient(
      rgba(37, 99, 235, 0.03) 1px,
      transparent 1px
    ),
    linear-gradient(90deg, rgba(37, 99, 235, 0.03) 1px, transparent 1px);
  background-size: 60px 60px;
}

.industry-cta {
  padding: 6rem 0;
  background: var(--gradient-primary);
  text-align: center;
  color: white;
  position: relative;
  overflow: hidden;
}

.industry-cta__title {
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  color: white;
  margin-bottom: 1rem;
}

.industry-cta__description {
  font-size: 1.25rem;
  color: rgba(255, 255, 255, 0.9);
  max-width: 700px;
  margin: 0 auto 2rem;
}
.industry-cta__description {
  font-size: 1.125rem;
  max-width: 600px;
}

.industry-cta__buttons {
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1002;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--color-border);
  transition: all var(--transition-base);
}
.header.scrolled {
  box-shadow: var(--shadow-md);
}
.header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 0;
}
.header__logo {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.header__logo img {
  width: 50px;
  height: 50px;
}
.header__logo-text {
  font-family: "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI",
    Roboto, sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--color-secondary);
}
.header__nav {
  display: flex;
  align-items: center;
  gap: 2rem;
}
.header__nav-link {
  font-family: var(--font-heading);
  font-weight: 500;
  color: var(--color-text);
  position: relative;
}
.header__nav-link::after {
  content: "";
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--color-primary);
  transition: width var(--transition-base);
}
.header__nav-link:hover::after {
  width: 100%;
}
.header__nav-link:hover {
  color: var(--color-primary);
}
.header__actions {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.header__mobile-toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  padding: 0.5rem;
  background: none;
  border: none;
  cursor: pointer;
  z-index: 1002;
  position: relative;
}
.header__mobile-toggle span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--color-secondary);
  transition: all var(--transition-base);
  transform-origin: center;
}
.header__mobile-toggle.is-active span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.header__mobile-toggle.is-active span:nth-child(2) {
  opacity: 0;
  transform: translateX(-10px);
}
.header__mobile-toggle.is-active span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}
@media (max-width: 1024px) {
  .header__nav {
    position: fixed;
    top: 0;
    right: 0;
    width: 100%;
    max-width: 400px;
    max-height: 75vh;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
    align-content: start;
    padding: 5rem 1.25rem 1.25rem;
    box-shadow: -8px 0 32px rgba(0, 0, 0, 0.12);
    transform: translateX(100%);
    transition: transform var(--transition-base);
    z-index: 1001;
    overflow-y: auto;
    border-radius: 0 0 var(--radius-2xl) var(--radius-2xl);
    backdrop-filter: blur(10px);
  }
  .header__nav.is-open {
    transform: translateX(0);
    animation: slideInRight 0.3s ease-out;
  }
  @keyframes slideInRight {
    from {
      transform: translateX(100%);
      opacity: 0;
    }
    to {
      transform: translateX(0);
      opacity: 1;
    }
  }
  .header__nav-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--color-secondary);
    background: white;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    transition: all var(--transition-base);
    text-decoration: none;
    position: relative;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
  }
  .header__nav-link::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background: var(--gradient-primary);
    transform: scaleY(0);
    transform-origin: bottom;
    transition: transform var(--transition-base);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  }
  .header__nav-link:hover,
  .header__nav-link:active {
    color: var(--color-primary);
    border-color: var(--color-primary);
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.04) 0%, rgba(16, 185, 129, 0.04) 100%);
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(37, 99, 235, 0.2);
  }
  .header__nav-link:hover::before {
    transform: scaleY(1);
  }
  .header__nav-link::after {
    content: '→';
    font-size: 1rem;
    font-weight: 700;
    opacity: 0;
    transform: translateX(-6px);
    transition: all var(--transition-base);
    color: var(--color-primary);
  }
  .header__nav-link:hover::after {
    opacity: 1;
    transform: translateX(2px);
  }
  .header__actions {
    display: none;
  }
  .header__mobile-toggle {
    display: flex;
  }
  body.menu-open::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1000;
    animation: fadeIn 0.3s ease;
  }
  body.menu-open {
    overflow: hidden;
  }
  @keyframes fadeIn {
    from {
      opacity: 0;
    }
    to {
      opacity: 1;
    }
  }
}
@media (max-width: 480px) {
  .header__nav {
    max-width: 100%;
    padding: 5rem 1rem 1rem;
    gap: 0.625rem;
  }
  .header__nav-link {
    padding: 0.875rem 0.75rem;
    font-size: 0.875rem;
  }
}

.service-hero__bg-pattern {
  position: absolute;
  top: 0;
  right: -10%;
  width: 60%;
  height: 100%;
  background: radial-gradient(
    circle at center,
    rgba(37, 99, 235, 0.08) 0%,
    transparent 70%
  );
}
@media (max-width: 640px) {
  /* Hide decorative stats card on mobile to prevent blocking images */
}
.services {
  padding: 6rem 0;
  background: var(--color-background-alt);
}
.service-card__title {
  font-size: 1.25rem;
  margin-bottom: 0.75rem;
}
.service-card__description {
  font-size: 0.95rem;
  margin-bottom: 1.5rem;
}
.service-card__link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 600;
  color: var(--color-primary);
  transition: gap var(--transition-fast);
}
.service-card__link:hover {
  gap: 0.75rem;
}
.service-card__link svg {
  width: 16px;
  height: 16px;
}
.process {
  padding: 6rem 0;
  background: var(--color-background-dark);
  color: white;
}
/* Dark process band: keep body copy light (the shared header/step rules use the light-background grey) */
/* In-copy links to the instant quote (home and location pages) */

.project-card__description a {
  color: inherit;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.footer {
  background: var(--color-secondary);
  color: white;
  padding-top: 4rem;
}
.footer__main {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
  gap: 3rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.footer__brand {
  max-width: 300px;
}
.footer__logo {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}
.footer__logo img {
  width: 50px;
  height: 50px;
}
.footer__logo-text {
  font-family: "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI",
    Roboto, sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
}
.footer__tagline {
  color: var(--color-text-lighter);
  margin-bottom: 1.5rem;
}
.footer__social {
  display: flex;
  gap: 1rem;
}
.footer__social-link {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.1);
  border-radius: var(--radius-md);
  color: white;
  transition: all var(--transition-fast);
}
.footer__social-link:hover {
  background: var(--color-primary);
  transform: translateY(-2px);
}
.footer__social-link svg {
  width: 20px;
  height: 20px;
}
.footer__address-card {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 0.875rem;
  margin-top: 1.5rem;
  padding: 1rem 1.125rem;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius-lg);
  color: var(--color-text-lighter);
  overflow: hidden;
  transition: transform var(--transition-base), background var(--transition-base),
    border-color var(--transition-base), box-shadow var(--transition-base),
    color var(--transition-base);
}
.footer__address-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--gradient-accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--transition-base);
}
.footer__address-card:hover {
  transform: translateY(-3px);
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(37, 99, 235, 0.45);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25),
    0 0 0 1px rgba(37, 99, 235, 0.12);
  color: white;
}
.footer__address-card:hover::before {
  transform: scaleX(1);
}
.footer__address-icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background: rgba(37, 99, 235, 0.2);
  border-radius: var(--radius-md);
  color: var(--color-primary-light);
  transition: transform var(--transition-base), background var(--transition-base),
    color var(--transition-base);
}
.footer__address-card:hover .footer__address-icon {
  transform: scale(1.08) translateY(-1px);
  background: rgba(37, 99, 235, 0.35);
  color: white;
}
.footer__address-icon svg {
  width: 18px;
  height: 18px;
}
.footer__address-text {
  font-size: 0.875rem;
  line-height: 1.55;
  font-style: normal;
}
@media (prefers-reduced-motion: reduce) {
  .footer__address-card,
  .footer__address-card::before,
  .footer__address-icon {
    transition: none;
  }
  .footer__address-card:hover {
    transform: none;
  }
  .footer__address-card:hover .footer__address-icon {
    transform: none;
  }
}
.footer__column h3 {
  color: white;
  font-size: 1rem;
  margin-bottom: 1.5rem;
}
.footer__links {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.footer__link {
  color: var(--color-text-lighter);
  transition: color var(--transition-fast);
}
.footer__link:hover {
  color: white;
}
.footer__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.5rem 0;
  font-size: 0.875rem;
  color: var(--color-text-lighter);
}
.footer__bottom p {
  color: inherit;
}
@media (max-width: 1024px) {
  .footer__main {
    grid-template-columns: repeat(2, 1fr);
  }
  .footer__brand {
    grid-column: span 2;
  }
}
@media (max-width: 640px) {
  .footer__main {
    grid-template-columns: 1fr;
  }
  .footer__brand {
    grid-column: span 1;
  }
  .footer__bottom {
    flex-direction: column;
    gap: 1rem;
    text-align: center;
  }
}
.service-hero {
  position: relative;
  padding: 140px 0 100px;
  background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
  overflow: hidden;
}
.service-hero__bg {
  position: absolute;
  inset: 0;
}
.service-hero__content {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}
.service-hero__text {
  animation: fadeInLeft 0.8s ease forwards;
}
.service-hero__title {
  font-size: clamp(2.5rem, 5vw, 3.5rem);
  margin-bottom: 0.5rem;
}
.service-hero__description {
  font-size: 1.125rem;
  margin-bottom: 2rem;
  max-width: 540px;
}
.service-hero__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
.service-hero__visual {
  position: relative;
  animation: fadeInRight 0.8s ease 0.2s forwards;
  opacity: 0;
}
.service-hero__image-wrapper {
  border-radius: var(--radius-2xl);
  overflow: hidden;
  box-shadow: var(--shadow-xl);
}
.service-hero__image {
  width: 100%;
  height: auto;
  aspect-ratio: 4/3;
  object-fit: cover;
}
@media (max-width: 1024px) {
  .service-hero {
    padding: 120px 0 80px;
  }
  .service-hero__content {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .service-hero__text {
    order: 0;
  }
  .service-hero__visual {
    order: 1;
    max-width: 500px;
    margin: 0 auto;
  }
  .service-hero__description {
    margin-left: auto;
    margin-right: auto;
  }
  .service-hero__cta {
    justify-content: center;
  }
}
@media (max-width: 768px) {
  /* Adjust specs card on mobile to ensure it doesn't block image */
  /* Left-align breadcrumb and tech badge on mobile */
  .service-hero__text .breadcrumb {
    text-align: left;
    justify-content: flex-start;
  }
}
.breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  margin-bottom: 1.5rem;
  color: var(--color-text-light);
}
.breadcrumb a {
  color: var(--color-primary);
}
.breadcrumb a:hover {
  text-decoration: underline;
}
.project-card {
  background: white;
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-md);
  transition: all var(--transition-base);
}
.project-card__image {
  width: 100%;
  aspect-ratio: 16/10;
  object-fit: cover;
}
.project-card__content {
  padding: 1.5rem;
}
.project-card__title {
  font-size: 1.25rem;
  margin-bottom: 0.75rem;
}
.project-card__description {
  font-size: 0.9375rem;
  color: var(--color-text-light);
  margin-bottom: 1rem;
  line-height: 1.6;
}
.project-card__link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--color-primary);
  font-weight: 600;
  font-size: 0.9375rem;
}
.project-card__link:hover {
  gap: 0.75rem;
}

/* Light variant for parts grid inside what-we-build--alt */

/* ========================================
   Industry Pages - Additional Styles
   ======================================== */

/* Section Tag */

/* Applications List */

/* Process Section */


/* Intro Section */

/* Applications Section with Image */

/* CAD Callout */

/* Quote Section with Image */

/* Parts Grid Features Variant */

/* What We Build Alt Background */

/* Temporary closure notice (instant quote & contact) */

/* ===== SLS service page (photo-led, full-bleed) ===== */

/* Spec strip overlapping hero */

/* Section header compact */

/* Inline links in location page cards are underlined, not just coloured */

/* Hidden from view, still read by screen readers */

/* Links inside section intros are underlined, not just coloured */

/* Gallery grid */

/* Material + process */

/* Finishing & colour */

/* Compare */

/* FAQ accordion */

/* Comparison table row links */

/* Link to the dyeing blog post */

/* ===== SLA service page (resin library) ===== */
/* Studio hero: no photo, a tray of resin samples is the visual */

/* Job selector: pick what the part has to do, see the resin */
@keyframes ma-pop {
  from {
    opacity: 0;
    transform: scale(0.94);
  }
}

/* Full resin library: filters + cards */
@keyframes ma-in {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
}

/* Surface roughness chart (dark finishing panel) */

/* ===== 3D printing services hub (photo-led, expanding process columns) =====
   Scoped to main.pc-page. Reuses .ma-sh, .ma-compare and .ma-faq from the SLS page. */

/* First screen */

/* Expanding photo columns */
/* Details reveal: animates height with the 0fr -> 1fr grid trick */
/* Readability: a solid backing fades in behind the text when a column opens */
/* The whole card links to its process page; an arrow badge shows once it's open */

/* How it works: one example order, day by day */

/* Specs, folded away for the people who want them */

/* Condensed page: smaller section headings than the site default */

/* Short laptop screens: keep columns tall enough for the details */
@media (min-width: 1025px) and (max-height: 760px) {
  /* Short screens: hide the "best for" line while a column is open */
}

@media (max-width: 1024px) {
  /* Tablets and phones: swipeable cards; tap one to open its details */
}
/* Proof strip at the top of "How it works" */

/* ===== 3D scanning service page (original -> scan -> new piece) =====
   Scoped to main.sc-page. Reuses .ma-hero/.ma-studio, .ma-strip, .ma-sh,
   .ma-finder, .ma-tile and .ma-faq from the SLS and SLA pages. */

/* Hero visual: one object as a deck of cards. Position 0 is the front card,
   1 waits on the right, 2 on the left. */
/* Auto-advance: the active step's bar fills and the deck moves on when the
   animation ends. Hover, focus or scrolling away pauses it; a click stops it. */
@keyframes sc-fill {
  to {
    width: 100%;
  }
}

/* Highlights card overlapping the hero, in place of a spec strip */

/* Job picker: photos instead of resin samples */
/* Original / 3D scan side by side in a picker panel */
/* Scans on a dark studio background: show the whole piece */

/* Big projects & proven results: dark band, photo mosaic + side panel */
/* Client logos, knocked out to white on the dark band */
/* Pure-black source art inverts to full white; dim it to match the raster logos */

/* ===== FDM service page (proven jobs, material ladders, compare-all chart) ===== */
/* ===== FDM service page: shared bits (reuses the .ma-* system in styles.css) ===== */

/* Hero: full-bleed photo of a real batch, text on the left */
/* Spec strip sits between the hero and the dark proof band */

/* Dark band: same navy as the hero, blue accents only */

/* What FDM is best at: real jobs on the dark band */

/* Materials: good / better / best by need */

/* Materials view switch: simple picker <-> full table */

/* Colours in stock */

/* How it works: photo + four steps (reuses the SLS process layout) */

/* Design considerations: infill demo + design limits */

/* ===== Victoria location page (loaded after styles.css) =====
   Base styles come from /styles.css (purged for this page by scripts/build-victoria.mjs); everything below is new.
   It only uses the variables defined in styles.css.

   The page is one path: hero, then 01 How it works, 02 What we print, 03 Made in Victoria, 04 Pricing, 05 Free pickup
   (map), 06 FAQ and the closing band. Every section repeats the same pattern: numbered label, heading, one component,
   one next action. */

/* ---------- Hero ---------- */
/* The first fade-in starts at once, and the trust strip sits under both columns */
.service-hero {
  padding-bottom: 3.5rem;
}
.service-hero__visual {
  animation-delay: 0s;
}
/* keep "Victoria, BC" together in the hero heading */
.service-hero__title .text-gradient {
  white-space: nowrap;
}
.vic-hero-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1.75rem;
  margin-top: 1.5rem;
}
.vic-hero-meta a {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.9375rem;
  color: var(--color-text-light);
}
.vic-hero-meta strong,
.vic-hero-meta a + a {
  font-family: var(--font-heading);
  font-weight: 700;
  color: var(--color-secondary);
}
.vic-hero-meta a:hover,
.vic-hero-meta a:hover strong {
  color: var(--color-primary);
}
.vic-hero-meta svg {
  flex: none;
  width: 18px;
  height: 18px;
  color: var(--color-primary);
}
.vic-stars {
  color: #d97706;
  letter-spacing: 2px;
  white-space: nowrap;
}
.vic-trust {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  margin-top: 3rem;
  padding: 0;
  list-style: none;
  overflow: hidden;
  background: var(--color-border);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-sm);
}
.vic-trust li {
  background: white;
}
.vic-trust__item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  height: 100%;
  padding: 0.875rem 1.25rem;
}
.vic-trust svg {
  flex: none;
  width: 22px;
  height: 22px;
  color: var(--color-primary);
}
.vic-trust span {
  font-size: 0.9375rem;
  line-height: 1.35;
  color: var(--color-text-light);
}
.vic-trust strong {
  display: block;
  font-family: var(--font-heading);
  color: var(--color-secondary);
}

/* ---------- Shared section pattern ---------- */
.vic-sec {
  padding: 5.5rem 0;
}
.vic-sec--alt {
  background: var(--color-background-alt);
}
section[id] {
  scroll-margin-top: 5rem;
}
.vic-head {
  max-width: 720px;
  margin: 0 auto 3rem;
  text-align: center;
}
.vic-head h2 {
  font-size: clamp(1.75rem, 3.2vw, 2.5rem);
  margin-bottom: 0.75rem;
  text-wrap: balance;
}
.vic-head p {
  font-size: 1.125rem;
  text-wrap: balance;
}
.vic-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  margin-bottom: 1rem;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-primary);
}
.vic-eyebrow__n {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  height: 1.5rem;
  padding: 0 0.5rem;
  border-radius: var(--radius-full);
  background: rgba(37, 99, 235, 0.1);
  color: var(--color-primary-dark);
  font-family: var(--font-heading);
  letter-spacing: 0.04em;
}
.vic-sub {
  margin: 3.5rem 0 1.25rem;
  font-size: 1.5rem;
  text-align: center;
}
/* The one next action at the end of a section */
.vic-action {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
  margin-top: 3rem;
}
.vic-action--row {
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
  margin-top: 3.5rem;
}
/* In-copy links */
.vic-head p a,
.vic-pline a,
.vic-faq p a,
.vic-work p a {
  color: var(--color-primary);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.vic-head p a {
  white-space: nowrap;
}
.vic-head p a:hover,
.vic-pline a:hover,
.vic-faq p a:hover {
  color: var(--color-primary-dark);
}
.vic-ptile p a {
  color: var(--color-primary);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
/* Phone link in the closing band */
.industry-cta__description a {
  color: inherit;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.vic-chip {
  display: inline-flex;
  align-self: flex-start;
  align-items: center;
  padding: 0.3125rem 0.75rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  background: var(--color-background-alt);
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  color: var(--color-secondary);
}

/* ---------- 01 How it works (the spine) ---------- */
.vic-how {
  padding: 5.5rem 0;
  background-color: var(--color-background-dark);
  color: white;
}
.vic-how .vic-head h2 {
  color: white;
}
.vic-how .vic-eyebrow {
  color: var(--color-accent-light);
}
.vic-how .vic-eyebrow__n {
  background: rgba(16, 185, 129, 0.18);
  color: inherit;
}
/* The one Latin Extended / combining-mark word on the page: a system font avoids a 16 KB font subset */
.vic-sysfont {
  font-family: system-ui, "Segoe UI", Roboto, sans-serif;
}
.vic-ask p a {
  color: var(--color-primary-dark);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}
/* Reserve the hero photo's full width from first paint at tablet and phone widths */
@media (max-width: 1024px) {
  .service-hero__visual {
    width: 100%;
  }
}
.vic-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
  list-style: none;
}
.vic-step {
  position: relative;
  padding: 0 0.5rem;
  text-align: center;
}
.vic-step__n {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  margin: 0 auto 1.25rem;
  border: 2px solid var(--color-primary-light);
  border-radius: 50%;
  background: linear-gradient(135deg, #1e3a8a 0%, #065f46 100%);
  font-family: var(--font-heading);
  font-size: 1.75rem;
  font-weight: 800;
  color: white;
}
.vic-step__title {
  margin-bottom: 0.5rem;
  font-size: 1.25rem;
  color: white;
}
.vic-step__text {
  font-size: 1rem;
  color: #cbd5e1;
}
.vic-step__text a {
  color: white;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
/* Connector from each step to the next: a line with an arrowhead */
.vic-step:not(:last-child)::before {
  content: "";
  position: absolute;
  top: 35px;
  left: calc(50% + 48px);
  width: calc(100% + 2rem - 96px);
  height: 2px;
  background: linear-gradient(90deg, var(--color-primary-light), var(--color-accent));
}
.vic-step:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 31px;
  left: calc(150% + 2rem - 59px);
  width: 9px;
  height: 9px;
  border-top: 2px solid var(--color-accent);
  border-right: 2px solid var(--color-accent);
  transform: rotate(45deg);
}
.vic-nofile {
  padding: 0.75rem 1.25rem;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: var(--radius-lg);
  background: rgba(255, 255, 255, 0.05);
  font-size: 0.9375rem;
  text-align: center;
  color: #cbd5e1;
}
.vic-nofile a {
  color: white;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

/* ---------- 02 What we print ---------- */
.vic-tech {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}
.vic-tcard {
  display: flex;
  flex-direction: column;
  padding: 1.75rem;
}
.vic-tcard .service-card__icon {
  margin-bottom: 1.25rem;
}
.vic-tcard .service-card__description {
  margin-bottom: 1.25rem;
  font-size: 1rem;
}
.vic-tcard .service-card__link {
  margin-top: auto;
  padding-top: 1.25rem;
}
.vic-ask {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem 2rem;
  margin-top: 2.5rem;
  padding: 1.5rem 2rem;
  border: 1px solid rgba(37, 99, 235, 0.2);
  border-radius: var(--radius-xl);
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.06), rgba(16, 185, 129, 0.06));
}
.vic-ask p {
  font-size: 1.125rem;
  color: var(--color-text);
  text-wrap: balance;
}
.vic-ask strong {
  font-family: var(--font-heading);
  color: var(--color-secondary);
}
.vic-ask__links {
  display: flex;
  flex: none;
  flex-wrap: wrap;
  gap: 0.75rem;
}

/* ---------- 03 Made in Victoria ---------- */
.vic-logos {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 1.25rem 2.75rem;
  margin: 0 0 3.5rem;
  padding: 1.75rem 2rem;
  list-style: none;
  background: white;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-sm);
}
.vic-logos img {
  width: auto;
  height: 60px;
  filter: grayscale(100%);
  opacity: 0.7;
}
.vic-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}
.vic-cards .project-card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-sm);
}
.vic-cards .project-card__image {
  aspect-ratio: 4 / 3;
}
.vic-cards .project-card__content {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  padding: 1.5rem 1.5rem 1.75rem;
}
.vic-cards .project-card__title {
  font-size: 1.1875rem;
}
.vic-cards .project-card__description {
  flex-grow: 1;
  font-size: 1rem;
}
.vic-work {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
  list-style: none;
}
.vic-work li {
  position: relative;
  padding: 1.25rem 1.5rem;
  background: white;
  border: 1px solid var(--color-border);
  border-left: 4px solid var(--color-primary);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  transition: box-shadow var(--transition-base), transform var(--transition-base);
}
.vic-work li:hover {
  box-shadow: var(--shadow-md);
}
.vic-work a {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.25rem;
  font-family: var(--font-heading);
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--color-secondary);
}
.vic-work a::before {
  content: "";
  position: absolute;
  inset: 0;
}
.vic-work a::after {
  content: "\2192";
  color: var(--color-primary);
}
.vic-work a:hover {
  color: var(--color-primary);
}
.vic-work p {
  font-size: 0.9375rem;
}
.vic-reviews {
  margin-top: 0;
  text-align: center;
}
.vic-rating {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.25rem 0.75rem;
  margin-bottom: 1.75rem;
  font-weight: 600;
  color: var(--color-secondary);
}
.vic-rvws {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  max-width: 980px;
  margin: 0 auto;
  text-align: left;
}
.vic-rvw {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
  padding: 1.75rem;
  background: white;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-sm);
}
.vic-rvw blockquote {
  flex-grow: 1;
}
.vic-rvw p {
  font-size: 1rem;
  line-height: 1.65;
  color: var(--color-text);
}
.vic-rvw figcaption {
  font-size: 0.875rem;
  color: var(--color-text-light);
}
.vic-rvw figcaption b {
  color: var(--color-secondary);
}

/* ---------- 04 Pricing ---------- */
.vic-ptiles {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
}
.vic-ptile {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 0.75rem 1rem;
  align-content: start;
  padding: 1.5rem;
  background: white;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-sm);
}
.vic-ptile h3 {
  font-size: 1.5rem;
}
.vic-ptile .vic-chip {
  align-self: center;
}
.vic-ptile p {
  grid-column: 1 / -1;
  font-size: 0.9375rem;
  line-height: 1.65;
}
.vic-pline {
  max-width: 720px;
  margin: 2rem auto 0;
  font-size: 1.0625rem;
  text-align: center;
  text-wrap: balance;
}
.vic-sec .vic-pline + .vic-action {
  margin-top: 2rem;
}

/* ---------- 05 Visit the shop ---------- */
.vic-visit {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 2rem;
  align-items: stretch;
}
.vic-shop {
  display: flex;
  flex-direction: column;
  padding: 2rem;
  background: white;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-sm);
}
.vic-shop h3 {
  margin-bottom: 1.5rem;
  font-size: 1.375rem;
}
.vic-facts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem 1.5rem;
  margin-bottom: 2rem;
}
.vic-facts dt {
  margin-bottom: 0.25rem;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-text-light);
}
.vic-facts dd,
.vic-facts address {
  font-size: 1.0625rem;
  font-style: normal;
  line-height: 1.5;
  color: var(--color-secondary);
}
.vic-facts a {
  color: var(--color-primary);
  font-weight: 600;
}
.vic-facts a:hover {
  text-decoration: underline;
}
.vic-shop__btns {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: auto;
}
/* The map box has a fixed shape, so the embed loading in cannot move anything */
.vic-map {
  position: relative;
  min-height: 380px;
  overflow: hidden;
  background: #e8eaed;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-sm);
}
.vic-map iframe {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
.vic-areas {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.625rem;
  max-width: 820px;
  margin: 0 auto;
  list-style: none;
}
.vic-areas li {
  padding: 0.5rem 1rem;
  background: white;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  font-weight: 500;
  color: var(--color-secondary);
}

/* ---------- 06 FAQ ---------- */
.vic-faq {
  display: grid;
  gap: 0.75rem;
  max-width: 820px;
  margin: 0 auto;
}
.vic-faq details {
  background: white;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.vic-faq details[open] {
  border-color: rgba(37, 99, 235, 0.35);
  box-shadow: var(--shadow-md);
}
.vic-faq summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.125rem 1.5rem;
  list-style: none;
  cursor: pointer;
  font-family: var(--font-heading);
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--color-secondary);
  border-radius: var(--radius-lg);
}
.vic-faq summary::-webkit-details-marker {
  display: none;
}
.vic-faq summary::after {
  content: "+";
  flex: none;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1;
  color: var(--color-primary);
}
.vic-faq details[open] summary::after {
  content: "\2013";
}
.vic-faq summary:hover {
  color: var(--color-primary);
}
.vic-faq summary:focus-visible {
  outline: 3px solid rgba(37, 99, 235, 0.5);
  outline-offset: 2px;
}
.vic-faq p {
  padding: 0 1.5rem 1.25rem;
  font-size: 1rem;
  line-height: 1.7;
}

/* ---------- Responsive ---------- */
@media (max-width: 1200px) {
  .vic-tech,
  .vic-ptiles {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 1024px) {
  .vic-hero-meta {
    justify-content: center;
  }
  .vic-cards {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  /* Tablet: image beside the text, so three cards do not stack into a very long column */
  .vic-cards .project-card {
    display: grid;
    grid-template-columns: 5fr 7fr;
  }
  .vic-cards .project-card__image {
    height: 100%;
    min-height: 100%;
    aspect-ratio: auto;
    object-fit: cover;
  }
  /* Tablet only: the first two photos are 3:4 portraits; reserve that box so the card does not grow when they load */
  @media (min-width: 641px) {
    .vic-cards .project-card:nth-child(-n + 2) .project-card__image {
      aspect-ratio: 3 / 4;
    }
  }
  .vic-cards .project-card__content {
    justify-content: center;
  }
  .vic-visit {
    grid-template-columns: 1fr;
  }
  .vic-map {
    min-height: 0;
    aspect-ratio: 16 / 9;
  }
  .vic-ask {
    flex-direction: column;
    text-align: center;
  }
  .vic-ask__links {
    justify-content: center;
  }
}
@media (max-width: 768px) {
  .vic-sec,
  .vic-how {
    padding: 3.75rem 0;
  }
  .vic-head {
    margin-bottom: 2.25rem;
  }
  .vic-rvws,
  .vic-work {
    grid-template-columns: 1fr;
  }
  .vic-logos {
    gap: 1rem 1.75rem;
    padding: 1.25rem;
  }
  .vic-logos img {
    height: 44px;
  }
  /* Steps turn into a vertical path */
  .vic-steps {
    grid-template-columns: 1fr;
    gap: 1.75rem;
    max-width: 440px;
    margin: 0 auto;
  }
  .vic-step {
    display: grid;
    grid-template-columns: 56px 1fr;
    grid-template-rows: auto 1fr;
    column-gap: 1.125rem;
    padding: 0;
    text-align: left;
  }
  .vic-step__n {
    grid-row: 1 / span 2;
    width: 56px;
    height: 56px;
    margin: 0;
    font-size: 1.375rem;
  }
  .vic-step__title {
    align-self: end;
    margin-bottom: 0.25rem;
    font-size: 1.125rem;
  }
  .vic-step:not(:last-child)::before {
    top: 62px;
    left: 27px;
    width: 2px;
    height: calc(100% + 1.75rem - 74px);
    background: linear-gradient(180deg, var(--color-primary-light), var(--color-accent));
  }
  .vic-step:not(:last-child)::after {
    top: calc(100% + 1.75rem - 18px);
    left: 23px;
    border-top: 0;
    border-right: 2px solid var(--color-accent);
    border-bottom: 2px solid var(--color-accent);
  }
  .vic-trust {
    grid-template-columns: 1fr;
  }
  .vic-trust__item {
    padding: 0.75rem 1rem;
  }
}
@media (max-width: 640px) {
  /* Keep the heading, the sentence, both buttons and the rating on the first screen of a small phone */
  .service-hero {
    padding-top: 96px;
  }
  .service-hero__cta .btn {
    flex: 1 1 100%;
  }
  .vic-tech,
  .vic-ptiles {
    grid-template-columns: 1fr;
  }
  .vic-ptile {
    padding: 1.25rem 1.5rem 1.5rem;
  }
  /* Technology cards become compact rows: icon beside the text */
  .vic-tcard {
    display: grid;
    grid-template-columns: 56px 1fr;
    align-content: start;
    column-gap: 1rem;
    padding: 1.25rem;
  }
  .vic-tcard .service-card__icon {
    grid-row: 1 / span 2;
    width: 56px;
    height: 56px;
    margin: 0;
  }
  .vic-tcard .service-card__icon img {
    width: 28px;
    height: 28px;
  }
  .vic-tcard .service-card__title {
    margin-bottom: 0.25rem;
    font-size: 1.125rem;
  }
  .vic-tcard .service-card__description {
    margin-bottom: 0.75rem;
    font-size: 0.9375rem;
  }
  .vic-tcard .vic-chip {
    grid-column: 1 / -1;
    justify-self: start;
  }
  .vic-tcard .service-card__link {
    grid-column: 1 / -1;
    justify-self: start;
    margin-top: 0;
    padding-top: 0.75rem;
  }
  .vic-cards .project-card {
    display: flex;
  }
  .vic-cards .project-card__image {
    height: auto;
    min-height: 0;
    aspect-ratio: 16 / 10;
  }
  .vic-shop {
    padding: 1.5rem;
  }
  .vic-map {
    aspect-ratio: 1 / 1;
  }
  .vic-action--row .btn,
  .vic-ask__links .btn {
    flex: 1 1 100%;
  }
  .vic-faq summary {
    padding: 1rem 1.125rem;
    font-size: 1.0625rem;
  }
  .vic-faq p {
    padding: 0 1.125rem 1.125rem;
  }
}
@media (max-width: 480px) {
  .vic-facts {
    grid-template-columns: 1fr;
    gap: 1.125rem;
  }
  .vic-shop__btns .btn {
    flex: 1 1 100%;
  }
  .vic-ask {
    padding: 1.25rem;
  }
}
