/* Shared advertising inventory: all artwork and hover effects stay inside each link. */
html body .rk-partners::before{content:none!important;display:none!important}
html body .node-ad-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:16px!important;align-items:stretch;width:min(1360px,calc(100vw - 80px));max-width:100%;margin-inline:auto}
html body .node-ad-card{box-sizing:border-box;position:relative;isolation:isolate;display:flex;align-items:flex-end;min-width:0;min-height:196px;border:1px solid rgba(117,222,195,.18);border-radius:15px;overflow:hidden;contain:paint;background:#09241d;color:#f4f9f6;text-decoration:none;box-shadow:none!important;filter:none!important;transform:none!important;transition:border-color .18s ease}
html body .node-ad-card::before{content:"";position:absolute;inset:0;z-index:-2;background-image:var(--ad-image,none);background-size:cover;background-position:var(--ad-position,center);opacity:1;pointer-events:none}
html body .node-ad-card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(2,9,14,.04),rgba(2,9,14,.10) 50%,rgba(2,9,14,.46));box-shadow:inset 0 0 0 0 transparent;transition:box-shadow .18s ease;pointer-events:none}
html body .node-ad-card.node-ad-vacant{border-style:dashed;border-color:rgba(112,234,192,.46);background:linear-gradient(140deg,rgba(8,41,34,.96),rgba(4,24,21,.98))}
html body .node-ad-vacant::before{background-image:none}
html body .node-ad-vacant::after{background:transparent}
html body .node-ad-body{position:relative;padding:17px;max-width:83%;display:flex;flex-direction:column;align-items:flex-start;gap:5px;font-family:"Avenir Next","SF Pro Display","SF Pro Text",Inter,"Segoe UI",Arial,sans-serif}
html body .node-ad-card h3{margin:0!important;font:730 16px/1.25 "Avenir Next","SF Pro Display","SF Pro Text",Inter,"Segoe UI",Arial,sans-serif!important;letter-spacing:-.03em;color:#f4f9f6!important;text-shadow:none!important}
html body .node-ad-card p{margin:0!important;font:400 13px/1.4 "Avenir Next","SF Pro Display","SF Pro Text",Inter,"Segoe UI",Arial,sans-serif!important;letter-spacing:normal;color:#f0f5f3!important;text-shadow:none!important}
html body .node-ad-cta{display:inline-flex;align-items:center;gap:8px;margin-top:8px;padding:8px 12px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:rgba(6,18,24,.38);font:650 13px/1.2 "Avenir Next","SF Pro Display","SF Pro Text",Inter,"Segoe UI",Arial,sans-serif;color:#fff;transition:background-color .18s ease,border-color .18s ease,color .18s ease}
html body .node-ad-plus{font:400 25px/1 Arial,sans-serif;color:#64f1d9;margin-bottom:3px}
html body .node-ad-card:is(:hover,:focus-visible){border-color:rgba(100,241,217,.72)}
html body .node-ad-card:is(:hover,:focus-visible)::after{box-shadow:inset 0 0 0 1px rgba(100,241,217,.12),inset 0 0 36px rgba(100,241,217,.055)}
html body .node-ad-card:is(:hover,:focus-visible) .node-ad-cta{background:rgba(8,58,48,.78);border-color:rgba(100,241,217,.65);color:#8cffe8}
html body .node-ad-card:focus-visible{outline:none}
@media(max-width:1050px){html body .node-ad-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:680px){html body .node-ad-grid{grid-template-columns:1fr!important;width:calc(100vw - 34px)}html body .node-ad-body{max-width:90%}}
@media(prefers-reduced-motion:reduce){html body .node-ad-card,html body .node-ad-card::after,html body .node-ad-cta{transition:none}}

/* Keep the five Worlds placements together on desktop; retain the shared card styling. */
@media(min-width:1051px){html body.worlds-page .node-ad-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important}html body.worlds-page .node-ad-body{max-width:100%}html body.worlds-page .node-ad-cta{max-width:100%}html body.worlds-page .node-ad-cta [data-banner-i18n]{min-width:0}}

/* Occupied placements: copy centered vertically, with a separate bottom action. */
html body .node-ad-card:not(.node-ad-vacant){align-items:stretch}
html body .node-ad-card:not(.node-ad-vacant) .node-ad-body{flex:1;display:grid;grid-template-rows:minmax(34px,1fr) auto minmax(34px,1fr);align-items:stretch}
html body .node-ad-card:not(.node-ad-vacant) .node-ad-copy{grid-row:2;display:flex;flex-direction:column;gap:5px;min-width:0}
html body .node-ad-card:not(.node-ad-vacant) .node-ad-cta{grid-row:3;align-self:end;justify-self:start;margin-top:0}

/* Partner placements retain their earlier top-aligned title and description. */
html body.page-rankings .node-ad-card:not(.node-ad-vacant) .node-ad-body{grid-template-rows:auto minmax(34px,1fr) auto}
html body.page-rankings .node-ad-card:not(.node-ad-vacant) .node-ad-copy{grid-row:1}

/* Occupied placement artwork uses its native colors and resolution. */
html body .node-ad-card:not(.node-ad-vacant)::before{content:none;background-image:none}
html body .node-ad-art{position:absolute;inset:0;z-index:-2;display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:var(--ad-position,center);opacity:1!important;filter:none!important;transform:none!important;image-rendering:auto;pointer-events:none}
html body .node-ad-card:not(.node-ad-vacant) .node-ad-copy{width:fit-content;max-width:100%;box-sizing:border-box;padding:0;border-radius:0;background:none;box-shadow:none}
html body .node-ad-card:not(.node-ad-vacant) .node-ad-cta{background:rgba(3,12,19,.84);border-color:rgba(255,255,255,.36)}

/* No image overlay or dark copy plate on either advertising inventory. */
html body .node-ad-card:not(.node-ad-vacant)::after{background:transparent}

html body .node-ad-card:not(.node-ad-vacant) :is(h3,p){text-shadow:0 1px 3px rgba(0,0,0,.8)!important}
