/* Rooster One consent banner. A cached file since 11.2.3 (brief 3.5, 7.7: it
 * used to be 10 KB of inline CSS on every page); the two per-site placement
 * rules for the reopen button stay inline. Registered with its path, so core
 * can inline it. Dual copy: identical in both plugins. */
.aieo-cmp{box-sizing:border-box;font-size:14px;line-height:1.5;color:#1f2937;}
.aieo-cmp *,.aieo-cmp *::before,.aieo-cmp *::after{box-sizing:border-box;}
.aieo-cmp[hidden],.aieo-cmp-overlay[hidden]{display:none!important;}
.aieo-cmp--bar{border-radius:0;position:fixed;left:0;inset-inline-end:0;bottom:0;z-index:99999;background:#fff;border-top:1px solid #e5e7eb;box-shadow:0 -2px 8px rgba(0,0,0,.08);padding:16px;max-height:92vh;overflow:auto;}
.aieo-cmp--bar .aieo-cmp-inner{max-width:1100px;margin:0 auto;}
.aieo-cmp--modal{position:fixed;z-index:99999;left:50%;top:calc(50% - (var(--aieo-mbar-height, 0px) / 2));transform:translate(-50%,-50%);max-width:560px;width:calc(100% - 32px);max-height:calc(100vh - var(--aieo-mbar-height, 0px) - 40px);overflow:auto;background:#fff;border-radius: var(--aieo-shape-panel, 12px);box-shadow:0 12px 40px rgba(0,0,0,.25);padding:24px;}
.aieo-cmp-overlay{position:fixed;inset:0;z-index:99998;background:color-mix(in srgb,#0b1020 38%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);}
.aieo-cmp-inner{position:relative;}
.aieo-cmp-close{position:absolute;top:4px;inset-inline-end:4px;width:30px;height:30px;padding:0;border:0;background:transparent;font-size:24px;line-height:1;cursor:pointer;color:var(--aieo-cmp-customize-fg,#6b7280);border-radius: var(--aieo-shape-button, 6px);z-index:1;}
.aieo-cmp-close:hover,.aieo-cmp-close:focus{background:rgba(0,0,0,.06);}
.aieo-cmp--bar .aieo-cmp-close{top:-6px;right:-2px;}
.aieo-cmp-main{display:flex;gap:16px;align-items:center;flex-wrap:wrap;}
.aieo-cmp--modal .aieo-cmp-main{display:block;}
.aieo-cmp-text{flex:1;min-width:220px;}
.aieo-cmp-text strong{display:block;margin-bottom:4px;font-size:15px;}
.aieo-cmp-text p{margin:0 0 6px;}
.aieo-cmp-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.aieo-cmp--modal .aieo-cmp-actions{margin-top:18px;}
.aieo-cmp-btn{padding:10px 18px;border-radius: var(--aieo-shape-button, 6px);font-size:14px;line-height:1.2;cursor:pointer;border-width:1px;border-style:solid;font-family:inherit;font-weight:500;}
.aieo-cmp-btn--accept{background:var(--aieo-cmp-accept-bg,#111827);color:var(--aieo-cmp-accept-fg,#fff);border-color:var(--aieo-cmp-accept-border,#111827);}
.aieo-cmp-btn--accept:hover,.aieo-cmp-btn--accept:focus{background:var(--aieo-cmp-accept-bg-h,#374151);color:var(--aieo-cmp-accept-fg-h,#fff);border-color:var(--aieo-cmp-accept-border-h,#374151);}
.aieo-cmp-btn--decline{background:var(--aieo-cmp-decline-bg,#fff);color:var(--aieo-cmp-decline-fg,#111827);border-color:var(--aieo-cmp-decline-border,#111827);}
.aieo-cmp-btn--decline:hover,.aieo-cmp-btn--decline:focus{background:var(--aieo-cmp-decline-bg-h,#f3f4f6);color:var(--aieo-cmp-decline-fg-h,#111827);border-color:var(--aieo-cmp-decline-border-h,#111827);}
.aieo-cmp-btn--customize{background:var(--aieo-cmp-customize-bg,transparent);color:var(--aieo-cmp-customize-fg,#374151);border-color:var(--aieo-cmp-customize-border,#d1d5db);}
.aieo-cmp-btn--customize:hover,.aieo-cmp-btn--customize:focus{background:var(--aieo-cmp-customize-bg-h,#f9fafb);color:var(--aieo-cmp-customize-fg-h,#111827);border-color:var(--aieo-cmp-customize-border-h,#9ca3af);}
.aieo-cmp-prefs{margin-top:16px;border-top:1px solid #e5e7eb;padding-top:12px;}
.aieo-cmp-prefs[hidden]{display:none!important;}
.aieo-cmp-row{display:flex;gap:10px;align-items:flex-start;padding:8px 0;}
.aieo-cmp-row input[type=checkbox]{margin-top:3px;}
.aieo-cmp-row .cat{font-weight:600;}
.aieo-cmp-pill{display:inline-block;font-size:11px;color:var(--aieo-color-fg, #1f2937);background:color-mix(in srgb, var(--aieo-color-success, #15803d) 12%, var(--aieo-color-bg, #fff));border:1px solid color-mix(in srgb, var(--aieo-color-success, #15803d) 40%, transparent);border-radius: var(--aieo-shape-panel, 10px);padding:1px 8px;margin-inline-start:6px;vertical-align:middle;}
.aieo-cmp-row .desc{color:#6b7280;font-size:13px;margin-top:2px;}
.aieo-cmp-prefs-actions{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap;}
.aieo-cmp-reopen :is(svg,.rooster-icon){width:26px;height:26px;display:block;}
/* When re-opened (floating button or the side-cart mobile bar's cookie item),
   sit ABOVE the mobile bottom bar (z-index 999996) — bar layout lifts by the
   bar height, modal/overlay just raise their z-index. */
.aieo-cmp--bar.aieo-cmp--abovebar{bottom:var(--aieo-mbar-height,0px);z-index:1000000;}
.aieo-cmp--modal.aieo-cmp--abovebar{z-index:1000000;}
.aieo-cmp-overlay.aieo-cmp--abovebar{z-index:999999;}
@media(max-width:600px){.aieo-cmp-actions .aieo-cmp-btn{flex:1 1 auto;}}
/* Logo */
.aieo-cmp-logo{margin-bottom:14px;}
.aieo-cmp-logo img{max-height:46px;width:auto;display:block;}
/* Measured logos get an explicit height from --aieo-cmp-logo-h, so a file that
   fails to load keeps the banner's height. Two classes to outweigh the
   img{height:auto} resets of themes and WooCommerce. */
.aieo-cmp .aieo-cmp-logo img{height:var(--aieo-cmp-logo-h,auto);}
.aieo-cmp--bar .aieo-cmp-logo{margin-bottom:0;}
.aieo-cmp--bar .aieo-cmp-logo img{max-height:30px;}
/* Fallback reservation for a logo whose pixel size we could not read (a truly
   external URL). The <img> carries no width/height, so before it loads the
   browser lays the banner out around a zero-height box and relays it out when
   the bytes arrive — and a bottom-anchored banner that changes height moves
   every pixel inside it. Holding the capped height costs a little whitespace
   and cannot shift. Only applied when the exact box is unknown; a logo we could
   measure reserves its real size and needs none of this. */
.aieo-cmp-logo--unsized{min-height:46px;}
.aieo-cmp--bar .aieo-cmp-logo--unsized{min-height:30px;}
/* BBC-style modal button layout: two equal side-by-side + Manage below */
.aieo-cmp--modal .aieo-cmp-actions{display:flex;gap:12px;margin-top:20px;}
.aieo-cmp--modal .aieo-cmp-actions .aieo-cmp-btn{flex:1;justify-content:center;text-align:center;padding:12px 18px;}
.aieo-cmp-manage{margin-top:12px;text-align:center;}
.aieo-cmp-manage .aieo-cmp-btn{min-width:200px;}
/* 🚨 THE ACTION ROW IS PINNED. Do not "simplify" this away.
   docs/TODO-CMP-MOBILE-HEIGHT.md:38-42 asked for it and 11.0.5 could only
   afford a copy trim instead: on a phone the modal is taller than the viewport,
   so «Συμφωνώ» sat BELOW THE FOLD and consenting required scrolling first. That
   measures patience rather than agreement, depresses the consent rate the
   banner exists to collect, and reads as a dark pattern by accident.
   Trimming copy could never be the real fix — an operator pasting their own
   `message` undoes every character saved, and Greek runs ~30% longer than
   English for the same meaning. Pinning holds at ANY copy length in ANY
   language.
   BOTH rows go in ONE wrapper: .aieo-cmp-manage follows .aieo-cmp-actions in
   source order, so pinning the actions alone would let Manage scroll underneath
   it. The negative margins make it full-bleed against the modal's 24px padding,
   and `bottom:-24px` cancels that same padding so it pins flush to the bottom
   edge rather than floating 24px above it. */
.aieo-cmp--modal .aieo-cmp-sticky{position:sticky;bottom:-24px;z-index:2;background:#fff;margin:0 -24px -24px;padding:4px 24px 20px;box-shadow:0 -8px 14px -10px rgba(0,0,0,.25);}
/* Kept for operator copy: `message` is a rich-text field and an operator may
   still paste <details class="aieo-cmp-purpose"> markup. The DEFAULT copy no
   longer emits any (the two IAB purpose blocks went with the advertising
   rewrite, 2026-08-08). */
.aieo-cmp-purpose{border-top:1px solid #e5e7eb;padding:10px 0;}
.aieo-cmp-purpose>summary{cursor:pointer;font-weight:700;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;}
.aieo-cmp-purpose>summary::-webkit-details-marker{display:none;}
.aieo-cmp-purpose>summary::after{content:"\203A";font-size:20px;line-height:1;transform:rotate(90deg);transition:transform .2s;color:#6b7280;}
.aieo-cmp-purpose[open]>summary::after{transform:rotate(-90deg);}
.aieo-cmp-purpose>p{color:#6b7280;font-size:13px;margin:8px 0 2px;}
.aieo-cmp-foot{font-size:13px;color:#6b7280;margin-top:14px;}
/* The four "what you are choosing" lines. An EXPLICIT class, not a descendant
   selector: the same copy can land in .aieo-cmp-body (modal template) or in
   .aieo-cmp-bar-desc (bar) when an operator writes their own message, and a
   selector hung off one of those would leave the other unstyled. The banner
   stylesheet has no list rules at all otherwise, so a bare <ul> would inherit
   whatever the theme does to lists. */
.aieo-cmp-asks{margin:8px 0 0;padding-left:20px;font-size:13px;color:#6b7280;}
.aieo-cmp-asks li{margin:0 0 5px;}
.aieo-cmp-prefs-head{font-weight:700;margin-bottom:6px;}
.aieo-cmp-qual{font-size:12px;color:#6b7280;font-weight:400;}
/* BBC-style bottom bar: 3 columns (title | description | links) + operator colours */
.aieo-cmp--bar{background:var(--aieo-bar-bg,#1f2937);color:var(--aieo-bar-text,#fff);border-top:0;}
.aieo-cmp--bar .aieo-cmp-bar3{display:flex;gap:24px;align-items:center;flex-wrap:wrap;}
.aieo-cmp-bar-title{flex:0 0 auto;font-weight:700;font-size:var(--aieo-bar-text-size,18px);color:var(--aieo-bar-text,#fff);max-width:280px;}
.aieo-cmp-bar-desc{flex:1;min-width:200px;font-size:var(--aieo-bar-desc-size,14px);color:var(--aieo-bar-desc,#d1d5db);}
.aieo-cmp-bar-desc p{margin:0;}
.aieo-cmp--bar .aieo-cmp-actions{flex:0 0 auto;flex-direction:column;gap:6px;align-items:flex-start;}
.aieo-cmp-link{color:var(--aieo-bar-link,#fbbf24);font-weight:700;cursor:pointer;text-decoration:none;white-space:nowrap;}
.aieo-cmp-link:hover,.aieo-cmp-link:focus{text-decoration:underline;}
.aieo-cmp--bar .aieo-cmp-close{color:var(--aieo-bar-text,#fff);}
@media(max-width:600px){.aieo-cmp--bar .aieo-cmp-bar3{gap:10px;}.aieo-cmp--bar .aieo-cmp-actions{flex-direction:row;}.aieo-cmp-bar-title{max-width:none;}}
/* The light notice (companion spec 5.2: the US model, notice and opt-out). The
 * theme's consent block gave its look: a card at the foot of the screen on the
 * theme's tokens, so it follows the palette and dark mode under Rooster Zero;
 * the fallbacks draw it on any other theme. Above the phone's bottom bar. */
.aieo-cmp-light{box-sizing:border-box;position:fixed;z-index:var(--wp--custom--rooster--z--toast,99999);inset-inline:var(--rooster-gutter,16px);bottom:calc(var(--rooster-gutter,16px) + var(--rooster-fab-offset,0px));display:grid;gap:var(--wp--preset--spacing--4,16px);max-width:44rem;margin-inline:auto;padding:var(--wp--preset--spacing--5,20px);border:1px solid var(--wp--preset--color--border,#e5e7eb);border-radius:var(--wp--custom--rooster--shape--panel,var(--aieo-shape-panel,12px));background:var(--wp--preset--color--bg,#fff);color:var(--wp--preset--color--fg,#1f2937);box-shadow:var(--wp--custom--rooster--shadow--lg,0 12px 40px rgba(0,0,0,.18));font-size:var(--wp--preset--font-size--sm,14px);line-height:1.5;}
.aieo-cmp-light *,.aieo-cmp-light *::before,.aieo-cmp-light *::after{box-sizing:border-box;}
.aieo-cmp-light[hidden]{display:none!important;}
.aieo-cmp-light__title{margin:0 0 .25rem;font-size:var(--wp--preset--font-size--lg,18px);line-height:1.3;color:inherit;}
.aieo-cmp-light__text,.aieo-cmp-light__gpc{color:var(--wp--preset--color--muted,#4b5563);}
.aieo-cmp-light__text p,.aieo-cmp-light__gpc{margin:0;}
.aieo-cmp-light__text p+p,.aieo-cmp-light__gpc{margin-top:.5rem;}
.aieo-cmp-light__gpc[hidden]{display:none;}
.aieo-cmp-light a{color:inherit;}
.aieo-cmp-light__actions{display:flex;flex-wrap:wrap;gap:var(--wp--preset--spacing--2,8px);align-items:center;}
.aieo-cmp-light__actions .wp-element-button{min-height:44px;font-size:var(--wp--preset--font-size--sm,14px);cursor:pointer;}
.aieo-cmp-light__actions .is-style-outline{background:transparent;color:var(--wp--preset--color--fg,#1f2937);border:1px solid var(--wp--preset--color--fg,#1f2937);}
.aieo-cmp-light.aieo-cmp--abovebar{z-index:1000000;}
@media (max-width:720px){.aieo-cmp-light{bottom:calc(var(--rooster-gutter,16px) + max(var(--rooster-fab-offset,0px),var(--aieo-mbar-height,0px)));}}
@media (min-width:783px){.aieo-cmp-light{grid-template-columns:1fr auto;align-items:center;}}
