/*
 * File: assets/css/ifl-store.css
 * Description: Centralized Global CSS for IFL Store UI components.
 * Version: 5.8.0 (CSS custom properties for brand theming)
 *
 * Brand variables are defined here with IFL defaults.
 * Override with a brand-specific stylesheet (e.g., ifl-store-pnt.css).
 *
 * !!! BUILD NOTE !!!
 * Production loads ifl-store.min.css (enqueue uses the '.min' suffix unless SCRIPT_DEBUG is on).
 * There is NO automated minifier — the .min file is a plain copy of this file.
 * EVERY TIME you edit ifl-store.css, copy it over ifl-store.min.css so prod gets the change.
 * (Local/dev with SCRIPT_DEBUG=on loads this source file, which is why dev looks correct
 *  even when the min file has drifted.)
 */

:root {
    --brand-primary: #37518c;
    --brand-primary-hover: #2c4170;
    --brand-light: #eff6ff;
    --brand-light-border: #bfdbfe;
    --brand-dark: #1e293b;
    --brand-cta: #37518c; /* Primary CTA color (Add to Cart, donation buttons, etc.). Was previously undefined, so an emerald #10b981 fallback leaked through on the storefront. */
    --brand-font: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --brand-title-font: 'Times New Roman', Times, serif;
    --brand-bg: #f8fafc;
}

/* ========================================================================
   STORE PAGE THEME INTEGRATION
   ======================================================================== */

/* Reduce page title size on commerce pages — some themes use oversized H1 for content pages */
.ifl-store-page .entry-title {
    font-size: 1.6em !important;
    line-height: 1.2 !important;
    margin-bottom: 10px !important;
}

/* Constrain store page width — prevents content from stretching too wide on large screens */
.ifl-store-page .content-sidebar-wrap,
.ifl-store-page .content {
    max-width: 1800px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Warm store background — softer than stark white, connects to brand */
.ifl-store-page .site-inner,
.ifl-store-page .site-container {
    background-color: var(--brand-bg);
}

/* Match the footer donation section background on store pages */
.ifl-store-page .main-front-donation-bg {
    background-color: var(--brand-bg);
}

/* Force header cart dropdown text to be visible (some themes set nav text to white) */
.ifl-header-dropdown,
.ifl-header-dropdown * {
    color: #1e293b !important;
}
.ifl-header-dropdown a {
    color: var(--brand-primary) !important;
    text-decoration: none !important;
}
.ifl-header-dropdown a:hover {
    color: #1e293b !important;
    text-decoration: underline !important;
}
.ifl-header-dropdown .ifl-mini-remove {
    color: #ef4444 !important;
    font-size: 0.8em !important;
}

/* Force mini cart buttons to be visible regardless of theme overrides */
.ifl-header-dropdown .ifl-mini-btn--primary {
    background: var(--brand-primary) !important;
    color: #fff !important;
    border: 2px solid var(--brand-primary) !important;
    display: inline-block !important;
    text-align: center !important;
    padding: 8px 12px !important;
    font-size: 0.85em !important;
}
.ifl-header-dropdown .ifl-mini-btn--primary:hover {
    background: var(--brand-primary-hover) !important;
    color: #fff !important;
    text-decoration: none !important;
}
.ifl-header-dropdown .ifl-mini-btn--secondary {
    background: #fff !important;
    color: #475569 !important;
    border: 2px solid #cbd5e1 !important;
    display: inline-block !important;
    text-align: center !important;
    padding: 8px 12px !important;
    font-size: 0.85em !important;
}
.ifl-header-dropdown .ifl-mini-btn--secondary:hover {
    background: #f1f5f9 !important;
    color: #1e293b !important;
    text-decoration: none !important;
}
.ifl-header-dropdown .ifl-mini-actions {
    display: flex !important;
    gap: 10px !important;
    margin-top: 15px !important;
}

/* Header cart trigger — vertical layout with CART label */
/* Align cart with other nav items — strip wrapper margins/padding, let theme handle flow */
.genesis-nav-menu li.nav-shopping-cart {
    vertical-align: top !important;
}
.genesis-nav-menu li.nav-shopping-cart > .ifl-header-cart {
    position: relative;
    margin: 0 !important;
    padding: 0 !important;
}
.genesis-nav-menu .ifl-header-cart-trigger {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 6px !important;
}
.ifl-header-cart-icon {
    transition: all 0.2s ease-in-out !important;
}
.ifl-header-cart-label {
    transition: all 0.2s ease-in-out !important;
}
.ifl-header-cart-trigger-inner {
    display: flex;
    align-items: center;
    gap: 4px;
}
.ifl-header-cart-icon {
    width: 18px !important;
    height: 18px !important;
}
.ifl-header-cart-trigger-inner {
    display: flex;
    align-items: center;
    gap: 2px;
    line-height: 1;
}
.ifl-header-cart-label {
    /* Casing comes from the PHP-emitted label string (brand-keyed in ifl-shortcode-cart.php),
       not forced via CSS. PNT keeps CART/SHOP, IFL uses "My Cart". */
}
.ifl-header-cart-total {
    display: none !important;
}

/* Remove bullet dots from all list items on store/account pages */
.ifl-store-page li,
.ifl-store-page ul li,
.ifl-store-page nav li,
.ifl-store-page .ifl-account-nav li {
    list-style: none !important;
    list-style-type: none !important;
}
.ifl-store-page ul {
    padding-left: 0 !important;
}

/* Force content headings on account pages to be dark (theme may set them white) */
/* Scoped to .ifl-account-content to avoid overriding the welcome box or page title */
.ifl-store-page .ifl-account-content h2,
.ifl-store-page .ifl-account-content h3,
.ifl-store-page .ifl-account-content h4 {
    color: var(--brand-dark) !important; font-family: var(--brand-font) !important;
}
.ifl-store-page .ifl-account-section-title {
    color: var(--brand-dark) !important; font-family: var(--brand-font) !important;
    font-size: 1.5em !important; border-bottom: 2px solid var(--brand-primary); padding-bottom: 10px; margin-bottom: 20px;
}

/* Clean up the Update Profile button */
.ifl-store-page .ifl-profile-submit {
    background: transparent !important;
    padding: 15px 0 !important;
}
.ifl-store-page button.ifl-profile-btn {
    background: var(--brand-primary) !important;
    color: #fff !important;
    border: none !important;
    padding: 12px 30px !important;
    border-radius: 6px !important;
    font-weight: bold !important;
    cursor: pointer !important;
    font-size: 0.95em !important;
    width: auto !important;
}
.ifl-store-page button.ifl-profile-btn:hover {
    background: var(--brand-primary-hover) !important;
}

/* Force Order Summary heading to be visible (some themes render H3 in white/light colors) */
.ifl-summary-header h3 {
    color: #1e293b !important;
    font-size: 1.3em !important;
}

/* Ensure all $ currency symbols don't overlap input text on wider fonts */
.ifl-gift-currency,
.ifl-donation-currency,
.ifl-currency-symbol {
    left: 10px !important;
    top: 50% !important;
    transform: translateY(-50%);
}
.ifl-gift-input,
.ifl-donation-input,
.ifl-price-input {
    padding-left: 30px !important;
}

/* ========================================================================
   ACCESSIBILITY FOUNDATION
   ======================================================================== */

/* Screen reader only — visually hidden but accessible to assistive tech.
   Used for form labels that have visible placeholders. */
.ifl-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Skip navigation link — appears on focus for keyboard users */
.ifl-skip-link {
    position: absolute;
    top: -100%;
    left: 50%;
    transform: translateX(-50%);
    background: var(--brand-primary);
    color: #fff;
    padding: 12px 24px;
    border-radius: 0 0 8px 8px;
    font-weight: bold;
    text-decoration: none;
    z-index: 100000;
    transition: top 0.2s;
}
.ifl-skip-link:focus {
    top: 0;
}

/* Focus outline for keyboard navigation — consistent across all interactive elements */
.ifl-header-cart-trigger:focus-visible,
.ifl-remove-btn:focus-visible,
.ifl-remove-item:focus-visible,
.ifl-catalog-card a:focus-visible,
.ifl-catalog-card button:focus-visible,
.ifl-catalog-card .button:focus-visible {
    outline: 3px solid #3b82f6;
    outline-offset: 2px;
}

/* Donation amount radio cards — accessible visually hidden radio pattern */
.ifl-amt-radio {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.ifl-amt-lbl:focus-within {
    outline: 3px solid #3b82f6;
    outline-offset: 2px;
}

/* Header Cart */
.ifl-header-cart { position: relative; display: inline-block; cursor: pointer; font-family: inherit; }
.ifl-header-cart-trigger { display: flex; align-items: center; gap: 8px; text-decoration: none; color: inherit; padding: 10px 0; }
.ifl-header-cart-icon { width: 24px; height: 24px; }
.ifl-header-cart-qty { background: var(--brand-primary); color: #fff; border-radius: 50%; padding: 2px 8px; font-size: 0.8em; font-weight: bold; margin-left: -5px; }
.ifl-header-cart-total { font-weight: bold; }
.ifl-header-dropdown { display: none; position: absolute; right: 0; top: 100%; background: #fff; box-shadow: 0 10px 25px rgba(0,0,0,0.15); padding: 20px; width: 420px; max-width: 90vw; border-radius: 8px; z-index: 99999; border: 1px solid #e2e8f0; }
/* Keyboard + hover accessible: :focus-within ensures keyboard users can open the dropdown */
@media(min-width: 768px) {
    .ifl-header-cart:hover .ifl-header-dropdown,
    .ifl-header-cart:focus-within .ifl-header-dropdown { display: block; }
}

/* Cart Page */
.ifl-cart-container { max-width: 1000px; margin: 40px auto; font-family: inherit; }
.ifl-cart-grid { display: flex; flex-direction: column; gap: 15px; margin-top: 20px; }
.ifl-cart-row { display: grid; grid-template-columns: 1fr; gap: 15px; padding: 20px 15px; background: #fff; border: 1px solid #e2e8f0; border-radius: 8px; align-items: center; box-shadow: 0 2px 4px rgba(0,0,0,0.02); }
@media(min-width: 768px) {
    .ifl-cart-row { grid-template-columns: minmax(0, 1fr) 100px 140px 80px; padding: 20px 25px; }
    .ifl-cart-header { background: #f8fafc; border-bottom: 2px solid #cbd5e1; font-weight: bold; color: #475569; padding: 15px 25px; border-radius: 8px 8px 0 0; display: grid; grid-template-columns: minmax(0, 1fr) 100px 140px 80px; gap: 15px; margin-bottom: -15px; }
}
.ifl-cart-item-name { font-size: 1.15em; font-weight: bold; color: var(--brand-primary); line-height: 1.4; word-wrap: break-word; }
.ifl-cart-item-sku { display: inline-block; background: #e2e8f0; color: #475569; font-size: 0.75em; padding: 2px 8px; border-radius: 12px; margin-top: 6px; font-weight: bold; letter-spacing: 0.5px; }
.ifl-cart-qty-col { text-align: center; }
.ifl-cart-price-col { text-align: right; font-weight: bold; font-size: 1.2em; color: #1e293b; }
.ifl-cart-action-col { text-align: right; }
.ifl-remove-btn { color: #d63638; border: 1px solid transparent; background: none; cursor: pointer; font-weight: bold; font-size: 0.9em; padding: 6px 12px; border-radius: 4px; transition: all 0.2s; }
.ifl-remove-btn:hover, .ifl-remove-btn:focus-visible { background: #fef2f2; border-color: #fecaca; }
.ifl-remove-btn:focus-visible { outline: 3px solid #3b82f6; outline-offset: 2px; }
.ifl-cart-footer-grid { display: grid; grid-template-columns: 1fr; gap: 40px; margin-top: 40px; }
@media(min-width: 768px) { .ifl-cart-footer-grid { grid-template-columns: 1fr 1fr; } }

/* Checkout Page */
.ifl-checkout-grid { display: grid; grid-template-columns: 1fr; gap: 40px; }
@media(min-width: 768px) { .ifl-checkout-grid { grid-template-columns: 1.5fr 1fr; } }
@keyframes ifl-spin { to { transform: rotate(360deg); } }

/* Catalog / Category / Featured */
.ifl-store-catalog-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 0px; font-family: var(--brand-font); }
@media (max-width: 900px) { .ifl-store-catalog-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 500px) { .ifl-store-catalog-grid { grid-template-columns: 1fr; } }
.ifl-catalog-card { border: 1px solid #e2e8f0; padding: 15px; border-radius: 12px; background: #fff; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05); display: flex; flex-direction: column; justify-content: space-between; transition: transform 0.2s, box-shadow 0.2s; }
.ifl-catalog-card:hover, .ifl-catalog-card:focus-within { transform: translateY(-3px); box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1); }
.ifl-catalog-card a { text-decoration: none; color: inherit; display: block; margin-bottom: 15px; }
.ifl-catalog-card img { width: 100%; height: auto; border-radius: 8px; margin-bottom: 12px; aspect-ratio: 1/1; object-fit: cover; }
.ifl-catalog-card h3 { font-size: 1.1em; line-height: 1.3; color: var(--brand-primary); min-height: 2.6em; margin: 0; }
.ifl-catalog-price { font-weight: 900; font-size: 1.25em; margin: 8px 0; color: #1e293b; }
.ifl-catalog-pagination { display: flex; justify-content: center; gap: 8px; margin-top: 40px; flex-wrap: wrap; }
.ifl-catalog-pagination a, .ifl-catalog-pagination span { padding: 8px 14px; border: 1px solid #cbd5e1; border-radius: 6px; text-decoration: none; color: var(--brand-primary); font-weight: bold; background: #fff; }
.ifl-catalog-pagination .current { background: var(--brand-primary); color: #fff; border-color: var(--brand-primary); }

/* Search Results */
body.page-template-page-store-search .content-sidebar-wrap, 
body.page-template-page-store-search .content, 
body.page-template-page-store-search .page-full-main-bg, 
body.page-template-page-store-search .page-top, 
body.page-template-page-store-search .entry-content { 
    width: 100% !important; max-width: 100% !important; float: none !important; margin-left: auto !important; margin-right: auto !important; display: block !important; padding: 0 !important;
}
body.page-template-page-store-search .content { max-width: 1400px !important; padding: 0 20px !important; }
.ifl-store-search-container { width: 100%; max-width: 1400px; margin: 0 auto; font-family: inherit; }
.ifl-best-match-card { background: #f8fafc; border: 2px solid var(--brand-primary); border-radius: 12px; overflow: hidden; box-shadow: 0 10px 15px -3px rgba(55,81,140,0.15); margin-bottom: 40px; display: flex; flex-direction: column; width: 100% !important; }
@media(min-width: 768px) { .ifl-best-match-card { flex-direction: row; } }
.ifl-best-match-badge { display: inline-flex; background: var(--brand-primary); color: white; padding: 5px 12px; border-radius: 20px; font-size: 0.75rem; font-weight: bold; margin-bottom: 12px; text-transform: uppercase; }
.ifl-ai-summary-box { background: #f4f6fa; border-left: 4px solid var(--brand-primary); padding: 12px 15px; border-radius: 0 8px 8px 0; font-size: 0.95rem; color: #1e2c4d; display: none; margin-top: 12px; line-height: 1.5; }
.ifl-ai-summary-box strong { color: #2b406e; text-transform: uppercase; display: block; margin-bottom: 5px;}
.ifl-shimmer { animation: shimmer 2s infinite linear; background: linear-gradient(to right, #e2e8f0 4%, #cbd5e1 25%, #e2e8f0 36%); background-size: 1000px 100%; border-radius: 4px; height: 16px; margin-bottom: 8px; }
@keyframes shimmer { 0% { background-position: -1000px 0; } 100% { background-position: 1000px 0; } }

/* Account Dashboard */
/* Hide the page title on account pages and store home — hero/welcome replaces it */
body:has(.ifl-account-wrap) .entry-title,
body:has(.ifl-account-wrap) .entry-header,
body:has(.ifl-account-login-wrap) .entry-title,
body:has(.ifl-account-login-wrap) .entry-header { display: none; }
/* Store home: neutralize the theme page-banner, but keep the page H1 crawlable (sr-only) for SEO */
body:has(.ifl-store-home-wrap) .entry-header { background: none !important; border: none !important; box-shadow: none !important; min-height: 0 !important; height: 0 !important; padding: 0 !important; margin: 0 !important; }
body:has(.ifl-store-home-wrap) .entry-title { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
/* Hide the WP page content rendered before the shortcode — we pull it inside instead */
.ifl-store-home-wrap ~ .ifl-store-page-content-hidden { display: none; }
.ifl-store-intro {
    max-width: 900px; margin: 0 auto 30px; text-align: center;
    font-size: 1em; color: #475569; line-height: 1.7;
}
.ifl-store-intro p { margin: 0; }
.ifl-account-wrap { max-width: 1220px; margin: 30px auto; font-family: var(--brand-font); display: flex; flex-direction: column; gap: 0; background: #fff; box-shadow: 0 0 10px 0 rgba(0,0,0,.1); padding: 15px 50px 50px; box-sizing: border-box; }
/* Green (Paws & Tales) accents → ifl-blue, scoped to the account page. */
.ifl-account-wrap { --brand-dark: #37518c; --brand-cta: #37518c; }
.ifl-account-nav a:hover { border-bottom-color: #bfdbfe; }
/* My Account header — grey box, Times New Roman italic (matches PDP + Companion), spanning the frame, with the welcome line. */
.ifl-account-page-header { background: #f4f4f5; text-align: center; padding: 30px 50px; margin: -15px -50px 24px; }
.ifl-account-page-title { font-family: var(--brand-title-font, 'Times New Roman', Times, serif); font-style: italic; font-weight: 400; font-size: 2.4em; line-height: 1.2; color: #1f2937; margin: 0; }
.ifl-account-page-welcome { color: #475569; font-size: 1.05em; margin: 10px 0 0; }
/* Monthly Companions Hub — match the store title convention (Times New Roman). */
.ifl-companion-page-header .entry-title { font-family: var(--brand-title-font, 'Times New Roman', Times, serif); font-style: italic; font-weight: 400; color: #1f2937; }
.ifl-account-nav { width: 100%; }
.ifl-account-nav ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 0; border-bottom: 2px solid #e2e8f0; }
.ifl-account-nav li { flex: none; }
.ifl-account-nav a { display: block; padding: 12px 20px; text-decoration: none; color: #64748b; border-left: none; font-weight: bold; background: transparent; margin-bottom: -2px; border-radius: 0; font-size: 0.9em; transition: all 0.2s ease; text-align: center; white-space: nowrap; border-bottom: 3px solid transparent; }
.ifl-account-nav a:hover { color: var(--brand-dark); border-bottom-color: #bfdbfe; }
.ifl-account-nav a.active { color: var(--brand-dark); border-bottom-color: var(--brand-dark); background: transparent; }
.ifl-account-content { flex: 1; min-width: 300px; padding-top: 25px; }
@media (max-width: 768px) {
    .ifl-account-nav ul { flex-direction: column; }
    .ifl-account-nav li { flex: none; }
    .ifl-account-nav a { text-align: left; padding: 12px 16px; }
}
.ifl-order-card { border: 1px solid #e2e8f0; border-radius: 8px; padding: 20px; margin-bottom: 20px; box-shadow: 0 2px 4px rgba(0,0,0,0.02); }

/* Global Cart Notification */
#ifl-cart-notification { position: fixed; top: 20px; right: 20px; background: var(--brand-primary); color: #fff; padding: 20px; border-radius: 8px; box-shadow: 0 10px 25px rgba(0,0,0,0.3); z-index: 999999; display: none; min-width: 300px; animation: slideInRight 0.3s ease-out forwards; }
@keyframes slideInRight { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
#ifl-cart-notification .actions { margin-top: 15px; display: flex; gap: 10px; }
#ifl-cart-notification .btn { flex: 1; text-align: center; padding: 8px; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.9em; cursor: pointer; border: none; }
#ifl-cart-notification .btn-light { background: #fff !important; color: var(--brand-primary) !important; }

/* Toast Notifications */
.ifl-toast { position: fixed; top: 20px; right: 20px; min-width: 320px; max-width: 480px; padding: 16px 44px 16px 20px; border-radius: 8px; color: #fff; font-size: 0.95em; line-height: 1.4; box-shadow: 0 8px 24px rgba(0,0,0,0.25); z-index: 1000000; transform: translateX(110%); opacity: 0; transition: transform 0.3s ease, opacity 0.3s ease; }
.ifl-toast--visible { transform: translateX(0); opacity: 1; }
.ifl-toast--error { background: #dc2626; }
.ifl-toast--success { background: #059669; }
.ifl-toast--warning { background: #d97706; }
.ifl-toast--info { background: var(--brand-primary); }
.ifl-toast-close { position: absolute; top: 8px; right: 12px; background: none; border: none; color: rgba(255,255,255,0.8); font-size: 1.4em; cursor: pointer; padding: 0 4px; line-height: 1; }
.ifl-toast-close:hover { color: #fff; }
.ifl-toast-msg { display: block; }

/* ========================================================================
   BUTTON HOVER/FOCUS STATES (Replacing inline onmouseover/onmouseout)
   ======================================================================== */
.ifl-add-to-cart-btn {
    width: 100%;
    background: #1e293b;
    color: #fff;
    border: none;
    padding: 10px;
    border-radius: 6px;
    cursor: pointer;
    font-weight: bold;
    font-size: 1em;
    transition: background 0.2s;
}
.ifl-add-to-cart-btn:hover, .ifl-add-to-cart-btn:focus-visible {
    background: var(--brand-primary);
}
.ifl-add-to-cart-btn:focus-visible {
    outline: 3px solid #3b82f6;
    outline-offset: 2px;
}
/* "Select Options" / add-to-cart rendered as <a> links inherit the theme's link color,
   which hides the label on the dark button until hover. Force white on the SOLID variant
   (exclude the outline style used on the search page, which is intentionally dark-on-light). */
a.ifl-add-to-cart-btn:not(.ifl-add-to-cart-btn--outline),
a.ifl-add-to-cart-btn:not(.ifl-add-to-cart-btn--outline):link,
a.ifl-add-to-cart-btn:not(.ifl-add-to-cart-btn--outline):visited,
a.ifl-add-to-cart-btn:not(.ifl-add-to-cart-btn--outline):hover,
a.ifl-add-to-cart-btn:not(.ifl-add-to-cart-btn--outline):focus { color: #fff !important; }

/* Category card links — keyboard focus matches hover state */
.ifl-category-card {
    background: #fff;
    border: 1px solid #e2e8f0;
    padding: 20px;
    border-radius: 12px;
    text-align: center;
    text-decoration: none;
    color: var(--brand-primary);
    font-weight: bold;
    font-size: 1.1em;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    transition: all 0.2s;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
    overflow: hidden;
}
/* Targets BOTH the bare <img class="ifl-category-card-img"> (no plugin)
   AND <picture class="ifl-category-card-img"><img></picture> (Imagify wraps the img and moves the class to the picture wrapper) */
.ifl-category-card-img,
.ifl-category-card-img img {
    width: 100% !important; max-height: 220px !important; object-fit: contain !important;
    border-radius: 8px !important; margin-bottom: 12px !important;
    height: auto !important;
}
.ifl-category-card-img {
    display: block;
}
.ifl-category-card:hover, .ifl-category-card:focus-visible {
    background: var(--brand-light);
    border-color: var(--brand-light-border);
    transform: translateY(-4px);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1);
}
.ifl-category-card:focus-visible {
    outline: 3px solid #3b82f6;
    outline-offset: 2px;
}

/* Checkout form input focus */
.ifl-one-page-checkout input:focus-visible,
.ifl-one-page-checkout select:focus-visible,
.ifl-one-page-checkout textarea:focus-visible {
    outline: 3px solid #3b82f6;
    outline-offset: 1px;
    border-color: #3b82f6;
}

/* Modal / Dialog accessibility */
.ifl-modal-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 99999;
    align-items: center;
    justify-content: center;
}

/* Search bar — focus-within border highlight (replaces inline onfocusin/onfocusout) */
.ifl-search-wrap:focus-within {
    border-color: #3b82f6 !important;
}

/* Search button hover/focus (replaces inline onmouseover/onmouseout) */
.ifl-search-btn:hover, .ifl-search-btn:focus-visible {
    background: #1e3a8a !important;
}
.ifl-hero-search-form button:focus-visible {
    outline: 3px solid #fff;
    outline-offset: -3px;
}

/* Contextual widget recommendation links (replaces inline onmouseover/onmouseout) */
.ifl-rec-link:hover, .ifl-rec-link:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.05);
}
.ifl-rec-link:focus-visible {
    outline: 3px solid #3b82f6;
    outline-offset: 2px;
}

/* Sidebar category nav links — hover/focus parity */
.ifl-account-nav-link:hover, .ifl-account-nav-link:focus-visible {
    background: var(--brand-light) !important;
}
.ifl-account-nav-link:focus-visible {
    outline: 3px solid #3b82f6;
    outline-offset: 2px;
}

/* ========================================================================
   COMPONENT STYLES — extracted from inline styles in ifl-shortcodes.php
   ======================================================================== */

/* --- Design Token Utilities --- */
.ifl-text-muted   { color: #64748b; }
.ifl-text-dark    { color: #1e293b; }
.ifl-text-primary { color: var(--brand-primary); }
.ifl-text-success { color: #166534; }
.ifl-text-danger  { color: #d63638; }
.ifl-fw-bold      { font-weight: bold; }
.ifl-text-center  { text-align: center; }
.ifl-text-right   { text-align: right; }
.ifl-link-inherit { text-decoration: none; color: inherit; }

/* --- Pay What You Want / PWYW --- */
.ifl-pwyw-container {
    background: #f8fafc;
    border: 1px solid #cbd5e1;
    padding: 20px;
    border-radius: 8px;
    margin: 20px 0;
    font-family: inherit;
}
.ifl-pwyw-title { margin: 0 0 10px 0; color: #1e293b; font-size: 1.1em; }
.ifl-pwyw-desc { color: #475569; font-size: 0.9em; margin-bottom: 15px; }
.ifl-pwyw-form { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.ifl-price-input-wrap { position: relative; flex: 1; min-width: 150px; }
.ifl-currency-symbol { position: absolute; left: 12px; top: 12px; color: #64748b; font-weight: bold; }
.ifl-price-input {
    width: 100%; padding: 10px 10px 10px 25px; border: 1px solid #cbd5e1;
    border-radius: 4px; font-weight: bold; font-size: 1.1em;
}
.ifl-btn-success {
    background: var(--brand-cta, #10b981); color: #fff; border: none; padding: 12px 25px;
    border-radius: 4px; font-weight: bold; cursor: pointer; white-space: nowrap;
    transition: background 0.2s;
}
.ifl-btn-success:hover, .ifl-btn-success:focus-visible { background: #059669; }
.ifl-express-mount { width: 100%; margin-top: 10px; }

/* --- Standalone Donation Form --- */
.ifl-donation-container {
    max-width: 600px; margin: 40px auto; font-family: inherit;
    background: #fff; padding: 30px; border-radius: 12px;
    border: 1px solid #e2e8f0; box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}
/* Expand donation container when tier cards are present — let theme layout handle width */
.ifl-donation-container:has([data-is-tier]) {
    max-width: 100%;
    padding: 20px 0;
    border: none;
    box-shadow: none;
    background: transparent;
}
.ifl-donation-title { color: var(--brand-primary); text-align: center; margin-top: 0; margin-bottom: 20px; }
.ifl-donation-desc { text-align: center; color: #475569; margin-bottom: 25px; }
.ifl-fieldset-clean { border: none; padding: 0; margin: 0 0 15px 0; }
.ifl-amt-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.ifl-amt-lbl {
    background: #f8fafc; border: 2px solid #cbd5e1; padding: 15px 10px;
    text-align: center; border-radius: 6px; cursor: pointer; font-weight: bold;
    font-size: 1.2em; color: var(--brand-primary); transition: all 0.2s;
}
.ifl-amt-lbl--selected { background: var(--brand-light); border-color: var(--brand-primary); }
.ifl-amt-lbl--full { grid-column: span 3; }
.ifl-custom-amt-wrap { display: none; margin-bottom: 20px; position: relative; }
.ifl-currency-lg {
    position: absolute !important;
    left: 15px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    font-weight: bold !important;
    color: var(--brand-primary) !important;
    font-size: 1.2em !important;
    z-index: 2;
    pointer-events: none;
}
.ifl-custom-amt-input {
    width: 100% !important;
    padding: 15px 15px 15px 35px !important;
    border: 2px solid #cbd5e1 !important;
    border-radius: 6px !important;
    font-weight: bold !important;
    font-size: 1.2em !important;
    color: var(--brand-primary) !important;
    box-sizing: border-box !important;
    outline: none !important;
}
.ifl-monthly-box {
    background: var(--brand-light); padding: 20px; border-radius: 8px;
    margin-bottom: 20px; border: 1px solid var(--brand-light-border);
}
.ifl-monthly-label {
    display: flex; align-items: center; gap: 10px; font-weight: bold;
    color: #1e3a8a; cursor: pointer; font-size: 1.1em;
}
.ifl-monthly-checkbox { width: 20px; height: 20px; accent-color: var(--brand-primary); }
.ifl-monthly-date-panel {
    display: none; margin-top: 15px; padding-top: 15px; border-top: 1px solid var(--brand-light-border);
}
.ifl-date-label { display: block; font-size: 0.9em; font-weight: bold; margin-bottom: 5px; color: var(--brand-primary); }
.ifl-date-input {
    width: 100%; padding: 10px; border: 1px solid #cbd5e1;
    border-radius: 4px; font-family: inherit; box-sizing: border-box; outline: none;
}
.ifl-express-donation { margin-bottom: 15px; width: 100%; }
.ifl-or-divider { display: flex; align-items: center; margin: 15px 0; display: none; }
.ifl-or-line { flex: 1; border: 0; border-top: 1px solid #cbd5e1; }
.ifl-or-text { padding: 0 10px; color: #94a3b8; font-size: 0.9em; font-weight: bold; text-transform: uppercase; }
.ifl-btn-submit-lg {
    width: 100%; background: var(--brand-cta, #10b981); color: #fff; border: none; padding: 18px;
    border-radius: 6px; font-weight: bold; font-size: 1.3em; cursor: pointer;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1); transition: background 0.2s;
}
.ifl-btn-submit-lg:hover, .ifl-btn-submit-lg:focus-visible { background: #059669; }

/* --- Free Shipping Notice --- */
.ifl-fs-notice {
    padding: 12px 15px; border-radius: 6px; font-weight: bold;
    font-size: 0.95em; margin-bottom: 15px; text-align: center;
}
.ifl-fs-notice--info { background: var(--brand-light); color: var(--brand-primary); border: 1px solid var(--brand-light-border); }
.ifl-fs-notice--success { background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; }

/* --- State Dropdown --- */
.ifl-state-select { width: 100%; padding: 0 12px; border: 1px solid #ccc; border-radius: 4px; height: 46px; box-sizing: border-box; }

/* --- Extra Gift UI --- */
.ifl-extra-gift-box {
    padding: 25px; border-radius: 12px; margin-top: 25px;
}
.ifl-extra-gift-box--thanks {
    background: #f0fdf4; border: 2px solid #166534; text-align: center;
}
.ifl-extra-gift-box--active {
    background: var(--brand-light); border: 2px solid var(--brand-primary);
}
.ifl-extra-gift-title { margin: 0 0 10px 0; font-size: 1.2em; }
.ifl-extra-gift-title--thanks { color: #166534; margin-bottom: 5px; }
.ifl-extra-gift-title--active { color: var(--brand-primary); }
.ifl-extra-gift-desc { font-size: 0.9em; color: #64748b; margin-bottom: 15px; }
.ifl-extra-gift-desc--thanks { font-size: 0.95em; color: #15803d; margin: 0; }
.ifl-extra-gift-form { display: flex; flex-direction: column; gap: 10px; }
.ifl-gift-row { display: flex; gap: 10px; }
.ifl-gift-input-wrap { position: relative; flex: 1; }
.ifl-gift-currency { position: absolute; left: 15px; top: 12px; font-weight: bold; color: var(--brand-primary); }
.ifl-gift-input {
    width: 100%; padding: 12px 12px 12px 35px; border: 1px solid #cbd5e1;
    border-radius: 6px; font-weight: bold; font-size: 1.1em; color: var(--brand-primary);
}
.ifl-btn-primary {
    background: var(--brand-primary); color: #fff; border: none; padding: 0 25px;
    border-radius: 6px; font-weight: bold; cursor: pointer;
    transition: background 0.2s;
}
.ifl-btn-primary:hover, .ifl-btn-primary:focus-visible { background: var(--brand-primary-hover); }
.ifl-recurring-label {
    display: flex; align-items: center; gap: 8px; font-size: 0.82em;
    color: #1e293b; margin-top: 5px; cursor: pointer;
}
.ifl-date-wrap-sm { display: none; margin-top: 10px; }
.ifl-date-label-sm { display: block; font-size: 0.85em; font-weight: bold; margin-bottom: 5px; color: var(--brand-primary); }
.ifl-date-input-sm {
    width: 100%; padding: 8px; border: 1px solid #cbd5e1;
    border-radius: 4px; font-family: inherit;
}

/* --- Order Summary Table --- */
.ifl-order-table { width: 100%; border-collapse: collapse; margin-top: 20px; }
.ifl-order-thead { border-bottom: 2px solid #cbd5e1; background: #f8fafc; text-align: left; }
.ifl-order-th { padding: 12px 15px; color: #475569; }
.ifl-order-th--center { text-align: center; }
.ifl-order-th--right { text-align: right; }
.ifl-order-row { border-bottom: 1px solid #e2e8f0; }
.ifl-order-td { padding: 15px; }
.ifl-order-td--name { font-weight: bold; color: var(--brand-primary); }
.ifl-order-td--center { text-align: center; color: #1e293b; }
.ifl-order-td--right { text-align: right; color: #1e293b; font-weight: bold; }
.ifl-order-dl-wrap { margin-top: 8px; }
.ifl-order-dl-btn {
    display: inline-block; font-size: 0.85em; color: #ffffff;
    background-color: var(--brand-cta, #10b981); padding: 6px 12px; text-decoration: none;
    border-radius: 4px; font-weight: normal;
}
.ifl-order-dl-btn:hover { background-color: #059669; color: #fff; }
.ifl-order-totals-wrap { display: flex; justify-content: flex-end; margin-top: 15px; }
.ifl-order-totals {
    width: 100%; max-width: 350px; border-collapse: collapse;
    margin-bottom: 20px; font-size: 0.95em;
}
.ifl-order-totals td { padding: 8px 0; }
.ifl-order-totals-label { color: #64748b; }
.ifl-order-totals-value { text-align: right; color: #1e293b; }
.ifl-order-total-row { border-top: 2px solid #e2e8f0; font-weight: bold; font-size: 1.2em; }
.ifl-order-total-row td { padding: 15px 0 0 0; }
.ifl-order-total-amount { color: var(--brand-primary); }
.ifl-order-details-grid {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 20px; margin-top: 10px; background: #f8fafc;
    padding: 20px; border-radius: 8px; border: 1px solid #e2e8f0;
}
.ifl-order-detail-heading {
    margin: 0 0 10px 0; color: var(--brand-primary); font-size: 1em;
    border-bottom: 1px solid #cbd5e1; padding-bottom: 5px;
}
.ifl-order-detail-text { margin: 0; font-size: 0.9em; color: #475569; line-height: 1.6; }
.ifl-tribute-box {
    margin-top: 20px; background: #fffbeb; padding: 20px;
    border-radius: 8px; border: 1px solid #fde68a;
}
.ifl-tribute-title { margin: 0 0 5px 0; color: #b45309; font-size: 1.1em; }
.ifl-tribute-text { margin: 0; font-size: 0.95em; color: #92400e; }

/* --- Mini Cart --- */
.ifl-mini-empty { margin: 0; color: #64748b; }
.ifl-cart-list { list-style: none; padding: 0; margin: 0; max-height: 400px; overflow-y: auto; }
.ifl-cart-list-item {
    border-bottom: 1px solid #e2e8f0; padding: 15px 0;
    display: flex; align-items: flex-start; gap: 15px;
}
.ifl-mini-thumb-wrap { flex: 0 0 50px; height: 50px; }
.ifl-mini-thumb {
    width: 100%; height: 100%; object-fit: cover;
    border-radius: 4px; border: 1px solid #e2e8f0;
}
.ifl-mini-details { flex: 1; line-height: 1.4; }
.ifl-mini-item-name { font-weight: bold; color: var(--brand-primary); margin-bottom: 5px; }
.ifl-mini-price-col { text-align: right; min-width: 80px; }
.ifl-mini-price { font-weight: bold; font-size: 1.1em; color: #1e293b; }
.ifl-mini-remove {
    color: #d63638; border: none; background: none; cursor: pointer;
    font-size: 0.85em; text-decoration: underline; padding: 0; margin-top: 5px;
}
.ifl-mini-total {
    margin-top: 15px; text-align: right; font-weight: bold;
    font-size: 1.2em; border-top: 2px solid #cbd5e1;
    padding-top: 15px; color: #1e293b;
}
.ifl-mini-actions { margin-top: 20px; display: flex; gap: 15px; }
.ifl-mini-btn {
    flex: 1 1 50%; text-align: center; padding: 10px;
    text-decoration: none; font-weight: bold; font-size: 0.95em;
    border-radius: 6px; box-sizing: border-box;
}
.ifl-mini-btn--secondary {
    border: 2px solid #cbd5e1 !important; color: #475569 !important; background: #fff !important;
}
.ifl-mini-btn--primary {
    background: var(--brand-primary) !important; border: 2px solid var(--brand-primary) !important; color: #fff !important;
}
.ifl-mini-btn--secondary:hover,
.ifl-mini-btn--secondary:focus { background: #f1f5f9 !important; color: #1e293b !important; border-color: #94a3b8 !important; text-decoration: none !important; }
.ifl-mini-btn--primary:hover,
.ifl-mini-btn--primary:focus { background: var(--brand-primary-hover) !important; border-color: var(--brand-primary-hover) !important; color: #fff !important; text-decoration: none !important; }

/* --- Cart Page Specifics --- */
.ifl-cart-empty {
    padding: 40px; text-align: center; background: #f8fafc; border-radius: 8px;
}
.ifl-cart-empty a { color: var(--brand-primary); font-weight: bold; }
.ifl-cart-item-flex { display: flex; gap: 15px; align-items: center; }
.ifl-cart-thumb-wrap { flex: 0 0 70px; height: 70px; }
.ifl-cart-thumb {
    width: 100%; height: 100%; object-fit: cover;
    border-radius: 6px; border: 1px solid #e2e8f0;
}
.ifl-cart-monthly-row { display: flex; align-items: center; gap: 8px; margin-top: 10px; }
.ifl-cart-monthly-label { font-size: 0.85em; color: #64748b; }
.ifl-cart-date-input {
    width: auto; padding: 4px 8px; border: 1px solid #cbd5e1;
    border-radius: 4px; font-size: 0.85em; font-family: inherit;
}
.ifl-qty-muted { color: #64748b; font-weight: bold; }
.ifl-qty-input {
    width: 70px; padding: 8px; border: 1px solid #cbd5e1;
    border-radius: 4px; text-align: center;
}
.ifl-donation-price-wrap { position: relative; max-width: 140px; margin-left: auto; }
.ifl-donation-currency { position: absolute; left: 12px; top: 10px; color: #64748b; font-size: 0.9em; }
.ifl-donation-input {
    width: 100%; padding: 8px 8px 8px 25px; border: 1px solid #cbd5e1;
    border-radius: 4px; text-align: left; font-weight: bold; font-family: inherit;
}
.ifl-cart-subtotal-box {
    background: #f8fafc; padding: 30px; border-radius: 12px;
    border: 1px solid #e2e8f0; display: flex; flex-direction: column;
    justify-content: center;
}
.ifl-cart-subtotal-heading {
    margin: 0 0 10px 0; text-align: center; color: #475569;
    font-size: 1.2em; text-transform: uppercase;
}
.ifl-cart-subtotal-price {
    font-size: 2.5em; font-weight: 900; color: var(--brand-primary);
    margin: 0 0 20px 0; text-align: center; line-height: 1;
    letter-spacing: 1px;
}
.ifl-cart-btn-row { display: flex; gap: 15px; margin-top: 15px; }
.ifl-cart-btn {
    flex: 1 1 50%; padding: 15px 10px; text-decoration: none;
    border-radius: 6px; text-align: center; font-weight: bold;
    box-sizing: border-box;
}
.ifl-cart-btn--secondary {
    border: 2px solid #cbd5e1; color: #475569; background: #fff;
}
.ifl-cart-btn--primary {
    background: var(--brand-primary); color: #fff; border: 2px solid var(--brand-primary);
}

/* --- Concierge Commerce Module --- */
.ifl-concierge-section {
    margin-top: 35px; padding-top: 25px;
    border-top: 1px solid #cbd5e1; text-align: left;
}
.ifl-concierge-title { margin: 0 0 5px 0; color: #1e293b; font-size: 1.1em; }
.ifl-emoji-lg { font-size: 1.2em; }
.ifl-concierge-desc { font-size: 0.85em; color: #64748b; margin-bottom: 15px; }
.ifl-concierge-form {
    display: flex; flex-direction: column; gap: 12px;
    background: #fff; padding: 15px; border: 1px solid #e2e8f0; border-radius: 8px;
}
.ifl-concierge-select {
    padding: 10px; border: 1px solid #ccc; border-radius: 4px;
    font-weight: bold; color: var(--brand-primary);
}
.ifl-concierge-input {
    width: 100%; padding: 10px; border: 1px solid #ccc;
    border-radius: 4px; box-sizing: border-box;
}
.ifl-concierge-textarea {
    width: 100%; padding: 10px; border: 1px solid #ccc;
    border-radius: 4px; font-family: inherit; font-size: 0.9em; box-sizing: border-box;
}
.ifl-concierge-submit {
    background: #10b981; color: #fff; border: none; padding: 12px; /* Intentionally green: distinguishes the CSR/admin "concierge" action from customer CTAs. Do NOT switch to --brand-cta. */
    border-radius: 6px; cursor: pointer; font-weight: bold;
    width: 100%; box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    transition: background 0.2s;
}
.ifl-concierge-submit:hover { background: #059669; }
.ifl-concierge-result {
    margin-top: 15px; font-size: 0.9em; color: #166534;
    display: none; background: #dcfce7; padding: 10px;
    border-radius: 4px; border: 1px solid #bbf7d0;
}
.ifl-offscreen { position: absolute; left: -9999px; }

/* --- Checkout Page --- */
.ifl-checkout-overlay {
    display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(255,255,255,0.9); z-index: 999999;
    flex-direction: column; align-items: center; justify-content: center;
}
.ifl-spinner {
    width: 70px; height: 70px; border: 6px solid #e2e8f0;
    border-top-color: var(--brand-primary); border-radius: 50%;
    animation: ifl-spin 1s linear infinite;
}
.ifl-overlay-text { margin-top: 25px; font-weight: bold; color: #1e293b; font-size: 1.4em; }
.ifl-checkout-container {
    max-width: 1100px; margin: 40px auto;
    font-family: -apple-system, BlinkMacSystemFont, sans-serif;
}
.ifl-checkout-back { margin-bottom: 30px; }
.ifl-checkout-back a { text-decoration: none; color: var(--brand-primary); font-weight: bold; }
.ifl-checkout-section { margin-bottom: 30px; }
.ifl-checkout-heading {
    border-bottom: 2px solid var(--brand-primary); padding-bottom: 10px; color: var(--brand-primary);
}
.ifl-checkout-field-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-top: 20px;
}

/* Required legend */
.ifl-required-legend {
    font-size: 0.8em; color: #6b7280; margin: 6px 0 0 0;
}
.ifl-required-legend span { color: #dc2626; font-weight: bold; }

/* Name row: Prefix | First Name | Last Name | Suffix on one line */
.ifl-name-row {
    display: grid;
    grid-template-columns: 105px 1fr 1fr 95px;
    gap: 8px;
    margin-top: 15px;
}
.ifl-name-row > div > input,
.ifl-name-row > div > select { width: 100%; box-sizing: border-box; }

/* Mobile: Prefix+First on row 1, Last+Suffix on row 2 */
@media (max-width: 767px) {
    .ifl-name-row {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
    }
    .ifl-name-row > div:nth-child(1) { /* Prefix */
        flex: 0 0 95px;
    }
    .ifl-name-row > div:nth-child(2) { /* First Name — fills rest of row 1 */
        flex: 1 1 0;
        min-width: calc(100% - 110px); /* Forces Last Name to wrap to row 2 */
    }
    .ifl-name-row > div:nth-child(3) { /* Last Name — fills most of row 2 */
        flex: 1 1 0;
        min-width: calc(100% - 100px);
    }
    .ifl-name-row > div:nth-child(4) { /* Suffix */
        flex: 0 0 85px;
    }
}

/* Mobile: City on its own line, State + Zip on the next */
@media (max-width: 767px) {
    .ifl-checkout-3col {
        grid-template-columns: 1fr 1fr;
    }
    .ifl-checkout-3col > div:first-child {
        grid-column: 1 / -1; /* City spans full width */
    }
}
.ifl-checkout-field-full { margin-top: 15px; }
.ifl-checkout-input {
    width: 100%; padding: 12px; border: 1px solid #ccc;
    border-radius: 4px; box-sizing: border-box;
}
.ifl-checkout-label { font-weight: bold; display: block; margin-bottom: 5px; font-size: 0.9em; }

/* --- International Banner --- */
.ifl-intl-banner {
    background: #fffbeb; border: 2px solid #fde68a; padding: 25px;
    border-radius: 8px; margin-bottom: 30px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}
.ifl-intl-banner-title {
    margin: 0 0 10px 0; color: #b45309;
    display: flex; align-items: center; gap: 10px;
}
.ifl-intl-banner-text { color: #92400e; font-size: 1.05em; line-height: 1.5; margin-bottom: 15px; }
.ifl-intl-banner-text--fallback { color: #92400e; font-size: 1.05em; line-height: 1.5; }
.ifl-intl-banner-btn {
    display: block; background: #b45309; color: #fff; padding: 15px;
    border-radius: 6px; text-decoration: none; font-weight: bold;
    font-size: 1.1em; text-align: center; cursor: pointer; transition: background 0.2s;
}
.ifl-intl-banner-btn:hover { background: #92400e; color: #fff; }
.ifl-intl-dismiss { color: #92400e; text-decoration: underline; font-size: 0.9em; }
.ifl-intl-dismiss-wrap { text-align: center; margin-top: 10px; }

/* --- Cart Empty (checkout) --- */
.ifl-checkout-empty { padding: 40px; text-align: center; }

/* --- Checkout Form Fields --- */
.ifl-checkout-input-full {
    width: 100%; padding: 12px; border: 1px solid #ccc;
    border-radius: 4px; margin-top: 15px; height: 46px; box-sizing: border-box;
}
.ifl-checkout-input-inline {
    padding: 12px; border: 1px solid #ccc; border-radius: 4px;
    height: 46px; box-sizing: border-box; width: 100%;
}
.ifl-checkout-3col { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 10px; margin-top: 15px; transition: grid-template-columns 0.2s ease; }
.ifl-checkout-3col.ifl-state-hidden { grid-template-columns: 3fr 1fr; }
.ifl-checkout-ship-toggle {
    display: flex; align-items: center; gap: 8px; margin-top: 20px;
    font-weight: bold; cursor: pointer; color: var(--brand-primary);
}
.ifl-checkout-checkbox { width: 18px; height: 18px; accent-color: var(--brand-primary); }
.ifl-shipping-panel {
    display: none; margin-top: 15px; padding: 20px; background: #f8fafc;
    border: 1px solid #e2e8f0; border-radius: 8px;
}
.ifl-shipping-title { margin: 0 0 15px 0; color: #1e293b; float: none; width: 100%; padding: 0; }
.ifl-optin-box {
    margin-top: 25px; padding: 15px; background: #f8fafc;
    border-radius: 8px; border: 1px solid #e2e8f0;
}
.ifl-optin-label {
    display: flex; align-items: center; gap: 10px; font-size: 0.82em;
    color: #1e293b; font-weight: bold; cursor: pointer;
}

/* --- Regional Compliance Notice --- */
.ifl-compliance-notice-box {
    margin-top: 8px; padding: 10px 14px; background: #faf5ff;
    border: 1px solid #d8b4fe; border-radius: 6px;
    font-size: 0.85em; color: #6b21a8; line-height: 1.5;
}

/* --- Gift Aid Section --- */
.ifl-gift-aid-box {
    margin-top: 12px; padding: 14px 18px; background: #f0fdf4;
    border: 1px solid #86efac; border-radius: 6px;
}
.ifl-gift-aid-header {
    display: flex; align-items: center; gap: 12px; margin-bottom: 10px;
}
.ifl-gift-aid-icon { font-size: 1.6em; line-height: 1; }
.ifl-gift-aid-title {
    display: block; font-size: 1.1em; color: #166534; font-weight: 700;
}
.ifl-gift-aid-subtitle {
    display: block; font-size: 0.85em; color: #15803d; font-weight: 600;
}
.ifl-gift-aid-intro {
    font-size: 0.9em; color: #374151; line-height: 1.6; margin: 0 0 12px;
}
.ifl-gift-aid-more-link {
    color: #15803d; font-weight: 600; text-decoration: underline; margin-left: 4px;
}
.ifl-gift-aid-details {
    font-size: 0.85em; color: #4b5563; line-height: 1.6;
    padding: 10px 14px; background: #dcfce7; border-radius: 6px; margin-bottom: 12px;
}
.ifl-gift-aid-details p { margin: 0; }
.ifl-gift-aid-label {
    display: flex; align-items: center; gap: 10px; font-size: 0.95em;
    color: #166534; font-weight: 700; cursor: pointer; margin-bottom: 8px;
}
.ifl-gift-aid-declaration {
    font-size: 0.8em; color: #6b7280; line-height: 1.5; margin: 0;
    padding-left: 28px;
}

/* --- Donation Terms Section --- */
.ifl-donation-terms-box {
    margin-top: 12px; padding: 14px 18px; background: #fffbeb;
    border: 1px solid #fcd34d; border-radius: 6px;
}
.ifl-donation-terms-title {
    display: block; font-size: 1em; color: #92400e; font-weight: 700; margin-bottom: 10px;
}
.ifl-required-star { color: #dc2626; }
.ifl-donation-terms-content {
    max-height: 200px; overflow-y: auto; font-size: 0.85em; color: #374151;
    line-height: 1.6; padding: 12px 14px; background: #fff;
    border: 1px solid #e2e8f0; border-radius: 6px; margin-bottom: 12px;
}
.ifl-donation-terms-content p { margin: 0 0 8px; }
.ifl-donation-terms-content p:last-child { margin-bottom: 0; }
.ifl-donation-terms-label {
    display: flex; align-items: center; gap: 10px; font-size: 0.95em;
    color: #92400e; font-weight: 700; cursor: pointer;
}

/* --- Payment Section --- */
.ifl-payment-element {
    min-height: 200px; background: #fff; padding: 15px;
    border: 1px solid #e2e8f0; border-radius: 8px;
}
.ifl-payment-loading { padding: 20px; text-align: center; color: #94a3b8; }
.ifl-payment-disabled { padding: 20px; text-align: center; color: #d63638; font-weight: bold; }
#payment-request-button { margin-bottom: 20px; }
.ifl-payment-divider {
    display: none; text-align: center; margin-bottom: 20px;
    color: #64748b; font-size: 0.9em; font-weight: bold;
}
.ifl-payment-divider span {
    background: #fff; padding: 0 10px; position: relative; top: 10px;
}
.ifl-payment-divider hr { border-top: 1px solid #e2e8f0; margin-top: 0; }
.ifl-cc-label { display: block; font-weight: bold; color: #1e293b; margin-bottom: 5px; }

/* --- Radio Station Search --- */
.ifl-radio-panel {
    display: none; margin-top: 15px; padding: 20px;
    background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px;
}
.ifl-radio-title { margin: 0 0 10px 0; color: #1e293b; font-size: 1.05em; }
.ifl-radio-desc { font-size: 0.9em; color: #475569; margin-bottom: 10px; }
.ifl-radio-search {
    width: 100%; padding: 10px; border: 1px solid #ccc;
    border-radius: 4px; margin-bottom: 10px;
}
.ifl-radio-select { height: 150px; }

/* --- Tribute Section --- */
.ifl-tribute-panel {
    padding: 20px; background: #f8fafc; border-radius: 8px;
    border: 1px solid #e2e8f0;
}
.ifl-tribute-label {
    display: flex; align-items: center; gap: 8px; font-weight: bold;
    cursor: pointer; color: #1e293b; margin: 0;
}
.ifl-tribute-fields {
    display: none; margin-top: 15px; padding-top: 15px;
    border-top: 1px solid #cbd5e1;
}
.ifl-tribute-grid { display: grid; grid-template-columns: 1fr 2fr; gap: 15px; }
.ifl-tribute-optional { font-weight: normal; color: #64748b; font-size: 0.8em; }

/* --- Submit Button --- */
.ifl-checkout-submit {
    width: 100%; padding: 18px; background: var(--brand-primary); color: #fff;
    border: none; font-size: 1.2em; font-weight: bold; cursor: pointer;
    border-radius: 6px; box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    transition: background 0.2s;
}
.ifl-checkout-submit:hover, .ifl-checkout-submit:focus-visible { background: var(--brand-primary-hover); }

/* --- Order Summary Sidebar --- */
.ifl-summary-sidebar {
    background: #f8fafc; padding: 25px; border-radius: 12px;
    border: 1px solid #e2e8f0; position: sticky; top: 20px;
}
.ifl-summary-header {
    display: flex; justify-content: space-between; align-items: center;
}
.ifl-summary-header h3 { margin: 0; }
.ifl-summary-edit { font-size: 0.85em; color: var(--brand-primary); }
.ifl-summary-list { margin-top: 20px; }
.ifl-summary-item {
    display: flex; justify-content: space-between; margin-bottom: 15px;
    font-size: 0.95em; align-items: start;
}
.ifl-summary-divider { border-top: 1px solid #cbd5e1; margin: 20px 0 0 0; padding-top: 15px; }
.ifl-summary-row {
    display: flex; justify-content: space-between; color: #64748b; margin-bottom: 8px;
}
.ifl-summary-grand {
    margin-top: 25px; padding: 20px; border-top: 3px solid var(--brand-primary);
    display: flex; justify-content: space-between; align-items: baseline;
}
.ifl-summary-grand-label { font-size: 1.2em; font-weight: bold; }
.ifl-summary-grand-total { font-size: 2em; font-weight: 900; color: var(--brand-primary); }
.ifl-summary-qty { color: var(--brand-primary); }
.ifl-summary-price { font-weight: bold; }
.ifl-summary-row--discount { color: var(--brand-cta, #10b981); }
.ifl-summary-subtext { font-size: 0.85em; color: #64748b; text-align: right; margin-top: 5px; }

/* --- Address Verification Modal --- */
.ifl-smarty-overlay {
    display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.5); z-index: 99999;
    align-items: center; justify-content: center;
}
.ifl-smarty-modal {
    background: #fff; padding: 30px; border-radius: 12px;
    max-width: 550px; width: 90%; box-shadow: 0 10px 25px rgba(0,0,0,0.2);
}
.ifl-smarty-title {
    margin-top: 0; color: var(--brand-primary); border-bottom: 2px solid #e2e8f0; padding-bottom: 10px;
}
.ifl-smarty-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 25px 0; }
.ifl-smarty-entered {
    background: #f8fafc; padding: 15px; border: 1px solid #e2e8f0; border-radius: 8px;
}
.ifl-smarty-suggested {
    background: var(--brand-light); padding: 15px; border: 2px solid var(--brand-primary); border-radius: 8px;
}
.ifl-smarty-suggested span { font-weight: bold; }
.ifl-smarty-actions { display: flex; gap: 10px; justify-content: flex-end; }

/* --- Order Confirmation --- */
.ifl-confirmation-wrap { max-width: 800px; margin: 40px auto; font-family: inherit; }
.ifl-confirmation-header { text-align: center; margin-bottom: 30px; }
.ifl-confirmation-icon {
    width: 72px; height: 72px; color: var(--brand-cta, #10b981); margin: 0 auto 20px auto;
}
.ifl-confirmation-title { color: #1e293b; margin-bottom: 10px; font-size: 2.5em; }
.ifl-confirmation-subtitle { font-size: 1.2em; color: #64748b; }
.ifl-confirmation-card {
    background: #ffffff; border: 1px solid #e2e8f0; border-radius: 12px;
    padding: 30px; text-align: left; box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}
.ifl-confirmation-card-header {
    display: flex; justify-content: space-between; align-items: flex-start;
    border-bottom: 2px solid var(--brand-primary); padding-bottom: 15px; margin-bottom: 20px;
}
.ifl-confirmation-card-header h3 { margin: 0; color: var(--brand-primary); font-size: 1.5em; }
.ifl-confirmation-meta { text-align: right; font-size: 0.9em; color: #64748b; }
.ifl-confirmation-txn-id { color: #94a3b8; }
.ifl-confirmation-footer {
    margin-top: 25px; padding-top: 20px; border-top: 1px solid #e2e8f0;
    font-size: 0.95em; color: #475569; line-height: 1.5;
}
/* --- Post-Checkout Survey --- */
.ifl-survey-box {
    margin: 25px 0; padding: 24px 28px; background: #f0fdf4;
    border: 1px solid #86efac; border-radius: 12px; text-align: center;
}
.ifl-survey-title {
    margin: 0 0 6px; font-size: 1.3em; color: var(--brand-dark);
    font-family: var(--brand-font);
}
.ifl-survey-subtitle { margin: 0 0 20px; color: #475569; font-size: 0.95em; }
.ifl-survey-type-row { display: flex; justify-content: center; gap: 16px; margin-bottom: 16px; }
.ifl-survey-type-btn {
    display: flex; flex-direction: column; align-items: center; gap: 8px;
    padding: 20px 36px; border: 2px solid #d1d5db; border-radius: 12px;
    background: #fff; cursor: pointer; transition: all 0.2s ease;
    min-width: 140px;
}
.ifl-survey-type-btn:hover { border-color: #86efac; background: #f0fdf4; }
.ifl-survey-type-active { border-color: var(--brand-dark) !important; background: #dcfce7 !important; }
.ifl-survey-type-icon { font-size: 2.2em; line-height: 1; }
.ifl-survey-type-label { font-weight: 700; color: var(--brand-dark); font-size: 0.95em; }

.ifl-survey-panel { margin-top: 16px; }
.ifl-survey-panel-label { font-weight: 600; color: #374151; margin: 0 0 12px; font-size: 0.95em; }

.ifl-survey-platform-grid {
    display: flex; flex-wrap: wrap; justify-content: center; gap: 10px;
}
.ifl-survey-platform-card {
    display: flex; flex-direction: column; align-items: center; gap: 6px;
    padding: 14px 18px; border: 2px solid #e2e8f0; border-radius: 10px;
    background: #fff; cursor: pointer; transition: all 0.2s ease;
    min-width: 100px;
}
.ifl-survey-platform-card:hover { border-color: #86efac; background: #f0fdf4; }
.ifl-survey-platform-active { border-color: var(--brand-dark) !important; background: #dcfce7 !important; }
.ifl-survey-platform-icon { font-size: 1.8em; line-height: 1; }
.ifl-survey-platform-label { font-weight: 600; font-size: 0.8em; color: #374151; }

.ifl-survey-station-search {
    width: 100%; padding: 10px 14px; border: 1px solid #d1d5db; border-radius: 8px;
    font-size: 0.95em; margin-bottom: 8px;
}
.ifl-survey-station-select {
    width: 100%; border: 1px solid #d1d5db; border-radius: 8px;
    font-size: 0.9em; padding: 4px;
}
.ifl-survey-submit-btn {
    background: var(--brand-dark) !important; color: #fff !important; padding: 12px 40px !important;
    border: none !important; border-radius: 8px !important; font-weight: 700 !important;
    font-size: 1em !important; cursor: pointer !important; transition: background 0.2s !important;
}
.ifl-survey-submit-btn:hover { background: #166534 !important; }
.ifl-survey-thank-you {
    text-align: center; color: #166534; padding: 20px 0;
}
.ifl-survey-thank-you span { display: block; margin-bottom: 8px; }

@media (max-width: 480px) {
    .ifl-survey-type-row { flex-direction: column; align-items: center; }
    .ifl-survey-type-btn { width: 100%; max-width: 200px; }
}

.ifl-checkout-legal-links {
    text-align: center; font-size: 0.8em; color: #94a3b8; margin-top: 10px; line-height: 1.5;
}
.ifl-checkout-legal-links a { color: var(--brand-primary); text-decoration: underline; }
.ifl-checkout-legal-links a:hover { color: var(--brand-primary-hover); }

.ifl-confirmation-cta { margin-top: 30px; text-align: center; }
.ifl-confirmation-btn {
    background: var(--brand-primary); color: #fff; padding: 12px 35px;
    text-decoration: none; border-radius: 6px; font-weight: bold;
}
.ifl-confirmation-btn:hover { background: var(--brand-primary-hover); color: #fff; }

/* --- Post-Checkout Login/Register --- */
.ifl-post-checkout-box {
    padding: 25px; border-radius: 12px; text-align: left; margin-bottom: 30px;
}
.ifl-post-checkout-box--login {
    background: var(--brand-light); border: 1px solid var(--brand-light-border);
}
.ifl-post-checkout-box--register {
    background: #f8fafc; border: 1px solid #cbd5e1;
}
.ifl-post-checkout-box h3 { margin-top: 0; font-size: 1.3em; }
.ifl-post-checkout-box--login h3 { color: #1e3a8a; }
.ifl-post-checkout-box--register h3 { color: var(--brand-primary); }
.ifl-post-checkout-box p { margin-bottom: 15px; }
.ifl-post-checkout-box--login p { color: #3b82f6; }
.ifl-post-checkout-box--register p { color: #475569; }

/* --- Store Home --- */
.ifl-store-hero {
    background: linear-gradient(135deg, var(--brand-dark) 0%, #166534 60%, var(--brand-primary) 100%);
    border-radius: 16px; padding: 0; overflow: hidden;
    margin-bottom: 40px;
    box-shadow: 0 10px 30px -5px rgba(14, 50, 22, 0.3);
}
.ifl-store-hero-title {
    color: #fff; font-size: 2.2em; margin: 0;
    font-family: var(--brand-font);
    text-shadow: 0 2px 4px rgba(0,0,0,0.2);
    text-align: center; padding: 35px 40px 0;
}
.ifl-store-hero-content {
    display: flex; align-items: flex-end; gap: 0;
}
.ifl-store-hero-text {
    flex: 1; padding: 20px 20px 40px 45px; text-align: left; max-width: 80%;
}
.ifl-store-hero-image {
    flex: 0 0 320px; align-self: flex-end;
}
.ifl-store-hero-image img {
    display: block; max-height: 400px; width: 100%; object-fit: contain;
}
.ifl-store-hero-desc {
    color: var(--brand-light-border); font-size: 1em; margin: 0 0 20px 0;
    line-height: 1.6; max-width: 100%;
}
.ifl-store-hero-search { max-width: 100%; }
@media (max-width: 768px) {
    .ifl-store-page .content { padding: 0 12px; }
    .ifl-store-home-wrap { padding-bottom: 40px; }
    .ifl-store-hero-title { font-size: 1.5em; padding: 25px 20px 0; }
    .ifl-store-hero-content { flex-direction: column; align-items: center; }
    .ifl-store-hero-text { padding: 15px 24px 20px; text-align: center; max-width: 100%; }
    .ifl-store-hero-desc { text-align: center; }
    .ifl-store-hero-search { margin: 0 auto; max-width: 100%; }
    .ifl-store-hero-image { flex: none; width: 100%; text-align: center; padding: 0; }
    .ifl-store-hero-image img { max-height: 200px; margin: 0 auto; }
}
.ifl-store-section-divider { margin-top: 60px; border-top: 2px solid #e2e8f0; padding-top: 40px; padding-bottom: 50px; }
.ifl-catalog-title {
    color: #1e293b; margin-top: 0; font-size: 2em;
    border-bottom: 2px solid #e2e8f0; padding-bottom: 10px;
}
.ifl-no-image-placeholder {
    width: 100%; aspect-ratio: 1/1; background: #e2e8f0; border-radius: 8px;
    margin-bottom: 12px; display: flex; align-items: center;
    justify-content: center; color: #94a3b8;
}
.ifl-no-image-placeholder--light {
    background: #f1f5f9; font-weight: bold;
}
.ifl-add-form { background: #f8fafc; padding: 12px; border-radius: 8px; }
.ifl-add-form--outlined {
    background: #fff; border: 1px solid #cbd5e1;
}
.ifl-product-actions { margin-top: auto; }

/* --- Category Grid --- */
.ifl-categories-wrap { margin-bottom: 40px; }
.ifl-categories-title { color: #1e293b; margin-top: 0; margin-bottom: 20px; font-size: 1.8em; }
.ifl-category-grid {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
}
@media (max-width: 900px) { .ifl-category-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 500px) { .ifl-category-grid { grid-template-columns: 1fr; }
}
.ifl-category-count {
    font-size: 0.75em; color: #64748b; margin-top: 8px; font-weight: normal;
    background: #f1f5f9; padding: 2px 10px; border-radius: 12px;
}

/* --- Search Results --- */
.ifl-search-bar {
    display: flex; width: 100%; box-shadow: 0 10px 25px rgba(0,0,0,0.15);
    border-radius: 50px; overflow: hidden; background: #fff;
    border: 2px solid #cbd5e1; transition: border-color 0.3s;
}
.ifl-search-icon-wrap {
    padding: 15px 10px 15px 25px; color: #94a3b8; display: flex; align-items: center;
}
.ifl-search-input {
    flex: 1; padding: 15px 15px 15px 5px; border: none; outline: none;
    font-size: 1.1em; background: transparent; color: #1e293b;
    box-shadow: none; -webkit-appearance: none;
}
.ifl-search-submit {
    background: var(--brand-primary); color: #fff; border: none; padding: 0 35px;
    font-weight: bold; font-size: 1.1em; cursor: pointer; transition: background 0.2s;
}
.ifl-search-empty {
    padding: 40px; text-align: center; border: 1px dashed #ccc;
}
.ifl-debug-log {
    background: #fee2e2; border: 1px solid #ef4444; padding: 15px;
    margin-bottom: 30px; border-radius: 8px; color: #b91c1c;
}
.ifl-debug-log ul { margin: 0; padding-left: 20px; }
.ifl-best-match-img { width: 100%; height: 100%; object-fit: cover; min-height: 250px; }
.ifl-best-match-body { padding: 25px; flex: 1; display: flex; flex-direction: column; justify-content: center; }
.ifl-best-match-title a { text-decoration: none; color: #0f172a; }
.ifl-best-match-price { font-weight: 800; font-size: 1.4em; margin: 0 0 12px 0; color: #1e293b; }
.ifl-search-results-heading {
    font-size: 1.3rem; color: #475569; margin-bottom: 20px;
    border-bottom: 2px solid #e2e8f0; padding-bottom: 10px;
}
.ifl-search-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 20px;
}
.ifl-search-result-card {
    border: 1px solid #e2e8f0; padding: 15px; border-radius: 12px; background: #fff;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
    display: flex; flex-direction: column; justify-content: space-between;
    transition: transform 0.2s, box-shadow 0.2s;
}
.ifl-search-result-card:hover, .ifl-search-result-card:focus-within {
    transform: translateY(-3px); box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1);
}
.ifl-search-result-link { text-decoration: none; color: inherit; display: block; margin-bottom: 15px; }
.ifl-search-result-img { width: 100%; height: auto; border-radius: 8px; margin-bottom: 12px; aspect-ratio: 1/1; object-fit: cover; }
.ifl-search-result-title { font-size: 1.1em; line-height: 1.3; color: var(--brand-primary); min-height: 2.6em; margin: 0; }
.ifl-search-result-price { font-weight: 900; font-size: 1.25em; margin: 8px 0; color: #1e293b; }
.ifl-search-no-results {
    padding: 60px; background: #f8fafc; border-radius: 12px;
    text-align: center; border: 1px solid #e2e8f0;
}
.ifl-search-no-results p { font-size: 1.2em; color: #64748b; }

/* --- Contextual Widget --- */
.ifl-contextual-widget {
    background: #f8fafc; padding: 25px; border: 1px solid #cbd5e1;
    border-radius: 12px; box-shadow: 0 4px 6px rgba(0,0,0,0.05);
    margin-bottom: 30px; font-family: inherit;
}
.ifl-widget-title { margin: 0 0 15px 0; color: #1e293b; font-size: 1.2em; }
.ifl-widget-rec-heading {
    margin: 25px 0 15px 0; border-top: 2px solid #e2e8f0;
    padding-top: 20px; color: var(--brand-primary); font-size: 1.05em; text-transform: uppercase;
}
.ifl-rec-list { display: flex; flex-direction: column; gap: 15px; }
.ifl-rec-link {
    display: flex; gap: 15px; text-decoration: none; color: inherit;
    background: #fff; padding: 12px; border: 1px solid #e2e8f0;
    border-radius: 8px; transition: transform 0.2s, box-shadow 0.2s;
}
.ifl-rec-thumb-wrap { flex: 0 0 60px; height: 60px; }
.ifl-rec-thumb { width: 100%; height: 100%; object-fit: cover; border-radius: 4px; }
.ifl-rec-body { flex: 1; display: flex; flex-direction: column; justify-content: center; }
.ifl-rec-name {
    margin: 0 0 4px 0; font-size: 0.95em; font-weight: bold;
    color: #1e293b; line-height: 1.3;
}
.ifl-rec-price { font-weight: bold; color: var(--brand-cta, #10b981); font-size: 0.9em; }

/* --- Smart Recommendations --- */
.ifl-smart-recs-heading {
    margin: 0 0 15px 0; color: #1e293b; font-size: 1.2em;
    border-bottom: 2px solid #e2e8f0; padding-bottom: 10px;
}
.ifl-smart-rec-card-actions { margin-top: auto; display: flex; flex-direction: column; gap: 8px; }
.ifl-smart-rec-btn {
    width: 100%; background: #f8fafc; color: var(--brand-primary);
    border: 1px solid #cbd5e1; padding: 10px; border-radius: 6px;
    font-weight: bold; cursor: pointer;
}
.ifl-smart-rec-btn:hover { background: var(--brand-light); }

/* --- My Account --- */
.ifl-account-login-wrap {
    max-width: 600px; margin: 40px auto; padding: 40px; background: #f8fafc;
    border: 1px solid #e2e8f0; border-radius: 12px; text-align: center;
    font-family: inherit;
}
.ifl-account-title, .ifl-account-login-title { color: var(--brand-primary); margin-top: 0; }
.ifl-account-desc, .ifl-account-login-desc { color: #475569; font-size: 1.1em; margin-bottom: 25px; }
.ifl-account-btn, .ifl-account-login-btn {
    display: inline-block; background: var(--brand-primary); color: #fff;
    padding: 14px 35px; border-radius: 6px; text-decoration: none;
    font-weight: bold; font-size: 1em;
}
.ifl-account-btn:hover, .ifl-account-login-btn:hover { background: var(--brand-primary-hover); color: #fff; }

/* ===== Login form internals (wp_login_form() output, wrapped by .ifl-account-login-wrap) ===== */
.ifl-account-login-wrap #loginform {
    margin: 24px auto 8px; text-align: left; max-width: 380px;
}
.ifl-account-login-wrap #loginform p { margin: 0 0 16px 0; }
.ifl-account-login-wrap #loginform label {
    display: block; font-size: 0.92em; font-weight: 600; color: #1e293b; margin-bottom: 6px;
}
.ifl-account-login-wrap #user_login,
.ifl-account-login-wrap #user_pass {
    width: 100%; padding: 11px 13px; font-size: 1em;
    border: 1px solid #cbd5e1; border-radius: 6px; box-sizing: border-box; background: #fff;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.ifl-account-login-wrap #user_login:focus,
.ifl-account-login-wrap #user_pass:focus {
    outline: none; border-color: var(--brand-primary); box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.06);
}
.ifl-account-login-wrap .login-remember {
    font-size: 0.9em; color: #475569; margin-top: 4px;
}
.ifl-account-login-wrap .login-remember input[type="checkbox"] {
    margin-right: 6px; vertical-align: middle;
}
.ifl-account-login-wrap .login-submit {
    margin-top: 20px; margin-bottom: 0; text-align: center;
}
.ifl-account-login-wrap #wp-submit {
    display: inline-block; background: var(--brand-primary); color: #fff;
    padding: 12px 40px; border: none; border-radius: 6px;
    font-weight: bold; font-size: 1em; cursor: pointer;
    transition: background 0.15s ease; text-transform: uppercase; letter-spacing: 0.5px;
}
.ifl-account-login-wrap #wp-submit:hover { background: var(--brand-primary-hover); }

/* ===== Login footer (Lost password / Register Here links) ===== */
.ifl-account-login-footer {
    margin-top: 22px; padding-top: 18px; border-top: 1px solid #e2e8f0;
    font-size: 0.95em; color: #475569; line-height: 1.6;
}
.ifl-account-link--muted { color: var(--brand-primary); text-decoration: none; font-weight: 500; }
.ifl-account-link--muted:hover { text-decoration: underline; }
.ifl-account-link--bold { color: var(--brand-primary); text-decoration: none; font-weight: 700; }
.ifl-account-link--bold:hover { text-decoration: underline; }

/* ===== Lost password form status messages ===== */
.ifl-lostpassword-success {
    background: #dcfce7; color: #166534; padding: 14px 18px;
    border-radius: 6px; margin: 18px 0; text-align: center;
    border: 1px solid #86efac; font-size: 1em;
}
.ifl-lostpassword-error {
    background: #fee2e2; color: #991b1b; padding: 14px 18px;
    border-radius: 6px; margin: 18px 0; text-align: center;
    border: 1px solid #fca5a5; font-size: 1em;
}
.ifl-lostpassword-error a { color: #991b1b; text-decoration: underline; font-weight: 600; }
.ifl-account-welcome {
    padding: 16px 22px; background: linear-gradient(135deg, var(--brand-dark) 0%, #166534 100%); color: white;
    border-radius: 12px; margin-bottom: 10px; display: flex; align-items: center; gap: 8px;
}
.ifl-account-welcome h3 { margin: 0; font-size: 0.9em; opacity: 0.85; font-weight: 600; }
.ifl-account-welcome-name { font-weight: 900; font-size: 1.2em; font-family: var(--brand-font); }
.ifl-account-logout { color: #b91c1c; font-size: 0.9em; opacity: 0.8; transition: opacity 0.2s; }
.ifl-account-logout:hover { opacity: 1; }

/* --- My Uploads Grid --- */
.ifl-uploads-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px;
}
.ifl-upload-card {
    background: #fff; border: 1px solid #d1d5db; border-left: 4px solid var(--brand-dark); border-radius: 10px; overflow: hidden;
    transition: transform 0.2s, box-shadow 0.2s; display: flex; flex-direction: column;
    box-shadow: 0 2px 6px rgba(0,0,0,0.06);
}
.ifl-upload-card:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0,0,0,0.12); }
.ifl-upload-preview {
    background: #f0fdf4; padding: 16px; display: flex; flex-direction: column;
    align-items: center; justify-content: center; min-height: 100px; border-bottom: 1px solid #e2e8f0;
}
.ifl-upload-icon { font-size: 3em; line-height: 1; opacity: 0.6; }
.ifl-upload-meta { padding: 14px 16px; flex: 1; }
.ifl-upload-quest {
    font-weight: 700; font-size: 0.95em; color: var(--brand-dark);
    font-family: var(--brand-font); margin-bottom: 4px;
}
.ifl-upload-date { font-size: 0.8em; color: #94a3b8; margin-bottom: 6px; }
.ifl-upload-desc { font-size: 0.85em; color: #475569; line-height: 1.4; }
.ifl-upload-status {
    margin: 0 16px 14px; padding: 4px 12px; border-radius: 20px;
    font-size: 0.75em; font-weight: 700; text-align: center; width: fit-content;
}
.ifl-order-history-header {
    display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px;
}
.ifl-order-history-header h2 { margin: 0; color: #1e293b; }
.ifl-sync-btn { font-size: 0.85em; padding: 4px 10px; }
.ifl-order-card--se { border-left: 4px solid #0ea5e9; }
.ifl-order-card--digital { border-left: 4px solid var(--brand-cta, #10b981); }
.ifl-order-card-header {
    display: flex; justify-content: space-between; border-bottom: 1px solid #e2e8f0;
    padding-bottom: 10px; margin-bottom: 15px; font-size: 0.9em; color: #64748b;
}
.ifl-badge { padding: 2px 6px; border-radius: 4px; font-size: 0.8em; font-weight: bold; }
.ifl-badge--offline { background: #e0f2fe; color: #0284c7; }
.ifl-badge--digital { background: #dcfce7; color: #166534; }
.ifl-order-card-body {
    display: flex; justify-content: space-between; align-items: center;
}
.ifl-order-card-items { font-size: 0.9em; color: #475569; flex: 1; }
.ifl-order-card-total { text-align: right; min-width: 100px; }
.ifl-order-card-amount { font-weight: bold; font-size: 1.2em; color: #1e293b; }

/* ===== Clickable order cards (web orders only — wraps .ifl-order-card in an <a>) ===== */
.ifl-order-card-link {
    display: block; text-decoration: none; color: inherit;
}
.ifl-order-card-link .ifl-order-card {
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
    cursor: pointer;
}
.ifl-order-card-link:hover .ifl-order-card {
    border-color: var(--brand-primary);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
    transform: translateY(-1px);
}
.ifl-order-card-link:focus { outline: none; }
.ifl-order-card-link:focus-visible .ifl-order-card {
    outline: 2px solid var(--brand-primary);
    outline-offset: 2px;
}

/* ===== Order detail view at /my-account/order/{id}/ ===== */
.ifl-account-order-view {
    max-width: 900px;
    margin: 0 auto;
}
.ifl-account-order-actions {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 18px; padding-bottom: 14px; border-bottom: 1px solid #e2e8f0;
}
.ifl-account-back-link {
    color: var(--brand-primary);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.95em;
}
.ifl-account-back-link:hover { text-decoration: underline; }
.ifl-account-print-btn {
    display: inline-block;
    background: var(--brand-primary);
    color: #fff;
    padding: 8px 18px;
    border: none;
    border-radius: 6px;
    font-weight: bold;
    font-size: 0.9em;
    cursor: pointer;
    transition: background 0.15s ease;
}
.ifl-account-print-btn:hover { background: var(--brand-primary-hover); }

/* ===== Print stylesheet for the order detail view ===== */
@media print {
    .no-print { display: none !important; }
    body * { visibility: hidden; }
    .ifl-account-order-view, .ifl-account-order-view * { visibility: visible; }
    .ifl-account-order-view {
        position: absolute; left: 0; top: 0; width: 100%; max-width: none;
        margin: 0; padding: 0;
    }
}

/* ===== Receipt content overrides when rendered inline on the web =====
 * The receipt template (ifl_build_receipt_email_html) was designed for email rendering —
 * inline styles + HTML width attributes calibrated for ~600px-wide email containers.
 * When rendered inline inside .ifl-account-order-view we need two corrections:
 *
 * 1. Some themes (PNT's, e.g.) set `table { word-break: break-all; }` at element-global
 *    scope. word-break IS inherited per CSS spec, so the receipt's wrapping <table>
 *    cascades break-all down to every descendant text node — chopping words mid-character
 *    in the intro paragraph. Reset it.
 *
 * 2. The totals table uses <td width="100"> on the right column for currency amounts.
 *    That's fine for "$25.00" but cramps the "Payment Method: Mastercard ending in 3749"
 *    row across 3 lines. Let it auto-size with a sensible minimum.
 */
.ifl-account-order-view,
.ifl-account-order-view * {
    word-break: normal;
}
.ifl-account-order-view td[width="100"] {
    width: auto !important;
    min-width: 200px;
}

/* Honor the receipt template's <td align="..."> HTML attributes. Some themes (PNT's, e.g.)
 * declare `td, th { text-align: left }` at element-global scope, which wins over the deprecated
 * HTML presentation attribute. Re-enforce via attribute selector so the items table's Qty values
 * stay centered under the centered "Qty" header and Price values stay right-aligned under the
 * right-aligned "Price" header. */
.ifl-account-order-view td[align="center"] { text-align: center !important; }
.ifl-account-order-view td[align="right"]  { text-align: right !important; }
.ifl-account-order-view td[align="left"]   { text-align: left !important; }
.ifl-section-title { margin: 0; color: #1e293b; }
.ifl-downloads-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 20px;
}
.ifl-download-card {
    background: #f8fafc; border: 1px solid #cbd5e1; border-radius: 8px;
    padding: 20px; text-align: center;
}
.ifl-download-card h4 { margin: 0 0 15px 0; color: var(--brand-primary); }

/* --- Profile Form --- */
.ifl-profile-card {
    background: #fff; border: 1px solid #e2e8f0; border-radius: 8px;
    padding: 25px; box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}
.ifl-profile-desc { color: #475569; margin-top: 0; margin-bottom: 20px; }
.ifl-profile-form { display: flex; flex-direction: column; gap: 15px; }
.ifl-profile-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.ifl-profile-3col { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 15px; }
.ifl-profile-label {
    display: block; font-weight: bold; font-size: 0.9em;
    color: #1e293b; margin-bottom: 5px;
}
.ifl-profile-label-hint { font-weight: normal; color: #64748b; }
.ifl-profile-input {
    width: 100%; padding: 10px; border: 1px solid #cbd5e1; border-radius: 6px;
}
.ifl-profile-input--disabled {
    border-color: #e2e8f0; background: #f8fafc; color: #64748b; cursor: not-allowed;
}
.ifl-profile-section-heading {
    margin: 15px 0 5px 0; border-bottom: 1px solid #e2e8f0;
    padding-bottom: 10px; font-size: 1.1em; color: var(--brand-primary);
}
.ifl-profile-actions { margin-top: 15px; }
.ifl-profile-submit {
    background: var(--brand-primary); color: #fff; border: none; padding: 12px 25px;
    border-radius: 6px; font-weight: bold; cursor: pointer; font-size: 1em;
}
.ifl-profile-submit:hover { background: var(--brand-primary-hover); }
.ifl-profile-result { margin-left: 15px; font-weight: bold; font-size: 0.9em; }

/* --- Product Recommendations Footer --- */
.ifl-recommendations-wrapper {
    margin-top: 60px; border-top: 2px solid #e2e8f0;
    padding-top: 40px; font-family: inherit;
}
.ifl-recs-title { color: #1e293b; margin-top: 0; font-size: 2em; margin-bottom: 20px; }
.ifl-recs-loading {
    min-height: 200px; display: flex; align-items: center; justify-content: center;
    background: #f8fafc; border: 1px dashed #cbd5e1; border-radius: 8px;
}
.ifl-recs-loading-inner {
    color: #64748b; display: flex; flex-direction: column; align-items: center; gap: 12px;
}
.ifl-recs-loading-text {
    font-weight: bold; letter-spacing: 0.5px; font-size: 0.9em; margin-top: 10px;
}

/* ========================================================================
   COMPANION RESOURCE DETAIL PAGE
   ======================================================================== */

/* Back to dashboard link */
.ifl-companion-back-link {
    display: inline-block;
    color: var(--brand-primary);
    text-decoration: none;
    font-size: 0.9em;
    font-weight: 600;
    margin-bottom: 12px;
    transition: color 0.2s;
}
.ifl-companion-back-link:hover {
    color: var(--brand-primary-hover);
    text-decoration: underline;
}

.ifl-companion-detail {
    max-width: 900px;
    margin: 0 auto;
    padding: 20px;
}

.ifl-companion-detail-grid {
    display: flex;
    gap: 40px;
    flex-wrap: wrap;
    align-items: flex-start;
}

/* Cover image column */
.ifl-companion-cover-wrap {
    flex: 0 0 38%;
    min-width: 220px;
}
.ifl-companion-cover-img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    border: 1px solid #e2e8f0;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
.ifl-companion-cover-placeholder {
    width: 100%;
    aspect-ratio: 3/4;
    background: #f1f5f9;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #94a3b8;
    font-weight: bold;
    border: 1px solid #e2e8f0;
}

/* Info column */
.ifl-companion-info {
    flex: 1;
    min-width: 280px;
}
.ifl-companion-description {
    font-size: 1.05em;
    line-height: 1.7;
    color: #333;
    margin-bottom: 30px;
}
.ifl-companion-description p:last-child {
    margin-bottom: 0;
}

/* Download button */
.ifl-companion-download-btn {
    display: inline-block;
    background: var(--brand-primary);
    color: #fff;
    padding: 14px 32px;
    border-radius: 6px;
    font-weight: bold;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-size: 0.95em;
    transition: background 0.2s;
    border: 2px solid var(--brand-primary);
}
.ifl-companion-download-btn:hover {
    background: var(--brand-primary-hover);
    border-color: var(--brand-primary-hover);
    color: #fff;
}
.ifl-companion-download-btn:focus-visible {
    outline: 3px solid #3b82f6;
    outline-offset: 2px;
}

.ifl-companion-coming-soon {
    color: #64748b;
    font-style: italic;
    margin-top: 20px;
}

/* ---- Upsell Card: "Get the full resource" ---- */

.ifl-companion-upsell {
    max-width: 900px;
    margin: 50px auto 0;
    padding: 0 20px 100px;
}
.ifl-companion-upsell-card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
    overflow: hidden;
}
.ifl-companion-upsell-heading {
    font-size: 1.6em;
    color: var(--brand-primary);
    margin: 0;
    padding: 20px 30px;
    border-bottom: 1px solid #e2e8f0;
    font-family: 'Arno Pro', 'Garamond', 'Georgia', serif;
    font-style: italic;
}
.ifl-companion-upsell-card-body {
    display: flex;
    gap: 30px;
    align-items: flex-start;
    padding: 30px;
}
.ifl-companion-upsell-sidebar {
    flex: 1 1 0;
    min-width: 0;
    text-align: right;
    border-left: 1px solid #e2e8f0;
    padding-left: 30px;
}

/* Upsell image */
.ifl-companion-upsell-image {
    flex: 1 1 0;
    min-width: 0;
}
.ifl-companion-upsell-img {
    width: 100%;
    height: auto;
    border-radius: 6px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

/* Upsell description (column 2) */
.ifl-companion-upsell-desc {
    flex: 1 1 0;
    min-width: 0;
    font-size: 0.95em;
    line-height: 1.6;
    color: #475569;
}

/* Upsell meta details */
.ifl-companion-upsell-meta {
    margin-bottom: 20px;
}
.ifl-companion-upsell-format {
    margin: 0 0 4px 0;
    font-size: 0.9em;
    color: #1e293b;
    font-weight: 600;
}
.ifl-companion-upsell-code {
    margin: 0 0 8px 0;
    font-size: 0.85em;
    color: #64748b;
    font-weight: bold;
    text-transform: uppercase;
}
.ifl-companion-upsell-price {
    margin: 0 0 8px 0;
    font-size: 2em;
    font-weight: 900;
    color: #1e293b;
    line-height: 1.2;
}

/* Stock status badges */
.ifl-companion-stock {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 4px;
    font-size: 0.8em;
    font-weight: bold;
    letter-spacing: 0.3px;
}
.ifl-companion-stock--available {
    background: #f0fdf4;
    color: #15803d;
}
.ifl-companion-stock--unavailable {
    background: #fef2f2;
    color: #b91c1c;
}
.ifl-companion-stock--backorder {
    background: #fffbeb;
    color: #b45309;
}

/* Upsell action area */
.ifl-companion-upsell-action {
    margin-top: 20px;
}
.ifl-companion-upsell-qty {
    width: 100%;
    height: 46px;
    padding: 0 10px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    font-size: 1.1em;
    text-align: center;
    box-sizing: border-box;
}

/* Upsell button — works as both <a> and <button> */
a.ifl-companion-upsell-btn,
button.ifl-companion-upsell-btn {
    display: inline-block;
    background: var(--brand-primary);
    color: #fff;
    padding: 14px 32px;
    border-radius: 6px;
    font-weight: bold;
    text-decoration: none;
    border: none;
    cursor: pointer;
    font-size: 1em;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: background 0.2s;
}
a.ifl-companion-upsell-btn:hover,
button.ifl-companion-upsell-btn:hover {
    background: var(--brand-primary-hover);
    color: #fff;
}
a.ifl-companion-upsell-btn:focus-visible,
button.ifl-companion-upsell-btn:focus-visible {
    outline: 3px solid #3b82f6;
    outline-offset: 2px;
}

/* ---- Locked overlay link styles ---- */
.ifl-companion-overlay-text a {
    color: #fff;
    text-decoration: underline;
}
.ifl-companion-overlay-text a:hover {
    text-decoration: none;
}

/* ---- Copyright terms ---- */
.ifl-companion-copyright {
    display: block;
    margin-top: 12px;
    color: #94a3b8;
    line-height: 1.5;
}

/* ---- Dashboard ---- */
.ifl-companion-dashboard {
    width: 100%;
    box-sizing: border-box;
}

/* ---- Companion cards section (below page-top content area) ---- */
.ifl-companion-cards-section {
    padding: 0 50px 50px;
}
.ifl-companion-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.2s, transform 0.2s;
}
a.ifl-companion-card { cursor: pointer; }
a.ifl-companion-card:hover {
    box-shadow: 0 8px 25px rgba(0,0,0,0.12);
    transform: translateY(-2px);
}
.ifl-companion-card-thumb {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
    background: #f1f5f9;
    overflow: hidden;
}
.ifl-companion-card-thumb img {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    object-fit: cover;
}
.ifl-companion-card-badge {
    position: absolute;
    top: 10px; right: 10px;
    background: rgba(0,0,0,0.7);
    color: #fff;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 0.7em;
    font-weight: bold;
    letter-spacing: 0.5px;
}
.ifl-companion-card-body {
    padding: 25px;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.ifl-companion-card-tag {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 20px;
    font-size: 0.75em;
    font-weight: bold;
    margin-bottom: 10px;
    align-self: flex-start;
}
.ifl-companion-card-tag--expiring {
    background: #fee2e2;
    color: #b91c1c;
}
.ifl-companion-card-tag--permanent {
    background: #e0e7ff;
    color: #1d4ed8;
}
.ifl-companion-card-title {
    margin: 0 0 10px 0;
    color: #882D2B;
    font-size: 1.25em;
    font-family: 'Arno Pro', 'Garamond', 'Georgia', serif;
}
.ifl-companion-card-excerpt {
    color: #475569;
    font-size: 0.95em;
    margin-bottom: 20px;
    line-height: 1.5;
    flex: 1;
}
.ifl-companion-card-cta {
    display: block;
    text-align: center;
    background: #37528C;
    color: #fff;
    padding: 10px;
    border-radius: 6px;
    font-weight: bold;
    margin-top: auto;
}

/* ---- Dashboard card grid ---- */
.ifl-companion-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 30px;
    width: 100%;
}

/* ---- Responsive: Stack on mobile ---- */
@media (max-width: 767px) {
    .ifl-companion-dashboard {
        padding: 0 15px;
    }
    .ifl-companion-cards-section {
        padding: 0 15px 30px;
    }
    .ifl-companion-card-grid {
        grid-template-columns: 1fr;
    }
    .ifl-companion-detail {
        padding: 20px 15px;
    }
    .ifl-companion-upsell {
        padding: 0 15px 100px;
    }
    .ifl-companion-detail-grid {
        flex-direction: column;
    }
    .ifl-companion-cover-wrap {
        flex: none;
        width: 100%;
        max-width: 320px;
        margin: 0 auto;
    }
    .ifl-companion-upsell-card-body {
        flex-direction: column;
    }
    .ifl-companion-upsell-image {
        flex: none;
        width: 160px;
        margin: 0 auto;
    }
    .ifl-companion-upsell-sidebar {
        flex: none;
        width: 100%;
        text-align: center;
        border-left: none;
        border-top: 1px solid #e2e8f0;
        padding-left: 0;
        padding-top: 20px;
    }
}

/* ==========================================================================
   DARK MODE — html.ifl-dark overrides
   Uses CSS custom properties from the theme's dark mode variables.
   ========================================================================== */

/* --- Cart Page --- */
html.ifl-dark .ifl-cart-container { color: #e0e0e0; }
html.ifl-dark .ifl-cart-row { background: #1e1e1e; border-color: #3a3a3a; box-shadow: none; }
html.ifl-dark .ifl-cart-header { background: #2a2a2a; border-bottom-color: #3a3a3a; color: #b0b0b0; }
html.ifl-dark .ifl-cart-item-name { color: #7ba3d9; }
html.ifl-dark .ifl-cart-item-sku { background: #3a3a3a; color: #b0b0b0; }
html.ifl-dark .ifl-cart-price-col { color: #e0e0e0; }
html.ifl-dark .ifl-cart-empty { background: #2a2a2a; color: #b0b0b0; }
html.ifl-dark .ifl-cart-empty a { color: #7ba3d9; }
html.ifl-dark .ifl-cart-thumb { border-color: #3a3a3a; }
html.ifl-dark .ifl-cart-monthly-label { color: #b0b0b0; }
html.ifl-dark .ifl-cart-date-input { background: #333; color: #e0e0e0; border-color: #555; }
html.ifl-dark .ifl-qty-muted { color: #b0b0b0; }
html.ifl-dark .ifl-qty-input { background: #333; color: #e0e0e0; border-color: #555; }
html.ifl-dark .ifl-donation-currency { color: #b0b0b0; }
html.ifl-dark .ifl-donation-input { background: #333; color: #e0e0e0; border-color: #555; }
html.ifl-dark .ifl-cart-subtotal-box { background: #2a2a2a; border-color: #3a3a3a; }
html.ifl-dark .ifl-cart-subtotal-heading { color: #b0b0b0; }
html.ifl-dark .ifl-cart-subtotal-price { color: #7ba3d9; }
html.ifl-dark .ifl-cart-btn--secondary { background: #2a2a2a; border-color: #555; color: #e0e0e0; }
html.ifl-dark .ifl-remove-btn { color: #ef4444; }
html.ifl-dark .ifl-remove-btn:hover,
html.ifl-dark .ifl-remove-btn:focus-visible { background: #3a1a1a; border-color: #7f1d1d; }

/* --- Catalog / Category Cards --- */
html.ifl-dark .ifl-catalog-card { background: #1e1e1e; border-color: #3a3a3a; box-shadow: none; }
html.ifl-dark .ifl-catalog-card:hover,
html.ifl-dark .ifl-catalog-card:focus-within { box-shadow: 0 10px 15px -3px rgba(0,0,0,0.4); }
html.ifl-dark .ifl-catalog-card h3 { color: #7ba3d9; }
html.ifl-dark .ifl-catalog-price { color: #e0e0e0; }
html.ifl-dark .ifl-catalog-pagination a,
html.ifl-dark .ifl-catalog-pagination span { background: #2a2a2a; border-color: #3a3a3a; color: #7ba3d9; }

/* --- Search Results --- */
html.ifl-dark .ifl-best-match-card { background: #2a2a2a; border-color: #7ba3d9; }
html.ifl-dark .ifl-ai-summary-box { background: #1e1e1e; color: #e0e0e0; border-left-color: #7ba3d9; }
html.ifl-dark .ifl-ai-summary-box strong { color: #7ba3d9; }

/* --- Account Dashboard --- */
html.ifl-dark .ifl-account-nav a { background: #2a2a2a; color: #b0b0b0; }
html.ifl-dark .ifl-account-nav a:hover { background: #333; color: #e0e0e0; }
html.ifl-dark .ifl-account-nav a.active { background: #1e3a6e; color: #7ba3d9; border-left-color: #7ba3d9; }
html.ifl-dark .ifl-order-card { background: #1e1e1e; border-color: #3a3a3a; color: #e0e0e0; }

/* --- Mini Cart --- */
html.ifl-dark .ifl-mini-empty { color: #b0b0b0; }
html.ifl-dark .ifl-cart-list-item { border-bottom-color: #3a3a3a; }
html.ifl-dark .ifl-mini-thumb { border-color: #3a3a3a; }
html.ifl-dark .ifl-mini-item-name { color: #7ba3d9; }
html.ifl-dark .ifl-mini-price { color: #e0e0e0; }
html.ifl-dark .ifl-mini-total { border-top-color: #3a3a3a; color: #e0e0e0; }
html.ifl-dark .ifl-mini-btn--secondary { background: #2a2a2a; border-color: #555; color: #e0e0e0; }

/* --- Checkout --- */
html.ifl-dark .ifl-checkout-grid { color: #e0e0e0; }
html.ifl-dark .ifl-checkout-container { color: #e0e0e0; }
html.ifl-dark .ifl-checkout-heading { color: #7ba3d9; border-bottom-color: #7ba3d9; }
html.ifl-dark .ifl-checkout-label { color: #e0e0e0; }
html.ifl-dark .ifl-checkout-input,
html.ifl-dark .ifl-checkout-input-full,
html.ifl-dark .ifl-checkout-input-inline { background: #333; color: #e0e0e0; border-color: #555; }
html.ifl-dark .ifl-required-legend { color: #b0b0b0; }
html.ifl-dark .ifl-shipping-title { color: #e0e0e0; }
html.ifl-dark .ifl-optin-box { background: #2a2a2a; border-color: #3a3a3a; }
html.ifl-dark .ifl-optin-label { color: #e0e0e0; }
html.ifl-dark .ifl-summary-sidebar { background: #1e1e1e; border-color: #3a3a3a; }
html.ifl-dark .ifl-summary-header h3 { color: #e0e0e0; }
html.ifl-dark .ifl-summary-edit { color: #7ba3d9; }
html.ifl-dark .ifl-summary-item { color: #e0e0e0; }
html.ifl-dark .ifl-summary-divider { border-top-color: #3a3a3a; }
html.ifl-dark .ifl-summary-row { color: #b0b0b0; }
html.ifl-dark .ifl-summary-grand { border-top-color: #7ba3d9; }
html.ifl-dark .ifl-summary-grand-label { color: #e0e0e0; }
html.ifl-dark .ifl-summary-grand-total { color: #7ba3d9; }
html.ifl-dark .ifl-summary-qty { color: #7ba3d9; }
html.ifl-dark .ifl-summary-subtext { color: #b0b0b0; }
html.ifl-dark .ifl-payment-element { background: #2a2a2a; border-color: #3a3a3a; }
html.ifl-dark .ifl-payment-divider span { background: #1e1e1e; color: #b0b0b0; }
html.ifl-dark .ifl-payment-divider hr { border-top-color: #3a3a3a; }
html.ifl-dark .ifl-cc-label { color: #e0e0e0; }
html.ifl-dark .ifl-radio-panel { background: #2a2a2a; border-color: #3a3a3a; }
html.ifl-dark .ifl-radio-title { color: #e0e0e0; }
html.ifl-dark .ifl-radio-desc { color: #b0b0b0; }
html.ifl-dark .ifl-radio-search { background: #333; color: #e0e0e0; border-color: #555; }
html.ifl-dark .ifl-tribute-panel { background: #2a2a2a; border-color: #3a3a3a; }
html.ifl-dark .ifl-tribute-label { color: #e0e0e0; }
html.ifl-dark .ifl-tribute-fields { border-top-color: #3a3a3a; }
html.ifl-dark .ifl-checkout-back a { color: #7ba3d9; }
html.ifl-dark .ifl-checkout-empty { color: #b0b0b0; }

/* --- Free Shipping Notice --- */
html.ifl-dark .ifl-fs-notice--info { background: #1e2d4a; color: #7ba3d9; border-color: #3a5a8a; }
html.ifl-dark .ifl-fs-notice--success { background: #1a2e1a; color: #4ade80; border-color: #2a5a2a; }

/* --- Extra Gift UI --- */
html.ifl-dark .ifl-extra-gift-box--active { background: #1e2d4a; border-color: #7ba3d9; }
html.ifl-dark .ifl-extra-gift-box--thanks { background: #1a2e1a; border-color: #166534; }
html.ifl-dark .ifl-extra-gift-title--active { color: #7ba3d9; }
html.ifl-dark .ifl-extra-gift-title--thanks { color: #4ade80; }
html.ifl-dark .ifl-extra-gift-desc { color: #b0b0b0; }
html.ifl-dark .ifl-extra-gift-desc--thanks { color: #4ade80; }
html.ifl-dark .ifl-gift-input { background: #333; color: #7ba3d9; border-color: #555; }
html.ifl-dark .ifl-gift-currency { color: #7ba3d9; }
html.ifl-dark .ifl-recurring-label { color: #e0e0e0; }
html.ifl-dark .ifl-date-label-sm { color: #7ba3d9; }
html.ifl-dark .ifl-date-input-sm { background: #333; color: #e0e0e0; border-color: #555; }

/* --- Concierge Commerce --- */
html.ifl-dark .ifl-concierge-title { color: #e0e0e0; }
html.ifl-dark .ifl-concierge-desc { color: #b0b0b0; }
html.ifl-dark .ifl-concierge-form { background: #1e1e1e; border-color: #3a3a3a; }
html.ifl-dark .ifl-concierge-select { background: #333; color: #e0e0e0; border-color: #555; }
html.ifl-dark .ifl-concierge-section { border-top-color: #3a3a3a; }

/* --- Tribute --- */
html.ifl-dark .ifl-tribute-title { color: #fbbf24; }
html.ifl-dark .ifl-tribute-text { color: #fcd34d; }

/* --- Mailchimp Signup Widget (sidebar) --- */
html.ifl-dark .widget_mc4wp_form_widget { background-color: #2a2a2a; border-color: #3a3a3a; }

/* --- Monthly Companion --- */
html.ifl-dark .ifl-monthly-box { background: #2a2a2a; border-color: #3a3a3a; }
html.ifl-dark .ifl-monthly-label { color: #e0e0e0; }

/* --- State Dropdown --- */
html.ifl-dark .ifl-state-select { background: #333; color: #e0e0e0; border-color: #555; }

/* --- Header Cart Dropdown --- */
html.ifl-dark .ifl-header-dropdown { background: #1e1e1e; border-color: #3a3a3a; box-shadow: 0 10px 25px rgba(0,0,0,0.5); }
html.ifl-dark .ifl-header-cart-total { color: #e0e0e0; }
html.ifl-dark .ifl-mini-btn--secondary:hover,
html.ifl-dark .ifl-mini-btn--secondary:focus { background: #333; color: #e0e0e0; border-color: #555; }

/* --- Cart Page Buttons --- */
html.ifl-dark .ifl-cart-btn--secondary:hover,
html.ifl-dark .ifl-cart-btn--secondary:focus { background: #333; color: #e0e0e0; border-color: #555; }

/* --- Monthly Companion Dashboard --- */
html.ifl-dark .ifl-companion-intro,
html.ifl-dark .ifl-companion-intro-inner { color: #e0e0e0; }
html.ifl-dark .ifl-companion-card-title { color: #882D2B !important; }
html.ifl-dark .ifl-companion-card-excerpt { color: #475569 !important; }
html.ifl-dark .ifl-companion-card-tag--expiring { background: #3a1a1a; color: #fca5a5; }
html.ifl-dark .ifl-companion-card-tag--permanent { background: #1e2d4a; color: #93c5fd; }

/* --- Companion Resource Detail --- */
html.ifl-dark .ifl-companion-description { color: #e0e0e0; }
html.ifl-dark .ifl-companion-coming-soon { color: #b0b0b0; }

/* --- Companion Upsell Card ("Get the full resource") --- */
html.ifl-dark .ifl-companion-upsell-card { background: #1e1e1e; border-color: #3a3a3a; box-shadow: none; }
html.ifl-dark .ifl-companion-upsell-heading { color: #7ba3d9; border-bottom-color: #3a3a3a; }
html.ifl-dark .ifl-companion-upsell-desc { color: #b0b0b0; }
html.ifl-dark .ifl-companion-upsell-sidebar { border-left-color: #3a3a3a; }
html.ifl-dark .ifl-companion-upsell-format { color: #e0e0e0; }
html.ifl-dark .ifl-companion-upsell-code { color: #b0b0b0; }
html.ifl-dark .ifl-companion-upsell-price { color: #e0e0e0; }
html.ifl-dark .ifl-companion-stock--available { background: #1a2e1a; color: #4ade80; }
html.ifl-dark .ifl-companion-stock--unavailable { background: #3a1a1a; color: #fca5a5; }
html.ifl-dark .ifl-companion-stock--backorder { background: #2a2400; color: #fbbf24; }
html.ifl-dark .ifl-companion-upsell-qty { background: #333; color: #e0e0e0; border-color: #555; }

/* --- Category Sidebar --- */
html.ifl-dark .ifl-cat-sidebar-inner { background: #1e1e1e !important; border-color: #3a3a3a !important; box-shadow: none !important; }
html.ifl-dark .ifl-cat-sidebar h2 { color: #e0e0e0 !important; border-bottom-color: #3a3a3a !important; }
html.ifl-dark .ifl-cat-sidebar p { color: #b0b0b0 !important; }
html.ifl-dark .ifl-cat-sidebar a { color: #7ba3d9 !important; }
html.ifl-dark .ifl-cat-sidebar .ifl-account-nav-link { background: transparent !important; }
html.ifl-dark .ifl-cat-sidebar .ifl-account-nav-link[aria-current="page"] { background: #1e3a6e !important; }
html.ifl-dark .ifl-cat-sidebar .ifl-account-nav-link span { background: #3a3a3a !important; color: #b0b0b0 !important; }
html.ifl-dark .ifl-cat-sidebar select { background: #333 !important; color: #e0e0e0 !important; border-color: #555 !important; }
html.ifl-dark .ifl-cat-sidebar div[style*="border-bottom"] { border-bottom-color: #3a3a3a !important; }
/* ============================================================================
   STORE HOME — schedulable hero + collection merchandising bands + recently viewed
   (Dameon comp direction; structure-first, tune colors during visual iteration)
   ============================================================================ */

/* Full-bleed sections: let bands span the content column edge-to-edge with their own
   inner max-width, so tinted bands (spotlight/row bg) read as full-width bands. */
.ifl-store-home-wrap { --ifl-band-max: 1120px; --ifl-accent: #9a2a3b; }

/* --- Free shipping bar --- */
.ifl-freeship-bar {
    background: var(--brand-dark, #0e3216);
    color: #fff; text-align: center; font-size: 0.9em; font-weight: 600;
    letter-spacing: 0.02em; padding: 10px 16px; border-radius: 8px; margin-bottom: 24px;
}

/* ============================ HERO ============================ */
/* Square, spans the content frame edge-to-edge: the hero is a direct child of .page-full-main-bg (no side padding), so it reaches the border. */
.ifl-hero { border-radius: 0; overflow: hidden; margin-bottom: 8px; }

.ifl-hero-eyebrow {
    display: block; color: var(--ifl-accent, #9a2a3b); font-weight: 700;
    font-size: 0.8em; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 10px;
}
.ifl-hero-title {
    font-family: var(--brand-title-font, 'Times New Roman', Times, serif); font-weight: 400; color: #111827; line-height: 1.1; margin: 0 0 6px;
    font-size: 2.7em;
}
.ifl-hero-subtitle { font-size: 1.15em; color: #374151; margin: 0 0 10px; font-family: var(--brand-font); }
.ifl-hero-meta { font-size: 0.9em; letter-spacing: 0.06em; text-transform: uppercase; color: #4b5563; margin: 0 0 14px; }
.ifl-hero-desc { font-size: 1.1em; line-height: 1.6; color: #374151; margin: 0 0 20px; max-width: 46ch; }

.ifl-hero-price { display: flex; align-items: baseline; gap: 12px; margin: 0 0 6px; }
.ifl-hero-price-was { color: #9ca3af; text-decoration: line-through; font-size: 1.05em; }
.ifl-hero-price-now { color: #1f2937; font-weight: 700; font-size: 1.5em; }

.ifl-hero-cta {
    display: inline-block; background: var(--ifl-accent, #9a2a3b); color: #fff !important;
    border: none; text-decoration: none; font-weight: 700; font-size: 1em;
    padding: 13px 34px; border-radius: 6px; cursor: pointer; transition: filter .15s, transform .15s;
}
.ifl-hero-cta:hover { background: var(--ifl-accent, #9a2a3b) !important; color: #fff !important; filter: brightness(1.08); transform: translateY(-1px); }
.ifl-hero-form { background: none; padding: 0; }
.ifl-hero-buy { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; }
.ifl-hero-freeship { color: var(--ifl-accent, #9a2a3b); font-size: 0.85em; font-weight: 600; margin: 8px 0 0; width: 100%; }
/* Featured hero: title + image link to the product; keep the title's look (no default link color/underline). */
.ifl-hero-link { color: inherit; text-decoration: none; display: inline-block; max-width: 100%; }
.ifl-hero-title .ifl-hero-link:hover { text-decoration: underline; }
/* PDP top title — grey box, Times New Roman italic (matches the Monthly Companion detail header). */
.ifl-pdp-page-header { background: #f4f4f5; text-align: center; padding: 30px 50px; margin: 0; }
.ifl-pdp-page-title { font-family: var(--brand-title-font, 'Times New Roman', Times, serif); font-style: italic; font-weight: 400; font-size: 2.4em; line-height: 1.2; color: #1f2937; margin: 0; }

/* Split (Esther): product image left, info right, on a light band */
.ifl-hero--split {
    display: flex; align-items: center; gap: 40px; background: #f4f4f5;
    padding: 48px 50px; /* content inset matches the frame's .page-top padding so it lines up with the bands below */
}
.ifl-hero-split-image { flex: 0 0 42%; text-align: center; }
.ifl-hero-split-image img { max-width: 100%; max-height: 360px; width: auto; height: auto; object-fit: contain; }
.ifl-hero-split-info { flex: 1; min-width: 0; }

/* Banner (Job): full-bleed background image, text panel over it */
.ifl-hero--banner {
    display: flex; align-items: center; justify-content: space-between; gap: 24px;
    background-size: cover; background-position: center; min-height: 300px; padding: 48px 50px; color: #fff;
}
.ifl-hero--banner .ifl-hero-title { color: #fff; font-size: 3em; }
.ifl-hero--banner .ifl-hero-subtitle,
.ifl-hero--banner .ifl-hero-meta { color: rgba(255,255,255,0.92); }
.ifl-hero--banner .ifl-hero-price-now,
.ifl-hero--banner .ifl-hero-price-was { color: #fff; }
.ifl-hero--banner.ifl-hero--dark-text .ifl-hero-title,
.ifl-hero--banner.ifl-hero--dark-text .ifl-hero-subtitle,
.ifl-hero--banner.ifl-hero--dark-text .ifl-hero-meta,
.ifl-hero--banner.ifl-hero--dark-text .ifl-hero-price-now { color: #1f2937; }
.ifl-hero-banner-content { flex: 1 1 46%; max-width: 520px; }
.ifl-hero-banner-image { flex: 1 1 50%; text-align: right; }
.ifl-hero-banner-image img { max-width: 100%; max-height: 320px; width: auto; object-fit: contain; }

/* ============================ BANDS ============================ */
.ifl-band { margin: 0 0 8px; padding: 40px 0; }
.ifl-band--spotlight { padding: 44px 0; }
/* Inside the store-home frame, bands break out of .page-top's 50px padding so a band background
   (e.g. the "Chuck's Insight" spotlight) bleeds to the frame edge; content is re-inset 42px
   (+8px .ifl-band-inner = 50px) to stay aligned with the hero above. */
.ifl-store-home-wrap .ifl-band { margin-left: -50px; margin-right: -50px; padding-left: 42px; padding-right: 42px; }
.ifl-band-inner { max-width: var(--ifl-band-max); margin: 0 auto; padding: 0 8px; }
.ifl-band-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 22px; }
.ifl-band-title { font-family: var(--brand-title-font, 'Times New Roman', Times, serif); font-weight: 400; color: #111827; font-size: 1.5em; margin: 0; }
.ifl-band-viewall { color: var(--brand-primary, #37518c); font-weight: 600; font-size: 0.9em; text-decoration: none; }
.ifl-band-viewall:hover { text-decoration: underline; }

/* Product grid inside a band */
.ifl-band-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; }
.ifl-band-grid--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .ifl-band-grid, .ifl-band-grid--3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .ifl-band-grid, .ifl-band-grid--3 { grid-template-columns: repeat(2, 1fr); gap: 16px; } }

/* Spotlight: promo panel + grid */
.ifl-band--spotlight .ifl-band-inner { display: grid; grid-template-columns: minmax(200px, 1fr) 3fr; gap: 40px; align-items: stretch; }
/* Promo panel stretches full row height (keeps the divider full-height) but centers its text vertically. */
.ifl-band-promo { padding-right: 24px; border-right: 1px solid rgba(0,0,0,0.08); display: flex; flex-direction: column; justify-content: center; }
.ifl-band-promo-title { font-family: var(--brand-title-font, 'Times New Roman', Times, serif); color: #111827; font-weight: 400; font-size: 1.5em; line-height: 1.2; margin: 0 0 14px; }
.ifl-band-promo-body { color: #374151; font-weight: 500; font-size: 0.95em; line-height: 1.6; margin: 0 0 12px; }
.ifl-band-promo-note { color: #374151; font-weight: 500; font-size: 0.9em; line-height: 1.5; margin: 0 0 18px; }
.ifl-band-cta {
    display: inline-block; border: 1px solid var(--brand-primary, #37518c); background: #fff;
    color: var(--brand-primary, #37518c) !important; text-align: center;
    font-family: var(--brand-title-font, 'Times New Roman', Times, serif);
    text-decoration: none; font-weight: 600; font-size: 1.1em; padding: 18px 40px; border-radius: 6px;
    transition: background .15s, color .15s, border-color .15s;
}
.ifl-band-cta:hover { background: var(--brand-primary, #37518c); color: #fff !important; border-color: var(--brand-primary, #37518c); }
@media (max-width: 760px) {
    .ifl-band--spotlight .ifl-band-inner { grid-template-columns: 1fr; gap: 24px; }
    .ifl-band-promo { border-right: none; border-bottom: 1px solid rgba(0,0,0,0.08); padding: 0 0 20px; }
}

/* ============================ PRODUCT CARD ============================ */
.ifl-pcard { display: flex; flex-direction: column; text-align: center; }
.ifl-pcard-link { display: flex; flex-direction: column; align-items: center; text-decoration: none; color: inherit; height: 100%; }
.ifl-pcard-format { font-size: 0.82em; color: #6b7280; letter-spacing: 0.02em; margin-bottom: 10px; min-height: 1em; }
.ifl-pcard-media { display: flex; align-items: center; justify-content: center; width: 100%; height: 170px; margin-bottom: 14px; }
.ifl-pcard-media img { max-width: 100%; max-height: 170px; width: auto; height: auto; object-fit: contain; }
.ifl-pcard-media .ifl-no-image-placeholder { width: 100%; height: 100%; }
.ifl-pcard-byline { color: var(--ifl-accent, #9a2a3b); font-size: 0.92em; font-weight: 700; margin-bottom: 6px; }
.ifl-pcard-title { font-size: 1.08em; font-weight: 600; color: #1f2937; line-height: 1.35; margin: 0 0 8px; }
.ifl-pcard-price { font-size: 1.15em; font-weight: 700; color: #111827; margin: 0 auto; }
.ifl-pcard .ifl-product-actions { margin-top: 12px; width: 100%; }

/* Recently viewed shares band/card styles; hidden until JS finds items */
.ifl-rv-wrap[hidden] { display: none; }

/* ============================ HERO RESPONSIVE ============================ */
@media (max-width: 820px) {
    .ifl-hero--split { flex-direction: column; text-align: center; gap: 24px; padding: 32px 24px; }
    .ifl-hero-split-image { flex: none; width: 100%; }
    .ifl-hero-desc { margin-left: auto; margin-right: auto; }
    .ifl-hero-buy { justify-content: center; }
    .ifl-hero-price { justify-content: center; }
    .ifl-hero--banner { flex-direction: column; text-align: center; min-height: 0; padding: 32px 24px; }
    .ifl-hero-banner-content { max-width: 100%; }
    .ifl-hero-banner-image { text-align: center; }
    .ifl-hero--banner .ifl-hero-title { font-size: 2.2em; }
    .ifl-hero-title { font-size: 1.9em; }
}

/* --- Cart page: centered "Cart" title, no theme page-header banner (scoped to the cart page) --- */
body:has(.ifl-cart-container) .entry-header,
body:has(.ifl-checkout-container) .entry-header { text-align: center; background: none !important; border: none !important; box-shadow: none !important; min-height: 0 !important; height: auto !important; padding: 0 !important; margin: 8px 0 0 !important; }
body:has(.ifl-cart-container) .entry-title,
body:has(.ifl-checkout-container) .entry-title { text-align: center; font-family: var(--brand-title-font, 'Times New Roman', Times, serif); font-weight: 600; color: var(--brand-primary, #37518c); font-size: 2.86em; margin: 10px 0 26px; text-shadow: none !important; }
/* Strip the theme page-chrome from article/entry-content, but NOT .page-full-main-bg — that's the content frame we want to show. */
body:has(.ifl-cart-container) article.entry,
body:has(.ifl-cart-container) .entry-content,
body:has(.ifl-checkout-container) article.entry,
body:has(.ifl-checkout-container) .entry-content { background: none !important; border: none !important; box-shadow: none !important; }
