/* Centered route cards, adapted from SHOP-TOWN's published case carousel. */
.home-routes{padding:54px 0 58px;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f2e9d7}
.home-routes .section-heading{margin-bottom:28px;gap:24px}
.home-routes .section-heading h2{font-size:30px}
.home-routes .section-heading p{font-size:13px;color:var(--sumi-soft);margin:12px 0 0}
.home-routes .text-link{font-size:12px}
.route-carousel-viewport{overflow:hidden;padding:4px 0 12px;touch-action:pan-y}
.route-carousel-track{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,650px),1fr));gap:28px;width:min(1100px,calc(100% - 96px));margin:auto}
.route-slide{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:30px;min-width:0;padding:26px;background:var(--white);border:1px solid #dacbb0;border-radius:12px}
.route-slide-photo{display:block;border-radius:7px;overflow:hidden}
.route-slide-photo img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.route-slide-copy{min-width:0}
.route-slide-status{color:var(--shu-deep);font-size:11px;font-weight:700;line-height:1.7;margin:0 0 10px}
.route-slide h3{font-family:var(--serif);font-size:25px;line-height:1.65;margin:0 0 13px}
.route-slide-copy>p:not(.route-slide-status){font-size:13px;line-height:1.9;color:var(--sumi-soft);margin-bottom:12px}
.route-slide-copy>p.route-slide-facts{font-weight:600;color:#795536;font-size:12px}
.route-slide .button{font-size:12px;min-height:44px;padding:11px 19px;margin-top:4px}
.route-carousel.is-ready .route-carousel-track{--route-gap:32px;--route-width:min(76vw,1000px);display:flex;gap:var(--route-gap);width:100%;margin:0;will-change:transform}
.route-carousel.is-ready .route-slide{flex:0 0 var(--route-width);opacity:.42;transform:scale(.96);transition:opacity .65s ease,transform .65s ease}
.route-carousel.is-ready .route-slide.is-active{opacity:1;transform:scale(1)}
.route-carousel-controls:not([hidden]){display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;margin:17px 20px 0}
.route-carousel-arrow{display:grid;place-items:center;width:46px;height:46px;border:1px solid #b9a98c;border-radius:50%;background:transparent;font:22px/1 var(--sans);color:var(--sumi);cursor:pointer}
.route-carousel-arrow:hover{background:#eadbc1}
.route-carousel-dots{display:flex;gap:3px;align-items:center}
.route-carousel-dots button{display:grid;place-items:center;width:28px;height:44px;border:0;padding:0;background:transparent}
.route-carousel-dots button span{display:block;width:7px;height:7px;border-radius:50%;background:#c9b797;transition:width .2s,background .2s}
.route-carousel-dots button[aria-current=true] span{width:22px;border-radius:5px;background:var(--shu-deep)}
.route-carousel-pause{border:0;border-bottom:1px solid #b9a98c;padding:6px 0;background:transparent;font-size:12px;color:var(--sumi)}
.route-carousel-position{font-size:12px;min-width:38px;font-variant-numeric:tabular-nums}
.route-carousel button:focus-visible,.route-slide a:focus-visible{outline:3px solid var(--shu-deep);outline-offset:4px}
@media(max-width:1000px){.route-slide{gap:22px;padding:22px}.route-slide h3{font-size:22px}.route-carousel.is-ready .route-carousel-track{--route-width:82vw;--route-gap:24px}}
@media(max-width:700px){.home-routes{padding:34px 0 38px}.home-routes .section-heading{display:block;margin-bottom:22px}.home-routes .section-heading h2{font-size:24px}.home-routes .section-heading p{font-size:12px}.home-routes .section-heading>.text-link{display:inline-flex;margin-top:17px}.route-carousel-track{width:calc(100% - 40px)}.route-slide{grid-template-columns:1fr;gap:18px;padding:18px}.route-slide h3{font-size:22px}.route-slide-copy>p:not(.route-slide-status){font-size:12px}.route-slide-copy>p.route-slide-facts{font-size:11px}.route-carousel.is-ready .route-carousel-track{--route-width:83vw;--route-gap:16px}.route-carousel.is-ready .route-slide{transform:none}.route-carousel-controls:not([hidden]){gap:10px;margin-top:10px}.route-carousel-arrow{width:44px;height:44px}.route-carousel-position{display:none}.route-carousel-pause{font-size:11px}}
@media(prefers-reduced-motion:reduce){.route-carousel.is-ready .route-slide,.route-carousel-dots button span{transition:none}}
