:root {
    --ifly-navy: #071b2e;
    --ifly-navy-soft: #12364a;
    --ifly-teal: #008d89;
    --ifly-cyan: #24c6c0;
    --ifly-mist: #eef8f7;
    --ifly-line: #d8e5e7;
    --ifly-text: #18313d;
    --ifly-muted: #5a717c;
}

.iflyseo-home,
.iflyseo-account,
.iflyseo-panel,
.iflyseo-download,
.iflyseo-footer {
    box-sizing: border-box;
    color: var(--ifly-text);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.iflyseo-home *,
.iflyseo-account *,
.iflyseo-panel *,
.iflyseo-download *,
.iflyseo-footer * {
    box-sizing: border-box;
}

.iflyseo-home h1,
.iflyseo-home h2,
.iflyseo-home h3,
.iflyseo-account h1,
.iflyseo-account h2,
.iflyseo-account h3,
.iflyseo-panel h1,
.iflyseo-panel h2,
.iflyseo-download h2 {
    color: var(--ifly-navy);
    font-weight: 750;
    letter-spacing: -.025em;
    line-height: 1.12;
}

.iflyseo-home p,
.iflyseo-account p,
.iflyseo-panel p,
.iflyseo-download p {
    color: var(--ifly-muted);
    line-height: 1.65;
}

.iflyseo-eyebrow {
    margin: 0 0 10px !important;
    color: var(--ifly-teal) !important;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.iflyseo-btn {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    padding: 11px 19px;
    border: 1px solid var(--ifly-teal);
    border-radius: 8px;
    background: var(--ifly-teal);
    color: #fff !important;
    font-size: 15px;
    font-weight: 750;
    line-height: 1.2;
    text-decoration: none !important;
    transition: background .18s ease, border-color .18s ease, transform .18s ease;
}

.iflyseo-btn:hover {
    border-color: var(--ifly-navy-soft);
    background: var(--ifly-navy-soft);
    transform: translateY(-1px);
}

.iflyseo-btn:focus-visible,
.iflyseo-home a:focus-visible,
.iflyseo-account a:focus-visible,
.iflyseo-header-actions a:focus-visible,
.iflyseo-form input:focus-visible,
.iflyseo-form button:focus-visible {
    outline: 3px solid rgba(36, 198, 192, .4);
    outline-offset: 3px;
}

.iflyseo-btn-quiet {
    border-color: var(--ifly-line);
    background: #fff;
    color: var(--ifly-navy) !important;
}

.iflyseo-btn.is-disabled {
    border-color: #cad5d7;
    background: #e6ecee;
    color: #66777e !important;
    cursor: not-allowed;
}

.iflyseo-icon {
    display: inline-grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border-radius: 10px;
    background: var(--ifly-mist);
    color: var(--ifly-teal);
}

.iflyseo-icon svg {
    width: 24px;
    height: 24px;
}

.iflyseo-hero {
    display: grid;
    max-width: 1200px;
    min-height: 560px;
    grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr);
    align-items: center;
    gap: clamp(34px, 7vw, 90px);
    margin: 0 auto;
    padding: 70px 24px;
}

.iflyseo-hero h1 {
    max-width: 800px;
    margin: 0 0 22px;
    font-size: clamp(38px, 5.5vw, 72px);
}

.iflyseo-hero-copy > p:not(.iflyseo-eyebrow) {
    max-width: 680px;
    font-size: clamp(17px, 2vw, 21px);
}

.iflyseo-hero-actions {
    display: flex;
    align-items: center;
    gap: 22px;
    margin-top: 30px;
}

.iflyseo-text-link {
    color: var(--ifly-navy);
    font-weight: 750;
    text-underline-offset: 5px;
}

.iflyseo-hero-mark {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: min(100%, 340px);
    aspect-ratio: 1;
    justify-self: end;
    border: 1px solid rgba(36, 198, 192, .45);
    border-radius: 50% 50% 46% 54%;
    background: radial-gradient(circle at 32% 30%, #1c5266, var(--ifly-navy) 66%);
    box-shadow: 24px 30px 0 var(--ifly-mist);
    color: #fff;
}

.iflyseo-hero-dragonfly {
    width: 60%;
    height: auto;
    /* Keep the brand teal, lift it a touch and add a soft cyan glow so it reads
       cleanly on the navy disc. */
    filter: brightness(1.18) drop-shadow(0 6px 22px rgba(36, 198, 192, .5));
}

.iflyseo-benefits {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 1px solid var(--ifly-line);
    border-bottom: 1px solid var(--ifly-line);
    background: #fff;
}

.iflyseo-benefits article {
    min-width: 0;
    padding: clamp(28px, 5vw, 54px);
    border-right: 1px solid var(--ifly-line);
}

.iflyseo-benefits article:last-child {
    border-right: 0;
}

.iflyseo-benefits h2 {
    margin: 20px 0 8px;
    font-size: 21px;
}

.iflyseo-steps,
.iflyseo-pricing {
    max-width: 1200px;
    margin: 0 auto;
    padding: 90px 24px;
}

.iflyseo-steps {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: clamp(40px, 8vw, 100px);
}

.iflyseo-steps > div h2 {
    max-width: 430px;
    margin: 0;
    font-size: clamp(30px, 4vw, 48px);
}

.iflyseo-steps ol {
    margin: 0;
    padding: 0;
    list-style: none;
}

.iflyseo-steps li {
    display: grid;
    grid-template-columns: 54px 1fr;
    gap: 18px;
    padding: 24px 0;
    border-bottom: 1px solid var(--ifly-line);
}

.iflyseo-steps li > span {
    color: var(--ifly-teal);
    font-weight: 850;
}

.iflyseo-steps h3,
.iflyseo-steps p {
    margin: 0 0 6px;
}

.iflyseo-pricing {
    max-width: none;
    background: var(--ifly-mist);
}

.iflyseo-pricing > * {
    max-width: 1200px;
    margin-right: auto;
    margin-left: auto;
}

.iflyseo-section-title {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 30px;
}

.iflyseo-section-title h2 {
    margin: 0;
    font-size: clamp(30px, 4vw, 48px);
}

.iflyseo-pricing-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.iflyseo-pricing-group + .iflyseo-pricing-group {
    margin-top: 34px;
}

.iflyseo-pricing-group-head {
    margin-bottom: 16px;
}

.iflyseo-pricing-group-head h3 {
    margin: 0 0 4px;
    color: var(--ifly-navy);
    font-size: 21px;
    font-weight: 750;
    letter-spacing: -.015em;
}

.iflyseo-pricing-group-head p {
    margin: 0;
    color: var(--ifly-muted);
}

.iflyseo-plan {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 22px 24px 24px;
    overflow: hidden;
    border: 1px solid var(--ifly-line);
    border-radius: 12px;
    background: #fff;
}

/* Every card reserves the recommendation line and pins its call to action to
   the bottom, so prices, features and buttons line up across the row. */
.iflyseo-plan > .iflyseo-btn,
.iflyseo-plan > .is-disabled {
    margin-top: auto;
    align-self: stretch;
}

.iflyseo-plan.is-recommended {
    border-top: 5px solid var(--ifly-cyan);
    padding-top: 24px;
}

.iflyseo-plan-label {
    display: block;
    min-height: 15px;
    line-height: 15px;
    margin-bottom: 18px;
    color: var(--ifly-teal);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

/* Rank emblem per plan. Everything visual lives inside the SVG, so the theme
   can't recolour or resize it; these rules only place and size it. High
   specificity + !important because Astra otherwise forces svg width/height. */
.iflyseo-plan .iflyseo-plan-badge {
    display: flex !important;
    align-items: center;
    justify-content: flex-start;
    margin: 0 0 14px !important;
    min-height: 58px;
}
.iflyseo-plan .iflyseo-plan-badge .iflyseo-badge-svg {
    width: 58px !important;
    height: 58px !important;
    max-width: 58px !important;
    flex: none !important;
    display: block !important;
    filter: drop-shadow(0 6px 12px rgba(7, 27, 46, .16));
}
.iflyseo-tier-apex .iflyseo-badge-svg {
    animation: iflyseo-badge-glow 3.6s ease-in-out infinite;
}
@keyframes iflyseo-badge-glow {
    0%, 100% { filter: drop-shadow(0 4px 10px rgba(123, 92, 240, .35)); }
    50%      { filter: drop-shadow(0 7px 18px rgba(53, 198, 244, .6)); }
}
@media (prefers-reduced-motion: reduce) {
    .iflyseo-tier-apex .iflyseo-badge-svg { animation: none; }
}

.iflyseo-plan h3 {
    margin: 0 0 12px;
    font-size: 28px;
}

/* Price and period read as one figure on a single line. Astra forces
   .iflyseo-price back to display:block, so pin it with specificity + !important
   and keep the period from wrapping. */
.iflyseo-plan .iflyseo-price {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: baseline;
    gap: 6px;
    margin: 0 0 14px;
}

.iflyseo-plan .iflyseo-price strong {
    color: var(--ifly-navy);
    font-size: clamp(26px, 2.6vw, 34px);
    line-height: 1.05;
    white-space: nowrap;
}

.iflyseo-plan .iflyseo-price-period {
    color: var(--ifly-muted);
    font-size: 14px;
    font-weight: 600;
    white-space: nowrap;
}

.iflyseo-plan ul {
    min-height: 0;
    margin: 14px 0 16px;
    padding: 0;
    list-style: none;
}

.iflyseo-plan li {
    padding: 7px 0;
    border-bottom: 1px solid #edf2f3;
}

.iflyseo-plan .iflyseo-btn {
    width: 100%;
}

.iflyseo-trust {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-top: 28px;
    padding: 22px 26px;
    border: 1px solid #b9dad8;
    border-radius: 10px;
    background: #fff;
}

.iflyseo-trust svg {
    width: 32px;
    flex: 0 0 32px;
    color: var(--ifly-teal);
}

.iflyseo-trust p {
    margin: 0;
}

.iflyseo-download {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 24px;
    max-width: 1152px;
    /* The card sits directly above the footer, which is the same dark navy, so
       a symmetric margin made the two read as one block. It needs more room
       underneath than above. */
    margin: 55px auto 90px;
    padding: 32px;
    border-radius: 14px;
    background: var(--ifly-navy);
    color: #fff;
}

.iflyseo-download h2,
.iflyseo-download p {
    margin: 0 0 5px;
    color: #fff;
}

.iflyseo-panel,
.iflyseo-account {
    width: min(100% - 32px, 1080px);
    margin: 42px auto;
}

.iflyseo-panel {
    max-width: 620px;
    padding: clamp(24px, 5vw, 42px);
    border: 1px solid var(--ifly-line);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(7, 27, 46, .08);
}

.iflyseo-panel.iflyseo-compact {
    width: 100%;
    max-width: none;
    margin: 24px 0;
    padding: 28px;
    box-shadow: none;
}

.iflyseo-register h1,
.iflyseo-register-success h1 {
    margin: 8px 0 14px;
    font-size: clamp(30px, 5vw, 42px);
}

.iflyseo-form {
    display: grid;
    gap: 9px;
}

.iflyseo-form label:not(.iflyseo-check) {
    display: grid;
    gap: 6px;
    margin-top: 7px;
    color: var(--ifly-navy);
    font-weight: 700;
}

.iflyseo-form input:not([type="checkbox"]),
.iflyseo-form select,
.iflyseo-form textarea {
    width: 100%;
    min-width: 0;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid #b8cbcf;
    border-radius: 7px;
    background: #fff;
    color: var(--ifly-text);
    font-size: 16px;
}

.iflyseo-form small {
    color: var(--ifly-muted);
}

/* ── Registration helpers ─────────────────────────────────────────────── */
.iflyseo-field-help {
    display: block;
    margin-top: 5px;
    font-size: 12.5px;
    line-height: 1.35;
}
.iflyseo-field-help.is-invalid { color: #d33f5f; }
.iflyseo-field-help.is-ok { color: #12a05a; }

/* Header logo — larger so the wordmark is legible in the menu bar. */
.custom-logo-link .custom-logo,
.site-logo-img .custom-logo {
    width: 176px !important;
    max-width: 176px !important;
    height: auto !important;
}
.iflyseo-form input.is-invalid { border-color: #d33f5f; }
.iflyseo-form input.is-invalid:focus { box-shadow: 0 0 0 3px rgba(211, 63, 95, .16); }

/* Phone: country picker + number on one line */
.iflyseo-phone-field { display: flex; gap: 8px; align-items: stretch; }
.iflyseo-phone-field #iflyseo-phone-number { flex: 1 1 auto; }
.iflyseo-cc { position: relative; flex: 0 0 auto; }
.iflyseo-cc-toggle {
    display: inline-flex; align-items: center; gap: 6px;
    height: 100%; min-height: 44px; padding: 0 12px;
    border: 1px solid #b8cbcf; border-radius: 7px; background: #fff;
    color: var(--ifly-text); font-size: 15px; font-weight: 700; cursor: pointer;
}
.iflyseo-cc-flag { width: 22px; height: 16px; border-radius: 2px; object-fit: cover; box-shadow: 0 0 0 1px rgba(7, 27, 46, .08); }
.iflyseo-cc-caret { color: var(--ifly-muted); font-size: 11px; }
.iflyseo-cc-pop {
    position: absolute; z-index: 40; top: calc(100% + 6px); left: 0;
    width: 288px; max-width: 78vw; padding: 8px;
    border: 1px solid var(--ifly-line); border-radius: 12px; background: #fff;
    box-shadow: 0 20px 46px rgba(7, 27, 46, .16);
}
.iflyseo-cc-search {
    width: 100%; min-height: 40px; margin-bottom: 6px;
    padding: 8px 11px; border: 1px solid #b8cbcf; border-radius: 8px; font-size: 15px;
}
.iflyseo-cc-list { max-height: 260px; margin: 0; padding: 0; list-style: none; overflow-y: auto; }
.iflyseo-cc-list li {
    display: flex; align-items: center; gap: 10px;
    padding: 9px 10px; border-radius: 8px; cursor: pointer; font-size: 14px;
}
.iflyseo-cc-list li:hover, .iflyseo-cc-list li:focus { background: var(--ifly-mist); outline: none; }
.iflyseo-cc-list .fl { width: 24px; height: 18px; border-radius: 2px; object-fit: cover; flex: none; box-shadow: 0 0 0 1px rgba(7, 27, 46, .08); }
.iflyseo-cc-list .nm { flex: 1 1 auto; color: var(--ifly-text); }
.iflyseo-cc-list .dl { color: var(--ifly-muted); font-variant-numeric: tabular-nums; }

/* Password field with a show/hide eye */
.iflyseo-pass-field { position: relative; }
.iflyseo-pass-field input { padding-right: 46px !important; }
.iflyseo-pass-toggle {
    position: absolute; top: 0; right: 0; height: 100%; width: 44px;
    display: grid; place-items: center;
    border: 0; background: none; cursor: pointer; font-size: 17px; opacity: .55;
}
.iflyseo-pass-toggle:hover, .iflyseo-pass-toggle.is-on { opacity: 1; }

/* ── Cart polish ──────────────────────────────────────────────────────── */
/* Pack rank badge as the line-item thumbnail (replaces broken placeholders). */
.woocommerce-cart table.cart td.product-thumbnail .iflyseo-plan-badge { margin: 0; display: block; }
.woocommerce-cart table.cart td.product-thumbnail .iflyseo-badge-svg {
    width: 54px !important; height: 54px !important; max-width: 54px !important;
}
/* Move the remove "✕" to the right, vertically centred. Absolute-positioning
   the cell takes it out of the table so the empty left column collapses; pad
   the subtotal so the price never sits under the ✕. */
.woocommerce-cart table.cart tr.cart_item { position: relative; }
.woocommerce-cart table.cart td.product-remove {
    position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
    width: auto; height: auto; margin: 0; padding: 0; border: 0;
}
.woocommerce-cart table.cart th.product-remove { padding: 0; width: 0; border: 0; }
.woocommerce-cart table.cart td.product-subtotal { padding-right: 48px; }
.woocommerce-cart table.cart td.product-remove a.remove {
    display: flex; align-items: center; justify-content: center;
    width: 28px; height: 28px; margin: 0; font-size: 22px; line-height: 1;
    color: #98a6ba !important; font-weight: 400; border-radius: 50%;
}
.woocommerce-cart table.cart td.product-remove a.remove:hover { color: #d33f5f !important; background: #fbe4ea !important; }
/* Subtotal duplicates Total when there's no discount/shipping/tax — hide it. */
.woocommerce-cart .cart_totals .cart-subtotal { display: none; }
/* Quantity is always 1 (sold individually) — show it clean and centred. */
.woocommerce-cart table.cart td.product-quantity { text-align: center; font-variant-numeric: tabular-nums; }

/* One tidy loading spinner, centred, instead of WooCommerce's two grey blocks. */
.woocommerce-cart .blockUI.blockOverlay { background: rgba(255, 255, 255, .72) !important; opacity: 1 !important; cursor: default !important; }
.woocommerce-cart .blockUI.blockOverlay::before {
    content: ""; box-sizing: border-box;
    width: 36px; height: 36px; margin: -18px 0 0 -18px;
    border: 3px solid #cfe6e5; border-top-color: #008d89; border-radius: 50%;
    background: none !important; animation: iflyseo-cart-spin .7s linear infinite;
}
.woocommerce-cart .blockUI.blockOverlay::after { display: none !important; }
@keyframes iflyseo-cart-spin { to { transform: rotate(360deg); } }
/* Keep a single spinner: silence the one over the totals column. */
.woocommerce-cart .cart-collaterals .blockUI.blockOverlay::before,
.woocommerce-cart .cart_totals .blockUI.blockOverlay::before { display: none; }
@media (prefers-reduced-motion: reduce) {
    .woocommerce-cart .blockUI.blockOverlay::before { animation: none; }
}

.iflyseo-form .iflyseo-btn {
    margin-top: 14px;
    /* Side-by-side form cards stretch to equal height; without this the
       button absorbs the leftover row and renders twice as tall. */
    align-self: end;
    justify-self: start;
}

.iflyseo-check {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    margin: 12px 0;
    cursor: pointer;
}

.iflyseo-check input {
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    accent-color: var(--ifly-teal);
}

.iflyseo-center {
    text-align: center;
}

/* Sits under a left-aligned form, so it follows the form's edge. */
.iflyseo-form-aside {
    margin: 16px 0 0;
    text-align: left;
}

/* A visitor has no cart and cannot check out, so every cart entry point is
   hidden until they sign in. WordPress adds .logged-in to the body. The theme's
   header cart is a bare menu link, so it is matched by destination too. */
body:not(.logged-in) .ast-site-header-cart,
body:not(.logged-in) .ast-header-woo-cart,
body:not(.logged-in) .ast-cart-menu-wrap,
body:not(.logged-in) .ast-addon-cart-wrap,
body:not(.logged-in) .woocommerce-menu-cart,
body:not(.logged-in) a[href*="/carrito"],
body:not(.logged-in) a[href*="/cart/"] {
    display: none !important;
}

.iflyseo-notice {
    margin: 18px 0;
    padding: 13px 15px;
    border: 1px solid;
    border-radius: 8px;
}

.iflyseo-notice.is-error {
    border-color: #efb5b5;
    background: #fff3f3;
    color: #8d2525;
}

.iflyseo-notice.is-success {
    border-color: #9bd4c2;
    background: #edf9f5;
    color: #075f4e;
}

.iflyseo-notice.is-warning {
    border-color: #e6c98a;
    background: #fdf6e7;
    color: #7a5410;
}

.iflyseo-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

.iflyseo-badge.is-connected {
    background: #e2f6ef;
    color: #075f4e;
}

.iflyseo-badge.is-pending {
    background: #fdf1dc;
    color: #7a5410;
}

/* The hint under a pending badge explains what to do next, so it needs its
   own line rather than trailing the badge across the cell. */
.iflyseo-badge + small {
    display: block;
    margin-top: 5px;
    font-size: 12px;
    line-height: 1.35;
}

/* Collapsed by default: the two paths are worth reading once, not occupying
   the top of the panel on every visit. */
.iflyseo-guide {
    margin: 4px 0 20px;
    padding: 0 24px;
    border: 1px solid var(--ifly-line);
    border-radius: 12px;
    background: var(--ifly-mist);
}

.iflyseo-guide > summary {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 16px 0;
    color: var(--ifly-navy);
    cursor: pointer;
    font-weight: 750;
    list-style: none;
}

.iflyseo-guide > summary::-webkit-details-marker {
    display: none;
}

.iflyseo-guide-mark {
    display: inline-grid;
    width: 22px;
    height: 22px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    background: var(--ifly-teal);
    color: #fff;
    font-size: 13px;
    font-weight: 800;
}

.iflyseo-guide[open] > summary {
    border-bottom: 1px solid var(--ifly-line);
}

.iflyseo-guide > p {
    margin: 16px 0;
    color: var(--ifly-muted);
}

.iflyseo-guide > .iflyseo-guide-paths {
    padding-bottom: 20px;
}

.iflyseo-guide-paths {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 20px;
}

.iflyseo-guide-paths h4 {
    margin: 0 0 8px;
    color: var(--ifly-navy);
    font-size: 15px;
}

.iflyseo-guide-paths ol {
    margin: 0;
    padding-left: 20px;
}

.iflyseo-guide-paths li {
    margin-bottom: 7px;
    line-height: 1.5;
}

.iflyseo-form-help {
    margin: 0 0 12px;
    color: var(--ifly-muted);
    font-size: 13px;
    line-height: 1.45;
}

.iflyseo-form-grid select {
    width: 100%;
    box-sizing: border-box;
    margin-top: 5px;
    padding: 10px;
    border: 1px solid var(--ifly-line);
    border-radius: 7px;
    background: #fff;
    font: inherit;
}

.iflyseo-token-once {
    margin: 20px 0;
    padding: 22px;
    border: 2px solid var(--ifly-cyan);
    border-radius: 10px;
    background: #effcfa;
}

.iflyseo-token-once h2,
.iflyseo-token-once p {
    margin-top: 0;
}

.iflyseo-token-once input {
    width: 100%;
    min-width: 0;
    padding: 12px;
    border: 1px solid #93c9c6;
    border-radius: 7px;
    background: #fff;
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    font-size: 14px;
}

.iflyseo-account-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 32px;
    border-radius: 14px 14px 0 0;
    background: var(--ifly-navy);
    color: #fff;
}

.iflyseo-account-head h1,
.iflyseo-account-head p:not(.iflyseo-eyebrow) {
    margin: 0;
    color: #fff;
}

.iflyseo-account-tabs {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    padding: 12px;
    border: 1px solid var(--ifly-line);
    border-top: 0;
    background: #fff;
}

.iflyseo-account-tabs a {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 9px 13px;
    border-radius: 6px;
    color: var(--ifly-navy);
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.iflyseo-account-tabs a:hover {
    background: var(--ifly-mist);
}

.iflyseo-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin: 24px 0;
}

.iflyseo-stat {
    min-width: 0;
    padding: 20px;
    border: 1px solid var(--ifly-line);
    border-radius: 10px;
    background: #fff;
}

.iflyseo-stat span,
.iflyseo-stat strong {
    display: block;
}

.iflyseo-stat span {
    color: var(--ifly-muted);
    font-size: 13px;
}

.iflyseo-stat strong {
    margin-top: 7px;
    color: var(--ifly-navy);
    font-size: clamp(22px, 3vw, 30px);
    overflow-wrap: anywhere;
}

.iflyseo-stack {
    display: grid;
    gap: 18px;
}

.iflyseo-package,
.iflyseo-empty {
    padding: 26px;
    border: 1px solid var(--ifly-line);
    border-radius: 12px;
    background: #fff;
}

/* The package header carried its numbers in one grey run-on sentence, which
   read like debug output. Split them into labelled figures. */
.iflyseo-package > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--ifly-line);
}

.iflyseo-package > header h3 {
    margin: 0;
    font-size: 22px;
}

.iflyseo-package-figures {
    display: flex;
    gap: 28px;
    flex-wrap: wrap;
}

.iflyseo-package-figures div {
    min-width: 0;
}

.iflyseo-package-figures dt {
    color: var(--ifly-muted);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.iflyseo-package-figures dd {
    margin: 4px 0 0;
    color: var(--ifly-navy);
    font-size: 20px;
    font-weight: 750;
}

.iflyseo-package h3,
.iflyseo-package h4,
.iflyseo-package p {
    margin-top: 0;
}

.iflyseo-table-wrap {
    overflow-x: auto;
    margin: 18px 0;
}

.iflyseo-table-wrap table {
    width: 100%;
    border-collapse: collapse;
}

.iflyseo-table-wrap th,
.iflyseo-table-wrap td {
    padding: 12px;
    border-bottom: 1px solid var(--ifly-line);
    text-align: left;
}

.iflyseo-form-grid {
    display: grid;
    /* Three cards: fill the row on wide screens instead of stranding the
       third one on a half-empty second row. */
    grid-template-columns: repeat(auto-fit, minmax(255px, 1fr));
    gap: 18px;
    margin-top: 22px;
}

/* Flex column, not grid: fields stay tight under the heading while the
   leftover height of the shorter cards collects above the button, which
   stays pinned to the bottom so every card's button lines up. */
.iflyseo-form-grid form {
    display: flex;
    flex-direction: column;
    padding: 20px;
    border-radius: 9px;
    background: #f6fafb;
}

.iflyseo-form-grid form .iflyseo-btn {
    margin-top: auto;
    padding-top: 11px;
    align-self: flex-start;
}

.iflyseo-form-inline {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    gap: 14px 20px;
}

.iflyseo-form-inline .iflyseo-check {
    flex: 1 1 100%;   /* own line, above the threshold row */
    align-self: center;
    margin: 0 0 2px;
}

.iflyseo-form-inline .iflyseo-field {
    display: grid;
    gap: 6px;
    min-width: 170px;
}

.iflyseo-form-inline .iflyseo-btn {
    min-height: 44px;   /* match the input so the row aligns at the bottom */
}

.iflyseo-form-inline .iflyseo-field label {
    color: var(--ifly-navy);
    font-weight: 700;
}

.iflyseo-form-inline .iflyseo-btn {
    margin-top: 0;
}

.iflyseo-header-actions,
.iflyseo-header-icons-float.iflyseo-actions-mounted {
    position: static !important;
    display: flex !important;
    align-items: center;
    gap: 6px;
    margin-left: auto;
    padding-left: 12px;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
}

.iflyseo-header-actions a,
.iflyseo-header-icons-float.iflyseo-actions-mounted a {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 38px;
    padding: 7px 9px !important;
    border-radius: 7px !important;
    background: transparent !important;
    color: var(--ifly-navy) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
}

.iflyseo-header-actions a:hover,
.iflyseo-header-icons-float.iflyseo-actions-mounted a:hover {
    background: var(--ifly-mist) !important;
}

.iflyseo-header-actions svg {
    width: 20px;
    height: 20px;
}

.iflyseo-header-actions b {
    display: grid;
    min-width: 17px;
    height: 17px;
    place-items: center;
    border-radius: 50%;
    background: var(--ifly-teal);
    color: #fff;
    font-size: 10px;
}

.iflyseo-header-actions .iflyseo-nav-primary {
    padding-right: 13px !important;
    padding-left: 13px !important;
    background: var(--ifly-teal) !important;
    color: #fff !important;
}

/* Fallback for the front-page title: the astra_the_title_enabled filter is
   the real fix, but a theme that prints the title without asking would put a
   second, meaningless H1 above the hero. */
body.iflyseo-hub-cutover.home .ast-article-single > .entry-header,
body.iflyseo-hub-cutover.home .entry-header > .entry-title,
body.iflyseo-hub-cutover.iflyseo-hub-page .ast-article-single > .entry-header,
body.iflyseo-hub-cutover.iflyseo-hub-page .entry-header > .entry-title {
    display: none;
}

/* The hidden title took its space with it, leaving the hero touching the menu.
   Give that space back to the hero rather than to a hidden element. */
body.iflyseo-hub-cutover.home .iflyseo-home > .iflyseo-hero {
    padding-top: 36px;
}

/* Astra's transparent header is absolutely positioned and floats over the
   page, which only works when the first thing on it is a full-bleed image.
   The hero starts with text, so it needs to clear the header's own height —
   measured at 100px from the tablet breakpoint up and 80px on phones. The
   suppressed page title used to absorb this collision by being overlapped
   itself, which is exactly how it looked. */
body.iflyseo-hub-cutover.home.ast-theme-transparent-header .iflyseo-home > .iflyseo-hero {
    padding-top: 136px;
}

@media (max-width: 768px) {
    body.iflyseo-hub-cutover.home.ast-theme-transparent-header .iflyseo-home > .iflyseo-hero {
        padding-top: 108px;
    }
}

body.iflyseo-hub-active .site-below-footer-wrap,
body.iflyseo-hub-active .ast-small-footer,
body.iflyseo-hub-active footer.site-footer {
    display: none !important;
}

.iflyseo-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    margin-top: 56px;
    padding: 38px max(24px, calc((100vw - 1152px) / 2));
    background: var(--ifly-navy);
    color: #fff;
}

.iflyseo-footer p {
    margin: 5px 0 0;
    color: #a9c4cf;
}

.iflyseo-footer-brand {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    color: #fff !important;
    font-size: 25px;
    font-weight: 850;
    text-decoration: none;
}

.iflyseo-footer nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 20px;
}

.iflyseo-footer nav a {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    color: #d8edef;
    text-decoration: none;
}

body.woocommerce-page .woocommerce form .form-row input.input-text,
body.woocommerce-page .woocommerce form .form-row textarea,
body.woocommerce-page .woocommerce form .form-row select,
body.woocommerce-page .select2-container .select2-selection {
    min-height: 44px;
    padding: 9px 11px;
    border: 1px solid #b8cbcf;
    border-radius: 7px;
    background: #fff;
}

body.woocommerce-page .woocommerce form .form-row input:focus,
body.woocommerce-page .woocommerce form .form-row textarea:focus {
    border-color: var(--ifly-teal);
    outline: 3px solid rgba(36, 198, 192, .2);
}

body.woocommerce-page .woocommerce button.button,
body.woocommerce-page .woocommerce a.button,
body.woocommerce-page .woocommerce input.button,
body.woocommerce-page .woocommerce #respond input#submit {
    min-height: 42px;
    border-radius: 7px;
    background: var(--ifly-teal);
    color: #fff;
    font-weight: 750;
}

body.woocommerce-page .woocommerce-error,
body.woocommerce-page .woocommerce-info,
body.woocommerce-page .woocommerce-message,
body.woocommerce-page .woocommerce table.shop_table,
body.woocommerce-page .woocommerce .cart_totals,
body.woocommerce-page .woocommerce-checkout #payment {
    border-radius: 9px;
}

body.woocommerce-page .woocommerce table.shop_table {
    border-color: var(--ifly-line);
}

@media (max-width: 921px) {
    .iflyseo-hero {
        min-height: auto;
        grid-template-columns: 1fr;
    }

    .iflyseo-hero-mark {
        width: min(65vw, 300px);
        justify-self: center;
    }

    .iflyseo-pricing-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .iflyseo-steps {
        grid-template-columns: 1fr;
    }

.iflyseo-stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .iflyseo-header-actions span,
    .iflyseo-header-icons-float.iflyseo-actions-mounted a:not(:last-child) span {
        display: none;
    }
}

.iflyseo-profile dl {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 0;
}

.iflyseo-profile dl div {
    min-width: 0;
    padding: 14px;
    border-radius: 8px;
    background: #f6fafb;
}

.iflyseo-profile dt {
    color: var(--ifly-muted);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.iflyseo-profile dd {
    margin: 5px 0 0;
    overflow-wrap: anywhere;
}

@media (max-width: 640px) {
    .iflyseo-benefits,
    .iflyseo-pricing-grid,
    .iflyseo-form-grid,
    .iflyseo-form-inline {
        grid-template-columns: 1fr;
    }

    .iflyseo-profile dl {
        grid-template-columns: 1fr;
    }

    .iflyseo-benefits article {
        border-right: 0;
        border-bottom: 1px solid var(--ifly-line);
    }

    .iflyseo-hero,
    .iflyseo-steps,
    .iflyseo-pricing {
        padding: 56px 16px;
    }

    .iflyseo-hero h1 {
        font-size: clamp(34px, 11vw, 48px);
        overflow-wrap: anywhere;
    }

    .iflyseo-hero-actions,
    .iflyseo-section-title,
    .iflyseo-account-head,
    .iflyseo-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .iflyseo-plan {
        padding: 24px 20px;
    }

    .iflyseo-plan ul {
        min-height: 0;
    }

    .iflyseo-download {
        width: calc(100% - 32px);
        grid-template-columns: 1fr;
        margin: 36px 16px;
        padding: 25px;
    }

    .iflyseo-stat-grid {
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }

    .iflyseo-stat {
        padding: 14px;
    }

    .iflyseo-package,
    .iflyseo-panel.iflyseo-compact {
        padding: 18px;
    }

    .iflyseo-table-wrap table,
    .iflyseo-table-wrap tbody,
    .iflyseo-table-wrap tr,
    .iflyseo-table-wrap td {
        display: block;
        width: 100%;
    }

    .iflyseo-table-wrap thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
    }

    .iflyseo-table-wrap tr {
        padding: 8px 0;
        border-bottom: 1px solid var(--ifly-line);
    }

    .iflyseo-table-wrap td {
        display: flex;
        justify-content: space-between;
        gap: 12px;
        padding: 7px 0;
        border: 0;
        overflow-wrap: anywhere;
        text-align: right;
    }

    .iflyseo-table-wrap td::before {
        content: attr(data-label);
        color: var(--ifly-muted);
        font-weight: 700;
        text-align: left;
    }

    .iflyseo-footer nav {
        flex-wrap: wrap;
    }
}

@media (max-width: 390px) {
    .iflyseo-stat-grid {
        grid-template-columns: 1fr;
    }

    .iflyseo-header-actions,
    .iflyseo-header-icons-float.iflyseo-actions-mounted {
        gap: 1px;
        padding-left: 4px;
    }

    .iflyseo-header-actions a,
    .iflyseo-header-icons-float.iflyseo-actions-mounted a {
        padding: 6px !important;
    }
}

/* Icon-only header links: square target, label in the tooltip. */
.iflyseo-icon-link {
    position: relative;
    display: inline-grid !important;
    width: 40px;
    height: 40px;
    place-items: center;
    padding: 0 !important;
}

.iflyseo-icon-link svg {
    width: 21px;
    height: 21px;
}

.iflyseo-icon-link b {
    position: absolute;
    top: 1px;
    right: 0;
    min-width: 17px;
    padding: 1px 4px;
    border-radius: 9px;
    background: var(--ifly-teal);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    line-height: 15px;
    text-align: center;
}
