/* Keep accepted 16px-based geometry when a WordPress theme uses a 10px root. Larger root text still scales. */
/* Shared Price Alert presentation. Existing pages own their layout and gutters. */
.ff-alert,.ff-alert-sheet,.ff-alert-page{
 --ff-alert-bg:var(--surface,#1a1a1d);--ff-alert-raised:var(--surface2,#222226);
 --ff-alert-line:var(--line2,#36363c);--ff-alert-text:var(--text,#e4e4ec);
 --ff-alert-muted:var(--dim,#b0b0bc);--ff-alert-yellow:var(--yellow,#f5c518);
 --ff-alert-font:'FFDealsBarlow',system-ui,sans-serif;
 color:var(--ff-alert-text);font:400 calc(1 * max(1rem, 16px))/1.5 var(--ff-alert-font);
}
.ff-alert-action-surface{font-size:max(1rem,16px);container:ff-alert-actions / inline-size;min-width:0}
.ff-alert-action-grid{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:stretch;gap:calc(.5 * max(1rem, 16px));min-width:0}
.ff-alert-action-grid:not(:has(.ff-alert-primary)){grid-template-columns:auto auto;justify-content:start}
.ff-alert-action-grid>.ff-alert{display:contents}
:is(.ff-alert,#ff-tools .ff-alert) .ff-alert-cta,
:is(.ff-alert,#ff-tools .ff-alert) .ff-alert-share{
 box-sizing:border-box;min-height:calc(2.75 * max(1rem, 16px));padding:calc(.625 * max(1rem, 16px));max-width:100%;border-radius:calc(.5625 * max(1rem, 16px));
 background:transparent;font:600 calc(.875 * max(1rem, 16px))/1.3 var(--ff-alert-font);white-space:nowrap;text-align:center;cursor:pointer;
}
:is(.ff-alert,#ff-tools .ff-alert) .ff-alert-cta{
 display:inline-flex;align-items:center;justify-content:center;gap:calc(.5 * max(1rem, 16px));min-width:calc(8.5 * max(1rem, 16px));
 padding-inline:calc(.875 * max(1rem, 16px));color:var(--ff-alert-text);border:1px solid #4b4b53;background:var(--ff-alert-raised);
}
:is(.ff-alert,#ff-tools .ff-alert) .ff-alert-cta .ff-alert-bell{color:var(--ff-alert-yellow)}
:is(.ff-alert,#ff-tools .ff-alert) .ff-alert-cta.is-watching{color:var(--ff-alert-text);border-color:#806b20;background:#2b291f}
:is(.ff-alert,#ff-tools .ff-alert) .ff-alert-share{display:inline-flex;align-items:center;justify-content:center;color:var(--ff-alert-muted);border:1px solid #57575e}
.ff-alert-label{display:block;min-width:0}
.ff-alert-size{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;pointer-events:none}
.ff-alert-bell{width:calc(1 * max(1rem, 16px));height:calc(1 * max(1rem, 16px));fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.ff-alert-bell.is-filled .ff-alert-bell-body{fill:currentColor}
.ff-alert [data-ff-message]{grid-column:1/-1;margin:0;font-size:calc(.8125 * max(1rem, 16px));line-height:1.45;overflow-wrap:anywhere}
.ff-alert [data-ff-message]:empty{display:none}
.ff-alert [aria-busy=true]{opacity:.65;cursor:wait}.ff-alert button:disabled{cursor:default;opacity:.65}
/* The primary link is kept; only its label and arrangement are compacted. */
:is(.ff-alert-action-grid,#ff-tools .ff-alert-action-grid)>.ff-alert-primary{
 display:flex;align-items:center;justify-content:center;min-width:0;min-height:calc(2.75 * max(1rem, 16px));
 width:auto;margin:0;padding:calc(.625 * max(1rem, 16px)) calc(.75 * max(1rem, 16px));box-sizing:border-box;white-space:nowrap;
 font:600 calc(.9375 * max(1rem, 16px))/1.3 'FFDealsBarlow',system-ui,sans-serif;text-align:center;
}
#ff-tools .hero-cta:has(.ff-alert-action-grid){display:block}
.qt__bar.ff-alert-action-surface{display:grid;grid-template-columns:minmax(0,1fr)}
.ff-alert-action-surface:has(>.ff-alert-action-grid:only-child){min-width:0}
/* One intentional fallback, based on available container space and text size, not device presets. */
@container ff-alert-actions (max-width:18em){
 .ff-alert-action-grid,.ff-alert-action-grid:not(:has(.ff-alert-primary)){grid-template-columns:repeat(auto-fit,minmax(min(100%,calc(8 * max(1rem, 16px))),1fr));justify-content:stretch}
 .ff-alert-action-grid>.ff-alert-primary{grid-column:1/-1}
}
/* Compact identity never changes the position of price or action siblings. */
#ff-tools .hero:has(.ff-alert) .hero-name,#ff-tools .pd-name,#ff-tools .r-name,.qt:has(.ff-alert) .qt__name{
 min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.qt:has(.ff-alert) .qt__name{display:block;-webkit-line-clamp:unset}
#ff-tools .hero-top,#ff-tools .hero-top>div,#ff-tools .pd-identity,#ff-tools .r-mid,.qt:has(.ff-alert) .qt__id{min-width:0}
.ff-alert-sheet{
 --ff-alert-gutter:calc(1 * max(1rem, 16px));margin:auto;box-sizing:border-box;width:min(calc(30 * max(1rem, 16px)),calc(100% - calc(2 * max(1rem, 16px))));max-width:100%;
 max-height:calc(100dvh - calc(2 * max(1rem, 16px)));padding:0;border:1px solid var(--ff-alert-line);border-radius:calc(1.125 * max(1rem, 16px));
 background:var(--ff-alert-bg);overflow:hidden;color-scheme:dark;
}
.ff-alert-sheet::backdrop{background:rgba(0,0,0,.68)}
.ff-alert-sheet-inner{box-sizing:border-box;max-height:inherit;padding:0 var(--ff-alert-gutter) max(calc(1.25 * max(1rem, 16px)),env(safe-area-inset-bottom));overflow:auto;overscroll-behavior:contain}
.ff-alert-sheet-head{position:sticky;top:0;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:calc(.625 * max(1rem, 16px)) calc(.75 * max(1rem, 16px));padding:calc(.625 * max(1rem, 16px)) 0 calc(.875 * max(1rem, 16px));background:var(--ff-alert-bg)}
.ff-alert-handle{grid-column:1/-1;justify-self:center;width:calc(2.25 * max(1rem, 16px));height:calc(.25 * max(1rem, 16px));border-radius:calc(1 * max(1rem, 16px));background:#55555e}
.ff-alert-sheet h2{margin:0;font:700 calc(1.375 * max(1rem, 16px))/1.25 'FFDealsCondensed',var(--ff-alert-font);color:#fff}
.ff-alert-sheet button,.ff-alert-page button{
 box-sizing:border-box;min-height:calc(2.75 * max(1rem, 16px));padding:calc(.6875 * max(1rem, 16px)) calc(1 * max(1rem, 16px));border:1px solid #75621b;border-radius:calc(.5625 * max(1rem, 16px));
 background:var(--ff-alert-yellow);color:#111113;font:600 calc(1 * max(1rem, 16px))/1.35 var(--ff-alert-font);cursor:pointer;
}
.ff-alert-sheet [data-close]{display:grid;place-items:center;min-width:calc(2.75 * max(1rem, 16px));min-height:calc(2.75 * max(1rem, 16px));padding:0;background:var(--ff-alert-raised);color:var(--ff-alert-muted);border:1px solid var(--ff-alert-line);font:400 calc(1.5 * max(1rem, 16px))/1 var(--ff-alert-font)}
.ff-alert-product{display:grid;grid-template-columns:minmax(0,1fr);gap:calc(.625 * max(1rem, 16px));align-items:center;padding:calc(.75 * max(1rem, 16px));background:var(--ff-alert-raised);border:1px solid var(--ff-alert-line);border-radius:calc(.625 * max(1rem, 16px))}
.ff-alert-product:has(img){grid-template-columns:auto minmax(0,1fr)}
.ff-alert-product-copy{min-width:0}
.ff-alert-product img{width:calc(2.5 * max(1rem, 16px));height:calc(2.5 * max(1rem, 16px));object-fit:contain;border-radius:calc(.375 * max(1rem, 16px));background:#fff}
.ff-alert-product h3{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:700 calc(1 * max(1rem, 16px))/1.4 var(--ff-alert-font);color:#fff}
.ff-alert-product .ff-alert-price-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 calc(.5 * max(1rem, 16px));margin:calc(.25 * max(1rem, 16px)) 0 0;font-size:calc(.875 * max(1rem, 16px));line-height:1.4;color:var(--ff-alert-muted)}
.ff-alert-price-row strong{flex:none;white-space:nowrap;font-size:calc(1.1875 * max(1rem, 16px));line-height:1.4;font-weight:700;font-variant-numeric:tabular-nums;color:#3ecf8e}
.ff-alert-price-row>span{min-width:0;overflow-wrap:anywhere}
.ff-alert-product .ff-alert-basis,.ff-alert-product .ff-alert-availability{margin:calc(.25 * max(1rem, 16px)) 0 0;color:var(--ff-alert-muted);font-size:calc(.8125 * max(1rem, 16px));line-height:1.45;overflow-wrap:anywhere}
.ff-alert-sheet [data-explanation]{margin:calc(.875 * max(1rem, 16px)) 0;font-size:calc(.9375 * max(1rem, 16px));line-height:1.5}
.ff-alert-sheet form{margin:0}.ff-alert-sheet label{display:block;font-size:calc(.875 * max(1rem, 16px));margin:0 0 calc(.375 * max(1rem, 16px))}
.ff-alert-sheet input{box-sizing:border-box;width:100%;min-height:calc(3 * max(1rem, 16px));padding:calc(.6875 * max(1rem, 16px)) calc(.75 * max(1rem, 16px));background:#111113;color:#fff;border:1px solid #62626c;border-radius:calc(.5 * max(1rem, 16px));font:inherit}
.ff-alert-sheet input[aria-invalid=true]{border-color:#ff9b94}
.ff-alert-sheet #ff-alert-error{color:#ffaaa4;font-size:calc(.875 * max(1rem, 16px));line-height:1.4;margin:calc(.375 * max(1rem, 16px)) 0 0}
.ff-alert-sheet #ff-alert-error:empty,.ff-alert-sheet [data-result]:empty{display:none}
.ff-alert-sheet form>button{width:100%;margin-top:calc(.75 * max(1rem, 16px))}
.ff-alert-sheet .ff-alert-fine{margin:calc(.625 * max(1rem, 16px)) 0 0;font-size:calc(.8125 * max(1rem, 16px));line-height:1.5;color:var(--ff-alert-muted)}
.ff-alert-sheet [data-result]{margin:calc(.875 * max(1rem, 16px)) 0;line-height:1.5;overflow-wrap:anywhere}
.ff-alert-sheet [data-actions]{display:grid;gap:calc(.625 * max(1rem, 16px))}.ff-alert-sheet [data-actions]:empty{display:none}
.ff-alert-sheet [hidden]{display:none!important}.ff-alert-sheet button:disabled,.ff-alert-page button:disabled{opacity:.6;cursor:wait}
.ff-alert :focus-visible,.ff-alert-sheet :focus-visible,.ff-alert-page :focus-visible,.ff-alert-action-grid>:focus-visible{outline:3px solid #f5c518;outline-offset:3px}
.ff-alert-page{
 box-sizing:border-box;width:min(100%,calc(30 * max(1rem, 16px)));margin:clamp(calc(1 * max(1rem, 16px)),8vh,calc(5 * max(1rem, 16px))) auto;padding:calc(1.5 * max(1rem, 16px));
 background:var(--ff-alert-bg);border:1px solid var(--ff-alert-line);border-radius:calc(1 * max(1rem, 16px));color-scheme:dark;
}
body:has(.ff-alert-page){margin:0;padding:calc(1 * max(1rem, 16px));background:#111113}
.ff-alert-brand{margin:0 0 calc(.75 * max(1rem, 16px));font:800 calc(1.125 * max(1rem, 16px))/1.2 'FFDealsCondensed',var(--ff-alert-font);letter-spacing:.05em;color:var(--ff-alert-yellow)}
.ff-alert-page h1{font:700 calc(1.5 * max(1rem, 16px))/1.2 'FFDealsCondensed',var(--ff-alert-font);margin:0 0 calc(1.25 * max(1rem, 16px));color:#fff}
.ff-alert-page [data-ff-alert-product-context]:empty{display:none}
.ff-alert-page [data-ff-alert-message]{margin:calc(1 * max(1rem, 16px)) 0;overflow-wrap:anywhere}
.ff-alert-page .ff-alert-watch-status{font-weight:600}.ff-alert-page .ff-alert-watch-status[data-state=active]{color:#3ecf8e}
.ff-alert-page [data-ff-alert-controls]{display:grid;gap:calc(.625 * max(1rem, 16px))}.ff-alert-page .ff-alert-stop{background:transparent;color:var(--ff-alert-text);border-color:#62626c}
@media(max-width:600px){.ff-alert-sheet{width:100%;max-height:90dvh;margin:auto 0 0;border-radius:calc(1.125 * max(1rem, 16px)) calc(1.125 * max(1rem, 16px)) 0 0;border-bottom:0}}
@media(prefers-reduced-motion:no-preference){.ff-alert-sheet[open]{animation:ff-alert-in .16s ease-out}@keyframes ff-alert-in{from{transform:translateY(calc(.75 * max(1rem, 16px)));opacity:.5}to{transform:translateY(0);opacity:1}}}

/* Shared final sheet affordances; no changes to the site's notification bell. */
.ff-alert-sheet [data-close]{position:absolute;top:0;right:calc(-1 * max(1rem,16px));margin:0;border:0;background:transparent;border-radius:50%;color:var(--ff-alert-muted);width:calc(2.75 * max(1rem,16px));height:calc(2.75 * max(1rem,16px));}
.ff-alert-sheet [data-close] svg{width:calc(.875 * max(1rem,16px));height:calc(.875 * max(1rem,16px));fill:none;stroke:currentColor;stroke-width:1.7}
.ff-alert-sheet [data-close]:hover{color:var(--ff-alert-text)}
.ff-alert-product:has(.ff-alert-media,.ff-alert-image-fallback){grid-template-columns:auto minmax(0,1fr)}
.ff-alert-media,.ff-alert-image-fallback{display:grid;place-items:center;width:calc(2.5 * max(1rem,16px));height:calc(2.5 * max(1rem,16px));border-radius:calc(.375 * max(1rem,16px));overflow:hidden;background:var(--ff-alert-bg);color:var(--ff-alert-muted);font:700 calc(.8125 * max(1rem,16px))/1 var(--ff-alert-font)}
.ff-alert-media>*{grid-area:1/1}.ff-alert-media img{opacity:0}.ff-alert-media.is-loaded img{opacity:1}.ff-alert-media.is-loaded .ff-alert-image-fallback{visibility:hidden}
.ff-alert-sheet [data-result]:has(svg),.ff-alert-watch-status:has(svg){display:flex;align-items:center;gap:calc(.375 * max(1rem,16px))}
.ff-alert-sheet [data-result] .ff-alert-bell,.ff-alert-page .ff-alert-watch-status .ff-alert-bell{vertical-align:middle}

.ff-alert-sheet-head{grid-template-columns:minmax(0,1fr)}
.ff-alert-sheet-head h2{padding-right:calc(2.75 * max(1rem,16px))}

/* Share uses the same compact outline SVG treatment as the shared alert bell. */
:is(.ff-alert,#ff-tools .ff-alert) .ff-alert-share{min-width:calc(2.75 * max(1rem,16px));gap:calc(.375 * max(1rem,16px))}
.ff-alert-share svg{width:calc(1 * max(1rem,16px));height:calc(1 * max(1rem,16px));fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
@container ff-alert-actions (max-width:28em){.ff-alert-share-label{display:none}}

/* Individual-review product alert: the existing header owns both aligned columns. */
.card-hdr:has(>[data-ff-alert-review-header]){display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:8px}
.card-hdr:has(>[data-ff-alert-review-header])>.card-ttl{min-width:0;margin:0;white-space:nowrap}
.card-hdr:has(>[data-ff-alert-review-header])>.card-sub{grid-column:1/-1}
[data-ff-alert-review-header]{display:block;min-width:0}
[data-ff-alert-review-header]>.ff-alert{margin:0}
.ff-alert-review-share{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:8px}
.ff-alert-review-share [data-ff-message]{flex:1 1 160px}

/* Small secondary header face within the existing accessible 44px hit area. */
:is([data-ff-alert-review-header] .ff-alert,#ff-tools [data-ff-alert-review-header] .ff-alert) .ff-alert-cta{display:inline-flex;align-items:center;justify-content:center;min-width:0;min-height:44px;width:auto;padding:0;border:0;border-radius:0;background:transparent;font-size:calc(.75 * max(1rem,16px));line-height:1.25}
.ff-alert-header-face{display:inline-flex;align-items:center;justify-content:center;gap:calc(.375 * max(1rem,16px));padding:calc(.25 * max(1rem,16px)) calc(.5 * max(1rem,16px));border:1px solid #4b4b53;border-radius:6px;color:var(--ff-alert-text);background:var(--ff-alert-raised)}
[data-ff-alert-review-header] .ff-alert-header-face svg{display:block;width:calc(.75 * max(1rem,16px));height:calc(.75 * max(1rem,16px))}
[data-ff-alert-review-header] .ff-alert-header-face .ff-alert-bell{color:var(--ff-alert-yellow)}
[data-ff-alert-review-header] .is-watching .ff-alert-header-face{color:var(--ff-alert-text);border-color:#806b20;background:#2b291f}
