/* Madness campaign component. Layout belongs to this editable Elementor widget. */
.madness-banner { --banner-height:680px; position:relative; isolation:isolate; height:var(--banner-height); background:var(--madness-paper,#f8f7f4); color:var(--madness-ink,#111); overflow:hidden; touch-action:pan-y; }
.madness-banner__slides { display:grid; grid-template-rows:minmax(0,1fr); height:100%; min-height:0; }
.madness-banner__slide { grid-area:1/1; position:relative; display:grid; min-width:0; min-height:0; height:100%; }
.madness-banner__slide[hidden] { display:none; }
.madness-banner__slide--product { grid-template-columns:minmax(0,42fr) minmax(0,58fr); background:var(--madness-ink,#111); color:var(--madness-paper,#f8f7f4); }
.madness-banner__visual { position:relative; min-width:0; overflow:hidden; }
.madness-banner__slide--product .madness-banner__visual { grid-column:2; grid-row:1; background:var(--madness-stone,#e9e6e1); }
.elementor .madness-banner__image { display:block; width:100%; height:100%; max-height:none; object-fit:cover; object-position:var(--banner-focal,center); }
.madness-banner__slide--product .madness-banner__image { position:absolute; inset:0; object-fit:contain; padding:20px; mix-blend-mode:multiply; }
.elementor .madness-banner__lifestyle { display:block; width:100%; height:100%; max-height:none; position:absolute; inset:0; object-fit:cover; }
.madness-banner__product-detail { position:absolute; right:28px; bottom:28px; width:clamp(120px,15vw,210px); aspect-ratio:1; background:var(--madness-stone,#e9e6e1); border:6px solid var(--madness-paper,#f8f7f4); transform:rotate(-5deg); }
.madness-banner__product-detail .madness-banner__image { padding:0; }
.madness-banner__copy { position:relative; z-index:2; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:25px; padding:70px clamp(24px,5vw,96px) 110px; }
.madness-banner__slide--product .madness-banner__copy { grid-column:1; grid-row:1; gap:28px; padding:48px clamp(28px,4vw,72px) 110px; }
.elementor .madness-banner__title { max-width:16ch; margin:0; font-family:var(--madness-serif,serif); font-size:clamp(34px,4.1vw,66px); line-height:1.13; font-weight:400; letter-spacing:-.035em; text-wrap:balance; color:inherit; overflow-wrap:anywhere; }
.elementor .madness-banner__slide--product .madness-banner__title { max-width:18ch; font-size:clamp(40px,4.7vw,72px); line-height:1.05; }
.madness-banner__subtitle { display:block; margin-top:18px; max-width:30ch; font-size:clamp(16px,1.5vw,21px); line-height:1.5; letter-spacing:0; text-wrap:pretty; }
.madness-banner__slide--product .madness-banner__body { max-width:34ch; }
.madness-banner__purchase { display:flex; width:100%; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:22px; }
.madness-banner__slide--product .madness-banner__price { font-size:30px; font-weight:500; }
.madness-banner__slide--product .madness-banner__cta { min-width:195px; padding:12px 18px; gap:20px; border:0; background:color-mix(in srgb,var(--madness-red,#c31520) 88%,var(--madness-ink,#111)); color:var(--madness-paper,#f8f7f4); }
.madness-banner__slide--product .madness-banner__price ins { color:inherit; }
.madness-banner .madness-banner__slide--product .madness-banner__price :is(.amount,bdi,.woocommerce-Price-currencySymbol) { color:inherit; }
.madness-banner__slide--product .madness-banner__cta:hover { background:var(--madness-paper,#f8f7f4); color:var(--madness-ink,#111); }
.madness-banner__body { max-width:40ch; margin:0; font-family:var(--madness-sans,sans-serif); font-size:15px; line-height:1.8; color:inherit; }
.madness-banner__price { font-size:25px; line-height:1.5; color:inherit; }
.madness-banner__price del { font-size:16px; opacity:.7; margin-inline-end:12px; }
.madness-banner__price ins { background:none; color:var(--madness-red,#c31520); text-decoration:none; font-weight:600; }
.madness-banner__cta { display:inline-flex; align-items:center; justify-content:space-between; gap:35px; min-height:48px; padding:10px 0; border-bottom:1px solid currentColor; color:inherit; font-size:13px; font-weight:600; text-decoration:none; }
.madness-banner__cta:hover { color:var(--madness-red,#c31520); }
.madness-banner__slide--media .madness-banner__visual { position:absolute; inset:0; }
.madness-banner__picture { display:block; width:100%; height:100%; }
.madness-banner__slide--media.has-copy::after { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg, rgb(0 0 0 / 78%), rgb(0 0 0 / 30%) 65%, rgb(0 0 0 / 8%)); pointer-events:none; }
.madness-banner__slide--media.madness-banner__slide--dark.has-copy::after { background:linear-gradient(90deg, rgb(248 247 244 / 96%), rgb(248 247 244 / 65%) 65%, rgb(248 247 244 / 15%)); }
.madness-banner__slide--media .madness-banner__copy { width:min(820px,75%); }
.madness-banner__slide--media.madness-banner__slide--light { color:#fff; }
.elementor .madness-banner__slide--media .madness-banner__title { font-size:clamp(42px,6.4vw,92px); }
.madness-banner__video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.madness-banner__full-link { position:absolute; inset:0; z-index:3; }
.madness-banner__controls { position:absolute; z-index:4; bottom:27px; left:clamp(24px,5vw,96px); display:flex; gap:6px; align-items:center; padding:4px; background:var(--madness-paper,#f8f7f4); color:var(--madness-ink,#111); }
.madness-banner__controls button { display:grid; place-items:center; min-width:44px; width:44px; min-height:44px; padding:0; background:transparent; border:0; border-radius:0; box-shadow:none; color:inherit; }
.madness-banner .madness-banner__controls button:is(:hover,:focus-visible) { background:var(--madness-stone,#e9e6e1); color:var(--madness-ink,#111); }
.madness-banner__counter { min-width:64px; text-align:center; font:12px/1 var(--madness-sans,sans-serif); font-variant-numeric:tabular-nums; }
.madness-banner__controls svg { fill:none; stroke:currentColor; stroke-width:1.5; }
.madness-banner .banner-play { display:none; }
.madness-banner [data-pause][aria-pressed="true"] .banner-play { display:block; }
.madness-banner [data-pause][aria-pressed="true"] .banner-pause { display:none; }
.madness-banner :is(a,button):focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.madness-banner__full-link:focus-visible { outline-offset:-5px; }
.madness-banner__slide.is-entering .madness-banner__copy { animation:madness-banner-in 420ms cubic-bezier(.16,1,.3,1) both; }
@keyframes madness-banner-in { from { opacity:.5; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:1024px) { .madness-banner { --banner-height:620px; } .madness-banner__copy { gap:20px; padding-inline:32px; } .madness-banner__slide--product .madness-banner__body { display:none; } }
@media(max-width:768px) {
	.madness-banner { --banner-height:540px; }
	.madness-banner__slide--product { grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(0,48fr) minmax(0,52fr); }
	.madness-banner__slide--product .madness-banner__visual { grid-column:1; grid-row:1; }
	.madness-banner__slide--product .madness-banner__copy { grid-column:1; grid-row:2; padding:16px 20px 90px; justify-content:center; gap:12px; }
	.elementor .madness-banner__title { max-width:22ch; font-size:clamp(28px,7.4vw,42px); }
	.elementor .madness-banner__slide--product .madness-banner__title { max-width:26ch; font-size:clamp(28px,7.7vw,36px); }
	.madness-banner__subtitle { margin-top:8px; max-width:36ch; font-size:14px; line-height:1.4; }
	.madness-banner__purchase { gap:12px; }
	.madness-banner__slide--product .madness-banner__price { font-size:24px; }
	.madness-banner__slide--product .madness-banner__cta { min-width:150px; padding:10px 12px; gap:14px; font-size:12px; }
	.madness-banner__product-detail { width:clamp(68px,19vw,88px); right:12px; bottom:16px; border-width:4px; }
	.madness-banner__product-detail .madness-banner__image { padding:0; }
	.madness-banner__price { font-size:20px; }
	.madness-banner__slide--product > .madness-banner__visual > .madness-banner__image { padding:8px; }
	.madness-banner__slide--media .madness-banner__copy { width:100%; padding:28px 20px 100px; justify-content:flex-end; gap:16px; }
	.elementor .madness-banner__slide--media .madness-banner__title { font-size:clamp(34px,9vw,48px); }
	.madness-banner__visual:has(> .madness-banner__video) { background:var(--madness-ink,#111); }
	.madness-banner__visual:has(> .madness-banner__video) .madness-banner__picture { filter:blur(24px) brightness(.82); transform:scale(1.2); pointer-events:none; }
	.madness-banner__video { object-fit:contain; background:transparent; }
	.madness-banner__slide--media.has-copy::after { background:linear-gradient(0deg, rgb(0 0 0 / 85%), rgb(0 0 0 / 25%) 80%); }
	.madness-banner__slide--media.madness-banner__slide--dark.has-copy::after { background:linear-gradient(0deg, rgb(248 247 244 / 98%), rgb(248 247 244 / 35%) 80%); }
	.madness-banner__controls { left:20px; bottom:22px; }
}
@media(prefers-reduced-motion:reduce) { .madness-banner__slide.is-entering .madness-banner__copy { animation:none; } }
