/* Full-bleed stage: one centered wide card, with both adjacent cards peeking in. */
.home-carousel{--card-width:min(1144px,calc(100vw - 96px));--card-height:374px;--card-gap:18px;position:relative;overflow:hidden;width:100%;margin:18px 0 34px;isolation:isolate}
.carousel-stage{position:relative;height:var(--card-height);outline-offset:-3px;touch-action:pan-y}
.carousel-card{position:absolute;top:0;left:50%;height:var(--card-height);width:var(--card-width);overflow:hidden;border-radius:24px;background:#eaf2ff;transition:transform .55s cubic-bezier(.25,.8,.25,1);color:#183c76}
.carousel-card[data-position="0"]{transform:translateX(-50%);z-index:2}
.carousel-card[data-position="-1"]{transform:translateX(calc(-150% - var(--card-gap)))}
.carousel-card[data-position="1"]{transform:translateX(calc(50% + var(--card-gap)))}
.carousel-card[data-position="-2"]{transform:translateX(calc(-250% - var(--card-gap) - var(--card-gap)))}
.carousel-card[data-position="2"]{transform:translateX(calc(150% + var(--card-gap) + var(--card-gap)))}
.carousel-copy{position:relative;z-index:3;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;height:100%;padding:40px 82px;max-width:760px}
.carousel-kicker{font-size:11px;font-weight:700;letter-spacing:2px;color:#4e74a9;margin-bottom:18px}
.carousel-copy h2{font-size:36px;line-height:1.4;letter-spacing:-1.8px;margin:0 0 15px;word-break:keep-all;font-weight:800}
.carousel-copy p{font-size:14px;color:#5b7599;line-height:1.8;margin:0 0 22px;max-width:520px;word-break:keep-all}
.carousel-cta{display:inline-flex;align-items:center;color:#154cb5;font-size:13px;font-weight:700;min-height:44px;padding:8px 0}
.carousel-overlay{position:absolute;inset:0;left:50%;width:var(--card-width);transform:translateX(-50%);z-index:5;pointer-events:none}
.carousel-arrow{pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);border:1px solid #ffffff77;background:#fff;color:#1c2d47;box-shadow:0 4px 12px #182d4b12;border-radius:14px;width:44px;height:44px;display:grid;place-items:center;padding:0}
.carousel-prev{left:14px}.carousel-next{right:14px}.carousel-prev .icon{transform:rotate(180deg)}
.carousel-controls{position:absolute;right:22px;bottom:20px;display:flex;align-items:center;gap:5px;pointer-events:auto}
.carousel-pause{display:grid;place-items:center;border:0;background:#19324d99;color:#fff;width:36px;height:36px;border-radius:50%;font-size:12px}
.carousel-count{display:inline-flex;align-items:center;gap:3px;padding:7px 14px;border-radius:20px;background:#19324d99;color:#fff;font-size:12px;min-height:36px;letter-spacing:0}
.carousel-count span{opacity:.8}
.theme-mint{background:#e5f4ee;color:#17594c}.theme-mint .carousel-kicker,.theme-mint .carousel-copy p,.theme-mint .carousel-cta{color:#4e8172}
.theme-navy{background:linear-gradient(110deg,#182e4c,#294c71);color:white}.theme-navy .carousel-kicker{color:#9fc8ed}.theme-navy .carousel-copy p{color:#c0d2e4}.theme-navy .carousel-cta{color:#e6bd79}
.theme-peach{background:#fff0e1;color:#8b4b2b}.theme-peach .carousel-kicker,.theme-peach .carousel-copy p,.theme-peach .carousel-cta{color:#a16e4b}
.theme-lilac{background:#eeebfc;color:#544080}.theme-lilac .carousel-kicker,.theme-lilac .carousel-copy p,.theme-lilac .carousel-cta{color:#8970ae}
/* Notice begins at the same content edge as the central banner. */
main>.wrap>.notice{background:#f6f7fb;border:0;border-radius:14px;padding:12px 18px;margin:0 0 20px}
@media(max-width:1100px){.carousel-copy{padding:35px 65px;max-width:64%}.carousel-copy h2{font-size:30px}.carousel-copy p{font-size:13px}.carousel-kicker{font-size:10px}}
@media(max-width:800px){.home-carousel{--card-width:calc(100vw - 64px);--card-height:340px;--card-gap:12px;margin-top:15px;margin-bottom:25px}.carousel-copy{padding:28px 48px;max-width:70%}.carousel-copy h2{font-size:27px}.carousel-copy p{max-width:300px;font-size:12px}.carousel-arrow{width:36px;height:44px;border-radius:11px}.carousel-prev{left:8px}.carousel-next{right:8px}.carousel-controls{bottom:15px;right:15px}}
@media(max-width:560px){.home-carousel{--card-width:calc(100vw - 40px);--card-height:400px;--card-gap:10px;margin-top:13px;margin-bottom:22px}.carousel-card{border-radius:19px}.carousel-copy{height:auto;padding:30px 27px;max-width:100%;justify-content:flex-start}.carousel-kicker{font-size:8px;letter-spacing:1.5px;margin-bottom:12px}.carousel-copy h2{font-size:25px;line-height:1.4;letter-spacing:-1.2px;margin-bottom:10px}.carousel-copy p{font-size:11px;line-height:1.8;max-width:260px;margin-bottom:8px}.carousel-cta{font-size:11px;min-height:44px}.carousel-arrow{top:auto;bottom:17px;transform:none;background:#ffffffde;width:36px;height:36px;border-radius:11px}.carousel-prev{left:18px}.carousel-next{left:60px;right:auto}.carousel-controls{right:16px;bottom:17px}.carousel-pause,.carousel-count{min-height:36px;height:36px}.carousel-copy{z-index:3}main>.wrap>.notice{font-size:11px;padding:12px;margin-bottom:10px}}
@media(max-width:360px){.carousel-copy{padding:28px 22px}.carousel-copy h2{font-size:22px;letter-spacing:-1px}.carousel-copy p{font-size:10px;max-width:220px}.carousel-kicker{font-size:7px}.home-carousel{--card-height:390px}}
@media(prefers-reduced-motion:reduce){.carousel-card{transition:none}}
@media(max-width:560px){.carousel-arrow,.carousel-pause{width:44px;height:44px}.carousel-next{left:68px}.carousel-count{height:38px}.carousel-controls{bottom:17px}}

.carousel-copy { max-width: 51%; padding-right: 0; }
.carousel-art {
  position: absolute;
  inset: 20px clamp(36px, 5%, 60px) 36px auto;
  display: grid;
  place-items: center;
  width: 43%;
  pointer-events: none;
}
.carousel-art img { display: block; width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.carousel-card[data-position="0"] .carousel-art img { animation: clay-settle 450ms steps(5, end); }
@keyframes clay-settle {
  from { transform: translateY(5px) scale(.985); }
  to { transform: translateY(0) scale(1); }
}
@media (max-width: 800px) {
  .carousel-art { inset-inline-end: 31px; width: 42%; }
}
@media (max-width: 560px) {
  .carousel-card { display: grid; grid-template-rows: auto minmax(0, 1fr); padding-bottom: 64px; }
  .carousel-copy { max-width: 100%; padding: 23px 25px 0; }
  .carousel-art { position: relative; inset: auto; width: 90%; height: 100%; min-height: 0; justify-self: center; }
}
@media (prefers-reduced-motion: reduce) {
  .carousel-card[data-position="0"] .carousel-art img { animation: none; }
}
