

			.ad { display:block; will-change: opacity, max-height; }
			.ad.dont-scale-down { width: 100%; max-width: 1200px; overflow: hidden; position: relative; }

			.ad img { width: 100%; height: auto; }
			.ad .dont-scale-down img { 	width: auto; height: auto;
										max-width: none; position: absolute; left: 50%;
										transform: translateX(-50%); object-fit: cover;
									}
			.ad_header_top { margin: 15 0 10 0; }
			.ad_sections_top { margin: 0 0 -2 0; }

			.ad_sections_top { display: flex; }
			.ad_header_top { display: flex; }

			.ad_own { display: flex; }
			.manual_ad_top {
								grid-area: Ad;
								margin: 25 0 0 25 !important;
								display: flex; flex-direction: column;
								width: 300px;
								gap: 20px;
								background: rgb(240,240,240);
							}
			.manual_ad_top .ad_own,
			.manual_ad_top .ad_own a { display: flex; }
			/* show only when marked as filled */
			.ad--filled { display: block; }

			.manual_ad_top_right { margin: 25 0 25 25 !important; width: 300px; aspect-ratio:1/2; grid-area: Ad; border: 1px solid black; }

			.composite_pages_ad_block { margin: 0 !important; grid-area: Social; }

			.ads_intro, .ads_outro { width: 100%; }

			.ads_intro {
							height: 34px;
							display: flex; align-items: center;
							padding: 20 10;
							background: linear-gradient(to bottom, rgba(200,200,200,1), rgba(200,200,200,0));
							border-top: 2px solid rgb(18, 18, 18);
			}

			.ads_intro_text { font-size: 12px; letter-spacing: .4px; text-transform: uppercase;
				color: rgba(255,255,255,0.95); text-shadow: 0 1px 2px rgba(0,0,0,0.25);
			}

			.ads_outro {
							height: 26px;
							margin-top: auto;
							background: linear-gradient(to top, rgba(200,200,200,1), rgba(200,200,200,0));
							border-bottom: 2px solid rgb(18, 18, 18);
						}

			.js-right-rail { grid-area: Ad; overflow-wrap: anywhere; height: fit-content; width: fit-content; }
			.js-right-rail .ad { visibility: hidden; }
			.js-right-rail.ad-ready .ad { visibility: visible; }


			/* Revive Ad Server styles */
			/* ------------------------------------------------------------- */
			.ad { position:relative; margin: 0 auto; }
			.ad-margin { margin-top: 15px; margin-bottom: 15px; }
			.ad--lb { width:100%; height:150px; margin:12px auto; }
			.revive-slot, .revive-slot iframe { /* width: auto; height: auto; display:block; */ }
			.ad--sticky .ad__inner { padding-bottom: env(safe-area-inset-bottom); }
			body.has-sticky-ad { padding-bottom:110px; }
			body.modal-open { overflow:hidden; }
			@media (max-width:576px) {
			.ad--lb { height:100px; max-height:120px; max-width:100%; } /* ← fixed ; */
			}

			.ad--mpu { width:100%; max-width:300px; height:250px; margin:12px auto; }
			.ad--hpa { width:100%; max-width:300px; height:600px; margin:0 auto; }

			.ad--sticky{
			position:fixed; left:0; right:0; bottom:0; z-index:9999;
			display:none; justify-content:center; pointer-events:none;
			}
			.ad--sticky .ad__inner{
			width:100%; max-width:320px; height:100px; margin:0 auto; pointer-events:auto;
			box-shadow:0 -2px 12px rgba(0,0,0,.2); background:#fff;
			border-top:1px solid rgba(0,0,0,.08);
			}
			@media (max-width:576px){ .ad--sticky{ display:flex; } }
			.ad--sticky .ad__close{
			position:absolute; right:6px; top:-28px;
			line-height:22px; padding:0 8px; background:#000; color:#fff;
			font:600 12px/22px system-ui; border-radius:4px; cursor:pointer;
			}
			.ad--popup{ display:none; position:fixed; inset:0; z-index:9998; background:rgba(0,0,0,.5); }
			.ad--popup__box{
			position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
			width:350px; height:250px; max-width:90vw; max-height:80vh;
			background:#fff; box-shadow:0 10px 30px rgba(0,0,0,.35); border-radius:8px;
			}
			.ad--popup__close{
			position:absolute; right:-10px; top:-10px; background:#000; color:#fff;
			border-radius:50%; width:28px; height:28px; text-align:center;
			line-height:28px; font:700 12px/28px system-ui; cursor:pointer;
			}
			@media (min-width:577px){ .ad--sticky, .ad--popup{ display:none!important; } }
			/* ------------------------------------------------------------- */

			/* Right rail stack layout */
			.ad_block{
							max-width:320px;
							display:flex; flex-direction:column; gap:12px; align-items:center;
			}

			/* If the 300×600 actually fills, hide both MPUs.
			Works whether you add .ad--hpa or just the size class. */
			.ad_block:has(.ad--hpa.ad--filled) .ad--mpu,
			.ad_block:has(.size-300-600.ad--filled) .ad--mpu {
				display: none;
			}

			/* Show filled ads */
			.ad--filled {
							display: block;
							overflow:visible;

							opacity:1;
							display: flex;
							justify-content: center;
							overflow: hidden;
							align-items:center;
							position:relative;
							isolation:isolate;

			}
			.ad--filled > .revive-slot {
							flex: 0 0 auto;
							max-inline-size:none;
							max-block-size:100%;
			}

			/* Neutralize global responsive rules that would scale the creative */
			.ad--filled .revive-slot img,
			.ad--filled .revive-slot iframe {
				max-width: none !important; /* prevent width:100% rules */
				max-height: 100%;
				max-height: none !important;
				/* height: fit-content; */
				display: block;
			}

			/* Make the anchor cover the creative for reliable click area */
			.ad--filled .revive-slot > a {
				display: inline-block;
			}
			
			.ad-slot{ display:block; overflow:hidden; }
			.ad-slot>*{ box-sizing:border-box; }
			.ad-slot>ins,.ad-slot img{ display:block; width:100%; height:100%; }
			.ad-slot[aria-hidden="true"],.ad-slot[data-hiding="1"]{ display:none; }
			.ad-slot{ max-width:100%; }
			.ad-slot img{ object-fit:contain; }
			.ad-slot>.revive-slot{ margin:0 auto; }
			.ad-slot:has(.revive-slot[style*="display: none"]),.ad-slot:has(img[width="0"][height="0"]){ display:none; }

			.size-320-50{ inline-size:320px;block-size:50px }
			.size-320-100{ inline-size:320px;block-size:100px }
			.size-320-150{ inline-size:320px;block-size:150px }
			.size-320-200{ inline-size:320px;block-size:200px }
			.size-320-250{ inline-size:320px;block-size:250px }
			.size-300-250{ inline-size:300px;block-size:250px }
			.size-300-600{ inline-size:300px;block-size:600px }
			.size-728-90{ inline-size:728px;block-size:90px }
			.size-670-100{ inline-size:670px;block-size:100px }
			.size-990-100{ inline-size:990px;block-size:100px }
			.size-1200-100{ inline-size:1200px;block-size:100px }

			.ad--filled[class*="size-"] { inline-size:100% !important; }

			.responsive-ad-container {
				position: relative;
				width: 100%;
				aspect-ratio: var(--ar);
				overflow: hidden;
			}

			.u-abs {
				position: absolute;
				top: 0;
				left: 50%;
				transform-origin: top left;
			}

			.ad_above_header {}
			.ad_header { margin: 15 0; }
			.ad_sections { margin: 0 0 25 0; }

			/* old collapse behavior for backward compatibility
				.ad[data-collapse="hidden-until-filled"] { display: none; }
				.ad[data-collapse="hidden-until-filled"].ad--filled { display: flex; }
			*/

			/* Start collapsed (only while NOT filled) */
			.ad[data-collapse="hidden-until-filled"]:not(.ad--filled) {
				display: none;
			}

			/* Expand when JS marks as filled (low specificity so device rules can override) */
			:where(.ad[data-collapse="hidden-until-filled"].ad--filled) {
				display: flex;
			}

			.none { display: none; }
			.phone { display: none; }
			.tablet { display: none; }
			.desktop { display: flex; }
			.all_screens { display: flex; }

			@media screen and (min-width:561px) and (max-width:1050px){
				.none { display: none; }
				.phone { display: none; }
				.desktop { display: none; }
				.tablet { display: flex; }
				.all_screens { display: flex; }

				.article_wrapper .manual_ad_top { display: none;}
				.article_wrapper .v2_composite_grid .manual_ad_top { display: flex;}

			}
			
			@media screen and (max-width: 560px) {

				.manual_ad_top { display: none;}

				.section_block .desktop,
				.section_block .tablet { display: none; }

				.ad_own_top.phone { padding: 0 24; margin: 0 auto 25 auto; }

				.phone .revive-slot {margin: 0 auto; }

				.none { display: none !important; }
				.tablet { display: none; }
				.desktop { display: none; }
				.phone { display: flex; }
				.all_screens { display: flex; }

			}

			