/* Homepage campaigns: use the existing Credifox palette and local photography. */
.promo-section{padding:12px 0 36px}
.promo-section+.shop-section{padding-top:8px}
.promo-eyebrow{display:block;font-size:10px;font-weight:700;letter-spacing:.16em;line-height:1.5}
.promo-button{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:44px;padding:13px 20px;font-size:12px;font-weight:700;line-height:1.4;transition:background .2s,color .2s}
.promo-button i{font-size:16px;transition:transform .2s}
.promo-button:hover i{transform:translateX(3px)}
.promo-button-light{background:#f2f5f6;color:var(--navy)}
.promo-button-light:hover{background:#d6dfe4;color:var(--navy)}
.promo-button-dark{background:var(--navy);color:#f2f5f6}
.promo-button-dark:hover{background:#2d4355;color:#f2f5f6}
.promo-disclosure{margin-top:10px;line-height:1.6}

/* Ticket-style voucher between categories and the first product shelf. */
.promo-section-voucher{padding-top:0;padding-bottom:32px}
.promo-voucher{position:relative;isolation:isolate;display:flex;align-items:center;gap:36px;padding:28px 36px;background:var(--rust);color:#fff;overflow:hidden}
.promo-voucher::before{content:"";position:absolute;z-index:-1;width:340px;height:340px;left:40%;top:-190px;border:1px solid #ffffff26;border-radius:50%;box-shadow:0 0 0 32px #ffffff08,0 0 0 64px #ffffff05}
.promo-voucher-copy{flex:1;min-width:0}
.promo-voucher-copy .promo-eyebrow{font-size:9px;color:#ffdfd4}
.promo-voucher h2{font-size:28px;line-height:1.2;margin:8px 0 7px;letter-spacing:-.035em}
.promo-voucher p{font-size:11px;line-height:1.6;margin:0;color:#ffe3da;max-width:430px}
.promo-voucher-code{position:relative;flex-shrink:0;padding:9px 30px;border-left:1px dashed #ffffff80;text-align:center}
.promo-voucher-code>span{display:block;font-size:8px;font-weight:700;letter-spacing:.13em;margin-bottom:5px}
.promo-voucher-code code{display:block;font-family:Consolas,monospace;font-size:27px;letter-spacing:.09em;line-height:1.35;font-weight:700;color:#fff;user-select:all}
.promo-voucher>.promo-button{flex-shrink:0}

/* Two photographic collection banners. */
.promo-section-edit{padding-top:12px}
.promo-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}
.promo-heading .promo-eyebrow{color:var(--rust);font-size:9px}
.promo-heading h2{font-size:29px;margin:7px 0 0;line-height:1.2}
.promo-heading-note{font-size:9px;letter-spacing:.12em;white-space:nowrap;padding-bottom:3px;color:var(--muted)}
.promo-duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.promo-editorial{position:relative;isolation:isolate;display:flex;align-items:flex-end;min-width:0;min-height:490px;overflow:hidden;background:var(--navy);color:#fff}
.promo-editorial-image{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 24%;transition:transform .6s}
.promo-editorial::after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,rgba(9,23,31,.16) 15%,rgba(9,23,31,.04) 28%,rgba(9,23,31,.78) 72%,rgba(9,23,31,.95) 100%)}
.promo-editorial:hover{color:#fff}
.promo-editorial:hover .promo-editorial-image{transform:scale(1.035)}
.promo-editorial:focus-visible{outline-offset:4px}
.promo-editorial-copy{padding:32px 34px;width:100%}
.promo-editorial-copy .promo-eyebrow{color:#e0e9ee;font-size:9px}
.promo-editorial-copy h3{font-size:42px;letter-spacing:-.045em;line-height:1.04;margin:11px 0 12px;color:#fff}
.promo-editorial-copy p{font-size:12px;color:#e0e9ee;margin:0 0 22px;line-height:1.6;max-width:340px}
.promo-text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;min-height:38px;padding-bottom:5px;border-bottom:1px solid #ffffff9c;font-size:12px;font-weight:700}
.promo-text-link i{transition:transform .2s}
.promo-editorial:hover .promo-text-link i{transform:translateX(4px)}
.promo-round-arrow{position:absolute;right:24px;top:24px;display:grid;place-items:center;width:40px;height:40px;border:1px solid #ffffffb3;border-radius:50%;font-size:18px;background:#1a2a3833}
.promo-offer{position:absolute;top:24px;left:24px;background:var(--rust);padding:11px 14px;font-size:12px;line-height:1.2}
.promo-offer>span{display:block;font-size:8px;font-weight:700;letter-spacing:.1em;margin-bottom:4px}
.promo-offer strong{font-size:26px;letter-spacing:-.04em}
.promo-category-tag{position:absolute;left:24px;top:24px;padding:11px 13px;background:var(--navy);font-size:9px;font-weight:700;letter-spacing:.12em}

/* Wide trail story separates new arrivals from the best-seller shelf. */
.campaign-banner.promo-trail{min-height:380px;color:#fff;isolation:isolate}
.promo-trail::after{z-index:0;background:linear-gradient(90deg,rgba(12,29,40,.9),rgba(12,29,40,.65) 36%,rgba(12,29,40,.05) 72%)}
.promo-trail img{object-position:center 52%}
.promo-trail .campaign-copy{max-width:560px;padding:48px;background:transparent;margin:0}
.promo-trail .promo-eyebrow{font-size:9px;color:#e2eaf0}
.promo-trail .campaign-copy h2{font-size:42px;line-height:1.08;margin:14px 0 16px;letter-spacing:-.04em}
.promo-trail .campaign-copy p{font-size:12px;line-height:1.7;max-width:335px;margin-bottom:25px;color:#e2eaf0}
.promo-trail-index{position:absolute;z-index:1;bottom:27px;right:28px;font-size:9px;letter-spacing:.17em;color:#fff}

/* Product-led camping banner uses actual catalogue photographs. */
.promo-camp{position:relative;isolation:isolate;display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:36px;overflow:hidden;background:#c2cfd5;padding:34px 44px}
.promo-camp::before{content:"";position:absolute;z-index:-1;right:-200px;top:-340px;width:840px;height:840px;border-radius:50%;background:repeating-radial-gradient(ellipse at center,transparent 0,transparent 30px,#1a2a3810 31px,transparent 32px)}
.promo-camp-copy .promo-eyebrow{font-size:9px;color:var(--muted)}
.promo-camp-copy h2{font-size:43px;line-height:1.1;letter-spacing:-.045em;margin:12px 0}
.promo-camp-copy h2>span{color:var(--rust)}
.promo-camp-copy p{font-size:12px;color:#415462;line-height:1.8;margin:0 0 22px}
.promo-camp-products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-width:0}
.promo-camp-product{min-width:0;display:block;padding:8px 8px 0;background:#e3eaee;box-shadow:0 6px 14px #1a2a3812;transition:transform .3s}
.promo-camp-product:first-child{transform:rotate(-3deg)}
.promo-camp-product:last-child{transform:rotate(3deg)}
.promo-camp-product:hover{transform:translateY(-5px)}
.promo-camp-product img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;mix-blend-mode:multiply}
.promo-camp-product>span{display:flex;align-items:center;justify-content:space-between;gap:5px;font-size:8px;font-weight:700;letter-spacing:.055em;padding:12px 3px;min-height:39px}
.promo-camp-product>span i{font-size:13px;color:var(--rust)}

@media(min-width:1400px){.promo-editorial{min-height:530px}.promo-editorial-copy h3{font-size:48px}}
@media(max-width:1199px){
  .promo-voucher{gap:20px;padding:26px}
  .promo-voucher h2{font-size:25px}
  .promo-voucher-code{padding-inline:22px}
  .promo-voucher>.promo-button{gap:14px;padding-inline:16px}
  .promo-editorial{min-height:450px}
  .promo-editorial-copy{padding:28px}
  .promo-editorial-copy h3{font-size:35px}
  .promo-camp{padding:30px;gap:26px}
  .promo-camp-copy h2{font-size:36px}
}
@media(min-width:768px) and (max-width:991px){
  .promo-voucher{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 24px}
  .promo-voucher-copy{grid-row:span 2}
  .promo-voucher-code{border-left:0;padding:0}
  .promo-voucher h2{max-width:330px;font-size:28px}
  .promo-editorial{min-height:430px}
  .promo-editorial-copy{padding:22px}
  .promo-editorial-copy h3{font-size:29px}
  .promo-editorial-copy p{font-size:11px}
  .promo-round-arrow{right:18px;top:18px;width:34px;height:34px}
  .promo-offer,.promo-category-tag{left:18px;top:18px}
  .promo-heading-note{display:none}
  .promo-camp{gap:24px;padding:28px}
  .promo-camp-copy h2{font-size:31px}
  .promo-camp-copy p{font-size:11px}
  .promo-camp-product>span{font-size:7px;letter-spacing:0;padding-inline:0}
}
@media(max-width:767px){
  .promo-section{padding:6px 0 28px}
  .promo-section+.shop-section{padding-top:4px}
  .promo-section-voucher{padding-top:0;padding-bottom:25px}
  .promo-voucher{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:21px 14px;padding:24px 20px}
  .promo-voucher-copy{grid-column:1/-1}
  .promo-voucher-copy .promo-eyebrow{font-size:8px;letter-spacing:.12em}
  .promo-voucher h2{font-size:27px;max-width:300px;margin:9px 0}
  .promo-voucher p{font-size:10px;max-width:300px}
  .promo-voucher-code{border-left:0;border-top:1px dashed #ffffff80;padding:12px 0 0;text-align:left}
  .promo-voucher-code>span{font-size:7px;letter-spacing:.09em}
  .promo-voucher-code code{font-size:24px;letter-spacing:.06em}
  .promo-voucher>.promo-button{font-size:10px;min-height:44px;padding:12px;gap:10px}
  .promo-button{font-size:11px;gap:22px;padding:12px 17px}
  .promo-heading{margin-bottom:16px}
  .promo-heading .promo-eyebrow{font-size:8px}
  .promo-heading h2{font-size:24px;max-width:290px;line-height:1.15}
  .promo-heading-note{display:none}
  .promo-duo{grid-template-columns:minmax(0,1fr);gap:14px}
  .promo-editorial{min-height:440px}
  .promo-editorial-image{object-position:center 24%}
  .promo-editorial-copy{padding:26px 24px}
  .promo-editorial-copy h3{font-size:35px;margin-top:10px}
  .promo-editorial-copy p{font-size:11px;max-width:290px;margin-bottom:18px}
  .promo-editorial-copy .promo-eyebrow{font-size:8px}
  .promo-text-link{font-size:11px;min-height:40px}
  .promo-round-arrow{top:20px;right:20px;width:36px;height:36px;font-size:16px}
  .promo-offer{top:20px;left:20px;font-size:11px;padding:9px 12px}
  .promo-offer strong{font-size:24px}
  .promo-category-tag{top:20px;left:20px;font-size:8px;padding:11px}
  .promo-disclosure{font-size:9px;margin-top:9px}
  .campaign-banner.promo-trail{min-height:420px;align-items:flex-end}
  .promo-trail img{object-position:68% center}
  .promo-trail::after{background:linear-gradient(180deg,rgba(12,29,40,.02) 5%,rgba(12,29,40,.4) 38%,rgba(12,29,40,.94) 78%)}
  .promo-trail .campaign-copy{padding:28px 24px 32px;max-width:none;background:transparent;margin:0}
  .promo-trail .promo-eyebrow{font-size:8px;letter-spacing:.12em}
  .promo-trail .campaign-copy h2{font-size:33px;margin:12px 0}
  .promo-trail .campaign-copy p{font-size:11px;margin-bottom:20px;max-width:290px}
  .promo-trail-index{display:none}
  .promo-camp{grid-template-columns:minmax(0,1fr);padding:28px 24px 25px;gap:30px}
  .promo-camp-copy h2{font-size:35px;margin:10px 0 13px}
  .promo-camp-copy p{font-size:11px;line-height:1.7}
  .promo-camp-products{gap:15px}
  .promo-camp-product{padding:6px 6px 0}
  .promo-camp-product>span{font-size:7px;letter-spacing:0;padding:10px 1px;min-height:35px}
}
@media(max-width:359px){
  .promo-voucher{padding:22px 16px;gap:18px 10px}
  .promo-voucher h2{font-size:24px}
  .promo-voucher-code code{font-size:21px}
  .promo-voucher>.promo-button{font-size:9px;padding-inline:10px;gap:7px}
  .promo-editorial{min-height:420px}
  .promo-editorial-copy{padding:24px 20px}
  .promo-editorial-copy h3{font-size:31px}
  .promo-camp{padding-inline:20px}
  .promo-camp-copy h2{font-size:31px}
}
@media(prefers-reduced-motion:reduce){.promo-section *{transition:none!important}}

/* GSAP owns photo transforms while active; CSS hover remains the fallback. */
.has-gsap-motion .promo-editorial-image{transition:none}
