/* Campaign banners: compact full-width artwork, with live bilingual copy. */
.banner-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.home-banner{position:relative;overflow:hidden;background:#12364e;isolation:isolate;touch-action:pan-y;--banner-ink:#143f5a;--banner-accent:#0879ae}
.banner-stage{position:relative;height:clamp(330px,25vw,500px)}
.banner-slide{position:absolute;inset:0;visibility:hidden;transform:translateX(100%);transition:transform .8s cubic-bezier(.22,.7,.3,1);overflow:hidden}
.banner-slide.is-active,.banner-slide.is-leaving{visibility:visible}
.banner-slide.is-active{z-index:2;transform:translateX(0)}
.banner-slide.is-leaving{z-index:1}
.banner-link{display:block;width:100%;height:100%;color:var(--banner-ink);overflow:hidden}
.banner-inner{height:100%;display:grid;grid-template-columns:.85fr 1.15fr;grid-template-rows:minmax(0,1fr);align-items:center;gap:35px;position:relative;padding-top:15px;padding-bottom:42px}
.banner-copy{position:relative;z-index:4;max-width:570px}
.banner-copy h2{font-size:clamp(30px,2.8vw,51px);line-height:1.07;font-weight:750;letter-spacing:-.035em}
.banner-copy h2 span{color:var(--banner-accent)}
.banner-copy p{font-size:clamp(12px,1.02vw,17px);line-height:1.6;margin-top:14px;max-width:520px;color:#496274}
.banner-cta{display:inline-flex;align-items:center;gap:20px;min-height:42px;margin-top:23px;background:#167ca4;color:#fff;padding:10px 19px;font-size:13px;font-weight:600;border-radius:2px}
.banner-cta svg{width:18px;height:18px}
.banner-link:hover .banner-cta{background:#0b5a80}
.banner-link:focus-visible{outline-offset:-5px}
.banner-art{position:relative;min-width:0;min-height:0;height:100%;display:flex;align-items:center;justify-content:center}
.banner-art-note{position:absolute;bottom:1px;right:0;font-size:10px;line-height:1.4;letter-spacing:.04em;color:#5a7280}
.banner-range{background:radial-gradient(ellipse at 77% 56%,#c5e8f4 0,transparent 49%),linear-gradient(115deg,#f8fcfd 14%,#e6f4f8 55%,#d6e9f2)}
.banner-range:before,.banner-range:after{content:"";position:absolute;width:110%;height:100px;left:-5%;bottom:8%;border-top:2px solid #ffffffbd;border-radius:50%;transform:rotate(-8deg);box-shadow:0 -14px 0 #ffffff24,0 -30px 0 #ffffff20;pointer-events:none}
.banner-range:after{bottom:-4%;transform:rotate(7deg)}
.banner-product-montage{height:100%;width:100%;position:relative}
.banner-product-montage img{position:absolute;object-fit:contain;mix-blend-mode:multiply}
.montage-diffuser{width:80%;height:74%;right:-4%;top:-1%;z-index:2}
.montage-grille{width:50%;height:44%;left:-6%;bottom:4%;z-index:3;transform:rotate(-7deg)}
.montage-eggcrate{width:48%;height:70%;right:-5%;bottom:-13%;z-index:4;transform:rotate(8deg)}
.montage-line{position:absolute;left:7%;right:-5%;bottom:4%;height:14%;background:#5e9db729;filter:blur(22px);border-radius:50%}
.banner-selection{--banner-ink:#fff;--banner-accent:#7ac4e0;background:radial-gradient(ellipse at 85% 40%,#24536a,#0d2c40 68%)}
.banner-selection:before{content:"";position:absolute;inset:0;background-image:linear-gradient(#b2d2e809 1px,transparent 1px),linear-gradient(90deg,#b2d2e809 1px,transparent 1px);background-size:35px 35px;pointer-events:none}
.banner-selection .banner-copy p{color:#c2d8e2}
.banner-selection .banner-cta{background:#ad5032}
.banner-selection .banner-link:hover .banner-cta{background:#914128}
.banner-selection .banner-art-note{color:#bed5df}
.banner-selection-art{width:100%;height:100%;position:relative;display:flex;flex-direction:column;justify-content:center;padding:6px 0 14px}
.selection-pair{width:100%;height:0;flex:1;min-height:0;max-height:245px;object-fit:contain;filter:drop-shadow(0 10px 8px #071e2855)}
.selection-topline,.selection-bottomline{display:flex;flex-shrink:0;justify-content:space-around;color:#cce4ee;font-size:10px;letter-spacing:.08em;line-height:1.4}
.selection-topline{padding-bottom:10px;border-top:1px solid #7db4cb55;padding-top:8px}
.selection-bottomline{padding-top:10px;border-bottom:1px solid #7db4cb55;padding-bottom:8px}
.banner-custom{--banner-accent:#a64e33;background:linear-gradient(110deg,#f7f7f1 20%,#e8eeeb 60%,#d5e1de)}
.banner-custom:before{content:"";position:absolute;inset:0 0 0 40%;background:repeating-linear-gradient(0deg,transparent,transparent 33px,#527b8410 34px),repeating-linear-gradient(90deg,transparent,transparent 33px,#527b8410 34px);transform:skewX(-14deg);transform-origin:bottom right}
.banner-custom .banner-cta{background:#ad5032}
.banner-custom .banner-link:hover .banner-cta{background:#914128}
.banner-custom-art{display:flex;align-items:center;gap:12px;height:100%;width:100%;position:relative;padding:12px 0 24px}
.custom-photo{position:relative;flex:1;min-width:0;height:100%}
.custom-damper{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.custom-callouts{display:grid;gap:22px;flex:0 0 120px;font-size:12px;color:#466775}
.custom-callouts span{border-bottom:1px solid #98b2b6;padding:0 0 9px;position:relative}
.custom-callouts span:before{content:"";position:absolute;left:-35px;width:28px;bottom:-1px;border-bottom:1px solid #98b2b6}
.banner-pagination{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);display:flex;gap:5px;z-index:5}
.banner-pagination button{width:39px;height:34px;display:grid;place-items:center;padding:0;border:0;background:transparent;cursor:pointer}
.banner-pagination button span{width:32px;height:4px;background:#526e8190;transition:background .2s}
.banner-pagination button[aria-current="true"] span{background:#b75532}
.home-banner[data-theme="selection"] .banner-pagination button span{background:#d2e2e877}
.home-banner[data-theme="selection"] .banner-pagination button[aria-current="true"] span{background:#e79760}
.banner-arrow{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;display:grid;place-items:center;border:1px solid #ffffff66;border-radius:50%;background:#14384ac4;color:white;z-index:5;opacity:0;transition:opacity .2s,background .2s}
.banner-prev{left:12px}.banner-next{right:12px}
.banner-prev svg{transform:rotate(180deg)}
.home-banner:hover .banner-arrow,.home-banner:focus-within .banner-arrow{opacity:1}
.banner-arrow:hover{background:#173a4b}
.banner-rotation{position:absolute;bottom:9px;right:15px;z-index:5;display:grid;place-items:center;width:32px;height:32px;background:#14384abf;border:1px solid #ffffff77;border-radius:50%;color:#fff;font-size:13px}
.banner-rotation:hover{background:#173a4b}
.banner-pagination button:focus-visible,.banner-rotation:focus-visible,.banner-arrow:focus-visible{outline:2px solid #e79760;outline-offset:2px}
.home-banner+.category-overview{padding-top:58px}
html[lang="zh-CN"] .banner-copy h2{font-weight:600;font-size:clamp(29px,2.8vw,48px);line-height:1.25;letter-spacing:.005em}
@media(min-width:1600px){.banner-inner{max-width:1760px;gap:70px}.banner-copy{max-width:700px}.selection-pair{max-height:330px}}
@media(max-width:1100px){
  .banner-inner{gap:25px;grid-template-columns:.95fr 1.05fr}
  .banner-copy h2{font-size:30px}
  .banner-copy p{font-size:12px}
  .banner-cta{margin-top:19px;font-size:12px;min-height:39px}
  .custom-callouts{flex-basis:93px;font-size:11px;gap:18px}
  .selection-pair{max-height:205px}
  .banner-arrow{top:auto;bottom:8px;transform:none;width:34px;height:34px;opacity:1}
  .banner-prev{left:14px}.banner-next{right:56px}
  .banner-rotation{right:14px;bottom:9px}
}
@media(max-width:760px){
  .banner-stage{height:385px}
  .banner-inner{grid-template-columns:1fr;grid-template-rows:174px 1fr;gap:0;padding-top:25px;padding-bottom:44px;width:calc(100% - 48px)}
  .banner-copy{max-width:100%}
  .banner-copy h2{font-size:29px;line-height:1.12}
  html[lang="zh-CN"] .banner-copy h2{font-size:30px;line-height:1.23}
  .banner-copy p{margin-top:9px;font-size:12px;max-width:480px}
  .banner-cta{margin-top:12px;min-height:35px;padding:7px 13px;font-size:11px;gap:15px}
  .banner-art{position:absolute;bottom:38px;right:26px;width:47%;height:180px}
  .banner-copy{align-self:start;max-width:73%}
  .banner-product-montage{width:100%;height:100%}
  .montage-diffuser{width:100%;height:74%;right:0;top:0}
  .montage-grille{left:-16%;width:70%;bottom:-1%;height:45%}
  .montage-eggcrate{right:-12%;width:60%;height:72%;bottom:-16%}
  .banner-art-note{display:none}
  .selection-topline,.selection-bottomline{font-size:9px;padding:5px 0;letter-spacing:0}
  .banner-selection-art{padding:0}
  .selection-pair{max-height:125px}
  .banner-custom-art{padding:0;gap:7px}
  .custom-callouts{font-size:10px;gap:17px;flex-basis:74px}
  .custom-callouts span:before{left:-14px;width:10px}
  .custom-callouts span{padding-bottom:5px}
  .banner-arrow{top:auto;bottom:8px;transform:none;width:34px;height:34px;opacity:1}
  .banner-prev{left:14px}.banner-next{right:56px}
  .banner-rotation{right:14px;bottom:9px}
  .home-banner+.category-overview{padding-top:42px}
}
@media(max-width:600px){
  .banner-stage{height:405px}
  .banner-inner{display:block;padding-top:26px;padding-bottom:45px}
  .banner-copy{max-width:100%}
  .banner-copy h2{font-size:28px}
  html[lang="zh-CN"] .banner-copy h2{font-size:30px}
  .banner-copy p{font-size:11px;max-width:330px}
  .banner-art{width:68%;height:151px;bottom:41px;right:22px}
  .banner-cta{margin-top:12px}
  .banner-selection .banner-art{width:calc(100% - 48px);height:158px;right:24px;bottom:37px}
  .banner-selection-art{max-width:370px}
  .selection-pair{max-height:120px}
  .selection-topline{border-top:0;padding:3px 0}
  .selection-bottomline{display:none}
  .banner-custom .banner-art{height:162px;width:65%;right:20px}
  .custom-callouts{font-size:9px;flex-basis:71px;gap:18px}
  .banner-pagination button{width:31px}
  .banner-pagination button span{width:25px}
}
@media(max-width:360px){
  .banner-stage{height:415px}
  .banner-inner{width:calc(100% - 40px)}
  .banner-copy h2,html[lang="zh-CN"] .banner-copy h2{font-size:25px}
  .banner-copy p{font-size:11px}
  .banner-art{width:74%;height:145px}
  .banner-custom .banner-art{width:72%}
}
@media(prefers-reduced-motion:reduce){.banner-slide{transition:none}}
