/* Halo Ads — base. Custom properties, wrappers, close button, native, placeholder. */

/* ── Custom properties ── */
:root {
  --haloads-brand:      #f53b57;
  --haloads-loader-accent:#f53b57;
  --haloads-border:     #e5e5e5;
  --haloads-text-muted: #888;
  --haloads-text-body:  #555;
  --haloads-bg:         #fff;
  --haloads-overlay:    rgba(0,0,0,.6);
  --haloads-close-bg:   rgba(0,0,0,.45);
  --haloads-close-color:#fff;
  --haloads-close-size: 16px;
  --haloads-motion-duration:300ms;
  --haloads-motion-easing:ease;
  --haloads-z-index:9995;
  --haloads-debug-bg:   rgba(245,59,87,.9);
  --haloads-notice-bg:  #fff8e1;
  --haloads-notice-bd:  #ffe082;
  --haloads-ph-bg:      #f7f7f8;
  --haloads-ph-shimmer: #ececef;
  --haloads-ph-ring:    #e2e2e6;
}
@media (prefers-color-scheme: dark) {
  :root {
    --haloads-bg:         #1a1a1a;
    --haloads-border:     #333;
    --haloads-text-muted: #aaa;
    --haloads-text-body:  #bbb;
    --haloads-close-bg:   rgba(0,0,0,.45);
    --haloads-close-color:#fff;
    --haloads-notice-bg:  #332600;
    --haloads-notice-bd:  #664d00;
  }
}

/* ── Base wrappers ── */
.haloads-wrap{display:block;position:relative;line-height:0;margin:1em auto;color-scheme:light dark;content-visibility:auto;contain-intrinsic-size:auto 0 auto 250px;}
.haloads-wrap img,.haloads-wrap video{max-width:100%;height:auto;display:block;}
.haloads-wrap iframe{max-width:100%;display:block;}
.haloads-lazy{display:block;background:transparent;position:relative;contain:layout;margin-left:auto;margin-right:auto;}
.haloads-lazy>.haloads-wrap,.hw-unit>.hw-wrap,.haloads-lazy>div>.haloads-wrap,.hw-unit>div>.hw-wrap{margin-top:0;margin-bottom:0;}
@media(max-width:767px){[data-haloads-mobile-reserve]{max-width:var(--haloads-mobile-reserved-width)!important;min-height:var(--haloads-mobile-reserved-height)!important;aspect-ratio:auto!important;}[data-haloads-mobile-width="responsive"]{width:100%!important;max-width:min(100%,var(--haloads-mobile-reserved-width,100%))!important;}[data-haloads-mobile-width="full"]{width:100%!important;max-width:none!important;}[data-haloads-mobile-width]>:not([data-placeholder]):not(.haloads-debug):not(.hw-debug):not(.hw-imp-pixel){max-width:100%!important;box-sizing:border-box;}[data-haloads-mobile-width="full"]>:not([data-placeholder]):not(.haloads-debug):not(.hw-debug):not(.hw-imp-pixel){width:100%!important;}}
.haloads-align-left{margin-left:0!important;margin-right:auto!important;text-align:left;}
.haloads-align-center{margin-left:auto!important;margin-right:auto!important;text-align:center;}
.haloads-align-right{margin-left:auto!important;margin-right:0!important;text-align:right;}
.haloads-align-left>a:not(.haloads-native),.haloads-align-center>a:not(.haloads-native),.haloads-align-right>a:not(.haloads-native){display:inline-block;max-width:100%;}
.haloads-align-left img,.haloads-align-left video,.haloads-align-left iframe,.haloads-align-left ins{margin-left:0;margin-right:auto;}
.haloads-align-center img,.haloads-align-center video,.haloads-align-center iframe,.haloads-align-center ins{margin-left:auto;margin-right:auto;}
.haloads-align-center>:not([data-placeholder]):not(.haloads-debug){margin-left:auto;margin-right:auto;}
.haloads-align-right img,.haloads-align-right video,.haloads-align-right iframe,.haloads-align-right ins{margin-left:auto;margin-right:0;}
.haloads-debug{position:absolute;top:0;left:0;background:var(--haloads-debug-bg);color:var(--haloads-bg);font:11px/1 monospace;padding:2px 6px;z-index:9;pointer-events:none;}

/* ── Disable content-visibility for fixed / overlay placements ── */
.haloads-slot-sticky-header .haloads-wrap,
.haloads-slot-sticky-footer .haloads-wrap,
.haloads-slot-anchor .haloads-wrap,
.haloads-slot-popup .haloads-wrap,
.haloads-slot-exit-intent .haloads-wrap,
.haloads-slot-interstitial .haloads-wrap{content-visibility:visible;}

.haloads-slot{position:relative;}
.haloads-slot-header{display:flex;justify-content:center;padding:8px 0;}
.haloads-slot-align-left{justify-content:flex-start!important;}
.haloads-slot-align-center{justify-content:center!important;}
.haloads-slot-align-right{justify-content:flex-end!important;}

/* ── Close button — square, white or black ── */
.haloads-close{position:absolute;top:8px;right:8px;min-width:16px;min-height:16px;width:var(--haloads-close-size);height:var(--haloads-close-size);border-radius:2px;background:var(--haloads-close-bg);color:var(--haloads-close-color);border:0;font-size:10px;line-height:1;cursor:pointer;z-index:2;}
.haloads-close-top-left{left:8px;right:auto}.haloads-close-bottom-right{top:auto;bottom:8px}.haloads-close-bottom-left{top:auto;right:auto;bottom:8px;left:8px}
.haloads-close-style-light{background:#fff;color:#111}.haloads-close-style-dark{background:#111;color:#fff}
.haloads-close:hover{opacity:.85;}

/* ── Native ── */
.haloads-native{display:flex;gap:12px;text-decoration:none;color:inherit;border:1px solid var(--haloads-border);border-radius:8px;padding:12px;background:var(--haloads-bg);}
.haloads-native img{width:120px;height:auto;border-radius:4px;flex-shrink:0;object-fit:cover;}
.haloads-native-body{display:flex;flex-direction:column;gap:4px;line-height:1.4;}
.haloads-native-label{font-size:10px;text-transform:uppercase;color:var(--haloads-text-muted);letter-spacing:.05em;}
.haloads-native-headline{font-size:15px;font-weight:600;margin:0;}
.haloads-native-text{font-size:13px;color:var(--haloads-text-body);margin:0;}
.haloads-native-cta{font-size:12px;color:var(--haloads-brand);font-weight:600;margin-top:4px;}

/* ── Adblock notice ── */
.haloads-adblock-notice{padding:10px 14px;background:var(--haloads-notice-bg);border:1px solid var(--haloads-notice-bd);border-radius:4px;font-size:13px;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center;}
.haloads-adblock-notice__close{background:none;border:none;cursor:pointer;font-size:16px;line-height:1;padding:0 0 0 12px;opacity:.6;}

/* ── Placeholder — quiet ad-card mark inside creative-sized reserved space ── */
.haloads-placeholder,.hw-placeholder{position:absolute;inset:0;z-index:0;display:flex;align-items:center;justify-content:center;box-sizing:border-box;overflow:hidden;border:1px solid var(--haloads-border);border-radius:8px;background:var(--haloads-ph-bg);opacity:1;}
.haloads-placeholder-loader,.hw-placeholder-loader{position:relative;isolation:isolate;width:40px;height:40px;display:grid;place-items:center;color:var(--haloads-loader-accent,var(--haloads-brand));}
.haloads-placeholder-loader::before,.hw-placeholder-loader::before{content:"";position:absolute;inset:8px;z-index:-1;border-radius:50%;background:color-mix(in srgb,var(--haloads-loader-accent,var(--haloads-brand)) 18%,transparent);filter:blur(8px);animation:haloads-ph-ambient 3.8s cubic-bezier(.16,1,.3,1) infinite;}
.haloads-placeholder-loader::after,.hw-placeholder-loader::after{content:"";position:absolute;inset:3px;border:1px solid transparent;border-top-color:color-mix(in srgb,var(--haloads-loader-accent,var(--haloads-brand)) 42%,transparent);border-right-color:color-mix(in srgb,var(--haloads-loader-accent,var(--haloads-brand)) 18%,transparent);border-radius:50%;animation:haloads-ph-orbit 6s linear infinite;}
.haloads-placeholder-mark,.hw-placeholder-mark{position:relative;width:24px;height:18px;box-sizing:border-box;border:1.5px solid currentColor;border-radius:4px;opacity:.82;}
.haloads-placeholder-mark::before,.hw-placeholder-mark::before{content:"";position:absolute;top:5px;left:3px;right:3px;border-top:1px solid currentColor;opacity:.65;}
.haloads-placeholder-mark::after,.hw-placeholder-mark::after{content:"";position:absolute;left:4px;bottom:3px;width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.72;}
.haloads-placeholder-orbit-dot,.hw-placeholder-orbit-dot{position:absolute;top:1px;left:50%;width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.6;transform-origin:0 19px;animation:haloads-ph-orbit 6s linear infinite;}
@keyframes haloads-ph-ambient{0%,100%{opacity:.28;transform:scale(.88)}50%{opacity:.55;transform:scale(1.08)}}
@keyframes haloads-ph-orbit{to{transform:rotate(360deg)}}

/* ── Creative load cross-fade ── */
.haloads-content-enter,.hw-content-enter{opacity:0;transition:opacity var(--haloads-motion-duration) var(--haloads-motion-easing);}
.haloads-placeholder-fadeout,.hw-placeholder-fadeout{opacity:0;pointer-events:none;transition:opacity var(--haloads-motion-duration) var(--haloads-motion-easing);}
[data-haloads-image-transition]>a{position:relative;z-index:1;opacity:1;transition:opacity var(--haloads-motion-duration) cubic-bezier(.16,1,.3,1);}
[data-haloads-image-transition].hw-image-pending>a,[data-haloads-image-transition].hw-image-failed>a{opacity:0;}
@media (prefers-reduced-motion: reduce){
  .haloads-placeholder-loader::before,.hw-placeholder-loader::before,
  .haloads-placeholder-loader::after,.hw-placeholder-loader::after,
  .haloads-placeholder-orbit-dot,.hw-placeholder-orbit-dot{animation:none!important;}
  .haloads-placeholder-loader::before,.hw-placeholder-loader::before{opacity:.32;transform:scale(.92);}
  .haloads-content-enter,.hw-content-enter,
  .haloads-placeholder-fadeout,.hw-placeholder-fadeout,
  [data-haloads-image-transition]>a{transition:none!important;}
}

/* Neutral public aliases for direct-delivery resilience. */
.hw-wrap{display:block;position:relative;line-height:0;margin:1em auto;color-scheme:light dark;content-visibility:auto;contain-intrinsic-size:auto 0 auto 250px;}
.hw-wrap img,.hw-wrap video{max-width:100%;height:auto;display:block;}
.hw-wrap iframe{max-width:100%;display:block;}
.hw-unit{display:block;background:transparent;position:relative;contain:layout;margin-left:auto;margin-right:auto;}
.hw-align-left{margin-left:0!important;margin-right:auto!important;text-align:left;}
.hw-align-center{margin-left:auto!important;margin-right:auto!important;text-align:center;}
.hw-align-right{margin-left:auto!important;margin-right:0!important;text-align:right;}
.hw-align-left>a:not(.hw-native),.hw-align-center>a:not(.hw-native),.hw-align-right>a:not(.hw-native){display:inline-block;max-width:100%;}
.hw-align-left img,.hw-align-left video,.hw-align-left iframe,.hw-align-left ins{margin-left:0;margin-right:auto;}
.hw-align-center img,.hw-align-center video,.hw-align-center iframe,.hw-align-center ins{margin-left:auto;margin-right:auto;}
.hw-align-center>:not([data-placeholder]):not(.hw-debug){margin-left:auto;margin-right:auto;}
.hw-align-right img,.hw-align-right video,.hw-align-right iframe,.hw-align-right ins{margin-left:auto;margin-right:0;}
.hw-debug{position:absolute;top:0;left:0;background:var(--haloads-debug-bg);color:var(--haloads-bg);font:11px/1 monospace;padding:2px 6px;z-index:9;pointer-events:none;}
.hw-slot-sticky-header .hw-wrap,.hw-slot-sticky-footer .hw-wrap,.hw-slot-anchor .hw-wrap,.hw-slot-popup .hw-wrap,.hw-slot-exit-intent .hw-wrap,.hw-slot-interstitial .hw-wrap{content-visibility:visible;}
.hw-slot{position:relative;}
.hw-slot-header{display:flex;justify-content:center;padding:8px 0;}
.hw-slot-align-left{justify-content:flex-start!important;}
.hw-slot-align-center{justify-content:center!important;}
.hw-slot-align-right{justify-content:flex-end!important;}
.hw-close{position:absolute;top:8px;right:8px;min-width:16px;min-height:16px;width:var(--haloads-close-size);height:var(--haloads-close-size);border-radius:2px;background:var(--haloads-close-bg);color:var(--haloads-close-color);border:0;font-size:10px;line-height:1;cursor:pointer;z-index:2;}
.hw-close-top-left{left:8px;right:auto}.hw-close-bottom-right{top:auto;bottom:8px}.hw-close-bottom-left{top:auto;right:auto;bottom:8px;left:8px}
.hw-close-style-light{background:#fff;color:#111}.hw-close-style-dark{background:#111;color:#fff}
.hw-close:hover{opacity:.85;}
.hw-close:focus-visible,.haloads-close:focus-visible{outline:2px solid #fff;outline-offset:2px;box-shadow:0 0 0 4px rgba(0,0,0,.55);}
/* Compact close button for short creatives (e.g. 320x100) so it doesn't dominate the ad. JS adds -sm when the wrap is short. */
.hw-close-sm,.haloads-close-sm{--haloads-close-size:13px;min-width:13px;min-height:13px;font-size:8px;top:4px;right:4px;}
.hw-close-sm.hw-close-top-left,.haloads-close-sm.haloads-close-top-left{left:4px;right:auto}
.hw-close-sm.hw-close-bottom-right,.haloads-close-sm.haloads-close-bottom-right{top:auto;bottom:4px}
.hw-close-sm.hw-close-bottom-left,.haloads-close-sm.haloads-close-bottom-left{top:auto;right:auto;bottom:4px;left:4px}
/* Compact visual controls; coarse pointers retain a full touch target. */
.haloads-close,.hw-close{--haloads-close-size:32px;min-width:32px;min-height:32px;padding:0;display:grid;place-items:center;font-size:18px;font-weight:700;box-sizing:border-box;}
.hw-close.hw-close-sm,.haloads-close.haloads-close-sm{--haloads-close-size:28px;min-width:28px;min-height:28px;font-size:16px;}
@media(pointer:coarse){.hw-close.hw-close,.haloads-close.haloads-close{--haloads-close-size:44px;min-width:44px;min-height:44px;}}
.hw-native{display:flex;gap:12px;text-decoration:none;color:inherit;border:1px solid var(--haloads-border);border-radius:8px;padding:12px;background:var(--haloads-bg);}
.hw-native img{width:120px;height:auto;border-radius:4px;flex-shrink:0;object-fit:cover;}
.hw-native-body{display:flex;flex-direction:column;gap:4px;line-height:1.4;}
.hw-native-label{font-size:10px;text-transform:uppercase;color:var(--haloads-text-muted);letter-spacing:.05em;}
.hw-native-headline{font-size:15px;font-weight:600;margin:0;}
.hw-native-text{font-size:13px;color:var(--haloads-text-body);margin:0;}
.hw-native-cta{font-size:12px;color:var(--haloads-brand);font-weight:600;margin-top:4px;}
.hw-notice{padding:10px 14px;background:var(--haloads-notice-bg);border:1px solid var(--haloads-notice-bd);border-radius:4px;font-size:13px;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center;}
.hw-notice__close{background:none;border:none;cursor:pointer;font-size:16px;line-height:1;padding:0 0 0 12px;opacity:.6;}
