/* Services carousel: scoped styles; native scrolling works without JavaScript. */
.xfm-carousel-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin-bottom:1.25rem; }
.xfm-carousel-heading h2 { max-width:700px; margin:.5rem 0 .75rem; }
.xfm-carousel-heading p { margin:0; }
.xfm-carousel-controls { display:flex; gap:.65rem; flex-shrink:0; }
.xfm-carousel-controls[hidden] { display:none; }
.xfm-carousel-controls button { display:grid; place-items:center; width:48px; height:48px; border:1px solid #bbb; border-radius:50%; background:#fff; color:#171717; font-size:1.5rem; cursor:pointer; touch-action:manipulation; }
.xfm-carousel-controls button:disabled { opacity:.35; cursor:default; }
.xfm-carousel-controls button:not(:disabled):hover { background:#171717; color:#fff; }
.xfm-carousel-help { font-size:.85rem; color:#555; margin:0 0 .75rem; }
.xfm-service-track { display:flex; gap:20px; list-style:none; margin:0; padding:6px 3px 20px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding-inline:3px; overscroll-behavior-x:contain; scrollbar-width:thin; scrollbar-color:#a51c2b #eee; }
.xfm-service-track > .xfm-service-slide { flex:0 0 calc((100% - 60px) / 3.25); min-width:0; scroll-snap-align:start; }
.xfm-service-card { display:block; position:relative; height:410px; overflow:hidden; border-radius:10px; background:#151515; color:#fff; text-decoration:none; isolation:isolate; }
.xfm-service-card > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .35s ease; z-index:-2; }
.xfm-service-card::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.05) 0%,rgba(0,0,0,.7) 45%,rgba(0,0,0,.96) 100%); z-index:-1; }
.xfm-service-copy { display:flex; flex-direction:column; justify-content:flex-end; height:100%; padding:1.5rem; }
.xfm-service-copy h3 { color:#fff; font-size:1.45rem; line-height:1.2; margin:0 0 .65rem; }
.xfm-service-copy p { color:#eee; font-size:.95rem; line-height:1.5; margin:0 0 1.25rem; }
.xfm-service-copy > span:last-child { color:#fff; font-size:.85rem; font-weight:700; }
.xfm-service-card:hover { color:#fff; text-decoration:none; }
.xfm-service-all { background:linear-gradient(145deg,#51101a,#a41629); }
.xfm-service-all::after { display:none; }
.xfm-service-all .eyebrow { color:#fff; margin-bottom:auto; font-size:.7rem; }
.xfm-service-track:focus-visible,.xfm-service-card:focus-visible,.xfm-carousel-controls button:focus-visible { outline:3px solid #bd2034; outline-offset:3px; }
@media (hover:hover) { .xfm-service-card:hover > img { transform:scale(1.04); } }
@media (max-width:1000px) { .xfm-service-track > .xfm-service-slide { flex-basis:42%; } }
@media (max-width:600px) {
  .xfm-carousel-heading { gap:1rem; align-items:flex-start; flex-direction:column; }
  .xfm-service-track { gap:14px; }
  .xfm-service-track > .xfm-service-slide { flex-basis:84%; }
  .xfm-service-card { height:370px; }
}
@media (prefers-reduced-motion:reduce) { .xfm-service-card > img { transition:none; } .xfm-service-track { scroll-behavior:auto; } }
