/* Carousel scaffolding only; campaign artwork is styled separately. */
.ace-ad-carousel { width: min(100%, 1320px); margin-inline: auto; min-width: 0; }
.ace-ad-carousel:focus-visible { outline: 2px solid #d5b77f; outline-offset: 6px; border-radius: 18px; }
.ace-carousel-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 0 2px 15px; }
.ace-carousel-kicker { color: #735d37; font: 600 12px/1.5 "Noto Sans TC", sans-serif; letter-spacing: .1em; }
.ace-carousel-controls { display: flex; align-items: center; gap: 10px; }
.ace-carousel-counter { color: #66738a; font: 500 12px/1 "DM Sans", sans-serif; letter-spacing: .08em; font-variant-numeric: tabular-nums; min-width: 48px; }
.ace-carousel-prev, .ace-carousel-next { display: grid; place-items: center; width: 42px; height: 42px; padding: 0; border: 1px solid #bda77980; border-radius: 50%; background: #f7f6f2; color: #17334d; font: 400 23px/1 sans-serif; cursor: pointer; transition: background .2s ease, border-color .2s ease; }
.ace-carousel-prev:hover, .ace-carousel-next:hover { background: #ece5d7; border-color: #a98a50; }
.ace-carousel-controls .ace-ad-motion-toggle { min-height: 42px; margin-left: 2px; border-color: #ac9b7b80; background: #f4f2ed; color: #4a5363; }
.ace-carousel-controls .ace-ad-motion-toggle:hover { background: #ece5d7; border-color: #a98a50; }
.ace-carousel-viewport { position: relative; min-width: 0; width: 100%; overflow: hidden; touch-action: pan-y pinch-zoom; transition: height .3s ease; }
.ace-carousel-viewport.ace-carousel-height-instant { transition: none; }
.ace-carousel-slide { display: flow-root; width: 100%; min-width: 0; }
.ace-carousel-slide[hidden], .ace-carousel-toolbar[hidden], .ace-carousel-dots[hidden] { display: none !important; }
.ace-carousel-viewport.is-transitioning > .is-outgoing,
.ace-carousel-viewport.is-transitioning > .is-incoming { position: absolute; top: 0; left: 0; width: 100%; transition: transform 700ms cubic-bezier(.22, .65, .22, 1); will-change: transform; }
.ace-carousel-viewport.is-transitioning > .is-outgoing { transform: translateX(0); }
.ace-carousel-viewport.is-transitioning > .is-incoming { transform: translateX(100%); }
.ace-carousel-viewport.is-transitioning.is-reverse > .is-incoming { transform: translateX(-100%); }
.ace-carousel-viewport.is-transitioning.is-moving > .is-outgoing { transform: translateX(-100%); }
.ace-carousel-viewport.is-transitioning.is-moving.is-reverse > .is-outgoing { transform: translateX(100%); }
.ace-carousel-viewport.is-transitioning.is-moving > .is-incoming { transform: translateX(0); }
.ace-carousel-dots { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 18px; }
.ace-carousel-dots button { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 8px 15px; border: 1px solid #c8c3b85e; border-radius: 24px; background: #faf9f6; color: #687182; font: 500 12px/1.5 "Noto Sans TC", sans-serif; cursor: pointer; transition: background .2s ease, border-color .2s ease, color .2s ease; }
.ace-carousel-dots button > span:first-child { color: #958360; font: 500 10px/1 "DM Sans", sans-serif; font-variant-numeric: tabular-nums; }
.ace-carousel-dots button.is-active { background: #142842; border-color: #b69559; color: #fff0cb; }
.ace-carousel-dots button.is-active > span:first-child { color: #d7b675; }
.ace-carousel-dots button:hover { border-color: #b49a68; }
.ace-carousel-prev:focus-visible, .ace-carousel-next:focus-visible, .ace-carousel-dots button:focus-visible, .ace-carousel-controls .ace-ad-motion-toggle:focus-visible { outline: 3px solid #95784c; outline-offset: 3px; }
.ace-carousel-status { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (max-width: 760px) {
  .ace-carousel-toolbar { gap: 10px; flex-wrap: wrap; padding-bottom: 12px; }
  .ace-carousel-kicker { font-size: 10px; letter-spacing: .06em; }
  .ace-carousel-controls { gap: 6px; margin-left: auto; }
  .ace-carousel-counter { min-width: 40px; font-size: 10px; }
  .ace-carousel-prev, .ace-carousel-next { width: 38px; height: 38px; font-size: 21px; }
  .ace-carousel-controls .ace-ad-motion-toggle { min-height: 38px; padding-inline: 9px; font-size: 10px; }
  .ace-carousel-dots { gap: 7px; margin-top: 13px; }
  .ace-carousel-dots button { gap: 6px; min-height: 40px; padding: 7px 11px; font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .ace-carousel-viewport, .ace-carousel-viewport.is-transitioning > .ace-carousel-slide,
  .ace-carousel-prev, .ace-carousel-next, .ace-carousel-dots button { transition: none; }
}
