/**
 * ifinsta — Guest surface stylesheet
 *
 * The single stylesheet for every page that extends base_guest.html:
 * marketing, legal, support, downloads and the public booking store.
 * Linked once from base_guest.html; guest templates must not add their own.
 *
 * Contents
 *   1. SYSTEM              tokens, type scale, layout, shared components
 *   2. HEADER / FOOTER     public chrome
 *   3. HERO COMPONENT      ifinsta-hero-*
 *   4. WELCOME             /
 *   5. GETTING STARTED     /getting-started/
 *   6. FEATURES            /features/
 *   7. ABOUT               /about/
 *   8. PRICING             /pricing/
 *   9. DOWNLOADS           /downloads/
 *  10. SUPPORT             /support/
 *  11. CONTACT             /contact/
 *  12. LEGAL               /terms/, /privacy/
 *  13. BOOKING STORE       /book/<slug>/...
 *  14. GUEST ASSISTANT     chat widget on marketing pages
 */


/**
 * Guest design system
 *
 * One marketing type scale, one layout rhythm, one set of surface rules for
 * every public page. Component rules below consume the `font:` shorthand
 * tokens and never write raw sizes — the same discipline the in-app developer
 * console uses (css/console/capybara.css).
 *
 * The scale is deliberately small: 8 sizes, 3 weights (300/400/600), and
 * `letter-spacing: normal` everywhere except the eyebrow. Display type is
 * LIGHT, not bold — large-and-light is what reads as corporate; large-and-heavy
 * reads as a startup landing page.
 *
 * Root is 14px, so rem values are computed against that. Keeping rem (rather
 * than px) preserves the --ifinsta-font-offset accessibility control.
 */
:root {
    --ifinsta-guest-font-sans: var(--ifinsta-font-sans);
    --ifinsta-guest-font-mono: var(--ifinsta-font-mono);
    --ifinsta-guest-font-display: var(--ifinsta-font-brand-sans);
    --ifinsta-guest-header-height: 3.75rem;
    --ifinsta-guest-max-width: 80rem;
    --ifinsta-guest-header-font: var(--ifinsta-text-label);
}

/* ==========================================================================
   GUEST TYPE SCALE + LAYOUT RHYTHM
   Scoped to the guest body class so the app's compact console scale is
   untouched. Sizes step up at 640 / 1024 / 1280.
   ========================================================================== */
.ifinsta-guest-page {
    /* type — 36 / 26 / 21 / 17 / 16 / 16 / 14 / 12 px at mobile */
    --ifinsta-guest-display: 300 2.5714rem/1.2 var(--ifinsta-guest-font-display);
    --ifinsta-guest-h1: 400 1.8571rem/1.2 var(--ifinsta-guest-font-display);
    --ifinsta-guest-h2: 600 1.5rem/1.3 var(--ifinsta-guest-font-sans);
    --ifinsta-guest-h3: 600 1.2143rem/1.35 var(--ifinsta-guest-font-sans);
    --ifinsta-guest-lead: 400 1.1429rem/1.5 var(--ifinsta-guest-font-sans);
    --ifinsta-guest-body: 400 1.1429rem/1.5 var(--ifinsta-guest-font-sans);
    --ifinsta-guest-meta: 400 1rem/1.5 var(--ifinsta-guest-font-sans);
    --ifinsta-guest-eyebrow: 600 0.8571rem/1.5 var(--ifinsta-guest-font-sans);

    /* layout */
    --ifinsta-guest-measure: 66rem;
    --ifinsta-guest-section-y: 0.5rem;
    --ifinsta-guest-gutter: var(--ifinsta-space-8);

    font-family: var(--ifinsta-guest-font-sans);
    font-size: 1.1429rem;
    /* 16px — matches --ifinsta-guest-body for inherited text */
    color: var(--ifinsta-guest-text);
    background: var(--ifinsta-guest-bg);
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

@media (min-width: 640px) {
    .ifinsta-guest-page {
        --ifinsta-guest-display: 300 3.4286rem/1.2 var(--ifinsta-guest-font-display);
        --ifinsta-guest-h1: 400 2.5714rem/1.2 var(--ifinsta-guest-font-display);
        --ifinsta-guest-h2: 600 2rem/1.3 var(--ifinsta-guest-font-sans);
        --ifinsta-guest-h3: 600 1.2857rem/1.35 var(--ifinsta-guest-font-sans);
        --ifinsta-guest-lead: 400 1.4286rem/1.5 var(--ifinsta-guest-font-sans);
    }
}

@media (min-width: 1024px) {
    .ifinsta-guest-page {
        --ifinsta-guest-display: 300 4.2857rem/1.2 var(--ifinsta-guest-font-display);
        --ifinsta-guest-h1: 400 3.4286rem/1.2 var(--ifinsta-guest-font-display);
        --ifinsta-guest-section-y: 1.5rem;
    }
}

@media (min-width: 1280px) {
    .ifinsta-guest-page {
        --ifinsta-guest-display: 300 5.1429rem/1.2 var(--ifinsta-guest-font-display);
    }
}

/* ==========================================================================
   GUEST SYSTEM — layout primitives
   ========================================================================== */
.ifinsta-guest-shell {
    width: min(var(--ifinsta-guest-max-width), calc(100% - var(--ifinsta-guest-gutter)));
    margin-inline: auto;
}

/* Reading column for prose-heavy pages (legal, support, contact). */
.ifinsta-guest-prose {
    width: min(var(--ifinsta-guest-measure), calc(100% - var(--ifinsta-guest-gutter)));
    margin-inline: auto;
    font: var(--ifinsta-guest-body);
    color: var(--ifinsta-guest-text-secondary);
}

.ifinsta-guest-prose h2 {
    margin: var(--ifinsta-space-10) 0 var(--ifinsta-space-3);
    font: var(--ifinsta-guest-h2);
    color: var(--ifinsta-guest-text);
}

.ifinsta-guest-prose h3 {
    margin: var(--ifinsta-space-6) 0 var(--ifinsta-space-2);
    font: var(--ifinsta-guest-h3);
    color: var(--ifinsta-guest-text);
}

.ifinsta-guest-prose p,
.ifinsta-guest-prose li {
    font: var(--ifinsta-guest-body);
}

.ifinsta-guest-rule {
    border: 0;
    border-top: 1px solid var(--ifinsta-border);
    margin: 0;
}

/* ==========================================================================
   GUEST SYSTEM — page header (from .ifinsta-dev-subhero, without the gradient)
   ========================================================================== */
.ifinsta-guest-hero {
    padding-block: var(--ifinsta-guest-section-y);
}

.ifinsta-guest-hero__eyebrow,
.ifinsta-guest-eyebrow {
    display: block;
    margin-bottom: var(--ifinsta-space-4);
    font: var(--ifinsta-guest-eyebrow);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ifinsta-primary);
}

.ifinsta-guest-hero__title {
    margin: 0;
    max-width: 20ch;
    font: var(--ifinsta-guest-display);
    color: var(--ifinsta-guest-text);
}

.ifinsta-guest-hero__lede {
    margin: var(--ifinsta-space-5) 0 0;
    max-width: 52ch;
    font: var(--ifinsta-guest-lead);
    color: var(--ifinsta-guest-text-secondary);
}

.ifinsta-guest-hero__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--ifinsta-space-3);
    margin-top: var(--ifinsta-space-8);
}

/* ==========================================================================
   GUEST SYSTEM — stat cluster (from .ifinsta-dev-project__stats)
   ========================================================================== */
.ifinsta-guest-stats {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ifinsta-space-10);
}

.ifinsta-guest-stat__value {
    display: block;
    font: var(--ifinsta-guest-h1);
    color: var(--ifinsta-guest-text);
}

.ifinsta-guest-stat__label {
    display: block;
    margin-top: var(--ifinsta-space-1);
    font: var(--ifinsta-guest-meta);
    color: var(--ifinsta-guest-text-muted);
}

/* ==========================================================================
   GUEST SYSTEM — filter pills (from .ifinsta-dev-filters)
   ========================================================================== */
.ifinsta-guest-pills {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ifinsta-space-2);
}

.ifinsta-guest-pills__item {
    display: inline-flex;
    align-items: center;
    gap: var(--ifinsta-space-2);
    min-height: 2.25rem;
    padding-inline: var(--ifinsta-space-4);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-full);
    background: transparent;
    color: var(--ifinsta-guest-text-secondary);
    font: var(--ifinsta-guest-meta);
    text-decoration: none;
    transition: border-color var(--ifinsta-guest-transition-fast), color var(--ifinsta-guest-transition-fast);
}

.ifinsta-guest-pills__item:hover {
    border-color: var(--ifinsta-primary);
    color: var(--ifinsta-primary);
}

.ifinsta-guest-pills__item--active {
    border-color: var(--ifinsta-primary);
    color: var(--ifinsta-primary);
}

/* ==========================================================================
   GUEST MEGA MENU
   A full-bleed panel under the header, grouped by the job a merchant is doing.
   White canvas with hairline rules rather than a tinted slab, so it reads as
   part of the page instead of an overlay.
   ========================================================================== */
.ifinsta-guest-header__menu {
    display: flex;
    align-items: center;
}

.ifinsta-guest-header__link--trigger {
    gap: var(--ifinsta-space-1);
    border: 0;
    background: none;
    cursor: pointer;
    font: var(--ifinsta-guest-header-font);
}

.ifinsta-guest-header__chevron {
    transition: transform var(--ifinsta-guest-transition-fast);
}

.ifinsta-guest-header__link--trigger[aria-expanded="true"] {
    color: var(--ifinsta-guest-accent);
}

.ifinsta-guest-header__link--trigger[aria-expanded="true"] .ifinsta-guest-header__chevron {
    transform: rotate(180deg);
}

.ifinsta-guest-megamenu {
    position: fixed;
    top: var(--ifinsta-guest-header-height);
    left: 0;
    right: 0;
    z-index: var(--ifinsta-z-fixed, 300);
    background: var(--ifinsta-bg);
    border-bottom: 1px solid var(--ifinsta-border);
}

.ifinsta-guest-megamenu[hidden] {
    display: none;
}

.ifinsta-guest-megamenu__inner {
    width: min(var(--ifinsta-guest-max-width), calc(100% - var(--ifinsta-guest-gutter)));
    margin-inline: auto;
    padding-block: var(--ifinsta-space-10);
}

.ifinsta-guest-megamenu__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: var(--ifinsta-space-10);
}

.ifinsta-guest-megamenu__title {
    margin: 0 0 var(--ifinsta-space-4);
    padding-bottom: var(--ifinsta-space-3);
    border-bottom: 1px solid var(--ifinsta-border);
    font: var(--ifinsta-guest-eyebrow);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ifinsta-primary);
}

.ifinsta-guest-megamenu__list {
    display: grid;
    gap: var(--ifinsta-space-4);
    margin: 0 0 var(--ifinsta-space-4);
    padding: 0;
    list-style: none;
}

.ifinsta-guest-megamenu__item {
    display: grid;
    grid-template-columns: var(--ifinsta-icon-xl) minmax(0, 1fr);
    column-gap: var(--ifinsta-space-4);
    row-gap: var(--ifinsta-space-1);
    text-decoration: none;
}

.ifinsta-guest-megamenu__icon {
    grid-row: 1 / span 2;
    align-self: start;
    color: var(--ifinsta-guest-text);
    font-size: var(--ifinsta-icon-xl);
}

.ifinsta-guest-megamenu__label {
    font: var(--ifinsta-guest-meta);
    font-weight: var(--ifinsta-font-semibold);
    color: var(--ifinsta-guest-text);
}

.ifinsta-guest-megamenu__tagline {
    font: var(--ifinsta-guest-meta);
    color: var(--ifinsta-guest-text-muted);
}

.ifinsta-guest-megamenu__item:hover .ifinsta-guest-megamenu__label {
    color: var(--ifinsta-primary);
}

.ifinsta-guest-megamenu__overview {
    font: var(--ifinsta-guest-meta);
    font-weight: var(--ifinsta-font-semibold);
    color: var(--ifinsta-primary);
    text-decoration: none;
}

/* Cross-sell row, mirroring the reference's "See all products | Try a demo". */
.ifinsta-guest-megamenu__utility {
    border-top: 1px solid var(--ifinsta-border);
}

.ifinsta-guest-megamenu__utility-inner {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ifinsta-space-8);
    width: min(var(--ifinsta-guest-max-width), calc(100% - var(--ifinsta-guest-gutter)));
    margin-inline: auto;
    padding-block: var(--ifinsta-space-4);
}

.ifinsta-guest-megamenu__utility-inner a {
    font: var(--ifinsta-guest-meta);
    color: var(--ifinsta-guest-text-secondary);
    text-decoration: none;
}

.ifinsta-guest-megamenu__utility-inner a:hover {
    color: var(--ifinsta-primary);
}

/* Mobile menu groups — collapsed <details> accordions */
.ifinsta-guest-mobile-menu__group {
    border-bottom: 1px solid var(--ifinsta-border);
}

.ifinsta-guest-mobile-menu__group-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--ifinsta-space-4) var(--ifinsta-space-6);
    font: var(--ifinsta-guest-eyebrow);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ifinsta-primary);
    cursor: pointer;
    list-style: none;
}

.ifinsta-guest-mobile-menu__group-title::-webkit-details-marker {
    display: none;
}

/* Chevron, rotated when the group is open. */
.ifinsta-guest-mobile-menu__group-title::after {
    content: "";
    width: 0.5rem;
    height: 0.5rem;
    border-right: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    transform: rotate(45deg) translate(-0.125rem, -0.125rem);
    transition: transform var(--ifinsta-guest-transition-fast);
}

.ifinsta-guest-mobile-menu__group[open] .ifinsta-guest-mobile-menu__group-title::after {
    transform: rotate(-135deg) translate(-0.125rem, -0.125rem);
}

.ifinsta-guest-mobile-menu__link--sub {
    padding-block: var(--ifinsta-space-2);
    font: var(--ifinsta-guest-meta);
}

/* ==========================================================================
   GUEST SYSTEM — tabs
   An underlined tab bar: a full-width hairline with the active tab riding on
   top of it. No fills, so it reads as structure rather than as a control.
   Tabs are anchors, so the set works without JavaScript.
   ========================================================================== */
.ifinsta-guest-tabs__list {
    display: flex;
    gap: var(--ifinsta-space-8);
    border-bottom: 1px solid var(--ifinsta-border);
    overflow-x: auto;
    scrollbar-width: none;
}

.ifinsta-guest-tabs__list::-webkit-scrollbar {
    display: none;
}

.ifinsta-guest-tabs__tab {
    display: flex;
    flex-direction: column;
    gap: var(--ifinsta-space-1);
    flex: 0 0 auto;
    padding: var(--ifinsta-space-4) 0;
    /* Sits on the list's hairline so the active rule replaces it. */
    margin-bottom: -1px;
    border-bottom: 2px solid transparent;
    color: var(--ifinsta-guest-text-muted);
    text-decoration: none;
    transition: color var(--ifinsta-guest-transition-fast), border-color var(--ifinsta-guest-transition-fast);
}

.ifinsta-guest-tabs__tab:hover {
    color: var(--ifinsta-guest-text);
    border-bottom-color: var(--ifinsta-border);
}

.ifinsta-guest-tabs__tab--active {
    color: var(--ifinsta-guest-text);
    border-bottom-color: var(--ifinsta-primary);
}

.ifinsta-guest-tabs__label {
    font: var(--ifinsta-guest-h3);
}

.ifinsta-guest-tabs__kind {
    font: var(--ifinsta-guest-meta);
    color: var(--ifinsta-guest-text-muted);
}

/* Marks the tab matching the visitor's own OS. */
.ifinsta-guest-tabs__here {
    align-self: flex-start;
    margin-top: var(--ifinsta-space-1);
    padding: 0 var(--ifinsta-space-2);
    border: 1px solid var(--ifinsta-primary);
    border-radius: var(--ifinsta-radius-full);
    font: var(--ifinsta-guest-eyebrow);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ifinsta-primary);
}

@media (max-width: 640px) {
    .ifinsta-guest-tabs__list {
        gap: var(--ifinsta-space-6);
    }
}

/* ==========================================================================
   HEADER - compact public chrome
   ========================================================================== */
.ifinsta-guest-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: var(--ifinsta-guest-header-height);
    background: var(--ifinsta-bg);
    border-bottom: 1px solid var(--ifinsta-border);
    z-index: var(--ifinsta-z-fixed, 300);
    transition: background var(--ifinsta-duration-fast) var(--ifinsta-ease),
        box-shadow var(--ifinsta-duration-fast) var(--ifinsta-ease);
}

/* Scrolled state — driven by the JS HeaderScroll class toggle.
   Uses tokenized values so dark mode inherits the correct surface. */
.ifinsta-guest-header.is-scrolled {
    background: var(--ifinsta-topbar-bg);
    box-shadow: var(--ifinsta-topbar-shadow);
}

.ifinsta-guest-header__container {
    width: min(var(--ifinsta-guest-max-width), calc(100% - var(--ifinsta-space-8)));
    margin: 0 auto;
    padding-inline: 0;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--ifinsta-space-4);
}

.ifinsta-guest-header__brand {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    min-width: max-content;
}

.ifinsta-guest-header__brand svg,
.ifinsta-guest-header__brand img {
    height: var(--ifinsta-space-6);
    width: auto;
}

/* Navigation */
/* Nav sits directly after the brand and runs left, leaving the right side to
   the sign-in actions — the reference's layout. Centring it made six links
   float in the middle with dead space on both sides. */
.ifinsta-guest-header__nav {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex: 1 1 auto;
    gap: var(--ifinsta-space-8);
    margin-left: var(--ifinsta-space-10);
    min-width: 0;
}

.ifinsta-guest-header__link {
    display: inline-flex;
    align-items: center;
    gap: var(--ifinsta-space-1);
    min-height: 2rem;
    padding: var(--ifinsta-space-1) 0;
    font: var(--ifinsta-guest-header-font);
    color: var(--ifinsta-guest-text-secondary);
    border-bottom: 1px solid transparent;
    border-radius: 0;
    letter-spacing: 0;
    transition: color var(--ifinsta-guest-transition-fast), border-color var(--ifinsta-guest-transition-fast);
    white-space: nowrap;
}

.ifinsta-guest-header__link:hover {
    color: var(--ifinsta-guest-text);
    background: transparent;
}

.ifinsta-guest-header__link-icon {
    flex-shrink: 0;
    opacity: 0.82;
}

.ifinsta-guest-header__link--discover {
    color: var(--ifinsta-primary-700);
}

.ifinsta-guest-header__link--discover:hover {
    background: transparent;
}

.ifinsta-guest-header__link--active {
    color: var(--ifinsta-guest-accent);
    font-weight: 600;
    border-bottom-color: currentColor;
}

/* Actions */
.ifinsta-guest-header__actions {
    display: flex;
    align-items: center;
    gap: var(--ifinsta-space-2);
    flex-shrink: 0;
}

.ifinsta-guest-header__demo,
.ifinsta-guest-header__login,
.ifinsta-guest-header__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.25rem;
    padding: 0 var(--ifinsta-space-4);
    border-radius: var(--ifinsta-radius-sm);
    font: var(--ifinsta-guest-meta);
    font-weight: var(--ifinsta-font-semibold);
    letter-spacing: 0;
    text-decoration: none;
    white-space: nowrap;
}

.ifinsta-guest-header__demo {
    border: 1px solid transparent;
    background: transparent;
    color: var(--ifinsta-text-secondary);
    transition: color var(--ifinsta-guest-transition-fast), border-color var(--ifinsta-guest-transition-fast);
}

.ifinsta-guest-header__demo:hover {
    border-color: var(--ifinsta-border);
    color: var(--ifinsta-text);
}

.ifinsta-guest-header__login {
    border: 1px solid var(--ifinsta-primary);
    background: transparent;
    color: var(--ifinsta-primary);
    transition: background var(--ifinsta-guest-transition-fast), border-color var(--ifinsta-guest-transition-fast);
}

.ifinsta-guest-header__login:hover {
    border-color: var(--ifinsta-primary-hover);
    background: var(--ifinsta-primary-alpha-08);
    color: var(--ifinsta-primary-hover);
}

.ifinsta-guest-header__cta {
    border: 1px solid var(--ifinsta-primary);
    color: var(--ifinsta-white);
    background: var(--ifinsta-primary);
    transition: background var(--ifinsta-guest-transition-fast), border-color var(--ifinsta-guest-transition-fast);
}

.ifinsta-guest-header__cta:hover {
    border-color: var(--ifinsta-primary-hover);
    color: var(--ifinsta-white);
    background: var(--ifinsta-primary-hover);
}

/* Mobile Toggle */
.ifinsta-guest-header__menu-toggle {
    display: none;
    padding: var(--ifinsta-space-2);
    background: none;
    border: none;
    cursor: pointer;
    color: var(--ifinsta-guest-text);
}

/* ==========================================================================
   MOBILE MENU
   ========================================================================== */
.ifinsta-guest-mobile-menu {
    position: fixed;
    inset: 0;
    z-index: var(--ifinsta-z-sidebar, 400);
    visibility: hidden;
    opacity: 0;
    /* The closed panel sits at translateX(100%), one viewport to the right.
       Without this it widens the document and every guest page scrolls
       horizontally. */
    overflow: hidden;
    transition: all var(--ifinsta-guest-transition-base);
}

.ifinsta-guest-mobile-menu[data-open="true"] {
    visibility: visible;
    opacity: 1;
}

.ifinsta-guest-mobile-menu__overlay {
    position: absolute;
    inset: 0;
    background: var(--ifinsta-black-alpha-40);
}

.ifinsta-guest-mobile-menu__panel {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    height: 100vh;
    height: 100dvh;
    max-height: 100%;
    width: 100%;
    max-width: var(--ifinsta-space-95);
    overflow: hidden;
    background: var(--ifinsta-guest-bg);
    border-left: 1px solid var(--ifinsta-border);
    transform: translateX(100%);
    transition: transform var(--ifinsta-guest-transition-base);
    display: flex;
    flex-direction: column;
}

.ifinsta-guest-mobile-menu[data-open="true"] .ifinsta-guest-mobile-menu__panel {
    transform: translateX(0);
}

.ifinsta-guest-mobile-menu__header {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: space-between;
    padding: var(--ifinsta-space-6);
    border-bottom: 1px solid var(--ifinsta-border);
}

.ifinsta-guest-mobile-menu__title {
    font: var(--ifinsta-text-overline);
    color: var(--ifinsta-guest-text-muted);
    text-transform: uppercase;
    letter-spacing: 0;
}

.ifinsta-guest-mobile-menu__close {
    padding: 0.5rem;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--ifinsta-guest-text-secondary);
}

.ifinsta-guest-mobile-menu__nav {
    min-height: 0;
    flex: 1 1 auto;
    padding: var(--ifinsta-space-4) 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    scrollbar-color: var(--ifinsta-border) transparent;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
}

.ifinsta-guest-mobile-menu__nav::-webkit-scrollbar {
    width: var(--ifinsta-space-1);
}

.ifinsta-guest-mobile-menu__nav::-webkit-scrollbar-thumb {
    border-radius: var(--ifinsta-radius-full);
    background: var(--ifinsta-border);
}

.ifinsta-guest-mobile-menu__link {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: var(--ifinsta-space-4) var(--ifinsta-space-6);
    font: var(--ifinsta-text-body-lg);
    letter-spacing: 0;
    color: var(--ifinsta-guest-text);
    border-left: var(--ifinsta-space-0-5) solid transparent;
    transition: all var(--ifinsta-guest-transition-fast);
}

.ifinsta-guest-mobile-menu__link:hover {
    background: var(--ifinsta-guest-bg-subtle);
}

.ifinsta-guest-mobile-menu__link--active {
    color: var(--ifinsta-guest-accent);
    background: var(--ifinsta-primary-alpha-08);
    border-left-color: var(--ifinsta-guest-accent);
}

.ifinsta-guest-mobile-menu__footer {
    flex: 0 0 auto;
    padding: var(--ifinsta-space-6);
    padding-bottom: max(var(--ifinsta-space-6), env(safe-area-inset-bottom));
    border-top: 1px solid var(--ifinsta-border);
    display: flex;
    flex-direction: column;
    gap: var(--ifinsta-space-3);
}

/* ==========================================================================
   FOOTER - compact public chrome
   ========================================================================== */
.ifinsta-guest-footer {
    background: var(--ifinsta-bg-secondary);
    color: var(--ifinsta-text);
    padding: var(--ifinsta-space-6) 0;
    border-top: 1px solid var(--ifinsta-border);
}

.ifinsta-guest-footer__container {
    width: min(var(--ifinsta-guest-max-width), calc(100% - var(--ifinsta-space-8)));
    margin: 0 auto;
    padding-inline: 0;
}

.ifinsta-guest-footer__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.8fr) repeat(2, minmax(8rem, 1fr));
    gap: var(--ifinsta-space-10);
    margin-bottom: var(--ifinsta-space-6);
}

.ifinsta-guest-footer__brand {
    max-width: var(--ifinsta-space-70);
}

.ifinsta-guest-footer__logo {
    height: var(--ifinsta-space-5);
    width: auto;
    margin-bottom: var(--ifinsta-space-3);
}

.ifinsta-guest-footer__tagline {
    font-size: var(--ifinsta-text-xs);
    color: var(--ifinsta-text-secondary);
    line-height: 1.6;
    margin-bottom: var(--ifinsta-space-4);
}

.ifinsta-guest-footer__social {
    display: flex;
    gap: var(--ifinsta-space-3);
}

.ifinsta-guest-footer__badges {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ifinsta-space-2);
    margin-bottom: var(--ifinsta-space-4);
}

.ifinsta-guest-footer__badges span {
    display: inline-flex;
    align-items: center;
    min-height: 1.5rem;
    padding: 0 var(--ifinsta-space-2);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-sm);
    color: var(--ifinsta-text-secondary);
    font: var(--ifinsta-text-code-sm);
}

.ifinsta-guest-footer__social-link {
    width: var(--ifinsta-space-8);
    height: var(--ifinsta-space-8);
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--ifinsta-bg);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-sm);
    color: var(--ifinsta-text-secondary);
    transition: color var(--ifinsta-guest-transition-fast), border-color var(--ifinsta-guest-transition-fast);
}

.ifinsta-guest-footer__social-link:hover {
    background: var(--ifinsta-bg);
    border-color: var(--ifinsta-primary);
    color: var(--ifinsta-primary);
}

.ifinsta-guest-footer__column {
    padding-top: var(--ifinsta-space-2);
}

.ifinsta-guest-footer__heading {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--ifinsta-text);
    text-transform: uppercase;
    letter-spacing: 0;
    margin-bottom: var(--ifinsta-space-3);
}

.ifinsta-guest-footer__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--ifinsta-space-2);
}

.ifinsta-guest-footer__list a {
    font-size: var(--ifinsta-text-xs);
    color: var(--ifinsta-text-secondary);
    transition: color var(--ifinsta-guest-transition-fast);
}

.ifinsta-guest-footer__list a:hover {
    color: var(--ifinsta-primary);
}

.ifinsta-guest-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: var(--ifinsta-space-4);
    border-top: 1px solid var(--ifinsta-border);
}

.ifinsta-guest-footer__copyright {
    margin: 0;
    font-size: var(--ifinsta-text-xs);
    color: var(--ifinsta-text-secondary);
}

.ifinsta-guest-footer__status {
    display: flex;
    align-items: center;
    gap: var(--ifinsta-space-2);
    font-size: var(--ifinsta-text-xs);
    color: var(--ifinsta-text);
}

.ifinsta-guest-footer__status-indicator {
    width: var(--ifinsta-space-2);
    height: var(--ifinsta-space-2);
    background: var(--ifinsta-success);
    border-radius: var(--ifinsta-radius-full);
}

/* ==========================================================================
   MAIN CONTENT
   ========================================================================== */
.ifinsta-guest-main {
    padding-top: var(--ifinsta-guest-header-height);
}

.ifinsta-guest-container {
    width: min(var(--ifinsta-guest-max-width), calc(100% - var(--ifinsta-guest-gutter)));
    margin-inline: auto;
}

/* ==========================================================================
   BUTTONS
   One solid primary per view; everything else is a hairline or a plain link.
   ========================================================================== */
.ifinsta-guest-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--ifinsta-space-2);
    min-height: 3.25rem;
    padding-inline: var(--ifinsta-space-8);
    border: 1px solid transparent;
    border-radius: var(--ifinsta-radius-md);
    font: var(--ifinsta-guest-body);
    font-weight: var(--ifinsta-font-semibold);
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition: background var(--ifinsta-guest-transition-fast), border-color var(--ifinsta-guest-transition-fast), color var(--ifinsta-guest-transition-fast);
}

.ifinsta-guest-btn--primary {
    color: var(--ifinsta-white);
    background: var(--ifinsta-primary);
    border-color: var(--ifinsta-primary);
}

.ifinsta-guest-btn--primary:hover {
    color: var(--ifinsta-white);
    background: var(--ifinsta-primary-hover);
    border-color: var(--ifinsta-primary-hover);
}

.ifinsta-guest-btn--secondary {
    color: var(--ifinsta-guest-text);
    background: transparent;
    border-color: var(--ifinsta-border);
}

.ifinsta-guest-btn--secondary:hover {
    border-color: var(--ifinsta-guest-text);
}

/* Text-only tertiary action. */
.ifinsta-guest-btn--link {
    min-height: 0;
    padding-inline: 0;
    border-color: transparent;
    background: transparent;
    color: var(--ifinsta-primary);
}

.ifinsta-guest-btn--link:hover {
    color: var(--ifinsta-primary-hover);
    text-decoration: underline;
}

.ifinsta-guest-btn--lg {
    min-height: 3.75rem;
    padding-inline: var(--ifinsta-space-10);
}

/* ==========================================================================
   CARDS — hairline only, no fill, no shadow (from .ifinsta-dev-project)
   ========================================================================== */
.ifinsta-guest-card {
    background: transparent;
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-lg);
    padding: var(--ifinsta-space-6);
    transition: border-color var(--ifinsta-guest-transition-fast);
}

.ifinsta-guest-card:hover {
    border-color: var(--ifinsta-primary);
}

.ifinsta-guest-card__title {
    margin: 0 0 var(--ifinsta-space-2);
    font: var(--ifinsta-guest-h3);
    color: var(--ifinsta-guest-text);
}

.ifinsta-guest-card__text {
    margin: 0;
    font: var(--ifinsta-guest-meta);
    color: var(--ifinsta-guest-text-secondary);
}

/* ==========================================================================
   SECTIONS
   ========================================================================== */
.ifinsta-guest-section {
    padding-block: var(--ifinsta-guest-section-y);
}

.ifinsta-guest-section--divided {
    border-top: 1px solid var(--ifinsta-border);
}

.ifinsta-guest-section__title {
    margin: 0 0 var(--ifinsta-space-4);
    max-width: 24ch;
    font: var(--ifinsta-guest-h1);
    color: var(--ifinsta-guest-text);
}

.ifinsta-guest-section__lead {
    margin: 0;
    max-width: 56ch;
    font: var(--ifinsta-guest-lead);
    color: var(--ifinsta-guest-text-secondary);
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1280px) {
    .ifinsta-guest-header__container {
        width: min(var(--ifinsta-guest-max-width), calc(100% - var(--ifinsta-space-6)));
    }

    .ifinsta-guest-header__nav {
        gap: var(--ifinsta-space-5);
        margin-left: var(--ifinsta-space-6);
    }

    .ifinsta-guest-header__demo,
    .ifinsta-guest-header__login,
    .ifinsta-guest-header__cta {
        font: 700 0.8571rem/1 var(--ifinsta-font-sans);
    }

    .ifinsta-guest-header__demo,
    .ifinsta-guest-header__login,
    .ifinsta-guest-header__cta {
        padding-inline: var(--ifinsta-space-3);
    }
}

@media (max-width: 1120px) {
    .ifinsta-guest-header__nav {
        display: none;
    }

    .ifinsta-guest-header__menu-toggle {
        display: flex;
    }

    .ifinsta-guest-footer__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--ifinsta-space-12);
    }

    .ifinsta-guest-footer__brand {
        grid-column: 1 / -1;
        max-width: 100%;
    }
}

@media (max-width: 640px) {
    :root {
        --ifinsta-guest-content-padding: 1.25rem;
    }

    .ifinsta-guest-header__actions {
        display: none;
    }

    .ifinsta-guest-header__container,
    .ifinsta-guest-footer__container,
    .ifinsta-guest-container {
        width: min(100% - var(--ifinsta-space-4), var(--ifinsta-guest-max-width));
        padding-inline: 0;
    }

    .ifinsta-guest-footer__grid {
        grid-template-columns: 1fr;
        gap: var(--ifinsta-space-8);
    }

    .ifinsta-guest-footer__bottom {
        flex-direction: column;
        gap: var(--ifinsta-space-4);
        text-align: center;
    }

    .ifinsta-guest-section {
        padding-block: var(--ifinsta-guest-section-y);
    }
}


/**
 * IFINSTA HERO COMPONENT
 * Standardized hero sections for guest/marketing pages
 *
 * Usage:
 *   <section class="ifinsta-hero ifinsta-hero--marketing">
 *     <div class="ifinsta-hero__container">
 *       <div class="ifinsta-hero__content">
 *         <h1 class="ifinsta-hero__title">Title</h1>
 *         <p class="ifinsta-hero__subtitle">Subtitle</p>
 *       </div>
 *     </div>
 *   </section>
 */

/* ==========================================================================
   BASE HERO
   ========================================================================== */


/* ============================================================================
   3. HERO COMPONENT
   was css/components/hero.css
   ============================================================================ */
.ifinsta-hero {
    position: relative;
    overflow: hidden;
}

.ifinsta-hero__container {
    width: min(var(--ifinsta-guest-max-width), calc(100% - var(--ifinsta-guest-gutter)));
    margin-inline: auto;
}

.ifinsta-hero__content {
    position: relative;
    z-index: var(--ifinsta-z-base, 1);
}

.ifinsta-hero__title {
    margin: 0;
    max-width: 20ch;
    font: var(--ifinsta-guest-display);
    color: var(--ifinsta-guest-text);
}

.ifinsta-hero__subtitle {
    margin: var(--ifinsta-space-5) 0 0;
    max-width: 52ch;
    font: var(--ifinsta-guest-lead);
    color: var(--ifinsta-guest-text-secondary);
}

.ifinsta-hero__meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* ==========================================================================
   VARIANT: MARKETING (Large, bold, for guest pages)
   ========================================================================== */

.ifinsta-hero--marketing {
    padding-block: var(--ifinsta-guest-section-y);
    background: transparent;
    border-bottom: 1px solid var(--ifinsta-border);
}

.ifinsta-hero--marketing .ifinsta-hero__content {
    max-width: 920px;
    margin: 0 auto;
}

/* Marketing hero with stats */
.ifinsta-hero__stats {
    display: flex;
    justify-content: center;
    gap: 3rem;
    margin-top: 2.5rem;
}

.ifinsta-hero__stat {
    text-align: center;
}

.ifinsta-hero__stat-value {
    font-size: 2rem;
    font-weight: 700;
    color: var(--ifinsta-guest-text);
    letter-spacing: -0.02em;
}

.ifinsta-hero__stat-label {
    font-size: 0.875rem;
    color: var(--ifinsta-guest-text-muted);
    margin-top: 0.25rem;
}

/* ==========================================================================
   VARIANT: DARK (For CTA sections)
   ========================================================================== */

.ifinsta-hero--dark {
    padding: 5rem 0;
    background: var(--ifinsta-text);
    text-align: center;
}

.ifinsta-hero--dark .ifinsta-hero__container {
    position: relative;
    z-index: var(--ifinsta-z-base, 1);
}

.ifinsta-hero--dark .ifinsta-hero__content {
    max-width: 600px;
    margin: 0 auto;
}

.ifinsta-hero--dark .ifinsta-hero__title {
    font-size: 2.25rem;
    color: var(--ifinsta-bg);
    margin-bottom: 1rem;
}

.ifinsta-hero--dark .ifinsta-hero__subtitle {
    font-size: 1.125rem;
    color: var(--ifinsta-secondary-400);
    margin-bottom: 2rem;
}

/* Glow effect for dark hero */
.ifinsta-hero--dark::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(59, 130, 246, 0.08);
    pointer-events: none;
}

/* ==========================================================================
   EYEBROW LABEL
   ========================================================================== */

.ifinsta-hero__eyebrow {
    display: block;
    margin-bottom: var(--ifinsta-space-4);
    font: var(--ifinsta-guest-eyebrow);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ifinsta-primary);
}

.ifinsta-hero--dark .ifinsta-hero__eyebrow {
    background: rgba(59, 130, 246, 0.15);
    border-color: rgba(59, 130, 246, 0.25);
    color: var(--ifinsta-primary-400);
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */

@media (max-width: 768px) {
    .ifinsta-hero--marketing {
        padding: 1.5rem 0 2rem;
    }

    .ifinsta-hero__stats {
        gap: 2rem;
    }

    .ifinsta-hero__stat-value {
        font-size: 1.5rem;
    }

    .ifinsta-hero--dark {
        padding: 4rem 0;
    }

    .ifinsta-hero--dark .ifinsta-hero__title {
        font-size: 1.75rem;
    }
}

@media (max-width: 480px) {
    .ifinsta-hero__container {
        padding: 0 1.25rem;
    }

}


/**
 * Welcome page redesign
 * Token-based public page, shared guest header/footer, no box shadows.
 */


/* ============================================================================
   4. WELCOME
   /  and  /welcome/
   ============================================================================ */
.welcome-page {
    --welcome-font-hero: var(--ifinsta-guest-display);
    --welcome-font-section: var(--ifinsta-guest-h1);
    --welcome-font-lead: var(--ifinsta-guest-lead);
    --welcome-font-card-title: var(--ifinsta-guest-h3);
    --welcome-font-card-copy: var(--ifinsta-guest-meta);
    --welcome-font-button: var(--ifinsta-guest-body);
    --welcome-font-stat: var(--ifinsta-guest-h2);
    --welcome-font-step: var(--ifinsta-guest-h1);
    color: var(--ifinsta-guest-text);
    background: transparent;
}

.welcome-container {
    width: min(var(--ifinsta-guest-max-width, 80rem), calc(100% - var(--ifinsta-space-8)));
    margin: 0 auto;
}

/* qoder-style: hero is a rounded, inset panel with a diagonal hatch
   texture; the dark POS window bleeds off the panel's right edge. */
.welcome-hero {
    position: relative;
    padding-block: var(--ifinsta-guest-section-y);
    background: transparent;
    overflow-x: clip;
}

/* ==========================================================================
   COSMOS HERO
   The page's single dark anchor. Everything below it stays on white, so this
   is the one place colour is spent — which is why the rest of the contrast
   budget stays hairlines.
   ========================================================================== */
.welcome-hero--cosmos {
    --cosmos-ink: var(--ifinsta-guest-cosmos-bg);
    --cosmos-star: rgba(255, 255, 255, 0.72);
    --cosmos-warm: var(--ifinsta-warning);
    --cosmos-cool: var(--ifinsta-primary);
    --cosmos-ring: rgba(255, 255, 255, 0.14);

    padding-block: calc(var(--ifinsta-guest-section-y) * 0.9);
    background:
        radial-gradient(60rem 40rem at 78% 42%, rgba(76, 141, 255, 0.22), transparent 62%),
        radial-gradient(38rem 30rem at 72% 55%, rgba(255, 179, 92, 0.18), transparent 60%),
        var(--cosmos-ink);
    color: var(--ifinsta-white);
}

.welcome-hero--cosmos .welcome-hero__eyebrow {
    display: inline-block;
    margin-bottom: var(--ifinsta-space-4);
    font: var(--ifinsta-guest-eyebrow);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--cosmos-warm);
}

.welcome-hero--cosmos .welcome-hero__copy h1 {
    background: linear-gradient(135deg, var(--ifinsta-white) 0%, rgba(255, 255, 255, 0.6) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    color: var(--ifinsta-white);
    /* fallback */
    background-clip: text;
}

.welcome-hero--cosmos .welcome-hero__copy p {
    color: rgba(255, 255, 255, 0.74);
}

.welcome-hero--cosmos .welcome-hero__trust {
    color: rgba(255, 255, 255, 0.56);
}

.welcome-hero--cosmos .welcome-btn {
    border-color: rgba(255, 255, 255, 0.28);
    color: var(--ifinsta-white);
    background: transparent;
    transition: all 0.2s ease-in-out;
}

.welcome-hero--cosmos .welcome-btn:hover {
    border-color: var(--ifinsta-white);
    background: rgba(255, 255, 255, 0.05);
    box-shadow: 0 0 12px rgba(255, 255, 255, 0.1);
}

.welcome-hero--cosmos .welcome-btn--primary {
    background: var(--ifinsta-white);
    border-color: var(--ifinsta-white);
    color: var(--cosmos-ink);
    transition: all 0.2s ease-in-out;
}

.welcome-hero--cosmos .welcome-btn--primary:hover {
    background: rgba(255, 255, 255, 0.88);
    color: var(--cosmos-ink);
    box-shadow: 0 0 20px rgba(255, 255, 255, 0.3);
    transform: translateY(-1px);
}

/* --- announcement strip ------------------------------------------------- */
.welcome-announce {
    display: flex;
    align-items: center;
    gap: var(--ifinsta-space-2);
    width: fit-content;
    max-width: calc(100% - var(--ifinsta-guest-gutter));
    margin: 0 auto var(--ifinsta-space-10);
    padding: var(--ifinsta-space-2) var(--ifinsta-space-2) var(--ifinsta-space-2) var(--ifinsta-space-4);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: var(--ifinsta-radius-full);
}

.welcome-announce__link {
    display: inline-flex;
    align-items: center;
    gap: var(--ifinsta-space-3);
    font: var(--ifinsta-guest-meta);
    color: rgba(255, 255, 255, 0.82);
    text-decoration: none;
}

.welcome-announce__tag {
    padding: 0 var(--ifinsta-space-2);
    border-radius: var(--ifinsta-radius-full);
    background: var(--cosmos-warm);
    color: var(--ifinsta-text-on-warning);
    font: var(--ifinsta-guest-eyebrow);
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.welcome-announce__link:hover {
    color: var(--ifinsta-white);
}

.welcome-announce__dismiss {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border: 0;
    border-radius: var(--ifinsta-radius-full);
    background: transparent;
    color: rgba(255, 255, 255, 0.5);
    cursor: pointer;
}

.welcome-announce__dismiss:hover {
    color: var(--ifinsta-white);
}

.welcome-announce__dismiss .material-symbols-outlined {
    font-size: 1.125rem;
}

/* --- orbital system ------------------------------------------------------ */
/* One diameter drives everything: each ring's inset and its nodes' orbital
   radius are derived from it, so nodes always sit exactly on their ring
   instead of drifting when the size changes. */
.welcome-orbit {
    --orbit-d: 34rem;
    --orbit-r: calc(var(--orbit-d) / 2);
    position: relative;
    display: grid;
    place-items: center;
    aspect-ratio: 1;
    width: var(--orbit-d);
    max-width: 100%;
    margin-inline: auto;
}

/* Sun. Layered radial gradients give the sphere its lit edge without an image. */
.welcome-orbit__core {
    position: relative;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 27%;
    aspect-ratio: 1;
    border-radius: 50%;
    background:
        radial-gradient(circle at 34% 30%, var(--ifinsta-surface-card) 0%, var(--cosmos-warm) 34%, var(--ifinsta-warning) 70%, var(--ifinsta-warning) 100%);
    box-shadow:
        0 0 3rem rgba(255, 179, 92, 0.45),
        0 0 8rem rgba(255, 140, 40, 0.25);
    animation: welcome-orbit-pulse 4s ease-in-out infinite alternate;
}

@keyframes welcome-orbit-pulse {
    0% {
        box-shadow: 0 0 3rem rgba(255, 179, 92, 0.45), 0 0 8rem rgba(255, 140, 40, 0.25);
        transform: scale(1);
    }

    100% {
        box-shadow: 0 0 4rem rgba(255, 179, 92, 0.6), 0 0 10rem rgba(255, 140, 40, 0.4);
        transform: scale(1.02);
    }
}

.welcome-orbit__core-mark {
    font: var(--ifinsta-guest-h2);
    font-family: var(--ifinsta-guest-font-display);
    color: var(--ifinsta-white);
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

.welcome-orbit__glow {
    position: absolute;
    inset: 12%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 179, 92, 0.16), transparent 62%);
}

.welcome-orbit__ring {
    position: absolute;
    inset: 0;
    border: 1px solid var(--cosmos-ring);
    border-radius: 50%;
    animation: welcome-orbit-spin var(--dur, 48s) linear infinite;
}

.welcome-orbit__ring--inner {
    inset: 30%;
    --dur: 26s;
}

.welcome-orbit__ring--mid {
    inset: 15%;
    --dur: 38s;
}

.welcome-orbit__ring--outer {
    inset: 0;
    --dur: 54s;
}

/* Nodes sit on the ring edge: rotate to the angle, then push out by half the
   ring's width. The inner span counter-spins so icons stay upright. */
.welcome-orbit__node {
    position: absolute;
    top: 50%;
    left: 50%;
    display: grid;
    place-items: center;
    width: 3.25rem;
    height: 3.25rem;
    margin: -1.625rem;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.3);
    background: rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, 0.45), inset 0 0 0 1px rgba(255, 255, 255, 0.1);
    transform: rotate(var(--a)) translate(0, calc(var(--ring-r, 8rem) * -1));
}

/* inset 30% -> 40% of the diameter remains; 15% -> 70%; 0 -> 100% */
.welcome-orbit__ring--inner .welcome-orbit__node {
    --ring-r: calc(var(--orbit-r) * 0.40);
}

.welcome-orbit__ring--mid .welcome-orbit__node {
    --ring-r: calc(var(--orbit-r) * 0.70);
}

.welcome-orbit__ring--outer .welcome-orbit__node {
    --ring-r: var(--orbit-r);
}

/* The icon has to undo two rotations: its node's fixed angle on the ring
   (--a) and the ring's own spin. A plain `reverse` animation only cancels the
   spin and leaves every glyph tilted by --a, so both live in one keyframe. */
.welcome-orbit__node .material-symbols-outlined {
    font-size: 1.625rem;
    color: rgba(255, 255, 255, 0.92);
    animation: welcome-orbit-upright var(--dur, 48s) linear infinite;
}

@keyframes welcome-orbit-upright {
    from {
        transform: rotate(calc(-1 * var(--a)));
    }

    to {
        transform: rotate(calc(-1 * var(--a) - 360deg));
    }
}

.welcome-orbit__ring--inner .material-symbols-outlined {
    --dur: 26s;
}

.welcome-orbit__ring--mid .material-symbols-outlined {
    --dur: 38s;
}

.welcome-orbit__ring--outer .material-symbols-outlined {
    --dur: 54s;
}

@keyframes welcome-orbit-spin {
    to {
        transform: rotate(360deg);
    }
}

/* Counter-rotation cancels out, so a still frame is still legible. */
@media (prefers-reduced-motion: reduce) {

    .welcome-orbit__ring,
    .welcome-orbit__node .material-symbols-outlined {
        animation: none;
    }

    /* animation: none drops the counter-rotation, so restore it statically. */
    .welcome-orbit__node .material-symbols-outlined {
        transform: rotate(calc(-1 * var(--a)));
    }
}

@media (max-width: 900px) {
    .welcome-orbit {
        --orbit-d: 22rem;
    }

    .welcome-orbit__node {
        width: 2.5rem;
        height: 2.5rem;
        margin: -1.25rem;
    }

    .welcome-orbit__node .material-symbols-outlined {
        font-size: 1.125rem;
    }

}


.welcome-hero>* {
    position: relative;
    z-index: 1;
}

/* The grid IS the .welcome-container here; fill the panel with a
   generous left inset and let the right column reach the panel edge. */
.welcome-hero .welcome-container {
    width: auto;
    max-width: none;
    margin: 0;
    padding-left: clamp(var(--ifinsta-space-6), 5vw, var(--ifinsta-space-16));
    padding-right: 0;
}

.welcome-hero__grid {
    display: grid;
    grid-template-columns: minmax(17rem, 0.72fr) minmax(0, 1.28fr);
    align-items: center;
    gap: clamp(1.5rem, 3vw, 3.5rem);
    min-height: 42rem;
    padding: clamp(2.5rem, 5vw, 4.5rem) 0;
}

@media (min-width: 1280px) {
    .welcome-hero__grid {
        display: flex;
        align-items: center;
        gap: clamp(1.5rem, 3vw, 3.5rem);
    }

    .welcome-hero__copy {
        flex: 0 0 40%;
        max-width: 40%;
        min-width: 20rem;
    }
}

.welcome-hero__copy h1,
.welcome-section-head h2,
.welcome-pricing h2 {
    margin: 0;
    color: var(--ifinsta-guest-text);
}



.welcome-hero__copy h1 {
    max-width: 16ch;
    font: var(--welcome-font-hero);
}

.welcome-hero__copy p {
    margin: var(--ifinsta-space-4) 0 0;
    color: var(--ifinsta-text-secondary);
    font: var(--welcome-font-lead);
}

.welcome-hero__actions,
.welcome-cta__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ifinsta-space-3);
    margin-top: var(--ifinsta-space-5);
}

.welcome-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.875rem;
    padding: 0 var(--ifinsta-space-6);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-md);
    background: var(--ifinsta-bg);
    color: var(--ifinsta-text);
    font: var(--welcome-font-button);
    text-decoration: none;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
    transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease, color 160ms ease;
}

.welcome-btn:hover {
    transform: translateY(-1px);
}

.welcome-btn--primary {
    border-color: var(--ifinsta-primary);
    background: var(--ifinsta-primary);
    color: var(--ifinsta-white);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08), 0 10px 22px -10px rgba(26, 86, 219, 0.6);
}

.welcome-btn--dark {
    border-color: var(--ifinsta-text);
    background: var(--ifinsta-text);
    color: var(--ifinsta-white);
}

.welcome-btn:hover {
    border-color: var(--ifinsta-primary);
    color: var(--ifinsta-primary);
}

.welcome-btn--primary:hover,
.welcome-btn--dark:hover {
    color: var(--ifinsta-white);
    background: var(--ifinsta-primary-hover);
}

.welcome-hero__trust {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ifinsta-space-3);
    margin: var(--ifinsta-space-4) 0 0;
    padding: 0;
    color: var(--ifinsta-text-muted);
    font: var(--ifinsta-text-caption);
    list-style: none;
}

.welcome-hero__trust li::before {
    content: "";
    display: inline-block;
    width: var(--ifinsta-space-2);
    height: var(--ifinsta-space-2);
    margin-right: var(--ifinsta-space-1);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-full);
}

.welcome-modules,
.welcome-discover,
.welcome-work,
.welcome-cta {
    padding: var(--ifinsta-space-12) 0;
}

.welcome-modules,
.welcome-work {
    background: transparent;
}

.welcome-modules .welcome-container {
    padding: var(--ifinsta-space-10);
    border-radius: var(--ifinsta-radius-xl);
    background: var(--ifinsta-guest-bg-subtle);
}

.welcome-section-head {
    max-width: 44rem;
    margin: 0 auto var(--ifinsta-space-8);
    text-align: center;
}

.welcome-section-head h2,
.welcome-pricing h2,
.welcome-cta h2 {
    font: var(--welcome-font-section);
}

.welcome-section-head p,
.welcome-pricing p {
    margin: var(--ifinsta-space-3) 0 0;
    color: var(--ifinsta-guest-text);
    font: var(--welcome-font-lead);
}

.welcome-module-grid {
    display: grid;
    grid-template-rows: repeat(2, 1fr);
    grid-auto-flow: column;
    grid-auto-columns: minmax(16rem, 1fr);
    gap: var(--ifinsta-space-5);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    padding-bottom: var(--ifinsta-space-2);
}

.welcome-module-grid::-webkit-scrollbar {
    height: 6px;
}

.welcome-module-grid::-webkit-scrollbar-thumb {
    background: var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-full);
}

.welcome-module-card {
    scroll-snap-align: start;
}

.welcome-module-card,
.welcome-work__grid article {
    display: grid;
    gap: var(--ifinsta-space-3);
    padding: var(--ifinsta-space-5);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-sm);
    background: transparent;
}

.welcome-module-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--ifinsta-icon-xl);
    height: var(--ifinsta-icon-xl);
    color: var(--ifinsta-guest-text);
    font-size: var(--ifinsta-icon-xl);
}

.welcome-module-card__illustration {
    display: block;
    inline-size: 100%;
    max-inline-size: 15rem;
    aspect-ratio: 4 / 3;
    object-fit: contain;
    object-position: center;
    justify-self: center;
}

.welcome-work__grid span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--ifinsta-icon-xl);
    height: var(--ifinsta-icon-xl);
    border-radius: var(--ifinsta-radius-full);
    background: var(--ifinsta-primary-alpha-08);
    color: var(--ifinsta-primary);
    font: var(--ifinsta-text-label);
}

.welcome-module-card h3,
.welcome-work__grid h3 {
    margin: 0;
    color: var(--ifinsta-text);
    font: var(--welcome-font-card-title);
}

.welcome-module-card p,
.welcome-work__grid p {
    margin: 0;
    color: var(--ifinsta-text-secondary);
    font: var(--welcome-font-card-copy);
}

.welcome-module-card a {
    color: var(--ifinsta-primary);
    font: var(--ifinsta-text-label);
    text-decoration: none;
}

.welcome-discover {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background-color: var(--ifinsta-bg);
    background-image:
        linear-gradient(var(--ifinsta-bg), var(--ifinsta-bg-secondary));
}

.welcome-discover::before,




.welcome-discover::after {
    background-image: linear-gradient(var(--ifinsta-bg-secondary), transparent);
    opacity: 1;
}

.welcome-discover__shell {
    padding: var(--ifinsta-space-4);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-2xl);
    background-color: var(--ifinsta-bg);
    background-image: linear-gradient(var(--ifinsta-bg), var(--ifinsta-bg-secondary));
}

.welcome-discover__intro {
    padding: var(--ifinsta-space-1);
    background-image: linear-gradient(var(--ifinsta-bg), var(--ifinsta-bg));
}

.dfilter-toolbar {
    display: flex;
    justify-content: center;
    margin-bottom: var(--ifinsta-space-4);
}

.dfilter-toolbar__pills {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--ifinsta-space-2);
}

.dfilter__chip {
    min-height: 2rem;
    padding: 0 var(--ifinsta-space-3);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-full);
    background: var(--ifinsta-bg-secondary);
    color: var(--ifinsta-text-secondary);
    font: var(--ifinsta-text-caption);
}

.dfilter__chip--active {
    border-color: var(--ifinsta-text);
    background: var(--ifinsta-text);
    color: var(--ifinsta-white);
}

.welcome-discover__products-panel {
    background-color: var(--ifinsta-bg);
    background-image: linear-gradient(var(--ifinsta-bg), var(--ifinsta-bg-secondary));
}

.welcome-discover__rail {
    position: relative;
}

.welcome-discover__rail::after {
    content: "";
    position: absolute;
    inset: auto 0 0 0;
    height: 1px;
    background-image: linear-gradient(90deg, transparent, var(--ifinsta-border), transparent);
}

.welcome-discover__products {
    display: grid;
    gap: var(--ifinsta-space-4);
    background-color: var(--ifinsta-bg);
}

.welcome-merchant {
    min-width: 0;
    padding: var(--ifinsta-space-3);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-lg);
    background: var(--ifinsta-bg);
}

.welcome-merchant__header,
.welcome-product-rail__header,
.welcome-merchant__identity,
.welcome-product-rail__heading,
.welcome-product-rail__actions {
    display: flex;
    align-items: center;
}

.welcome-merchant__header {
    justify-content: space-between;
    gap: var(--ifinsta-space-3);
    padding: 0 0 var(--ifinsta-space-3);
    border-bottom: 1px solid var(--ifinsta-border);
}

.welcome-merchant__identity {
    min-width: 0;
    gap: var(--ifinsta-space-2);
    color: var(--ifinsta-text);
    text-decoration: none;
}

.welcome-merchant__mark {
    display: grid;
    flex: 0 0 var(--ifinsta-space-8);
    width: var(--ifinsta-space-8);
    height: var(--ifinsta-space-8);
    place-items: center;
    border-radius: var(--ifinsta-radius-sm);
    background: var(--ifinsta-bg-secondary);
    color: var(--ifinsta-text);
    font: var(--ifinsta-text-label);
}

.welcome-merchant__name,
.welcome-merchant__summary {
    display: block;
}

.welcome-merchant__name {
    overflow: hidden;
    color: var(--ifinsta-text);
    font: var(--welcome-font-card-title);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.welcome-merchant__summary {
    color: var(--ifinsta-text-muted);
    font: var(--ifinsta-text-caption);
}

.welcome-merchant__store-link,
.welcome-product-rail__actions a {
    flex: 0 0 auto;
    color: var(--ifinsta-primary);
    font: var(--ifinsta-text-label);
    text-decoration: none;
}

.welcome-merchant__rails {
    display: grid;
    gap: var(--ifinsta-space-4);
    padding-top: var(--ifinsta-space-3);
}

.welcome-product-rail {
    min-width: 0;
}

.welcome-product-rail__header {
    min-height: var(--ifinsta-space-8);
    justify-content: space-between;
    gap: var(--ifinsta-space-2);
}

.welcome-product-rail__heading,
.welcome-product-rail__actions {
    gap: var(--ifinsta-space-2);
}

.welcome-product-rail__heading h4 {
    margin: 0;
    color: var(--ifinsta-text);
    font: var(--ifinsta-text-label);
}

.welcome-product-rail__heading>span {
    color: var(--ifinsta-text-muted);
    font: var(--ifinsta-text-caption);
}

.welcome-product-rail__actions button {
    display: grid;
    width: var(--ifinsta-space-8);
    height: var(--ifinsta-space-8);
    padding: 0;
    place-items: center;
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-sm);
    background: var(--ifinsta-bg);
    color: var(--ifinsta-text);
    cursor: pointer;
}

.welcome-product-rail__actions button:disabled {
    color: var(--ifinsta-text-muted);
    cursor: default;
    opacity: 0.45;
}

.welcome-product-rail__track {
    display: grid;
    grid-auto-columns: calc(var(--ifinsta-space-32) * 1.65);
    grid-auto-flow: column;
    gap: var(--ifinsta-space-2);
    padding: var(--ifinsta-space-1) 0 var(--ifinsta-space-2);
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-behavior: smooth;
    scroll-snap-type: inline proximity;
    scrollbar-color: var(--ifinsta-border) transparent;
    scrollbar-width: thin;
}

.welcome-product-rail__track:focus-visible {
    outline: 2px solid var(--ifinsta-primary);
    outline-offset: var(--ifinsta-space-1);
}

.welcome-product-rail__track::-webkit-scrollbar {
    height: var(--ifinsta-space-1);
}

.welcome-product-rail__track::-webkit-scrollbar-thumb {
    border-radius: var(--ifinsta-radius-full);
    background: var(--ifinsta-border);
}

.welcome-discover-card {
    display: grid;
    overflow: hidden;
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-sm);
    background: transparent;
    color: var(--ifinsta-text);
    text-decoration: none;
    scroll-snap-align: start;
}

.welcome-discover-card__media {
    position: relative;
    aspect-ratio: 1 / 0.72;
    background: var(--ifinsta-bg-secondary);
}

.welcome-discover-card__media img,
.welcome-discover-card__placeholder {
    width: 100%;
    height: 100%;
}

.welcome-discover-card__media img {
    display: block;
    object-fit: cover;
}

.welcome-discover-card__placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ifinsta-text-muted);
}

.welcome-discover-card__badge {
    position: absolute;
    top: var(--ifinsta-space-2);
    left: var(--ifinsta-space-2);
    display: inline-flex;
    align-items: center;
    gap: var(--ifinsta-space-1);
    padding: var(--ifinsta-space-1) var(--ifinsta-space-2);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-full);
    background: var(--ifinsta-bg);
    color: var(--ifinsta-text);
    font: var(--ifinsta-text-overline);
    text-transform: uppercase;
}

.welcome-discover-card__badge-dot {
    width: var(--ifinsta-space-1);
    height: var(--ifinsta-space-1);
    border-radius: var(--ifinsta-radius-full);
    background: var(--ifinsta-success);
}

.welcome-discover-card__body {
    display: grid;
    gap: var(--ifinsta-space-1);
    padding: var(--ifinsta-space-3);
}

.welcome-discover-card__price {
    color: var(--ifinsta-text);
    font: var(--ifinsta-text-label);
}

.welcome-discover-card__title,
.welcome-discover-card__meta {
    margin: 0;
}

.welcome-discover-card__title {
    color: var(--ifinsta-text);
    font: var(--welcome-font-card-copy);
}

.welcome-discover-card__meta-label {
    display: none;
}

.welcome-discover-card__meta-value {
    color: var(--ifinsta-text-muted);
    font: var(--ifinsta-text-caption);
}

.welcome-discover__empty {
    grid-column: 1 / -1;
    padding: var(--ifinsta-space-8);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-sm);
    text-align: center;
}

.welcome-discover__empty-title {
    color: var(--ifinsta-text);
    font: var(--welcome-font-card-title);
}

.welcome-discover__empty-text {
    margin: var(--ifinsta-space-2) 0 0;
    color: var(--ifinsta-text-secondary);
    font: var(--welcome-font-card-copy);
}

.welcome-discover__cta {
    display: flex;
    justify-content: center;
    margin-top: var(--ifinsta-space-6);
}

.welcome-work__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--ifinsta-space-5);
}

.welcome-pricing {
    padding-block: var(--ifinsta-guest-section-y);
    border-top: 1px solid var(--ifinsta-border);
    background: transparent;
    color: var(--ifinsta-guest-text);
    text-align: center;
}

.welcome-pricing h2 {
    color: var(--ifinsta-guest-text);
}

.welcome-pricing a {
    display: inline-flex;
    margin-top: var(--ifinsta-space-4);
    font: var(--ifinsta-text-label);
    text-decoration: none;
}

.welcome-cta {
    text-align: center;
}

.welcome-cta__actions {
    justify-content: center;
}

.welcome-cta small {
    display: block;
    margin-top: var(--ifinsta-space-3);
    color: var(--ifinsta-text-muted);
    font: var(--ifinsta-text-caption);
}

@media (max-width: 1024px) {
    .welcome-module-grid {
        grid-auto-columns: minmax(14rem, 1fr);
    }

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

@media (max-width: 720px) {

    .welcome-hero__grid,
    .welcome-modules,
    .welcome-discover,
    .welcome-work,
    .welcome-cta {
        padding-top: var(--ifinsta-space-8);
        padding-bottom: var(--ifinsta-space-8);
    }

    .welcome-discover__shell {
        padding: var(--ifinsta-space-2);
        border-radius: var(--ifinsta-radius-lg);
    }

    .welcome-merchant {
        padding: var(--ifinsta-space-2);
    }

    .welcome-merchant__summary {
        overflow: hidden;
        max-width: calc(var(--ifinsta-space-32) * 2);
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .welcome-product-rail__track {
        grid-auto-columns: calc(var(--ifinsta-space-32) * 1.35);
    }

    .welcome-btn {
        width: 100%;
    }
}

@media (max-width: 1280px) {
    .welcome-hero__grid {
        grid-template-columns: 1fr;
        min-height: 0;
        padding: clamp(2.25rem, 6vw, 3.5rem) 0 0;
    }

    /* Stacked: center the copy, contain the window (no edge bleed). */
    .welcome-hero .welcome-container {
        padding-left: 0;
        padding-right: 0;
        /*width: min(100% - var(--ifinsta-space-6), 60rem);*/
        margin: 0 2rem;
    }


    .welcome-hero__copy h1,
    .welcome-hero__copy p {
        margin-right: auto;
        margin-left: auto;
    }

    .welcome-hero__actions,
    .welcome-hero__trust {
        justify-content: center;
    }

}

/**
 * Getting started onboarding journey
 * Token-based, no shadows, animated timeline connector.
 */



/* ============================================================================
   5. GETTING STARTED
   /getting-started/ — rules scoped to .ifinsta-start-page
   ============================================================================ */
.ifinsta-start-page {
    --ifinsta-start-font-title: var(--ifinsta-guest-h3);
    --ifinsta-start-font-copy: var(--ifinsta-guest-body);
    color: var(--ifinsta-guest-text);
}

.ifinsta-start-page .ifinsta-start-container {
    width: min(var(--ifinsta-guest-measure), calc(100% - var(--ifinsta-guest-gutter)));
    margin-inline: auto;
}

.ifinsta-start-page .ifinsta-start-video {
    max-width: 36rem;
    margin: var(--ifinsta-space-8) auto 0;
    overflow: hidden;
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-lg);
    background: var(--ifinsta-bg-secondary);
}

.ifinsta-start-page .ifinsta-start-video video {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.ifinsta-start-page .ifinsta-start-journey {
    padding: var(--ifinsta-space-8) 0 var(--ifinsta-space-16);
}

.ifinsta-start-page .ifinsta-start-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.ifinsta-start-page .ifinsta-start-timeline {
    position: relative;
    display: grid;
    gap: var(--ifinsta-space-12);
    margin: 0;
    padding: 0;
    list-style: none;
}

.ifinsta-start-page .ifinsta-start-timeline::before,
.ifinsta-start-page .ifinsta-start-timeline::after {
    content: "";
    position: absolute;
    top: var(--ifinsta-space-5);
    bottom: var(--ifinsta-space-8);
    left: 1.5rem;
    width: 1px;
    background: var(--ifinsta-border);
}

.ifinsta-start-page .ifinsta-start-timeline::after {
    bottom: auto;
    height: calc(100% - var(--ifinsta-space-12));
    background: var(--ifinsta-primary);
    transform-origin: top;
    animation: ifinsta-start-line 6s ease-in-out infinite;
}

.ifinsta-start-page .ifinsta-start-step {
    position: relative;
    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr);
    gap: var(--ifinsta-space-5);
}

.ifinsta-start-page .ifinsta-start-step__marker {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border: 2px solid var(--ifinsta-primary);
    border-radius: var(--ifinsta-radius-full);
    background: var(--ifinsta-bg);
    color: var(--ifinsta-primary);
    font: var(--ifinsta-text-label);
}

.ifinsta-start-page .ifinsta-start-step__content {
    display: grid;
    gap: var(--ifinsta-space-3);
}

.ifinsta-start-page .ifinsta-start-step__content h3 {
    margin: 0;
    color: var(--ifinsta-text);
    font: var(--ifinsta-start-font-title);
}

.ifinsta-start-page .ifinsta-start-step__content p {
    margin: 0;
    color: var(--ifinsta-text-secondary);
    font: var(--ifinsta-start-font-copy);
}

.ifinsta-start-page .ifinsta-start-tips {
    display: grid;
    gap: var(--ifinsta-space-3);
    margin-top: var(--ifinsta-space-1);
    padding: var(--ifinsta-space-4) var(--ifinsta-space-5);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-sm);
    background: var(--ifinsta-bg);
}

.ifinsta-start-page .ifinsta-start-tips strong {
    color: var(--ifinsta-primary);
    font: var(--ifinsta-text-overline);
    text-transform: uppercase;
}

.ifinsta-start-page .ifinsta-start-tips ul {
    display: grid;
    gap: var(--ifinsta-space-2);
    margin: 0;
    padding: 0;
    list-style: none;
}

.ifinsta-start-page .ifinsta-start-tips li {
    position: relative;
    padding-left: var(--ifinsta-space-4);
    color: var(--ifinsta-text);
    font: var(--ifinsta-start-font-copy);
}

.ifinsta-start-page .ifinsta-start-tips li::before {
    content: "";
    position: absolute;
    top: 0.65em;
    left: 0;
    width: var(--ifinsta-space-1);
    height: var(--ifinsta-space-1);
    border-radius: var(--ifinsta-radius-full);
    background: var(--ifinsta-primary);
}

@keyframes ifinsta-start-line {
    0% {
        transform: scaleY(0);
    }

    55% {
        transform: scaleY(1);
    }

    100% {
        transform: scaleY(1);
    }
}

@media (prefers-reduced-motion: reduce) {
    .ifinsta-start-page .ifinsta-start-timeline::after {
        animation: none;
    }
}

@media (max-width: 640px) {
    .ifinsta-start-page .ifinsta-start-container {
        width: min(100% - var(--ifinsta-space-4), 48rem);
    }

    .ifinsta-start-page .ifinsta-start-video {
        margin-top: var(--ifinsta-space-6);
    }

    .ifinsta-start-page .ifinsta-start-timeline {
        gap: var(--ifinsta-space-8);
    }

    .ifinsta-start-page .ifinsta-start-step {
        grid-template-columns: 2.5rem minmax(0, 1fr);
        gap: var(--ifinsta-space-4);
    }

    .ifinsta-start-page .ifinsta-start-step__marker {
        width: 2.5rem;
        height: 2.5rem;
    }

    .ifinsta-start-page .ifinsta-start-timeline::before,
    .ifinsta-start-page .ifinsta-start-timeline::after {
        left: 1.25rem;
    }

    .ifinsta-start-page .ifinsta-start-tips {
        padding: var(--ifinsta-space-4);
    }
}


/**
 * Features page — matching getting-started design language.
 * Token-based, no shadows, clean borders, consistent spacing.
 */

/* Page-level padding to match getting-started */


/* ============================================================================
   6. FEATURES
   /features/
   ============================================================================ */

/* Sticky filter rail — a hairline strip, no fill. */
.features-filter-bar {
    position: sticky;
    top: var(--ifinsta-guest-header-height);
    z-index: var(--ifinsta-z-sticky);
    padding-block: var(--ifinsta-space-4);
    background: var(--ifinsta-bg);
    border-block: 1px solid var(--ifinsta-border);
}

.features-filter-bar__inner {
    display: flex;
    align-items: center;
    gap: var(--ifinsta-space-4);
    min-width: 0;
}

/* Search */
.features-search {
    position: relative;
    flex: 0 0 auto;
    width: 17.5rem;
    max-width: 100%;
}

.features-search__icon {
    position: absolute;
    left: var(--ifinsta-space-4);
    top: 50%;
    transform: translateY(-50%);
    color: var(--ifinsta-text-muted);
    pointer-events: none;
}

.features-search__input {
    width: 100%;
    height: 2.75rem;
    padding: 0 var(--ifinsta-space-4) 0 2.75rem;
    color: var(--ifinsta-guest-text);
    background: transparent;
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-md);
    font: var(--ifinsta-guest-meta);
    transition: border-color var(--ifinsta-guest-transition-fast);
}

.features-search__input:focus {
    outline: none;
    border-color: var(--ifinsta-primary);
}

.features-search__input::placeholder {
    color: var(--ifinsta-text-muted);
}

/* Category pills use .ifinsta-guest-pills. They wrap on wide viewports; only
   narrow ones get a horizontal scroll rail, so a pill is never clipped
   mid-word next to the sort control. */
.features-categories {
    flex: 1 1 auto;
    min-width: 0;
}

.features-categories::-webkit-scrollbar {
    display: none;
}

.features-categories .ifinsta-guest-pills__item {
    flex-shrink: 0;
}

.features-category__count {
    font: var(--ifinsta-guest-eyebrow);
    color: var(--ifinsta-text-muted);
}

.ifinsta-guest-pills__item--active .features-category__count {
    color: var(--ifinsta-primary);
}

.features-sort {
    flex: 0 0 auto;
}

/* Apps grid */
.features-apps {
    padding-block: var(--ifinsta-guest-section-y);
}

.features-apps__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));
    gap: var(--ifinsta-space-6);
}

.features-app-card {
    display: flex;
    flex-direction: column;
    gap: var(--ifinsta-space-4);
    padding: var(--ifinsta-space-6);
    background: transparent;
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-lg);
    transition: border-color var(--ifinsta-guest-transition-fast);
}

.features-app-card:hover {
    border-color: var(--ifinsta-primary);
}

.features-app-card--link {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
}

.features-app-card--link:hover {
    color: inherit;
}

.features-app-card__header {
    display: flex;
    align-items: flex-start;
    gap: var(--ifinsta-space-4);
}

.features-app-card__illustration {
    display: block;
    inline-size: 100%;
    aspect-ratio: 4 / 3;
    object-fit: contain;
    object-position: center;
}

.features-app-card__icon,
.features-app-card__icon-placeholder {
    flex: 0 0 auto;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: var(--ifinsta-radius-md);
    object-fit: cover;
}

.features-app-card__icon-placeholder {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--ifinsta-primary-50);
    color: var(--ifinsta-primary);
    font: var(--ifinsta-guest-h3);
}

.features-app-card__info {
    min-width: 0;
}

.features-app-card__name {
    margin: 0;
    font: var(--ifinsta-guest-h3);
    color: var(--ifinsta-guest-text);
}

.features-app-card__category {
    margin-top: var(--ifinsta-space-1);
    font: var(--ifinsta-guest-meta);
    color: var(--ifinsta-guest-text-muted);
}

.features-app-card__rating {
    display: flex;
    align-items: baseline;
    gap: var(--ifinsta-space-1);
    margin-top: var(--ifinsta-space-1);
    font: var(--ifinsta-guest-meta);
    color: var(--ifinsta-guest-text-secondary);
}

.features-app-card__rating-new {
    color: var(--ifinsta-success-600);
}

.features-app-card__desc {
    margin: 0;
    flex: 1 1 auto;
    font: var(--ifinsta-guest-meta);
    color: var(--ifinsta-guest-text-secondary);
}

.features-app-card__tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ifinsta-space-2);
}

.features-app-card__tag {
    padding: 0 var(--ifinsta-space-2);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-sm);
    font: var(--ifinsta-guest-eyebrow);
    letter-spacing: 0;
    text-transform: none;
    color: var(--ifinsta-guest-text-muted);
}

.features-app-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--ifinsta-space-4);
    padding-top: var(--ifinsta-space-4);
    border-top: 1px solid var(--ifinsta-border);
}

.features-app-card__price {
    font: var(--ifinsta-guest-meta);
    font-weight: var(--ifinsta-font-semibold);
    color: var(--ifinsta-guest-text);
}

.features-app-card__price--free {
    color: var(--ifinsta-success-600);
}

.features-app-card__installs {
    margin-left: var(--ifinsta-space-2);
    font: var(--ifinsta-guest-meta);
    color: var(--ifinsta-guest-text-muted);
}

/* Secondary action — the page's one solid CTA lives in the closing band. */
.features-app-card__cta {
    display: inline-flex;
    align-items: center;
    min-height: 2.25rem;
    padding-inline: var(--ifinsta-space-4);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-md);
    font: var(--ifinsta-guest-meta);
    font-weight: var(--ifinsta-font-semibold);
    color: var(--ifinsta-guest-text);
    text-decoration: none;
    white-space: nowrap;
    transition: border-color var(--ifinsta-guest-transition-fast), color var(--ifinsta-guest-transition-fast);
}

.features-app-card__cta:hover {
    border-color: var(--ifinsta-primary);
    color: var(--ifinsta-primary);
}

/* Empty state */
.features-empty {
    padding-block: var(--ifinsta-guest-section-y);
    text-align: center;
}

.features-empty__icon {
    color: var(--ifinsta-text-muted);
}

.features-empty__title {
    margin: var(--ifinsta-space-4) 0 var(--ifinsta-space-2);
    font: var(--ifinsta-guest-h2);
    color: var(--ifinsta-guest-text);
}

.features-empty__text {
    margin: 0;
    font: var(--ifinsta-guest-body);
    color: var(--ifinsta-guest-text-secondary);
}

/* Closing CTA — the single anchor for this page. */
.features-cta {
    padding-block: var(--ifinsta-guest-section-y);
    border-top: 1px solid var(--ifinsta-border);
}

.features-cta__content {
    max-width: var(--ifinsta-guest-measure);
}

.features-cta__title {
    margin: 0;
    font: var(--ifinsta-guest-h1);
    color: var(--ifinsta-guest-text);
}

.features-cta__lead {
    margin: var(--ifinsta-space-4) 0 var(--ifinsta-space-8);
    font: var(--ifinsta-guest-lead);
    color: var(--ifinsta-guest-text-secondary);
}

.features-cta__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--ifinsta-space-2);
    min-height: 3.25rem;
    padding-inline: var(--ifinsta-space-8);
    border: 1px solid var(--ifinsta-primary);
    border-radius: var(--ifinsta-radius-md);
    background: var(--ifinsta-primary);
    color: var(--ifinsta-white);
    font: var(--ifinsta-guest-body);
    font-weight: var(--ifinsta-font-semibold);
    text-decoration: none;
    transition: background var(--ifinsta-guest-transition-fast), border-color var(--ifinsta-guest-transition-fast);
}

.features-cta__btn:hover {
    background: var(--ifinsta-primary-hover);
    border-color: var(--ifinsta-primary-hover);
    color: var(--ifinsta-white);
}

@media (max-width: 900px) {
    .features-filter-bar__inner {
        flex-wrap: wrap;
    }

    .features-search {
        width: 100%;
        order: -1;
    }

    /* Narrow viewports scroll the pill rail instead of wrapping it. */
    .features-categories {
        flex-wrap: nowrap;
        overflow-x: auto;
        overflow-y: hidden;
        scrollbar-width: none;
    }
}

@media (max-width: 640px) {
    .features-apps__grid {
        grid-template-columns: 1fr;
        gap: var(--ifinsta-space-4);
    }

    .features-app-card__footer {
        flex-wrap: wrap;
    }
}

/* ============================================================================
   6b. FEATURE DETAIL
   /features/<slug>/
   ============================================================================ */

/* Breadcrumb */
.feature-detail-breadcrumb {
    padding: var(--ifinsta-space-4) 0;
    font: var(--ifinsta-guest-body-sm);
}

.feature-detail-breadcrumb__link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: var(--ifinsta-guest-text-secondary);
    text-decoration: none;
    transition: color 0.15s;
}

.feature-detail-breadcrumb__link:hover {
    color: var(--ifinsta-guest-text);
}

.feature-detail-breadcrumb__sep {
    margin: 0 0.5rem;
    color: var(--ifinsta-guest-text-muted);
}

.feature-detail-breadcrumb__current {
    color: var(--ifinsta-guest-text);
    font-weight: 600;
}

/* Hero */
.feature-detail-hero {
    padding: var(--ifinsta-space-8) 0 var(--ifinsta-space-12);
    border-bottom: 1px solid var(--ifinsta-border);
}

.feature-detail-hero__inner {
    display: flex;
    gap: var(--ifinsta-space-8);
    align-items: flex-start;
}

.feature-detail-hero__icon {
    flex-shrink: 0;
    width: 96px;
    height: 96px;
    border-radius: var(--ifinsta-guest-card-radius);
    overflow: hidden;
    background: var(--ifinsta-guest-surface);
    border: 1px solid var(--ifinsta-border);
}

.feature-detail-hero__icon img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.feature-detail-hero__icon-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font: 600 2rem/1 var(--ifinsta-font-brand-sans);
    color: var(--ifinsta-guest-text-secondary);
    background: var(--ifinsta-guest-surface-alt);
}

.feature-detail-hero__info {
    flex: 1;
    min-width: 0;
}

.feature-detail-hero__top-row {
    display: flex;
    align-items: center;
    gap: var(--ifinsta-space-3);
    flex-wrap: wrap;
}

.feature-detail-hero__title {
    margin: 0;
    font: 600 2rem/1.2 var(--ifinsta-font-brand-sans);
    color: var(--ifinsta-guest-text);
}

.feature-detail-hero__category {
    display: inline-block;
    padding: 0.2em 0.7em;
    border-radius: 999px;
    font: 600 0.75rem/1.4 var(--ifinsta-font-brand-sans);
    color: var(--ifinsta-color-primary);
    background: var(--ifinsta-color-primary-ghost);
}

.feature-detail-hero__subtitle {
    margin: var(--ifinsta-space-2) 0 0;
    font: var(--ifinsta-guest-body);
    color: var(--ifinsta-guest-text-secondary);
    max-width: 60ch;
}

.feature-detail-hero__meta {
    display: flex;
    align-items: center;
    gap: var(--ifinsta-space-4);
    margin-top: var(--ifinsta-space-3);
    font: var(--ifinsta-guest-body-sm);
    color: var(--ifinsta-guest-text-secondary);
}

.feature-detail-hero__rating {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.feature-detail-hero__rating svg {
    color: var(--ifinsta-warning);
}

.feature-detail-hero__badge {
    display: inline-block;
    padding: 0.15em 0.6em;
    border-radius: 999px;
    font: 600 0.7rem/1.4 var(--ifinsta-font-brand-sans);
    color: var(--ifinsta-color-success);
    background: var(--ifinsta-color-success-ghost);
}

.feature-detail-hero__actions {
    display: flex;
    align-items: center;
    gap: var(--ifinsta-space-4);
    margin-top: var(--ifinsta-space-5);
}

.feature-detail-hero__cta {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.7em 1.6em;
    border-radius: var(--ifinsta-guest-btn-radius);
    font: 600 0.95rem/1.2 var(--ifinsta-font-brand-sans);
    color: var(--ifinsta-text-inverse);
    background: var(--ifinsta-color-primary);
    text-decoration: none;
    transition: background 0.15s, transform 0.1s;
}

.feature-detail-hero__cta:hover {
    background: var(--ifinsta-color-primary-hover);
    transform: translateY(-1px);
}

.feature-detail-hero__price {
    font: 600 1rem/1.2 var(--ifinsta-font-brand-sans);
    color: var(--ifinsta-guest-text);
}

/* Section title (reusable) */
.feature-detail-section__title {
    margin: 0 0 var(--ifinsta-space-6);
    font: 600 1.5rem/1.3 var(--ifinsta-font-brand-sans);
    color: var(--ifinsta-guest-text);
}

/* Features grid */
.feature-detail-features {
    padding: var(--ifinsta-space-12) 0;
}

.feature-detail-features__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: var(--ifinsta-space-6);
}

.feature-detail-feature-card {
    padding: var(--ifinsta-space-6);
    border-radius: var(--ifinsta-guest-card-radius);
    background: var(--ifinsta-guest-surface);
    border: 1px solid var(--ifinsta-border);
    transition: border-color 0.15s, box-shadow 0.15s;
}

.feature-detail-feature-card:hover {
    border-color: var(--ifinsta-color-primary-muted);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
}

.feature-detail-feature-card__icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--ifinsta-color-primary-ghost);
    color: var(--ifinsta-color-primary);
    margin-bottom: var(--ifinsta-space-3);
}

.feature-detail-feature-card__icon .material-symbols-outlined {
    font-size: 22px;
}

.feature-detail-feature-card__title {
    margin: 0 0 var(--ifinsta-space-2);
    font: 600 1rem/1.3 var(--ifinsta-font-brand-sans);
    color: var(--ifinsta-guest-text);
}

.feature-detail-feature-card__desc {
    margin: 0;
    font: var(--ifinsta-guest-body-sm);
    color: var(--ifinsta-guest-text-secondary);
}

/* Screenshots */
.feature-detail-screenshots {
    padding: var(--ifinsta-space-12) 0;
    border-top: 1px solid var(--ifinsta-border);
}

.feature-detail-screenshots__scroll {
    display: flex;
    gap: var(--ifinsta-space-4);
    overflow-x: auto;
    padding-bottom: var(--ifinsta-space-4);
    scrollbar-width: thin;
    scroll-snap-type: x mandatory;
}

.feature-detail-screenshots__scroll::-webkit-scrollbar {
    height: 6px;
}

.feature-detail-screenshots__scroll::-webkit-scrollbar-track {
    background: var(--ifinsta-guest-surface);
    border-radius: 3px;
}

.feature-detail-screenshots__scroll::-webkit-scrollbar-thumb {
    background: var(--ifinsta-guest-border);
    border-radius: 3px;
}

.feature-detail-screenshot {
    flex-shrink: 0;
    width: 320px;
    border-radius: var(--ifinsta-guest-card-radius);
    overflow: hidden;
    border: 1px solid var(--ifinsta-border);
    scroll-snap-align: start;
}

.feature-detail-screenshot img {
    width: 100%;
    height: auto;
    display: block;
}

/* Content: two-column layout */
.feature-detail-content {
    padding: var(--ifinsta-space-12) 0;
    border-top: 1px solid var(--ifinsta-border);
}

.feature-detail-content__grid {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: var(--ifinsta-space-10);
    align-items: start;
}

.feature-detail-content__main {
    min-width: 0;
}

/* Description */
.feature-detail-description {
    font: var(--ifinsta-guest-body);
    color: var(--ifinsta-guest-text-secondary);
    line-height: 1.7;
}

.feature-detail-description p {
    margin: 0 0 var(--ifinsta-space-4);
}

/* Rendered Markdown blocks */
.feature-detail-description h2,
.feature-detail-description h3,
.feature-detail-description h4,
.feature-detail-description h5 {
    margin: var(--ifinsta-space-6) 0 var(--ifinsta-space-3);
    font: 600 1.25rem/1.3 var(--ifinsta-font-brand-sans);
    color: var(--ifinsta-guest-text);
}

.feature-detail-description h3 {
    font-size: 1.1rem;
}

.feature-detail-description h4,
.feature-detail-description h5 {
    font-size: 1rem;
}

.feature-detail-description ul,
.feature-detail-description ol {
    margin: 0 0 var(--ifinsta-space-4);
    padding-left: var(--ifinsta-space-6);
}

.feature-detail-description li {
    margin: 0 0 var(--ifinsta-space-1);
}

.feature-detail-description li>ul,
.feature-detail-description li>ol {
    margin-top: var(--ifinsta-space-1);
}

.feature-detail-description a {
    color: var(--ifinsta-color-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.feature-detail-description a:hover {
    color: var(--ifinsta-color-primary-hover);
}

.feature-detail-description strong {
    font-weight: 600;
    color: var(--ifinsta-guest-text);
}

.feature-detail-description code {
    font-family: var(--ifinsta-guest-font-mono);
    font-size: 0.9em;
    padding: 0.1em 0.35em;
    border-radius: 4px;
    background: var(--ifinsta-guest-bg-muted);
    color: var(--ifinsta-guest-text);
}

.feature-detail-description pre {
    margin: 0 0 var(--ifinsta-space-4);
    padding: var(--ifinsta-space-4);
    border: 1px solid var(--ifinsta-border);
    border-radius: 8px;
    background: var(--ifinsta-guest-bg-muted);
    overflow-x: auto;
}

.feature-detail-description pre code {
    padding: 0;
    background: transparent;
    border-radius: 0;
    font-size: 0.85rem;
    line-height: 1.6;
}

.feature-detail-description blockquote {
    margin: 0 0 var(--ifinsta-space-4);
    padding: var(--ifinsta-space-2) var(--ifinsta-space-5);
    border-left: 3px solid var(--ifinsta-color-primary);
    background: var(--ifinsta-guest-bg-subtle);
}

.feature-detail-description table {
    width: 100%;
    margin: 0 0 var(--ifinsta-space-4);
    border-collapse: collapse;
    font-size: 0.95rem;
}

.feature-detail-description th,
.feature-detail-description td {
    padding: var(--ifinsta-space-2) var(--ifinsta-space-3);
    border: 1px solid var(--ifinsta-border);
    text-align: left;
}

.feature-detail-description th {
    font-weight: 600;
    color: var(--ifinsta-guest-text);
    background: var(--ifinsta-guest-bg-muted);
}

.feature-detail-description img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
}

.feature-detail-description hr {
    margin: var(--ifinsta-space-6) 0;
    border: 0;
    border-top: 1px solid var(--ifinsta-border);
}

/* How it works steps */
.feature-detail-steps {
    display: flex;
    flex-direction: column;
    gap: var(--ifinsta-space-6);
}

.feature-detail-step {
    display: flex;
    gap: var(--ifinsta-space-4);
    align-items: flex-start;
}

.feature-detail-step__number {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font: 700 0.9rem/1 var(--ifinsta-font-brand-sans);
    color: var(--ifinsta-color-primary);
    background: var(--ifinsta-color-primary-ghost);
}

.feature-detail-step__body {
    flex: 1;
}

.feature-detail-step__title {
    margin: 0 0 var(--ifinsta-space-1);
    font: 600 1rem/1.3 var(--ifinsta-font-brand-sans);
    color: var(--ifinsta-guest-text);
}

.feature-detail-step__desc {
    margin: 0;
    font: var(--ifinsta-guest-body-sm);
    color: var(--ifinsta-guest-text-secondary);
}

/* FAQ accordion */
.feature-detail-faq {
    display: flex;
    flex-direction: column;
    gap: var(--ifinsta-space-3);
}

.feature-detail-faq__item {
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-guest-card-radius);
    overflow: hidden;
}

.feature-detail-faq__question {
    padding: var(--ifinsta-space-4) var(--ifinsta-space-5);
    font: 600 0.95rem/1.4 var(--ifinsta-font-brand-sans);
    color: var(--ifinsta-guest-text);
    cursor: pointer;
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.feature-detail-faq__question::-webkit-details-marker {
    display: none;
}

.feature-detail-faq__question::after {
    content: '+';
    font-size: 1.2rem;
    color: var(--ifinsta-guest-text-muted);
    transition: transform 0.2s;
}

.feature-detail-faq__item[open] .feature-detail-faq__question::after {
    transform: rotate(45deg);
}

.feature-detail-faq__answer {
    padding: 0 var(--ifinsta-space-5) var(--ifinsta-space-5);
    font: var(--ifinsta-guest-body-sm);
    color: var(--ifinsta-guest-text-secondary);
    line-height: 1.6;
}

/* Sidebar card */
.feature-detail-sidebar-card {
    position: sticky;
    top: var(--ifinsta-space-6);
    padding: var(--ifinsta-space-6);
    border-radius: var(--ifinsta-guest-card-radius);
    background: var(--ifinsta-guest-surface);
    border: 1px solid var(--ifinsta-border);
}

.feature-detail-sidebar-card__title {
    margin: 0 0 var(--ifinsta-space-4);
    font: 600 1.1rem/1.3 var(--ifinsta-font-brand-sans);
    color: var(--ifinsta-guest-text);
}

.feature-detail-sidebar-card__list {
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--ifinsta-space-3);
}

.feature-detail-sidebar-card__row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font: var(--ifinsta-guest-body-sm);
}

.feature-detail-sidebar-card__row dt {
    color: var(--ifinsta-guest-text-secondary);
}

.feature-detail-sidebar-card__row dd {
    margin: 0;
    color: var(--ifinsta-guest-text);
    font-weight: 600;
}

.feature-detail-sidebar-card__free {
    color: var(--ifinsta-color-success);
    font-weight: 600;
}

.feature-detail-sidebar-card__cta {
    display: block;
    width: 100%;
    margin-top: var(--ifinsta-space-5);
    padding: 0.7em 1em;
    border-radius: var(--ifinsta-guest-btn-radius);
    font: 600 0.95rem/1.2 var(--ifinsta-font-brand-sans);
    color: var(--ifinsta-text-inverse);
    background: var(--ifinsta-color-primary);
    text-align: center;
    text-decoration: none;
    transition: background 0.15s;
}

.feature-detail-sidebar-card__cta:hover {
    background: var(--ifinsta-color-primary-hover);
}

/* Related apps */
.feature-detail-related {
    padding: var(--ifinsta-space-12) 0;
    border-top: 1px solid var(--ifinsta-border);
}

.feature-detail-related__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: var(--ifinsta-space-4);
}

.feature-detail-related-card {
    display: flex;
    align-items: center;
    gap: var(--ifinsta-space-4);
    padding: var(--ifinsta-space-4);
    border-radius: var(--ifinsta-guest-card-radius);
    background: var(--ifinsta-guest-surface);
    border: 1px solid var(--ifinsta-border);
    text-decoration: none;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.feature-detail-related-card:hover {
    border-color: var(--ifinsta-color-primary-muted);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.feature-detail-related-card__icon {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    border-radius: 10px;
    overflow: hidden;
    background: var(--ifinsta-guest-surface-alt);
}

.feature-detail-related-card__icon img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.feature-detail-related-card__icon-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font: 600 1.1rem/1 var(--ifinsta-font-brand-sans);
    color: var(--ifinsta-guest-text-secondary);
}

.feature-detail-related-card__name {
    margin: 0;
    font: 600 0.9rem/1.3 var(--ifinsta-font-brand-sans);
    color: var(--ifinsta-guest-text);
}

.feature-detail-related-card__tagline {
    margin: 0.2rem 0 0;
    font: var(--ifinsta-guest-body-sm);
    color: var(--ifinsta-guest-text-secondary);
}

/* CTA */
.feature-detail-cta {
    padding: var(--ifinsta-space-16) 0;
    text-align: center;
}

.feature-detail-cta__content {
    max-width: 520px;
    margin: 0 auto;
}

.feature-detail-cta__title {
    margin: 0 0 var(--ifinsta-space-3);
    font: 600 1.8rem/1.2 var(--ifinsta-font-brand-sans);
    color: var(--ifinsta-guest-text);
}

.feature-detail-cta__lead {
    margin: 0 0 var(--ifinsta-space-6);
    font: var(--ifinsta-guest-body);
    color: var(--ifinsta-guest-text-secondary);
}

.feature-detail-cta__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.8em 2em;
    border-radius: var(--ifinsta-guest-btn-radius);
    font: 600 1rem/1.2 var(--ifinsta-font-brand-sans);
    color: var(--ifinsta-text-inverse);
    background: var(--ifinsta-color-primary);
    text-decoration: none;
    transition: background 0.15s, transform 0.1s;
}

.feature-detail-cta__btn:hover {
    background: var(--ifinsta-color-primary-hover);
    transform: translateY(-1px);
}

/* ── Responsive ──────────────────────────────────────────────── */
@media (max-width: 900px) {
    .feature-detail-hero__inner {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .feature-detail-hero__top-row {
        justify-content: center;
    }

    .feature-detail-hero__meta {
        justify-content: center;
    }

    .feature-detail-hero__actions {
        justify-content: center;
    }

    .feature-detail-content__grid {
        grid-template-columns: 1fr;
    }

    .feature-detail-content__sidebar {
        order: -1;
    }
}

@media (max-width: 640px) {
    .feature-detail-hero__icon {
        width: 72px;
        height: 72px;
    }

    .feature-detail-hero__title {
        font-size: 1.6rem;
    }

    .feature-detail-features__grid {
        grid-template-columns: 1fr;
    }

    .feature-detail-related__grid {
        grid-template-columns: 1fr;
    }

    .feature-detail-screenshot {
        width: 260px;
    }
}

/* Public app story — outcome-first detail pages. */
.ifinsta-feature-page {
    color: var(--ifinsta-guest-text);
    background: var(--ifinsta-guest-bg);
}

.ifinsta-feature-breadcrumb {
    border-block-end: var(--ifinsta-border-width) solid var(--ifinsta-guest-border);
}

.ifinsta-feature-breadcrumb__inner {
    display: flex;
    align-items: center;
    gap: var(--ifinsta-space-2);
    min-block-size: var(--ifinsta-touch-target-lg);
    color: var(--ifinsta-guest-text-muted);
    font: var(--ifinsta-guest-eyebrow);
}

.ifinsta-feature-breadcrumb a {
    color: var(--ifinsta-guest-text-secondary);
    text-decoration: none;
}

.ifinsta-feature-breadcrumb a:hover {
    color: var(--ifinsta-primary);
}

.ifinsta-feature-hero {
    padding: var(--ifinsta-space-12) 0 var(--ifinsta-space-16);
    background: var(--ifinsta-guest-gradient-soft);
}

.ifinsta-feature-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr);
    align-items: center;
    gap: var(--ifinsta-space-16);
}

.ifinsta-feature-identity {
    display: flex;
    align-items: center;
    gap: var(--ifinsta-space-3);
    color: var(--ifinsta-guest-text-secondary);
    font: var(--ifinsta-guest-eyebrow);
}

.ifinsta-feature-identity__image,
.ifinsta-feature-identity__icon {
    inline-size: var(--ifinsta-icon-xl);
    block-size: var(--ifinsta-icon-xl);
    flex: none;
}

.ifinsta-feature-identity__image {
    border-radius: var(--ifinsta-radius-md);
    object-fit: contain;
}

.ifinsta-feature-identity__icon {
    color: var(--ifinsta-guest-text);
    font-size: var(--ifinsta-icon-xl);
}

.ifinsta-feature-identity__name {
    color: var(--ifinsta-guest-text);
    font-weight: var(--ifinsta-font-semibold);
}

.ifinsta-feature-identity__category {
    padding-inline-start: var(--ifinsta-space-3);
    border-inline-start: var(--ifinsta-border-width) solid var(--ifinsta-guest-border);
}

.ifinsta-feature-hero__title {
    max-inline-size: var(--ifinsta-space-160);
    margin: var(--ifinsta-space-6) 0 0;
    color: var(--ifinsta-guest-text);
    font: var(--ifinsta-guest-display);
    letter-spacing: -0.03em;
}

.ifinsta-feature-hero__lede {
    max-inline-size: var(--ifinsta-space-160);
    margin: var(--ifinsta-space-4) 0 0;
    color: var(--ifinsta-guest-text-secondary);
    font: var(--ifinsta-guest-lead);
}

.ifinsta-feature-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ifinsta-space-3);
    margin-block-start: var(--ifinsta-space-6);
}

.ifinsta-feature-button {
    display: inline-flex;
    min-block-size: var(--ifinsta-touch-target-lg);
    align-items: center;
    justify-content: center;
    gap: var(--ifinsta-space-2);
    padding-inline: var(--ifinsta-space-5);
    border: var(--ifinsta-border-width) solid transparent;
    border-radius: var(--ifinsta-radius-md);
    font: var(--ifinsta-guest-meta);
    font-weight: var(--ifinsta-font-semibold);
    text-decoration: none;
}

.ifinsta-feature-button--primary {
    background: var(--ifinsta-primary);
    color: var(--ifinsta-text-inverse);
}

.ifinsta-feature-button--primary:hover {
    background: var(--ifinsta-primary-hover);
}

.ifinsta-feature-button--secondary {
    border-color: var(--ifinsta-guest-border-strong);
    background: var(--ifinsta-guest-bg);
    color: var(--ifinsta-guest-text);
}

.ifinsta-feature-assurances {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ifinsta-space-4);
    margin: var(--ifinsta-space-6) 0 0;
    padding: 0;
    color: var(--ifinsta-guest-text-secondary);
    font: var(--ifinsta-guest-eyebrow);
    list-style: none;
}

.ifinsta-feature-assurances li {
    display: inline-flex;
    align-items: center;
    gap: var(--ifinsta-space-1);
}

.ifinsta-feature-assurances .material-symbols-outlined {
    color: var(--ifinsta-guest-text);
    font-size: var(--ifinsta-icon-sm);
}

.ifinsta-feature-hero__visual {
    min-inline-size: 0;
    overflow: hidden;
    border: var(--ifinsta-border-width) solid var(--ifinsta-guest-border);
    border-radius: var(--ifinsta-radius-xl);
    background: var(--ifinsta-guest-bg);
}

.ifinsta-feature-hero__visual>img {
    display: block;
    inline-size: 100%;
    block-size: auto;
}

.ifinsta-feature-hero__visual>.ifinsta-feature-hero__illustration {
    aspect-ratio: 4 / 3;
    object-fit: contain;
}

.ifinsta-feature-preview__bar {
    display: flex;
    gap: var(--ifinsta-space-2);
    padding: var(--ifinsta-space-3);
    border-block-end: var(--ifinsta-border-width) solid var(--ifinsta-guest-border);
}

.ifinsta-feature-preview__bar span {
    inline-size: var(--ifinsta-space-2);
    block-size: var(--ifinsta-space-2);
    border-radius: var(--ifinsta-radius-full);
    background: var(--ifinsta-guest-border-strong);
}

.ifinsta-feature-preview__body {
    display: grid;
    min-block-size: calc(var(--ifinsta-space-32) * 3);
    place-items: center;
    align-content: center;
    gap: var(--ifinsta-space-2);
    padding: var(--ifinsta-space-10);
    text-align: center;
}

.ifinsta-feature-preview__icon {
    color: var(--ifinsta-guest-text);
    font-size: var(--ifinsta-icon-2xl);
}

.ifinsta-feature-preview__body strong {
    font: var(--ifinsta-guest-h2);
}

.ifinsta-feature-preview__body>span:not(.ifinsta-feature-preview__icon) {
    color: var(--ifinsta-guest-text-secondary);
    font: var(--ifinsta-guest-meta);
}

.ifinsta-feature-preview__lines {
    display: grid;
    inline-size: min(100%, calc(var(--ifinsta-space-32) * 2));
    gap: var(--ifinsta-space-2);
    margin-block-start: var(--ifinsta-space-5);
}

.ifinsta-feature-preview__lines i {
    display: block;
    block-size: var(--ifinsta-space-2);
    border-radius: var(--ifinsta-radius-full);
    background: var(--ifinsta-guest-bg-muted);
}

.ifinsta-feature-section {
    padding-block: var(--ifinsta-space-16);
    border-block-start: var(--ifinsta-border-width) solid var(--ifinsta-guest-border);
}

.ifinsta-feature-section__heading {
    max-inline-size: var(--ifinsta-space-160);
    margin: 0 auto var(--ifinsta-space-8);
    text-align: center;
}

.ifinsta-feature-section__heading--left {
    margin-inline: 0;
    text-align: start;
}

.ifinsta-feature-section__heading>span,
.ifinsta-feature-final__inner>div>span,
.ifinsta-feature-plan__eyebrow {
    color: var(--ifinsta-primary);
    font: var(--ifinsta-guest-eyebrow);
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ifinsta-feature-section__heading h2,
.ifinsta-feature-final h2 {
    margin: var(--ifinsta-space-2) 0 0;
    color: var(--ifinsta-guest-text);
    font: var(--ifinsta-guest-h1);
}

.ifinsta-feature-section__heading p,
.ifinsta-feature-final p {
    margin: var(--ifinsta-space-3) 0 0;
    color: var(--ifinsta-guest-text-secondary);
    font: var(--ifinsta-guest-body);
}

.ifinsta-feature-outcomes__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--ifinsta-space-5);
}

.ifinsta-feature-outcome {
    padding: var(--ifinsta-space-6);
    border: var(--ifinsta-border-width) solid var(--ifinsta-guest-border);
    border-radius: var(--ifinsta-radius-lg);
}

.ifinsta-feature-outcome__icon {
    color: var(--ifinsta-guest-text);
    font-size: var(--ifinsta-icon-xl);
}

.ifinsta-feature-outcome h3 {
    margin: var(--ifinsta-space-4) 0 0;
    font: var(--ifinsta-guest-h3);
}

.ifinsta-feature-outcome p {
    margin: var(--ifinsta-space-2) 0 0;
    color: var(--ifinsta-guest-text-secondary);
    font: var(--ifinsta-guest-meta);
}

.ifinsta-feature-gallery {
    background: var(--ifinsta-guest-bg-subtle);
}

.ifinsta-feature-gallery__rail {
    display: flex;
    gap: var(--ifinsta-space-5);
    overflow-x: auto;
    padding-block-end: var(--ifinsta-space-3);
    scroll-snap-type: inline mandatory;
    scrollbar-width: thin;
}

.ifinsta-feature-gallery__item {
    min-inline-size: min(78vw, var(--ifinsta-space-160));
    margin: 0;
    overflow: hidden;
    border: var(--ifinsta-border-width) solid var(--ifinsta-guest-border);
    border-radius: var(--ifinsta-radius-lg);
    background: var(--ifinsta-guest-bg);
    scroll-snap-align: start;
}

.ifinsta-feature-gallery__item img {
    display: block;
    inline-size: 100%;
    block-size: auto;
}

.ifinsta-feature-story__grid,
.ifinsta-feature-faq__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(calc(var(--ifinsta-space-32) * 2), 0.45fr);
    align-items: start;
    gap: var(--ifinsta-space-12);
}

.ifinsta-feature-description {
    color: var(--ifinsta-guest-text-secondary);
    font: var(--ifinsta-guest-body);
}

.ifinsta-feature-description :is(h1, h2, h3, h4) {
    margin: var(--ifinsta-space-6) 0 var(--ifinsta-space-3);
    color: var(--ifinsta-guest-text);
    font: var(--ifinsta-guest-h3);
}

.ifinsta-feature-description p {
    margin: 0 0 var(--ifinsta-space-4);
}

.ifinsta-feature-description :is(ul, ol) {
    margin: 0 0 var(--ifinsta-space-4);
    padding-inline-start: var(--ifinsta-space-6);
}

.ifinsta-feature-plan {
    padding: var(--ifinsta-space-6);
    border: var(--ifinsta-border-width) solid var(--ifinsta-guest-border);
    border-radius: var(--ifinsta-radius-lg);
    background: var(--ifinsta-guest-bg-subtle);
}

.ifinsta-feature-plan__price {
    display: block;
    margin-block-start: var(--ifinsta-space-2);
    font: var(--ifinsta-guest-h1);
}

.ifinsta-feature-plan__facts {
    display: grid;
    gap: var(--ifinsta-space-3);
    margin: var(--ifinsta-space-6) 0;
}

.ifinsta-feature-plan__facts div {
    display: flex;
    justify-content: space-between;
    gap: var(--ifinsta-space-4);
    padding-block-end: var(--ifinsta-space-3);
    border-block-end: var(--ifinsta-border-width) solid var(--ifinsta-guest-border);
    font: var(--ifinsta-guest-meta);
}

.ifinsta-feature-plan__facts dt {
    color: var(--ifinsta-guest-text-secondary);
}

.ifinsta-feature-plan__facts dd {
    margin: 0;
    font-weight: var(--ifinsta-font-semibold);
    text-align: end;
}

.ifinsta-feature-plan__cta {
    display: flex;
    min-block-size: var(--ifinsta-touch-target-lg);
    align-items: center;
    justify-content: center;
    border-radius: var(--ifinsta-radius-md);
    background: var(--ifinsta-primary);
    color: var(--ifinsta-text-inverse);
    font: var(--ifinsta-guest-meta);
    font-weight: var(--ifinsta-font-semibold);
    text-decoration: none;
}

.ifinsta-feature-plan>p {
    margin: var(--ifinsta-space-3) 0 0;
    color: var(--ifinsta-guest-text-muted);
    font: var(--ifinsta-guest-eyebrow);
}

.ifinsta-feature-how,
.ifinsta-feature-faq {
    background: var(--ifinsta-guest-bg-subtle);
}

.ifinsta-feature-how__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--ifinsta-space-8);
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: none;
}

.ifinsta-feature-step>span {
    display: grid;
    inline-size: var(--ifinsta-touch-target-md);
    block-size: var(--ifinsta-touch-target-md);
    place-items: center;
    border: var(--ifinsta-border-width) solid var(--ifinsta-guest-border-strong);
    border-radius: var(--ifinsta-radius-full);
    color: var(--ifinsta-guest-text);
    font: var(--ifinsta-guest-meta);
    font-weight: var(--ifinsta-font-semibold);
}

.ifinsta-feature-step h3 {
    margin: var(--ifinsta-space-4) 0 0;
    font: var(--ifinsta-guest-h3);
}

.ifinsta-feature-step p {
    margin: var(--ifinsta-space-2) 0 0;
    color: var(--ifinsta-guest-text-secondary);
    font: var(--ifinsta-guest-meta);
}

.ifinsta-feature-faq__list {
    display: grid;
    gap: var(--ifinsta-space-3);
}

.ifinsta-feature-faq details {
    border-block-end: var(--ifinsta-border-width) solid var(--ifinsta-guest-border);
}

.ifinsta-feature-faq summary {
    padding-block: var(--ifinsta-space-4);
    color: var(--ifinsta-guest-text);
    font: var(--ifinsta-guest-meta);
    font-weight: var(--ifinsta-font-semibold);
    cursor: pointer;
}

.ifinsta-feature-faq details p {
    margin: 0 0 var(--ifinsta-space-4);
    color: var(--ifinsta-guest-text-secondary);
    font: var(--ifinsta-guest-meta);
}

.ifinsta-feature-related__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--ifinsta-space-4);
}

.ifinsta-feature-related__card {
    display: grid;
    grid-template-columns: var(--ifinsta-icon-xl) minmax(0, 1fr) var(--ifinsta-icon-md);
    align-items: center;
    gap: var(--ifinsta-space-4);
    padding: var(--ifinsta-space-5);
    border: var(--ifinsta-border-width) solid var(--ifinsta-guest-border);
    border-radius: var(--ifinsta-radius-lg);
    color: var(--ifinsta-guest-text);
    text-decoration: none;
}

.ifinsta-feature-related__card:hover {
    border-color: var(--ifinsta-primary);
}

.ifinsta-feature-related__card>.material-symbols-outlined:first-child {
    font-size: var(--ifinsta-icon-xl);
}

.ifinsta-feature-related__illustration {
    display: block;
    inline-size: var(--ifinsta-icon-xl);
    block-size: var(--ifinsta-icon-xl);
    aspect-ratio: 4 / 3;
    object-fit: contain;
}

.ifinsta-feature-related__card strong,
.ifinsta-feature-related__card small {
    display: block;
}

.ifinsta-feature-related__card small {
    margin-block-start: var(--ifinsta-space-1);
    color: var(--ifinsta-guest-text-secondary);
    font: var(--ifinsta-guest-eyebrow);
}

.ifinsta-feature-final {
    padding-block: var(--ifinsta-space-16);
    border-block-start: var(--ifinsta-border-width) solid var(--ifinsta-guest-border);
}

.ifinsta-feature-final__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--ifinsta-space-8);
}

.ifinsta-feature-final__inner>div {
    max-inline-size: var(--ifinsta-space-160);
}

@media (max-width: 900px) {

    .ifinsta-feature-hero__grid,
    .ifinsta-feature-story__grid,
    .ifinsta-feature-faq__grid {
        grid-template-columns: 1fr;
    }

    .ifinsta-feature-outcomes__grid,
    .ifinsta-feature-how__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .welcome-modules .welcome-container {
        padding: var(--ifinsta-space-6);
    }

    .ifinsta-feature-hero {
        padding-block: var(--ifinsta-space-10);
    }

    .ifinsta-feature-hero__title {
        font: var(--ifinsta-guest-h1);
    }

    .ifinsta-feature-hero__visual {
        order: -1;
    }

    .ifinsta-feature-section {
        padding-block: var(--ifinsta-space-12);
    }

    .ifinsta-feature-outcomes__grid,
    .ifinsta-feature-how__grid,
    .ifinsta-feature-related__grid {
        grid-template-columns: 1fr;
    }

    .ifinsta-feature-final__inner {
        align-items: stretch;
        flex-direction: column;
    }
}

/* ============================================================================
   7. ABOUT
   /about/
   ============================================================================ */
.about-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(22rem, 1fr));
    gap: var(--ifinsta-space-12);
}

.about-card p {
    margin: 0;
    max-width: 52ch;
    font: var(--ifinsta-guest-body);
    color: var(--ifinsta-guest-text-secondary);
}

.about-card__list {
    display: grid;
    gap: var(--ifinsta-space-3);
    margin: 0;
    padding: 0;
    list-style: none;
}

.about-card__list li {
    position: relative;
    padding-left: var(--ifinsta-space-5);
    font: var(--ifinsta-guest-body);
    color: var(--ifinsta-guest-text-secondary);
}

.about-card__list li::before {
    content: "";
    position: absolute;
    top: 0.7em;
    left: 0;
    width: var(--ifinsta-space-2);
    height: 1px;
    background: var(--ifinsta-primary);
}

.about-network__text {
    margin: 0;
    max-width: 60ch;
    font: var(--ifinsta-guest-lead);
    color: var(--ifinsta-guest-text-secondary);
}

@media (max-width: 640px) {
    .about-grid {
        gap: var(--ifinsta-space-8);
    }
}

/* ============================================================================
   8. PRICING
   /pricing/
   ============================================================================ */
.ifinsta-pricing-page {
    color: var(--ifinsta-guest-text);
}

/* ── Hero section ─────────────────────────────────────────────────────── */






/* ── Trust Badges ─────────────────────────────────────────────────────── */
.pricing-trust-badges {
    display: flex;
    align-items: center;
    gap: var(--ifinsta-space-5);
    margin-top: var(--ifinsta-space-8);
    flex-wrap: wrap;
}

.pricing-trust-badge {
    display: flex;
    align-items: center;
    gap: var(--ifinsta-space-2);
    font: var(--ifinsta-guest-meta);
    color: var(--ifinsta-guest-text-secondary);
}

.pricing-trust-badge__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: var(--ifinsta-radius-full);
    background: var(--ifinsta-success-50);
    color: var(--ifinsta-success);
}

.pricing-trust-badge__icon svg {
    width: 14px;
    height: 14px;
}

.pricing-trust-badge__divider {
    width: 1px;
    height: 1rem;
    background: var(--ifinsta-border);
}

/* ── Hero Subtitle ────────────────────────────────────────────────────── */
.pricing-hero-subtitle {
    max-width: 52ch;
    margin: var(--ifinsta-space-5) 0 0;
    color: var(--ifinsta-guest-text-secondary);
    font: var(--ifinsta-guest-lead);
}

/* ── Billing Toggle ───────────────────────────────────────────────────── */
.pricing-billing-toggle-container {
    display: flex;
    margin-top: var(--ifinsta-space-10);
}

.pricing-billing-toggle {
    display: inline-flex;
    background: var(--ifinsta-bg);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-full);
    padding: 4px;
}

.pricing-billing-toggle__btn {
    position: relative;
    padding: var(--ifinsta-space-2) var(--ifinsta-space-6);
    border: none;
    background: transparent;
    border-radius: var(--ifinsta-radius-full);
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--ifinsta-text-secondary);
    cursor: pointer;
    transition: all 0.15s ease;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pricing-billing-toggle__btn:hover {
    color: var(--ifinsta-text);
}

.pricing-billing-toggle__btn.is-active {
    color: var(--ifinsta-white);
    background: var(--ifinsta-primary);
}

.pricing-billing-toggle__savings {
    background: var(--ifinsta-success);
    color: var(--ifinsta-white);
    font: var(--ifinsta-text-code-sm);
    padding: 2px 6px;
    border-radius: var(--ifinsta-radius-sm);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

/* ── AI Spotlight ─────────────────────────────────────────────────────── */
.pricing-ai-spotlight-wrapper {
    padding: var(--ifinsta-space-10) 0 var(--ifinsta-space-8);
    border-bottom: 1px solid var(--ifinsta-border);
}

.pricing-ai-spotlight {
    max-width: 42rem;
    margin: 0 auto;
    border: 1px solid var(--ifinsta-border);
    background: var(--ifinsta-bg);
    border-radius: var(--ifinsta-radius-sm);
    padding: var(--ifinsta-space-6) var(--ifinsta-space-8);
    text-align: left;
}

.pricing-ai-spotlight__header {
    display: flex;
    align-items: center;
    gap: var(--ifinsta-space-3);
    margin-bottom: var(--ifinsta-space-4);
}

.pricing-ai-spotlight__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: var(--ifinsta-radius-md);
    background: var(--ifinsta-primary-alpha-08);
    color: var(--ifinsta-primary);
    flex-shrink: 0;
}

.pricing-ai-spotlight__icon svg {
    width: 20px;
    height: 20px;
}

.pricing-ai-spotlight__label {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    color: var(--ifinsta-primary);
    text-transform: uppercase;
}

.pricing-ai-spotlight__title {
    margin: 0 0 var(--ifinsta-space-2);
    font-size: 1rem;
    font-weight: 600;
    color: var(--ifinsta-text);
}

.pricing-ai-spotlight__text {
    margin: 0 0 var(--ifinsta-space-5);
    color: var(--ifinsta-text-secondary);
    line-height: 1.6;
    font-size: 0.875rem;
}

.pricing-ai-spotlight__capabilities {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--ifinsta-space-4);
}

.pricing-ai-spotlight__capability {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    color: var(--ifinsta-text);
    font-size: 0.875rem;
    line-height: 1.5;
}

.pricing-ai-spotlight__capability svg {
    color: var(--ifinsta-success);
    flex-shrink: 0;
    margin-top: 0.125rem;
}

/* ── Plans Section ────────────────────────────────────────────────────── */
.pricing-plans-section {
    padding: var(--ifinsta-space-12) var(--ifinsta-space-16);
}

/* ── Baseline ("Every plan includes") ────────────────────────────────── */
.pricing-baseline {
    padding: var(--ifinsta-space-12) var(--ifinsta-space-16);
    border-top: 1px solid var(--ifinsta-border);
    background: var(--ifinsta-bg-surface);
}

.pricing-baseline__title {
    text-align: center;
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--ifinsta-text);
    margin: 0 0 var(--ifinsta-space-8);
}

.pricing-baseline__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--ifinsta-space-4) var(--ifinsta-space-10);
    max-width: 640px;
    margin: 0 auto;
}

.pricing-baseline__item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 0.875rem;
    color: var(--ifinsta-text-secondary);
}

@media (min-width: 768px) {
    .pricing-baseline__grid {
        grid-template-columns: repeat(4, 1fr);
        max-width: none;
    }
}

.pricing-plans-container {
    display: flex;
    gap: var(--ifinsta-space-6);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-bottom: var(--ifinsta-space-4);
    scrollbar-width: thin;
    scrollbar-color: var(--ifinsta-gray-300) transparent;
}

.pricing-plans-container::-webkit-scrollbar {
    height: 6px;
}

.pricing-plans-container::-webkit-scrollbar-track {
    background: transparent;
}

.pricing-plans-container::-webkit-scrollbar-thumb {
    background: var(--ifinsta-gray-300);
    border-radius: 3px;
}

.pricing-plans-container>.pricing-plan-card {
    flex: 0 0 min(320px, 85vw);
    scroll-snap-align: center;
}

/* Desktop: switch to side-by-side grid so all plans are visible at a glance */
@media (min-width: 768px) {
    .pricing-plans-container {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
        overflow-x: visible;
        scroll-snap-type: none;
        padding-bottom: 0;
    }

    .pricing-plans-container::-webkit-scrollbar {
        display: none;
    }

    .pricing-plans-container>.pricing-plan-card {
        flex: none;
        scroll-snap-align: none;
    }
}

/* ── Plan Card ────────────────────────────────────────────────────────── */
.pricing-plan-card {
    background: var(--ifinsta-bg);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-lg);
    padding: var(--ifinsta-space-8);
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.pricing-plan-card:hover {
    border-color: var(--ifinsta-primary-alpha-30);
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
}

/* Highlighted plan — subtle accent, never dark */
.pricing-plan-card--dark {
    border-color: var(--ifinsta-primary);
    border-width: 2px;
    box-shadow: 0 2px 16px rgba(var(--ifinsta-primary-rgb, 37 99 235), 0.10);
    padding-top: calc(var(--ifinsta-space-8) - 1px);
}

.pricing-plan-card--dark:hover {
    border-color: var(--ifinsta-primary);
    box-shadow: 0 4px 24px rgba(var(--ifinsta-primary-rgb, 37 99 235), 0.15);
}

/* Badge — centered pill above the card content */
.pricing-plan-card__badge-wrapper {
    position: absolute;
    top: -0.75rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1;
}

.pricing-plan-card__badge {
    background: var(--ifinsta-primary);
    color: var(--ifinsta-white);
    font: var(--ifinsta-text-caption);
    font-weight: 600;
    padding: 0.25rem 0.875rem;
    border-radius: var(--ifinsta-radius-full);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    white-space: nowrap;
}

/* Icon */
.pricing-plan-card__header-top {
    margin-bottom: var(--ifinsta-space-5);
}

.pricing-plan-card__icon-wrapper {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: var(--ifinsta-radius-md);
    background: var(--ifinsta-primary-alpha-08);
    color: var(--ifinsta-primary);
    display: flex;
    align-items: center;
    justify-content: center;
}

.pricing-plan-card__icon-wrapper.is-dark {
    background: var(--ifinsta-primary-alpha-12);
    color: var(--ifinsta-primary);
}

.pricing-plan-card__icon {
    width: 1.25rem;
    height: 1.25rem;
}

/* Content */
.pricing-plan-card__content {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.pricing-plan-card__title {
    font-size: 1.25rem;
    font-weight: 600;
    margin: 0 0 var(--ifinsta-space-1);
    color: var(--ifinsta-text);
    line-height: 1.3;
}

.pricing-plan-card__desc {
    color: var(--ifinsta-text-secondary);
    font-size: 0.8125rem;
    margin-bottom: var(--ifinsta-space-6);
    line-height: 1.5;
}

/* Price */
.pricing-plan-card__price-container {
    margin-bottom: 0;
}

.pricing-plan-card__price-row {
    display: flex;
    align-items: baseline;
    gap: 0.25rem;
    margin-bottom: 0.25rem;
}

.pricing-plan-card__currency {
    font-size: 1rem;
    font-family: var(--ifinsta-font-mono);
    font-weight: 600;
    color: var(--ifinsta-text-secondary);
    font-variant-numeric: tabular-nums;
}

.pricing-plan-card__amount {
    font-size: 2.5rem;
    font-family: var(--ifinsta-font-mono);
    font-weight: 700;
    color: var(--ifinsta-text);
    line-height: 1;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
}

.pricing-plan-card__period {
    color: var(--ifinsta-text-muted);
    font-size: 0.8125rem;
}

.pricing-plan-card__numeric,
.pricing-plan-card__strikethrough,
.pricing-plan-card__discount-badge,
.pricing-plan-card__whatsapp-limit,
.pricing-plan-card__countdown,
.pricing-plan-card__cta--disabled {
    font-family: var(--ifinsta-font-mono);
    font-variant-numeric: tabular-nums;
}


/* Divider */
.pricing-plan-card__divider {
    height: 1px;
    background: var(--ifinsta-border-light);
    margin: var(--ifinsta-space-6) 0;
    width: 100%;
}


/* Features */
.pricing-plan-card__features {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--ifinsta-space-8);
    flex-grow: 1;
}

.pricing-plan-card__feature-item {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: var(--ifinsta-space-4);
    font-size: 0.875rem;
    color: var(--ifinsta-text-secondary);
    line-height: 1.5;
}

.pricing-feature-check {
    color: var(--ifinsta-success);
    flex-shrink: 0;
    margin-top: 0.125rem;
}

/* Expand / Show-more toggle */
.pricing-plan-card__expand-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--ifinsta-primary);
    background: none;
    border: none;
    padding: var(--ifinsta-space-2) 0;
    cursor: pointer;
    transition: color 0.15s ease;
    margin-bottom: var(--ifinsta-space-6);
}

.pricing-plan-card__expand-btn:hover {
    color: var(--ifinsta-primary-hover);
}


.pricing-plan-card__expand-icon {
    transition: transform 0.2s ease;
}

.pricing-plan-card__expand-icon.is-flipped {
    transform: rotate(180deg);
}

/* Footer / CTA */
.pricing-plan-card__footer {
    margin-top: auto;
}

.pricing-plan-card__cta {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    padding: 0.75rem var(--ifinsta-space-5);
    background: transparent;
    color: var(--ifinsta-guest-text);
    font-weight: 600;
    font-size: 0.875rem;
    border-radius: var(--ifinsta-radius-md);
    text-decoration: none;
    transition: var(--ifinsta-btn-transition);
    border: var(--ifinsta-border-width) solid transparent;
    cursor: pointer;
}

.pricing-plan-card__cta--primary {
    border-color: var(--ifinsta-primary);
    background: var(--ifinsta-primary);
    color: var(--ifinsta-white);
}

.pricing-plan-card__cta--primary:hover {
    border-color: var(--ifinsta-primary-hover);
    background: var(--ifinsta-primary-hover);
    color: var(--ifinsta-white);
}

.pricing-plan-card__cta--secondary {
    border-color: var(--ifinsta-border);
    background: transparent;
    color: var(--ifinsta-guest-text);
}

.pricing-plan-card__cta--secondary:hover {
    border-color: var(--ifinsta-guest-text);
    color: var(--ifinsta-guest-text);
}

.pricing-plan-card__cta:active {
    transform: scale(0.98);
}


.pricing-plan-card__trial-text {
    text-align: center;
    font-size: 0.75rem;
    color: var(--ifinsta-text-muted);
    margin-top: var(--ifinsta-space-3);
}

.pricing-plan-card__trial-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--ifinsta-primary-700);
    background: var(--ifinsta-primary-50);
    border: 1px solid var(--ifinsta-primary-100);
    margin-top: var(--ifinsta-space-3);
}

.pricing-plan-card__trial-icon {
    margin-inline-end: var(--ifinsta-space-1);
    vertical-align: middle;
}

.pricing-plan-card--empty {
    grid-column: 1 / -1;
    text-align: center;
}


/* ── Availability Windows (Psychological Pricing) ─────────────────────── */

.pricing-plan-card--unavailable {
    opacity: 0.72;
    filter: saturate(0.85);
}

.pricing-plan-card--unavailable:hover {
    opacity: 0.85;
    filter: saturate(0.9);
}

.pricing-plan-card__availability-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    border-radius: 999px;
    font: var(--ifinsta-text-caption);
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    margin-bottom: var(--ifinsta-space-3);
}

.pricing-plan-card__availability-badge.is-available {
    background: var(--ifinsta-success-50);
    color: var(--ifinsta-success);
}

.pricing-plan-card__availability-badge.is-limited {
    background: var(--ifinsta-warning-50);
    color: var(--ifinsta-warning);
}

.pricing-plan-card--dark .pricing-plan-card__availability-badge.is-available {
    background: rgba(16, 185, 129, 0.2);
    color: var(--ifinsta-success);
}

.pricing-plan-card--dark .pricing-plan-card__availability-badge.is-limited {
    background: rgba(245, 158, 11, 0.2);
    color: var(--ifinsta-warning);
}

.pricing-plan-card__price-row--anchored {
    align-items: baseline;
}

.pricing-plan-card__strikethrough {
    text-decoration: line-through;
    color: var(--ifinsta-text-muted);
    font-size: 0.95rem;
    font-weight: 500;
    margin-right: 4px;
}

.pricing-plan-card--dark .pricing-plan-card__strikethrough {
    color: rgba(255, 255, 255, 0.45);
}

.pricing-plan-card__discount-badge {
    display: inline-flex;
    align-items: center;
    padding: 1px 7px;
    background: rgba(220, 38, 38, 0.1);
    border: 1px solid rgba(220, 38, 38, 0.25);
    border-radius: var(--ifinsta-radius-sm);
    color: var(--ifinsta-danger);
    font: var(--ifinsta-text-code-sm);
    font-weight: 700;
    letter-spacing: 0.01em;
    margin-right: 6px;
    white-space: nowrap;
}

.pricing-plan-card--dark .pricing-plan-card__discount-badge {
    background: rgba(252, 165, 165, 0.18);
    border-color: rgba(252, 165, 165, 0.3);
    color: var(--ifinsta-danger);
}

.pricing-plan-card__whatsapp-highlight {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: rgba(37, 211, 102, 0.08);
    border: 1px solid rgba(37, 211, 102, 0.18);
    border-radius: var(--ifinsta-radius-md);
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--ifinsta-success);
}

.pricing-plan-card--dark .pricing-plan-card__whatsapp-highlight {
    background: rgba(37, 211, 102, 0.1);
    border-color: rgba(37, 211, 102, 0.2);
    color: var(--ifinsta-success);
}

.pricing-whatsapp-icon {
    flex-shrink: 0;
    color: var(--ifinsta-success);
}

.pricing-plan-card--dark .pricing-whatsapp-icon {
    color: var(--ifinsta-success);
}

.pricing-plan-card__whatsapp-detail {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.pricing-plan-card__whatsapp-limit {
    font: var(--ifinsta-text-code-sm);
    font-weight: 400;
    opacity: 0.85;
}

.pricing-plan-card__countdown {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 6px 12px;
    margin: var(--ifinsta-space-3) 0;
    background: rgba(245, 158, 11, 0.08);
    border: 1px solid rgba(245, 158, 11, 0.2);
    border-radius: var(--ifinsta-radius-md);
    font: var(--ifinsta-text-code-sm);
    font-weight: 600;
    color: var(--ifinsta-warning);
    font-variant-numeric: tabular-nums;
}

.pricing-plan-card--dark .pricing-plan-card__countdown {
    background: rgba(245, 158, 11, 0.15);
    border-color: rgba(245, 158, 11, 0.3);
    color: var(--ifinsta-warning);
}

.pricing-plan-card__countdown svg {
    flex-shrink: 0;
    opacity: 0.8;
}

.pricing-plan-card__cta--disabled {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 24px;
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-lg);
    background: var(--ifinsta-bg-secondary);
    color: var(--ifinsta-text-muted);
    font-size: 0.875rem;
    font-weight: 600;
    cursor: not-allowed;
    pointer-events: none;
    text-decoration: none;
    width: 100%;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

.pricing-plan-card--dark .pricing-plan-card__cta--disabled {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.15);
    color: rgba(255, 255, 255, 0.5);
}

/* ── Plan Waitlist Form ──────────────────────────────────────────────── */
.pricing-waitlist {
    margin-top: var(--ifinsta-space-4);
    padding: var(--ifinsta-space-4);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-md);
    background: var(--ifinsta-bg-secondary);
}

.pricing-plan-card--dark .pricing-waitlist {
    background: rgba(255, 255, 255, 0.05);
    border-color: rgba(255, 255, 255, 0.12);
}

.pricing-waitlist__label {
    display: block;
    margin: 0 0 var(--ifinsta-space-2);
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--ifinsta-text-muted);
}

.pricing-waitlist__row {
    display: flex;
    gap: var(--ifinsta-space-2);
}

.pricing-waitlist__input {
    flex: 1;
    min-width: 0;
    padding: 9px 12px;
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-md);
    background: var(--ifinsta-bg);
    color: var(--ifinsta-text);
    font-size: 0.8125rem;
}

.pricing-plan-card--dark .pricing-waitlist__input {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.2);
    color: var(--ifinsta-text-inverse);
}

.pricing-waitlist__input::placeholder {
    color: var(--ifinsta-text-muted);
}

.pricing-waitlist__button {
    flex-shrink: 0;
    padding: 9px 16px;
    border: none;
    border-radius: var(--ifinsta-radius-md);
    background: var(--ifinsta-primary);
    color: var(--ifinsta-text-inverse);
    font-size: 0.8125rem;
    font-weight: 600;
    cursor: pointer;
}

.pricing-waitlist__button:disabled {
    opacity: 0.6;
    cursor: default;
}

.pricing-waitlist__status {
    display: block;
    margin-top: var(--ifinsta-space-2);
    font-size: 0.78rem;
    color: var(--ifinsta-primary);
}

/* ── Feature Comparison Table ─────────────────────────────────────────── */
.pricing-comparison {
    padding: var(--ifinsta-space-16) 0;
    border-top: 1px solid var(--ifinsta-border);
}

.pricing-comparison__title {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--ifinsta-text);
    margin: 0 0 var(--ifinsta-space-10);
    text-align: center;
}

.pricing-comparison__table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 calc(-1 * var(--ifinsta-space-4));
    padding: 0 var(--ifinsta-space-4);
}

.pricing-comparison__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
    min-width: 560px;
}

.pricing-comparison__label-col {
    text-align: left;
    padding: var(--ifinsta-space-3) var(--ifinsta-space-4);
    font-weight: 600;
    color: var(--ifinsta-text);
    position: sticky;
    left: 0;
    background: var(--ifinsta-bg-surface);
    z-index: 1;
    min-width: 180px;
}

.pricing-comparison__plan-col {
    text-align: center;
    padding: var(--ifinsta-space-3) var(--ifinsta-space-4);
    font-weight: 700;
    color: var(--ifinsta-text);
    white-space: nowrap;
}

.pricing-comparison__plan-col--highlighted {
    color: var(--ifinsta-primary);
}

.pricing-comparison__row--alt {
    background: var(--ifinsta-bg-subtle);
}

.pricing-comparison__label-cell {
    padding: var(--ifinsta-space-3) var(--ifinsta-space-4);
    color: var(--ifinsta-text-secondary);
    font-weight: 500;
    position: sticky;
    left: 0;
    background: inherit;
    z-index: 1;
}

.pricing-comparison__row--alt .pricing-comparison__label-cell {
    background: var(--ifinsta-bg-subtle);
}

.pricing-comparison__cell {
    text-align: center;
    padding: var(--ifinsta-space-3) var(--ifinsta-space-4);
    vertical-align: middle;
}

.pricing-comparison__cell--highlighted {
    background: rgba(var(--ifinsta-primary-rgb, 37 99 235), 0.04);
}

.pricing-comparison__row--alt .pricing-comparison__cell--highlighted {
    background: rgba(var(--ifinsta-primary-rgb, 37 99 235), 0.07);
}

.pricing-comparison__cell .pricing-feature-check {
    color: var(--ifinsta-primary);
}

.pricing-comparison__value {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--ifinsta-text);
    white-space: nowrap;
}

.pricing-comparison__empty {
    color: var(--ifinsta-text-muted);
    font-size: 1rem;
}

/* ── FAQ Section ──────────────────────────────────────────────────────── */
.pricing-faq {
    padding: var(--ifinsta-space-16) 0;
    border-top: 1px solid var(--ifinsta-border);
}

.pricing-faq__title {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--ifinsta-text);
    margin: 0 0 var(--ifinsta-space-10);
    text-align: center;
}

.pricing-faq__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--ifinsta-space-6);
}

.pricing-faq__item {
    padding: var(--ifinsta-space-6);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-sm);
    background: var(--ifinsta-bg);
    transition: border-color 0.15s ease;
}

.pricing-faq__item:hover {
    border-color: var(--ifinsta-primary-alpha-20);
}

.pricing-faq__question {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--ifinsta-space-3);
    width: 100%;
    padding: 0;
    background: none;
    border: none;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--ifinsta-text);
    text-align: left;
    cursor: pointer;
    line-height: 1.4;
    transition: color 0.15s ease;
}

.pricing-faq__question:hover {
    color: var(--ifinsta-primary);
}

.pricing-faq__chevron {
    flex-shrink: 0;
    margin-top: 0.125rem;
    color: var(--ifinsta-text-muted);
    transition: transform 0.2s ease;
}

.pricing-faq__chevron.is-open {
    transform: rotate(180deg);
}

.pricing-faq__answer {
    overflow: hidden;
}

.pricing-faq__answer p {
    color: var(--ifinsta-text-secondary);
    line-height: 1.6;
    margin: 0;
    font-size: 0.875rem;
}

/* ── Responsive ───────────────────────────────────────────────────────── */
@media (min-width: 1024px) {
    .ifinsta-pricing-page .ifinsta-start-hero {
        padding-top: var(--ifinsta-space-20);
    }

    .pricing-plans-container>.pricing-plan-card {
        flex: 0 0 320px;
    }
}

@media (max-width: 768px) {
    .pricing-comparison__table-wrap {
        margin-inline: 0;
        padding-inline: 0;
    }

    .ifinsta-pricing-page .ifinsta-start-hero {
        padding: var(--ifinsta-space-12) 0 var(--ifinsta-space-8);
    }

    .ifinsta-pricing-page .ifinsta-start-hero h1 {
        font-size: 2rem;
    }

    .pricing-plans-section {
        padding: var(--ifinsta-space-8) 0 var(--ifinsta-space-12);
    }

    .pricing-ai-spotlight {
        padding: var(--ifinsta-space-5) var(--ifinsta-space-6);
    }

    .pricing-ai-spotlight__capabilities {
        grid-template-columns: 1fr;
        gap: var(--ifinsta-space-3);
    }

    .pricing-faq {
        padding: var(--ifinsta-space-12) 0;
    }

    .pricing-faq__grid {
        grid-template-columns: 1fr;
    }

    .pricing-plan-card {
        padding: var(--ifinsta-space-6);
    }

    .pricing-plan-card__amount {
        font-size: 2rem;
    }
}

@media (max-width: 640px) {
    .pricing-trust-badges {
        gap: var(--ifinsta-space-5);
    }

    .pricing-plan-card {
        padding: var(--ifinsta-space-5);
    }

    .pricing-plan-card__amount {
        font-size: 1.75rem;
    }

    .pricing-plan-card__countdown {
        font-size: 0.75rem;
        padding: 5px 8px;
    }

    .pricing-plan-card__strikethrough {
        font-size: 0.85rem;
    }

    .pricing-plan-card__cta--disabled {
        font-size: 0.8rem;
        padding: 10px 16px;
    }

    .pricing-faq__item {
        padding: var(--ifinsta-space-5);
    }
}

@media (max-width: 480px) {
    .ifinsta-pricing-page .ifinsta-start-hero h1 {
        font-size: 1.75rem;
    }


    .pricing-plan-card__amount {
        font-size: 1.5rem;
    }

    .pricing-plan-card__feature-item {
        font-size: 0.8125rem;
    }
}


/**
 * ifinsta POS downloads page
 * Public surface, token-based, no box shadows.
 */


/* ============================================================================
   9. DOWNLOADS
   /downloads/
   ============================================================================ */
.downloads-shell {
    color: var(--ifinsta-guest-text);
}

.downloads-main {
    width: min(var(--ifinsta-guest-max-width), calc(100% - var(--ifinsta-guest-gutter)));
    margin-inline: auto;
}

.downloads-main {
    padding: var(--ifinsta-space-12) 0 var(--ifinsta-space-16);
}

.downloads-hero {
    padding-block: var(--ifinsta-guest-section-y);
}

.downloads-hero__eyebrow {
    margin: 0 0 var(--ifinsta-space-4);
    color: var(--ifinsta-primary);
    font: var(--ifinsta-guest-eyebrow);
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.downloads-hero__title {
    margin: 0;
    max-width: 20ch;
    color: var(--ifinsta-guest-text);
    font: var(--ifinsta-guest-display);
}

.downloads-hero__copy {
    margin: var(--ifinsta-space-5) 0 0;
    max-width: 52ch;
    color: var(--ifinsta-guest-text-secondary);
    font: var(--ifinsta-guest-lead);
}

.downloads-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ifinsta-space-3);
    margin-top: var(--ifinsta-space-8);
}

/* Platform chooser and release panel follow the compact download-manager
   composition: vertical OS navigation beside the selected release. */
.downloads-platform-layout {
    display: grid;
    grid-template-columns: minmax(12rem, 15rem) minmax(0, 1fr);
    gap: var(--ifinsta-space-12);
    align-items: start;
    margin-top: var(--ifinsta-space-8);
}

.downloads-platform-layout .ifinsta-guest-tabs__list {
    display: grid;
    gap: var(--ifinsta-space-2);
    border: 0;
    overflow: visible;
}

.downloads-platform-layout .ifinsta-guest-tabs__tab {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--ifinsta-space-3);
    width: 100%;
    margin: 0;
    padding: var(--ifinsta-space-3) var(--ifinsta-space-4);
    border: 1px solid transparent;
    border-radius: var(--ifinsta-radius-md);
    color: var(--ifinsta-guest-text-muted);
}

.downloads-platform-layout .ifinsta-guest-tabs__tab:hover {
    border-color: var(--ifinsta-border);
    background: var(--ifinsta-guest-bg-subtle);
    color: var(--ifinsta-guest-text);
}

.downloads-platform-layout .ifinsta-guest-tabs__tab--active,
.downloads-platform-layout .ifinsta-guest-tabs__tab--active:hover {
    border-color: var(--ifinsta-guest-text);
    background: var(--ifinsta-guest-text);
    color: var(--ifinsta-bg);
}

.downloads-platform-layout .ifinsta-guest-tabs__label {
    font: var(--ifinsta-text-label);
}

.downloads-platform-tab__icon {
    font-size: var(--ifinsta-text-lg);
}

.downloads-platform-layout .ifinsta-guest-tabs__here {
    display: none;
}

.downloads-products {
    min-width: 0;
}

.downloads-product[hidden] {
    display: none;
}

.downloads-product {
    min-width: 0;
}

.downloads-product h2,
.downloads-control h2 {
    margin: 0;
    color: var(--ifinsta-text);
}

.downloads-product h2 {
    font: var(--ifinsta-text-h2);
}

.downloads-product__badge,
.downloads-product__ribbon {
    flex: 0 0 auto;
    padding: var(--ifinsta-space-1) var(--ifinsta-space-3);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-full);
    background: transparent;
    color: var(--ifinsta-guest-text-secondary);
    font: var(--ifinsta-guest-eyebrow);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    white-space: nowrap;
}

.downloads-product__badge--verified {
    border-color: var(--ifinsta-success-600);
    color: var(--ifinsta-success-600);
}

.downloads-release-card {
    overflow: hidden;
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-lg);
    background: var(--ifinsta-guest-bg-subtle);
}

.downloads-release-card__header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(13rem, auto);
    gap: var(--ifinsta-space-8);
    padding: var(--ifinsta-space-7);
}

.downloads-release-card__identity {
    min-width: 0;
}

.downloads-release-card__title-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--ifinsta-space-3);
}

.downloads-release-card__version {
    padding: var(--ifinsta-space-1) var(--ifinsta-space-2);
    border-radius: var(--ifinsta-radius-sm);
    background: var(--ifinsta-surface-2);
    color: var(--ifinsta-text-secondary);
    font: var(--ifinsta-text-code-sm);
}

.downloads-release-card__identity>p {
    margin: var(--ifinsta-space-2) 0 0;
    color: var(--ifinsta-text-secondary);
    font: var(--ifinsta-text-body-sm);
}

.downloads-release-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ifinsta-space-4);
    margin-top: var(--ifinsta-space-3);
    color: var(--ifinsta-text-muted);
    font: var(--ifinsta-text-caption);
}

.downloads-release-card__meta span {
    display: inline-flex;
    align-items: center;
    gap: var(--ifinsta-space-1);
}

.downloads-release-card__meta .material-symbols-outlined {
    font-size: var(--ifinsta-text-base);
}

.downloads-release-card__download {
    min-width: 0;
    text-align: right;
}

.downloads-release-card__download .downloads-button,
.downloads-release-card__download .downloads-file {
    margin-right: 0;
    margin-left: 0;
}

.downloads-release-card__download .downloads-button {
    width: 100%;
    min-height: 3rem;
    background: var(--ifinsta-guest-text);
    border-color: var(--ifinsta-guest-text);
    color: var(--ifinsta-bg);
}

.downloads-release-card__download .downloads-button:hover {
    background: var(--ifinsta-text-secondary);
    border-color: var(--ifinsta-text-secondary);
    color: var(--ifinsta-bg);
}

.downloads-release-card__download .downloads-file {
    margin: var(--ifinsta-space-2) 0 0;
    text-align: right;
}

.downloads-release-card__notes {
    margin: 0 var(--ifinsta-space-7);
    padding: var(--ifinsta-space-6) 0 var(--ifinsta-space-7);
    border-top: 1px solid var(--ifinsta-border);
}

.downloads-release-card__notes h3 {
    margin: 0;
    color: var(--ifinsta-text);
    font: var(--ifinsta-text-h3);
}

.downloads-release-card__notes p {
    margin: var(--ifinsta-space-4) 0 0;
    color: var(--ifinsta-text-secondary);
    font: var(--ifinsta-text-body-sm);
    line-height: var(--ifinsta-leading-relaxed);
}

.downloads-preview {
    margin: 0 var(--ifinsta-space-6);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-sm);
    background: transparent;
}

.downloads-preview--desktop {
    padding: var(--ifinsta-space-4);
}

.downloads-preview--desktop img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-sm);
}

.downloads-preview--phone {
    display: flex;
    justify-content: center;
    padding: var(--ifinsta-space-4);
    background: var(--ifinsta-primary-alpha-15);
}

/* Android two-image layout */
.downloads-preview--android {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--ifinsta-space-3);
    padding: var(--ifinsta-space-4);
    align-items: end;
}

.downloads-android-img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: var(--ifinsta-radius-sm);
    object-fit: cover;
}

.downloads-android-img--device {
    aspect-ratio: 9 / 16;
    object-position: top;
}

.downloads-android-img--dashboard {
    aspect-ratio: 9 / 16;
    object-position: top;
}


.downloads-phone {
    width: 6.5rem;
    padding: var(--ifinsta-space-1);
    border: 3px solid var(--ifinsta-text);
    border-radius: var(--ifinsta-radius-lg);
    background: var(--ifinsta-bg);
}

.downloads-phone__bar {
    width: 2rem;
    height: var(--ifinsta-space-1);
    margin: 0 auto var(--ifinsta-space-1);
    border-radius: var(--ifinsta-radius-full);
    background: var(--ifinsta-border);
}

.downloads-phone__screen {
    display: grid;
    gap: var(--ifinsta-space-1);
    font: var(--ifinsta-text-caption);
}

.downloads-phone__row,
.downloads-phone__total {
    display: flex;
    justify-content: space-between;
    gap: var(--ifinsta-space-1);
}

.downloads-phone__total {
    padding-top: var(--ifinsta-space-1);
    border-top: 1px solid var(--ifinsta-border);
}

.downloads-phone__charge {
    border-radius: var(--ifinsta-radius-full);
    background: var(--ifinsta-success);
    color: var(--ifinsta-white);
    text-align: center;
    font: var(--ifinsta-text-caption);
}

.downloads-phone__keys {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--ifinsta-space-1);
}

.downloads-phone__keys span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 1.1rem;
    border-radius: var(--ifinsta-radius-full);
    background: var(--ifinsta-success-alpha-10);
}

.downloads-feature-list,
.downloads-requirements,
.downloads-notify,
.downloads-details {
    margin: 0;
}

.downloads-product__details {
    margin-top: var(--ifinsta-space-8);
}

.downloads-product__details-title {
    margin: 0 0 var(--ifinsta-space-4);
    color: var(--ifinsta-text);
    font: var(--ifinsta-text-h3);
}

.downloads-product__details-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--ifinsta-space-4);
}

.downloads-product__details-grid--single {
    grid-template-columns: minmax(0, 1fr);
}

.downloads-feature-list,
.downloads-requirements {
    min-width: 0;
    padding: var(--ifinsta-space-5);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-md);
    background: var(--ifinsta-surface-card);
}

.downloads-feature-list p {
    margin: 0 0 var(--ifinsta-space-2);
    color: var(--ifinsta-text-muted);
    font: var(--ifinsta-text-overline);
    text-transform: uppercase;
}

.downloads-feature-list ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--ifinsta-space-1) var(--ifinsta-space-5);
    margin: 0;
    padding: 0;
    list-style: none;
    color: var(--ifinsta-text-secondary);
    font: var(--ifinsta-text-caption);
}

.downloads-feature-list li::before,
.downloads-requirements li::before {
    content: "";
    display: inline-block;
    width: var(--ifinsta-space-1);
    height: var(--ifinsta-space-2);
    margin-right: var(--ifinsta-space-1);
    border-right: 1px solid var(--ifinsta-primary);
    border-bottom: 1px solid var(--ifinsta-primary);
    transform: rotate(45deg);
}

.downloads-requirements {
    border-top: 1px solid var(--ifinsta-border);
}

.downloads-requirements h3 {
    margin: 0 0 var(--ifinsta-space-3);
    color: var(--ifinsta-text);
    font: var(--ifinsta-text-h3);
}

.downloads-requirements ul {
    display: grid;
    gap: var(--ifinsta-space-1);
    margin: 0;
    padding: 0;
    list-style: none;
    color: var(--ifinsta-text-secondary);
    font: var(--ifinsta-text-body-sm);
}

.downloads-requirements p {
    margin: var(--ifinsta-space-3) 0 0;
    color: var(--ifinsta-text-muted);
    font: var(--ifinsta-text-caption);
    font-style: italic;
}

.downloads-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--ifinsta-space-2);
    min-height: 3.25rem;
    padding-inline: var(--ifinsta-space-8);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-md);
    background: transparent;
    color: var(--ifinsta-guest-text);
    font: var(--ifinsta-guest-body);
    font-weight: var(--ifinsta-font-semibold);
    text-decoration: none;
}

.downloads-button--primary {
    border-color: var(--ifinsta-primary);
    background: var(--ifinsta-primary);
    color: var(--ifinsta-white);
}

.downloads-button:hover {
    border-color: var(--ifinsta-primary);
    color: var(--ifinsta-primary);
}

.downloads-button--primary:hover {
    background: var(--ifinsta-primary-hover);
    color: var(--ifinsta-white);
}

.downloads-button[aria-disabled="true"] {
    pointer-events: none;
    color: var(--ifinsta-text-muted);
}

.downloads-file {
    color: var(--ifinsta-text-muted);
    font: var(--ifinsta-text-caption);
    overflow-wrap: anywhere;
}

.downloads-product__utilities {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--ifinsta-space-4);
    margin-top: var(--ifinsta-space-4);
}

.downloads-product__utilities .downloads-details,
.downloads-product__utilities .downloads-notify {
    min-width: 0;
    padding: var(--ifinsta-space-5);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-md);
    background: var(--ifinsta-surface-card);
}

.downloads-notify {
    display: grid;
    gap: var(--ifinsta-space-2);
}

.downloads-notify label {
    color: var(--ifinsta-text-secondary);
    font: var(--ifinsta-text-caption);
}

.downloads-notify div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--ifinsta-space-2);
}

.downloads-notify input,
.downloads-notify button {
    min-height: 2rem;
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-sm);
    font: var(--ifinsta-text-label);
}

.downloads-notify input {
    padding: 0 var(--ifinsta-space-3);
    background: transparent;
    color: var(--ifinsta-text);
}

.downloads-notify button {
    padding: 0 var(--ifinsta-space-3);
    background: var(--ifinsta-primary);
    color: var(--ifinsta-white);
}

.downloads-details {
    color: var(--ifinsta-primary);
    font: var(--ifinsta-text-body-sm);
    text-align: left;
}

.downloads-details summary {
    cursor: pointer;
    color: var(--ifinsta-text);
    font: var(--ifinsta-text-label);
}

.downloads-details code {
    display: block;
    margin-top: var(--ifinsta-space-3);
    padding: var(--ifinsta-space-3);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-sm);
    background: var(--ifinsta-bg-secondary);
    color: var(--ifinsta-text-secondary);
    font: var(--ifinsta-text-code-sm);
    overflow-wrap: anywhere;
    text-align: left;
}

.downloads-control {
    margin-top: var(--ifinsta-space-16);
}

.downloads-control h2 {
    font: var(--ifinsta-text-h1);
}

.downloads-control>p {
    margin: var(--ifinsta-space-2) 0 var(--ifinsta-space-6);
    color: var(--ifinsta-text-secondary);
    font: var(--ifinsta-text-body);
}

.downloads-control__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-md);
    background: transparent;
    overflow: hidden;
}

.downloads-control__grid article {
    padding: var(--ifinsta-space-6);
    border-right: 1px solid var(--ifinsta-border);
}

.downloads-control__grid article:last-child {
    border-right: 0;
}

.downloads-control__grid span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: var(--ifinsta-radius-sm);
    background: var(--ifinsta-primary-alpha-08);
    color: var(--ifinsta-primary);
    font: var(--ifinsta-text-h3);
}

.downloads-control__grid h3 {
    margin: var(--ifinsta-space-4) 0 var(--ifinsta-space-3);
    color: var(--ifinsta-text);
    font: var(--ifinsta-text-h3);
}

.downloads-control__grid p {
    margin: 0;
    color: var(--ifinsta-text-secondary);
    font: var(--ifinsta-text-body-sm);
}

.downloads-security {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--ifinsta-space-4);
    margin-top: var(--ifinsta-space-16);
    padding: var(--ifinsta-space-6);
    border: 1px solid var(--ifinsta-border);
    background: transparent;
}

.downloads-security span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--ifinsta-space-2);
    color: var(--ifinsta-text);
    font: var(--ifinsta-text-label);
}

.downloads-security span::before {
    content: "";
    width: var(--ifinsta-space-3);
    height: var(--ifinsta-space-3);
    border: 1px solid var(--ifinsta-primary);
    border-radius: var(--ifinsta-radius-sm);
}

.downloads-whitepaper {
    margin-top: var(--ifinsta-space-10);
    text-align: center;
}

.downloads-whitepaper a {
    color: var(--ifinsta-primary);
    font: var(--ifinsta-text-label);
    text-decoration: none;
}

.downloads-whitepaper p {
    margin: var(--ifinsta-space-1) 0 0;
    color: var(--ifinsta-text-muted);
    font: var(--ifinsta-text-caption);
}

@media (max-width: 920px) {

    .downloads-platform-layout {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--ifinsta-space-6);
    }

    .downloads-platform-layout .ifinsta-guest-tabs__list {
        display: flex;
        overflow-x: auto;
    }

    .downloads-platform-layout .ifinsta-guest-tabs__tab {
        width: auto;
        min-width: 10rem;
    }

    .downloads-products,
    .downloads-control__grid {
        grid-template-columns: 1fr;
    }

    .downloads-control__grid article,
    .downloads-control__grid article:last-child {
        border-right: 0;
        border-bottom: 1px solid var(--ifinsta-border);
    }

    .downloads-control__grid article:last-child {
        border-bottom: 0;
    }

    .downloads-security {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .downloads-main {
        width: min(100% - var(--ifinsta-space-4), 67rem);
    }

    .downloads-main {
        padding-top: var(--ifinsta-space-8);
    }

    .downloads-product__top {
        flex-direction: column;
    }

    .downloads-release-card__header,
    .downloads-product__details-grid,
    .downloads-product__utilities {
        grid-template-columns: minmax(0, 1fr);
    }

    .downloads-release-card__download,
    .downloads-release-card__download .downloads-file {
        text-align: left;
    }

    .downloads-hero__actions {
        align-items: stretch;
        flex-direction: column;
    }

}


/* Support Page - Premium Compact Design */

/* Support pulse animation for eyebrow */
@keyframes support-pulse {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.5;
    }
}


/* ============================================================================
   10. SUPPORT
   /support/ — rules scoped to .support-page
   ============================================================================ */
.support-page .support-hero__eyebrow-pulse::before {
    content: '';
    width: 6px;
    height: 6px;
    background: var(--ifinsta-success);
    border-radius: 50%;
    animation: support-pulse 2s infinite;
}

/* Support Cards */


.support-page .support-grid {
    padding: 3rem 0;
    background: var(--ifinsta-guest-bg);
}

.support-page .support-grid__layout {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    max-width: 900px;
    margin: 0 auto;
}

.support-page .support-card {
    background: var(--ifinsta-guest-bg-subtle);
    border: 1px solid var(--ifinsta-border);
    border-radius: 8px;
    padding: 2rem;
    text-align: center;
    transition: border-color 0.15s ease;
}

.support-page .support-card:hover {
    border-color: var(--ifinsta-guest-border-strong);
}

.support-page .support-card__icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1rem;
    background: var(--ifinsta-guest-bg);
    border: 1px solid var(--ifinsta-border);
    border-radius: 8px;
    color: var(--ifinsta-guest-accent);
}

.support-page .support-card__icon--whatsapp {
    background: var(--ifinsta-success-500);
    border-color: var(--ifinsta-success-500);
    color: white;
}

.support-page .support-card__title {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--ifinsta-guest-text);
    margin-bottom: 0.5rem;
}

.support-page .support-card__desc {
    font-size: 0.875rem;
    color: var(--ifinsta-guest-text-secondary);
    margin-bottom: 1.5rem;
    line-height: 1.5;
}

.support-page .support-card__action {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--ifinsta-guest-accent);
    transition: gap 0.15s ease;
}

.support-page .support-card__action:hover {
    gap: 0.75rem;
}

/* FAQ Section */


.support-page .support-faq {
    padding: 4rem 0;
    background: var(--ifinsta-guest-bg-subtle);
    border-top: 1px solid var(--ifinsta-border);
}

.support-page .support-faq__title {
    font-size: 1.5rem;
    font-weight: 600;
    text-align: center;
    color: var(--ifinsta-guest-text);
    margin-bottom: 2rem;
    letter-spacing: -0.01em;
}

.support-page .support-faq__list {
    max-width: 700px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.support-page .support-faq__item {
    background: var(--ifinsta-guest-bg);
    border: 1px solid var(--ifinsta-border);
    border-radius: 6px;
    overflow: hidden;
}

.support-page .support-faq__header {
    padding: 1rem 1.25rem;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: 500;
    color: var(--ifinsta-guest-text);
    font-size: 0.9375rem;
    list-style: none;
}

.support-page .support-faq__header::-webkit-details-marker {
    display: none;
}

.support-page .support-faq__icon {
    width: 20px;
    height: 20px;
    position: relative;
    color: var(--ifinsta-guest-text-muted);
}

.support-page .support-faq__icon::before,
.support-page .support-faq__icon::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 10px;
    height: 2px;
    background: currentColor;
    transform: translate(-50%, -50%);
}

.support-page .support-faq__icon::after {
    transform: translate(-50%, -50%) rotate(90deg);
}

.support-page .support-faq__item[open] .support-faq__icon::after {
    display: none;
}

.support-page .support-faq__body {
    padding: 0 1.25rem 1.25rem;
    font-size: 0.875rem;
    color: var(--ifinsta-guest-text-secondary);
    line-height: 1.6;
}

/* Responsive */
@media (max-width: 768px) {
    .support-page .support-grid__layout {
        grid-template-columns: 1fr;
    }
}



/* ============================================================================
   11. CONTACT
   /contact/
   ============================================================================ */
.contact-shell {
    padding: 4rem 0 5rem;
    background:
        radial-gradient(circle at top left, rgba(34, 197, 94, 0.08), transparent 35%),
        linear-gradient(180deg, var(--ifinsta-guest-bg) 0%, var(--ifinsta-guest-bg-subtle) 100%);
}

.contact-grid {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.9fr);
}

.contact-panel {
    background: var(--ifinsta-guest-bg-subtle);
    border: 1px solid var(--ifinsta-border);
    border-radius: 16px;
    padding: 2rem;
}

.contact-list {
    display: grid;
    gap: 1rem;
}

.contact-item {
    padding: 1rem 1.125rem;
    border: 1px solid var(--ifinsta-border);
    border-radius: 12px;
    background: var(--ifinsta-guest-bg);
}

.contact-item__label {
    display: block;
    margin-bottom: 0.25rem;
    font-size: 0.8rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--ifinsta-guest-text-muted);
}

.contact-item__value {
    font-size: 1rem;
    font-weight: 600;
    color: var(--ifinsta-guest-text);
}

.contact-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.875rem;
    margin-top: 1.5rem;
}

.contact-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.9rem 1.2rem;
    border-radius: 999px;
    font-weight: 600;
}

.contact-btn--primary {
    background: var(--ifinsta-guest-accent);
    color: var(--ifinsta-text-inverse);
}

.contact-btn--secondary {
    border: 1px solid var(--ifinsta-border);
    color: var(--ifinsta-guest-text);
}

.contact-note {
    margin-top: 1.5rem;
    padding: 1rem 1.125rem;
    border-radius: 12px;
    background: rgba(15, 23, 42, 0.04);
    color: var(--ifinsta-guest-text-secondary);
}

@media (max-width: 768px) {
    .contact-grid {
        grid-template-columns: 1fr;
    }
}


/* Legal Pages - Premium Compact Design */


/* ============================================================================
   12. LEGAL
   /terms/ and /privacy/ share this section
   ============================================================================ */
.legal-page {
    padding-block: var(--ifinsta-guest-section-y);
    background: transparent;
}

.legal-layout {
    display: grid;
    grid-template-columns: 15rem minmax(0, 1fr);
    gap: var(--ifinsta-space-12);
    width: min(var(--ifinsta-guest-max-width), calc(100% - var(--ifinsta-guest-gutter)));
    margin-inline: auto;
}

.legal-sidebar {
    position: sticky;
    top: calc(var(--ifinsta-guest-header-height) + 2rem);
    height: fit-content;
}

.legal-sidebar__title {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--ifinsta-guest-text-muted);
    margin-bottom: 1rem;
}

.legal-sidebar__nav {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.legal-sidebar__nav a {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--ifinsta-guest-text-secondary);
    padding: 0.5rem 0.75rem;
    border-radius: 4px;
    transition: all 0.15s ease;
}

.legal-sidebar__nav a:hover {
    color: var(--ifinsta-guest-text);
    background: var(--ifinsta-guest-bg-subtle);
}

.legal-sidebar__nav a.active {
    color: var(--ifinsta-guest-accent);
    background: rgba(37, 99, 235, 0.08);
}

.legal-content {
    max-width: var(--ifinsta-guest-measure);
    font: var(--ifinsta-guest-body);
    color: var(--ifinsta-guest-text-secondary);
}

.legal-header {
    margin-bottom: 2rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid var(--ifinsta-border);
}

.legal-header__title {
    margin: 0 0 var(--ifinsta-space-2);
    font: var(--ifinsta-guest-h1);
    color: var(--ifinsta-guest-text);
}

.legal-header__updated {
    font-size: 0.875rem;
    color: var(--ifinsta-guest-text-muted);
}

.legal-section {
    margin-bottom: 2.5rem;
}

.legal-section__title {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--ifinsta-guest-text);
    margin-bottom: 1rem;
}

.legal-section__text {
    font-size: 0.9375rem;
    color: var(--ifinsta-guest-text-secondary);
    line-height: 1.7;
    margin-bottom: 1rem;
}

.legal-section__list {
    list-style: none;
    padding: 0;
    margin: 0 0 1rem;
}

.legal-section__list li {
    font-size: 0.9375rem;
    color: var(--ifinsta-guest-text-secondary);
    line-height: 1.7;
    padding: 0.375rem 0;
    padding-left: 1.25rem;
    position: relative;
}

.legal-section__list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.75rem;
    width: 6px;
    height: 6px;
    background: var(--ifinsta-guest-border-strong);
    border-radius: 50%;
}

/* Responsive */
@media (max-width: 768px) {
    .legal-layout {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .legal-sidebar {
        position: static;
        order: -1;
    }

    .legal-sidebar__nav {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .legal-sidebar__nav a {
        flex: 1 1 auto;
        text-align: center;
        min-width: 140px;
        white-space: nowrap;
    }

    .legal-header__title {
        font-size: 1.5rem;
    }
}


/* ==========================================================================
   Public tourist-facing booking storefront (clients/web/templates/booking/store/)
   Extends base_guest.html — reuses ifinsta-* tokens/components throughout.
   ========================================================================== */

/* ============================================================================
   13. BOOKING STORE
   /book/<slug>/... — the public half of the old booking.css
   ============================================================================ */
.ifinsta-booking-store {
    width: min(var(--ifinsta-guest-max-width), calc(100% - var(--ifinsta-guest-gutter)));
    margin-inline: auto;
    padding-block: var(--ifinsta-guest-section-y);
}

.ifinsta-booking-store--narrow {
    width: min(var(--ifinsta-guest-measure), calc(100% - var(--ifinsta-guest-gutter)));
}

.ifinsta-booking-store__back {
    display: inline-block;
    margin-bottom: var(--ifinsta-space-6);
    font: var(--ifinsta-guest-meta);
    color: var(--ifinsta-guest-text-secondary);
    text-decoration: none;
}

.ifinsta-booking-store__back:hover {
    color: var(--ifinsta-primary);
}

.ifinsta-booking-store__header {
    margin-bottom: var(--ifinsta-space-10);
}

.ifinsta-booking-store__title {
    margin: 0;
    max-width: 20ch;
    font: var(--ifinsta-guest-display);
    color: var(--ifinsta-guest-text);
}

.ifinsta-booking-store__tagline {
    margin: var(--ifinsta-space-5) 0 0;
    max-width: 52ch;
    font: var(--ifinsta-guest-lead);
    color: var(--ifinsta-guest-text-secondary);
}

.ifinsta-booking-store__empty {
    padding: var(--ifinsta-space-10);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-lg);
    font: var(--ifinsta-guest-body);
    color: var(--ifinsta-guest-text-secondary);
}

.ifinsta-booking-store__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));
    gap: var(--ifinsta-space-6);
}

/* Tour cards — hairline, no fill, no lift (matches .ifinsta-guest-card). */
.ifinsta-tour-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-lg);
    background: transparent;
    color: inherit;
    text-decoration: none;
    transition: border-color var(--ifinsta-guest-transition-fast);
}

.ifinsta-tour-card:hover {
    border-color: var(--ifinsta-primary);
}

.ifinsta-tour-card__image {
    height: 11rem;
    background-size: cover;
    background-position: center;
    background-color: var(--ifinsta-bg-secondary);
}

.ifinsta-tour-card__image--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ifinsta-text-muted);
}

.ifinsta-tour-card__body {
    display: flex;
    flex-direction: column;
    gap: var(--ifinsta-space-2);
    flex: 1 1 auto;
    padding: var(--ifinsta-space-5);
}

.ifinsta-tour-card__name {
    margin: 0;
    font: var(--ifinsta-guest-h3);
    color: var(--ifinsta-guest-text);
}

.ifinsta-tour-card__location {
    margin: 0;
    font: var(--ifinsta-guest-meta);
    color: var(--ifinsta-guest-text-muted);
}

.ifinsta-tour-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--ifinsta-space-4);
    margin-top: auto;
    padding-top: var(--ifinsta-space-4);
    border-top: 1px solid var(--ifinsta-border);
}

.ifinsta-tour-card__price {
    font: var(--ifinsta-guest-body);
    font-weight: var(--ifinsta-font-semibold);
    color: var(--ifinsta-guest-text);
}

.ifinsta-tour-card__cta {
    font: var(--ifinsta-guest-meta);
    font-weight: var(--ifinsta-font-semibold);
    color: var(--ifinsta-primary);
}

/* Tour detail */
.ifinsta-tour-detail__description {
    max-width: var(--ifinsta-guest-measure);
    font: var(--ifinsta-guest-body);
    color: var(--ifinsta-guest-text-secondary);
}

.ifinsta-tour-detail__meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ifinsta-space-8);
    margin-block: var(--ifinsta-space-8);
    padding-block: var(--ifinsta-space-6);
    border-block: 1px solid var(--ifinsta-border);
    font: var(--ifinsta-guest-meta);
    color: var(--ifinsta-guest-text-secondary);
}

.ifinsta-tour-detail__slots-title {
    margin: 0 0 var(--ifinsta-space-5);
    font: var(--ifinsta-guest-h2);
    color: var(--ifinsta-guest-text);
}

/* Availability slots */
.ifinsta-slot-day {
    margin-bottom: var(--ifinsta-space-8);
}

.ifinsta-slot-day__label {
    display: block;
    margin-bottom: var(--ifinsta-space-3);
    font: var(--ifinsta-guest-eyebrow);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ifinsta-primary);
}

.ifinsta-slot-day__list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ifinsta-space-3);
}

.ifinsta-slot-pill {
    display: inline-flex;
    flex-direction: column;
    gap: var(--ifinsta-space-1);
    min-height: 3.25rem;
    padding: var(--ifinsta-space-2) var(--ifinsta-space-5);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-md);
    background: transparent;
    color: inherit;
    text-decoration: none;
    transition: border-color var(--ifinsta-guest-transition-fast);
}

.ifinsta-slot-pill:hover {
    border-color: var(--ifinsta-primary);
}

.ifinsta-slot-pill__time {
    font: var(--ifinsta-guest-body);
    font-weight: var(--ifinsta-font-semibold);
    color: var(--ifinsta-guest-text);
}

.ifinsta-slot-pill__seats {
    font: var(--ifinsta-guest-meta);
    color: var(--ifinsta-guest-text-muted);
}

/* Confirmation */
.ifinsta-confirmation__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 4rem;
    height: 4rem;
    margin-bottom: var(--ifinsta-space-6);
    border: 1px solid var(--ifinsta-success-600);
    border-radius: var(--ifinsta-radius-full);
    color: var(--ifinsta-success-600);
}

/* Payment page: the one place a border needs to shout. */
.ifinsta-booking-alert {
    border-color: var(--ifinsta-danger-500);
}

@media (max-width: 640px) {
    .ifinsta-booking-store__grid {
        grid-template-columns: 1fr;
    }

    .ifinsta-tour-detail__meta {
        gap: var(--ifinsta-space-4);
    }
}

/* Panels replacing the app's .ifinsta-card on the public booking pages. */
.ifinsta-booking-panel {
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-lg);
    background: transparent;
}

.ifinsta-booking-panel__body {
    padding: var(--ifinsta-space-6);
}

.ifinsta-booking-subhead {
    font: var(--ifinsta-guest-h3);
    color: var(--ifinsta-guest-text);
}

.ifinsta-booking-amount {
    font: var(--ifinsta-guest-h2);
    color: var(--ifinsta-guest-text);
}

.ifinsta-booking-meta {
    font: var(--ifinsta-guest-meta);
}

/* Car hire marketplace — public search, transparent quote, and reservation. */
.ifinsta-car-eyebrow {
    margin: 0 0 var(--ifinsta-space-3);
    font: var(--ifinsta-guest-eyebrow);
    color: var(--ifinsta-primary);
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.ifinsta-car-search {
    padding: var(--ifinsta-space-6);
    border: var(--ifinsta-border-width) solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-lg);
    background: var(--ifinsta-surface);
}

.ifinsta-car-search__fields,
.ifinsta-car-guest-form__contact {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ifinsta-space-4);
}

.ifinsta-car-search__fields .ifinsta-form-group,
.ifinsta-car-guest-form__contact .ifinsta-form-group {
    flex: 1 1 var(--ifinsta-space-32);
}

.ifinsta-car-search__age {
    max-width: var(--ifinsta-space-32);
}

.ifinsta-car-search select,
.ifinsta-car-search input,
.ifinsta-car-guest-form input:not([type="hidden"]):not([type="checkbox"]) {
    width: 100%;
    min-height: var(--ifinsta-space-12);
    padding: var(--ifinsta-space-2) var(--ifinsta-space-3);
    border: var(--ifinsta-border-width) solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-md);
    background: var(--ifinsta-surface);
    color: var(--ifinsta-text-primary);
    font: var(--ifinsta-text-body);
}

.ifinsta-car-search__note,
.ifinsta-car-card__example,
.ifinsta-car-card__price span,
.ifinsta-car-results__header span {
    font: var(--ifinsta-guest-meta);
    color: var(--ifinsta-guest-text-muted);
}

.ifinsta-car-results {
    margin-top: var(--ifinsta-space-10);
}

.ifinsta-car-results__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--ifinsta-space-4);
    margin-bottom: var(--ifinsta-space-5);
}

.ifinsta-car-results__header h2,
.ifinsta-car-card h3 {
    margin: 0;
    font: var(--ifinsta-guest-h2);
    color: var(--ifinsta-guest-text);
}

.ifinsta-car-results__list {
    display: grid;
    gap: var(--ifinsta-space-4);
}

.ifinsta-car-card {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ifinsta-space-6);
    justify-content: space-between;
    padding: var(--ifinsta-space-6);
    border: var(--ifinsta-border-width) solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-lg);
    background: var(--ifinsta-surface);
}

.ifinsta-car-card__main {
    flex: 1 1 var(--ifinsta-space-32);
}

.ifinsta-car-card__operator {
    margin: 0 0 var(--ifinsta-space-1);
    font: var(--ifinsta-guest-eyebrow);
    color: var(--ifinsta-primary);
}

.ifinsta-car-card__example {
    margin: var(--ifinsta-space-1) 0 var(--ifinsta-space-4);
}

.ifinsta-car-card__facts,
.ifinsta-car-card__terms {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ifinsta-space-2) var(--ifinsta-space-4);
    margin: 0;
    padding: 0;
    list-style: none;
    font: var(--ifinsta-guest-meta);
    color: var(--ifinsta-guest-text-secondary);
}

.ifinsta-car-card__terms {
    margin-top: var(--ifinsta-space-4);
    padding-top: var(--ifinsta-space-4);
    border-top: var(--ifinsta-border-width) solid var(--ifinsta-border);
}

.ifinsta-car-card__price {
    display: flex;
    flex: 0 1 var(--ifinsta-space-32);
    flex-direction: column;
    align-items: flex-end;
    gap: var(--ifinsta-space-2);
    text-align: right;
}

.ifinsta-car-card__price strong {
    font: var(--ifinsta-text-h2);
    color: var(--ifinsta-guest-text);
}

.ifinsta-car-card__availability {
    color: var(--ifinsta-success-600);
}

.ifinsta-car-summary {
    margin-bottom: var(--ifinsta-space-6);
}

.ifinsta-car-summary__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--ifinsta-space-4);
    margin: 0;
}

.ifinsta-car-summary dt {
    font: var(--ifinsta-guest-meta);
    color: var(--ifinsta-guest-text-muted);
}

.ifinsta-car-summary dd {
    margin: var(--ifinsta-space-1) 0 0;
    font: var(--ifinsta-guest-body);
    color: var(--ifinsta-guest-text);
}

.ifinsta-car-summary__total {
    padding-top: var(--ifinsta-space-4);
    border-top: var(--ifinsta-border-width) solid var(--ifinsta-border);
}

.ifinsta-car-terms {
    margin-top: var(--ifinsta-space-6);
    padding-top: var(--ifinsta-space-4);
    border-top: var(--ifinsta-border-width) solid var(--ifinsta-border);
    font: var(--ifinsta-guest-meta);
    color: var(--ifinsta-guest-text-secondary);
}

.ifinsta-car-terms-check {
    display: flex;
    align-items: flex-start;
    gap: var(--ifinsta-space-2);
    margin: var(--ifinsta-space-5) 0;
    font: var(--ifinsta-guest-body);
    color: var(--ifinsta-guest-text-secondary);
}

.ifinsta-car-errors,
.ifinsta-car-errors .errorlist {
    margin: 0 0 var(--ifinsta-space-4);
    color: var(--ifinsta-danger-600);
    font: var(--ifinsta-guest-meta);
}

[data-theme="dark"] .ifinsta-car-search,
[data-theme="dark"] .ifinsta-car-card {
    background: var(--ifinsta-surface);
}

@media (max-width: 640px) {
    .ifinsta-car-card__price {
        align-items: stretch;
        flex-basis: 100%;
        text-align: left;
    }

    .ifinsta-car-summary__grid {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   SEGMENTED SUPPORT PILL
   Single pill with two independently clickable segments (Assistant + Help),
   separated by a dividing line. Positioned at the bottom center of the
   viewport, independent from checkout controls with sufficient clearance.
   ========================================================================== */
.ifinsta-guest-support-pill {
    position: fixed;
    left: 50%;
    bottom: var(--ifinsta-space-5);
    transform: translateX(-50%);
    z-index: calc(var(--ifinsta-z-fixed, 300) - 1);
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-full);
    background: var(--ifinsta-surface-card);
    box-shadow: var(--ifinsta-shadow-lg);
}

.ifinsta-guest-support-pill__segment-wrap {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.ifinsta-guest-support-pill__segment {
    display: inline-flex;
    align-items: center;
    gap: var(--ifinsta-space-1_5, 0.375rem);
    min-height: 2.75rem;
    padding-block: var(--ifinsta-space-1_5, 0.375rem);
    padding-inline: var(--ifinsta-space-3);
    border: none;
    background: transparent;
    color: var(--ifinsta-text-secondary);
    font: var(--ifinsta-guest-meta);
    font-weight: var(--ifinsta-font-semibold);
    cursor: pointer;
    white-space: nowrap;
    transition: background var(--ifinsta-duration-fast) var(--ifinsta-ease),
        color var(--ifinsta-duration-fast) var(--ifinsta-ease);
}

.ifinsta-guest-support-pill>.ifinsta-guest-support-pill__segment {
    border-top-left-radius: var(--ifinsta-radius-full);
    border-bottom-left-radius: var(--ifinsta-radius-full);
}

.ifinsta-guest-support-pill__segment-wrap>.ifinsta-guest-support-pill__segment {
    border-top-right-radius: var(--ifinsta-radius-full);
    border-bottom-right-radius: var(--ifinsta-radius-full);
}

.ifinsta-guest-support-pill__segment:hover {
    background: var(--ifinsta-surface-hover);
    color: var(--ifinsta-text-primary);
}

.ifinsta-guest-support-pill__segment[aria-expanded="true"] {
    background: var(--ifinsta-primary-alpha-10);
    color: var(--ifinsta-primary-hover);
}

.ifinsta-guest-support-pill__icon {
    font-size: 1.25rem;
    flex-shrink: 0;
}

.ifinsta-guest-support-pill__label {
    line-height: 1;
}

.ifinsta-guest-support-pill__divider {
    width: 1px;
    height: 1.5rem;
    background: var(--ifinsta-border);
    flex-shrink: 0;
}

/* Flyout menu (shared by the Help segment, inheriting old FAB structure) */
.ifinsta-guest-support-pill__menu {
    position: absolute;
    bottom: calc(100% + var(--ifinsta-space-2));
    left: 50%;
    transform: translateX(-50%);
    display: grid;
    gap: var(--ifinsta-space-2);
    width: min(20rem, calc(100vw - var(--ifinsta-space-10)));
    padding: var(--ifinsta-space-3);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-lg);
    background: var(--ifinsta-surface-card);
    box-shadow: var(--ifinsta-shadow-xl);
}

.ifinsta-guest-support-pill__menu[hidden] {
    display: none;
}

.ifinsta-guest-support-pill__action {
    display: flex;
    align-items: flex-start;
    gap: var(--ifinsta-space-3);
    padding: var(--ifinsta-space-3);
    border: 1px solid transparent;
    border-radius: var(--ifinsta-radius-md);
    color: inherit;
    text-decoration: none;
}

.ifinsta-guest-support-pill__action:hover {
    border-color: var(--ifinsta-primary);
}

.ifinsta-guest-support-pill__action .material-symbols-outlined {
    color: var(--ifinsta-primary);
    font-size: 1.375rem;
}

.ifinsta-guest-support-pill__action-body {
    display: grid;
    gap: var(--ifinsta-space-1);
}

.ifinsta-guest-support-pill__action-body strong {
    font: var(--ifinsta-guest-meta);
    font-weight: var(--ifinsta-font-semibold);
    color: var(--ifinsta-text-primary);
}

.ifinsta-guest-support-pill__action-body span {
    font: var(--ifinsta-guest-meta);
    color: var(--ifinsta-text-muted);
}

/* Mobile: icon-only segments with accessible labels */
@media (max-width: 640px) {
    .ifinsta-guest-support-pill {
        bottom: var(--ifinsta-space-4);
    }

    .ifinsta-guest-support-pill__segment {
        padding-inline: var(--ifinsta-space-3);
    }

    .ifinsta-guest-support-pill__label {
        display: none;
    }

    .ifinsta-guest-support-pill__menu {
        right: 0;
        left: auto;
        transform: none;
    }
}

/* ==========================================================================
   GUEST ASSISTANT WIDGET
   In-page chat dialog opened from the guest FAB's "Ask the assistant"
   action. Centered on the viewport; styled with guest tokens only.
   ========================================================================== */
.ifinsta-guest-chat {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    z-index: calc(var(--ifinsta-z-header, 1300) + 1);
    display: flex;
    flex-direction: column;
    width: 80vw;
    height: 90vh;
    max-width: 80vw;
    max-height: 90vh;
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-2xl);
    background: var(--ifinsta-guest-bg);
    box-shadow: 0 1.25rem 2.5rem rgba(0, 0, 0, 0.18);
    overflow: hidden;
}

body.ifinsta-guest-chat--open::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: var(--ifinsta-z-header, 1300);
    background: rgba(0, 0, 0, 0.45);
    pointer-events: none;
}

body.ifinsta-guest-chat--open {
    overflow: hidden;
}

.ifinsta-guest-chat[hidden] {
    display: none;
}

.ifinsta-guest-chat__header {
    display: flex;
    align-items: center;
    gap: var(--ifinsta-space-2);
    min-height: 3.5rem;
    padding: var(--ifinsta-space-2) var(--ifinsta-space-3);
    border-bottom: 1px solid var(--ifinsta-border);
    flex-shrink: 0;
}

.ifinsta-guest-chat__avatar {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: var(--ifinsta-radius-full);
    background: var(--ifinsta-primary-50);
    color: var(--ifinsta-primary);
    flex-shrink: 0;
}

.ifinsta-guest-chat__avatar .material-symbols-outlined {
    font-size: 1.125rem;
}

.ifinsta-guest-chat__heading {
    display: grid;
    gap: 0;
    min-width: 0;
    flex: 1;
}

.ifinsta-guest-chat__heading strong {
    font: var(--ifinsta-guest-meta);
    font-weight: var(--ifinsta-font-semibold);
    color: var(--ifinsta-guest-text);
}

.ifinsta-guest-chat__status {
    display: flex;
    align-items: center;
    gap: var(--ifinsta-space-1);
    font: var(--ifinsta-guest-meta);
    color: var(--ifinsta-guest-text-muted);
}

.ifinsta-guest-chat__dot {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: var(--ifinsta-radius-full);
    background: var(--ifinsta-success);
}

.ifinsta-guest-chat__icon-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border: none;
    border-radius: var(--ifinsta-radius-md);
    background: transparent;
    color: var(--ifinsta-guest-text-secondary);
    cursor: pointer;
    flex-shrink: 0;
}

.ifinsta-guest-chat__icon-btn:hover {
    background: var(--ifinsta-guest-bg-subtle);
}

.ifinsta-guest-chat__icon-btn:focus-visible,
.ifinsta-guest-chat__send:focus-visible,
.ifinsta-guest-chat__chip:focus-visible,
.ifinsta-guest-chat__formcard-submit:focus-visible,
.ifinsta-guest-chat__formcard-select:focus-visible,
.ifinsta-guest-chat__formcard-input:focus-visible,
.ifinsta-guest-chat__formcard-option input:focus-visible,
.ifinsta-guest-chat__plans-cta:focus-visible,
.ifinsta-guest-chat__plans-more:focus-visible,
.ifinsta-guest-chat__link:focus-visible,
.ifinsta-guest-chat__tool:focus-visible,
.ifinsta-guest-chat__calc-input:focus-visible,
.ifinsta-guest-chat__calc-cta:focus-visible,
.ifinsta-guest-chat__search-input:focus-visible,
.ifinsta-guest-chat__search-submit:focus-visible,
.ifinsta-guest-chat__search-item:focus-visible {
    outline: 2px solid var(--ifinsta-primary);
    outline-offset: 2px;
}

.ifinsta-guest-chat__input:focus-visible {
    border-color: var(--ifinsta-primary);
    outline: 1px solid var(--ifinsta-primary);
    outline-offset: 0;
}

.ifinsta-guest-chat__body {
    display: flex;
    flex-direction: column;
    gap: var(--ifinsta-space-2);
    min-height: 0;
    flex: 1;
    padding: var(--ifinsta-space-3);
    overflow: hidden;
}

.ifinsta-guest-chat__messages {
    display: flex;
    flex-direction: column;
    gap: var(--ifinsta-space-2);
    overflow-y: auto;
    min-height: 9rem;
    flex: 1;
    width: 100%;
    max-width: 52rem;
    margin-inline: auto;
    scrollbar-gutter: stable;
}

.ifinsta-guest-chat__msg {
    display: flex;
    justify-content: flex-start;
}

.ifinsta-guest-chat__msg--user {
    justify-content: flex-end;
}

.ifinsta-guest-chat__bubble {
    max-width: 78%;
    padding: var(--ifinsta-space-3);
    border-radius: var(--ifinsta-radius-lg);
    background: var(--ifinsta-guest-bg-subtle);
    color: var(--ifinsta-guest-text);
    font: var(--ifinsta-guest-meta);
    word-break: break-word;
    overflow-wrap: anywhere;
}

.ifinsta-guest-chat__msg--user .ifinsta-guest-chat__bubble {
    background: var(--ifinsta-primary);
    color: var(--ifinsta-white);
}

.ifinsta-guest-chat__bubble p {
    margin: 0 0 var(--ifinsta-space-2);
}

.ifinsta-guest-chat__bubble p:last-child {
    margin-bottom: 0;
}

.ifinsta-guest-chat__bubble ul {
    margin: 0 0 var(--ifinsta-space-2);
    padding-inline-start: var(--ifinsta-space-5);
}

.ifinsta-guest-chat__bubble ul:last-child {
    margin-bottom: 0;
}

.ifinsta-guest-chat__bubble strong {
    font-weight: var(--ifinsta-font-semibold);
}

.ifinsta-guest-chat__link {
    display: inline-block;
    border: 1px solid var(--ifinsta-primary);
    border-radius: var(--ifinsta-radius-full);
    padding: var(--ifinsta-space-1) var(--ifinsta-space-3);
    color: var(--ifinsta-primary);
    font: var(--ifinsta-guest-meta);
    font-weight: var(--ifinsta-font-semibold);
    text-decoration: none;
    word-break: normal;
    margin: var(--ifinsta-space-1) 0;
}

.ifinsta-guest-chat__link:hover {
    background: var(--ifinsta-primary-50);
    text-decoration: none;
}

.ifinsta-guest-chat__formcard {
    width: 100%;
    max-width: 100%;
}

.ifinsta-guest-chat__formcard-title {
    margin: 0 0 var(--ifinsta-space-3);
    font: var(--ifinsta-guest-meta);
    font-weight: var(--ifinsta-font-semibold);
    color: var(--ifinsta-guest-text);
    overflow-wrap: anywhere;
}

.ifinsta-guest-chat__formcard-fields {
    display: grid;
    gap: var(--ifinsta-space-3);
    margin-bottom: var(--ifinsta-space-4);
}

.ifinsta-guest-chat__formcard-field {
    display: grid;
    gap: var(--ifinsta-space-2);
    margin: 0;
}

.ifinsta-guest-chat__formcard-label {
    font: var(--ifinsta-guest-meta);
    font-weight: var(--ifinsta-font-semibold);
    color: var(--ifinsta-guest-text);
    overflow-wrap: anywhere;
}

.ifinsta-guest-chat__formcard-select,
.ifinsta-guest-chat__formcard-input {
    width: 100%;
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-md);
    padding: var(--ifinsta-space-2) var(--ifinsta-space-3);
    background: var(--ifinsta-guest-bg);
    color: var(--ifinsta-guest-text);
    font: var(--ifinsta-guest-meta);
    min-height: 2.5rem;
    overflow-wrap: anywhere;
}

.ifinsta-guest-chat__formcard-options {
    display: grid;
    gap: var(--ifinsta-space-2);
}

.ifinsta-guest-chat__formcard-option {
    display: flex;
    align-items: center;
    gap: var(--ifinsta-space-2);
    margin: 0;
    cursor: pointer;
}

.ifinsta-guest-chat__formcard-option input {
    flex-shrink: 0;
    accent-color: var(--ifinsta-primary);
}

.ifinsta-guest-chat__formcard-submit {
    width: 100%;
    border: none;
    border-radius: var(--ifinsta-radius-full);
    padding: var(--ifinsta-space-3) var(--ifinsta-space-4);
    background: var(--ifinsta-primary);
    color: var(--ifinsta-white);
    font: var(--ifinsta-guest-meta);
    font-weight: var(--ifinsta-font-semibold);
    cursor: pointer;
    min-height: 2.75rem;
}

.ifinsta-guest-chat__formcard-submit:hover {
    background: var(--ifinsta-primary-hover);
}

.ifinsta-guest-chat__formcard-submit:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.ifinsta-guest-chat__plans {
    width: 100%;
    max-width: 100%;
}

.ifinsta-guest-chat__plans-title {
    margin: 0 0 var(--ifinsta-space-3);
    font: var(--ifinsta-guest-meta);
    font-weight: var(--ifinsta-font-semibold);
    color: var(--ifinsta-guest-text);
}

.ifinsta-guest-chat__plans-grid {
    display: grid;
    gap: var(--ifinsta-space-3);
    margin-bottom: var(--ifinsta-space-4);
}

.ifinsta-guest-chat__plans-card {
    display: grid;
    gap: var(--ifinsta-space-2);
    padding: var(--ifinsta-space-3);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-lg);
    background: var(--ifinsta-guest-bg);
}

.ifinsta-guest-chat__plans-name {
    font: var(--ifinsta-guest-meta);
    font-weight: var(--ifinsta-font-semibold);
    color: var(--ifinsta-guest-text);
}

.ifinsta-guest-chat__plans-price {
    font: var(--ifinsta-guest-meta);
    font-weight: var(--ifinsta-font-semibold);
    color: var(--ifinsta-primary);
}

.ifinsta-guest-chat__plans-trial {
    font: var(--ifinsta-guest-meta);
    color: var(--ifinsta-success);
}

.ifinsta-guest-chat__plans-features {
    margin: 0;
    padding-inline-start: var(--ifinsta-space-4);
    font: var(--ifinsta-guest-meta);
    color: var(--ifinsta-guest-text-secondary);
    display: grid;
    gap: var(--ifinsta-space-1);
    overflow-wrap: anywhere;
}

.ifinsta-guest-chat__plans-cta {
    display: block;
    text-align: center;
    border-radius: var(--ifinsta-radius-full);
    padding: var(--ifinsta-space-3) var(--ifinsta-space-4);
    background: var(--ifinsta-primary);
    color: var(--ifinsta-white);
    font: var(--ifinsta-guest-meta);
    font-weight: var(--ifinsta-font-semibold);
    text-decoration: none;
    min-height: 2.75rem;
}

.ifinsta-guest-chat__plans-cta:hover {
    background: var(--ifinsta-primary-hover);
}

.ifinsta-guest-chat__plans-more {
    display: block;
    text-align: center;
    font: var(--ifinsta-guest-meta);
    font-weight: var(--ifinsta-font-semibold);
    color: var(--ifinsta-primary);
    text-decoration: none;
}

.ifinsta-guest-chat__plans-more:hover {
    text-decoration: underline;
}

/* ==========================================================================
   IN-BROWSER TOOLS (toolbar, calculator, media, search cards)
   ========================================================================== */

.ifinsta-guest-chat__toolbar {
    display: flex;
    align-items: center;
    gap: var(--ifinsta-space-1);
    padding: var(--ifinsta-space-1) var(--ifinsta-space-3);
    border-top: 1px solid var(--ifinsta-border);
    flex-shrink: 0;
}

.ifinsta-guest-chat__tool {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border: none;
    border-radius: var(--ifinsta-radius-full);
    background: transparent;
    color: var(--ifinsta-guest-text-secondary);
    cursor: pointer;
    flex-shrink: 0;
}

.ifinsta-guest-chat__tool:hover {
    background: var(--ifinsta-primary-50);
    color: var(--ifinsta-primary);
}

.ifinsta-guest-chat__tool[aria-pressed="true"] {
    background: var(--ifinsta-primary);
    color: var(--ifinsta-white);
}

.ifinsta-guest-chat__tool .material-symbols-outlined {
    font-size: 1.25rem;
}

.ifinsta-guest-chat__toolbar-spacer {
    flex: 1;
}

.ifinsta-guest-chat__calc {
    width: 100%;
    max-width: 100%;
}

.ifinsta-guest-chat__calc-title,
.ifinsta-guest-chat__media-title,
.ifinsta-guest-chat__search-title {
    margin: 0 0 var(--ifinsta-space-3);
    font: var(--ifinsta-guest-meta);
    font-weight: var(--ifinsta-font-semibold);
    color: var(--ifinsta-guest-text);
}

.ifinsta-guest-chat__calc-fields {
    display: grid;
    gap: var(--ifinsta-space-3);
    margin-bottom: var(--ifinsta-space-4);
}

.ifinsta-guest-chat__calc-field {
    display: grid;
    gap: var(--ifinsta-space-1);
}

.ifinsta-guest-chat__calc-label {
    font: var(--ifinsta-guest-meta);
    color: var(--ifinsta-guest-text-secondary);
}

.ifinsta-guest-chat__calc-input {
    width: 100%;
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-md);
    padding: var(--ifinsta-space-2) var(--ifinsta-space-3);
    background: var(--ifinsta-guest-bg);
    color: var(--ifinsta-guest-text);
    font: var(--ifinsta-guest-meta);
    min-height: 2.5rem;
}

.ifinsta-guest-chat__calc-result {
    font: var(--ifinsta-guest-meta);
    font-weight: var(--ifinsta-font-semibold);
    color: var(--ifinsta-primary);
    margin-bottom: var(--ifinsta-space-3);
    overflow-wrap: anywhere;
}

.ifinsta-guest-chat__calc-cta {
    display: block;
    text-align: center;
    border-radius: var(--ifinsta-radius-full);
    padding: var(--ifinsta-space-3) var(--ifinsta-space-4);
    background: var(--ifinsta-primary);
    color: var(--ifinsta-white);
    font: var(--ifinsta-guest-meta);
    font-weight: var(--ifinsta-font-semibold);
    text-decoration: none;
    min-height: 2.75rem;
}

.ifinsta-guest-chat__calc-cta:hover {
    background: var(--ifinsta-primary-hover);
}

.ifinsta-guest-chat__media {
    width: 100%;
    max-width: 100%;
}

.ifinsta-guest-chat__media-video,
.ifinsta-guest-chat__media-image {
    display: block;
    width: 100%;
    max-width: 100%;
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-lg);
    background: var(--ifinsta-guest-bg-muted);
}

.ifinsta-guest-chat__media-caption {
    margin: var(--ifinsta-space-2) 0 0;
    font: var(--ifinsta-guest-meta);
    color: var(--ifinsta-guest-text-muted);
}

.ifinsta-guest-chat__search {
    width: 100%;
    max-width: 100%;
}

.ifinsta-guest-chat__search-row {
    display: flex;
    gap: var(--ifinsta-space-2);
    margin-bottom: var(--ifinsta-space-3);
}

.ifinsta-guest-chat__search-input {
    flex: 1;
    min-width: 0;
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-full);
    padding: var(--ifinsta-space-2) var(--ifinsta-space-3);
    background: var(--ifinsta-guest-bg);
    color: var(--ifinsta-guest-text);
    font: var(--ifinsta-guest-meta);
    min-height: 2.5rem;
}

.ifinsta-guest-chat__search-submit {
    border: 1px solid var(--ifinsta-primary);
    border-radius: var(--ifinsta-radius-full);
    padding: var(--ifinsta-space-2) var(--ifinsta-space-4);
    background: var(--ifinsta-primary);
    color: var(--ifinsta-white);
    font: var(--ifinsta-guest-meta);
    font-weight: var(--ifinsta-font-semibold);
    cursor: pointer;
    min-height: 2.5rem;
    flex-shrink: 0;
}

.ifinsta-guest-chat__search-submit:hover {
    background: var(--ifinsta-primary-hover);
}

.ifinsta-guest-chat__search-submit:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.ifinsta-guest-chat__search-results {
    font: var(--ifinsta-guest-meta);
    color: var(--ifinsta-guest-text-secondary);
    overflow-wrap: anywhere;
}

.ifinsta-guest-chat__search-list {
    display: grid;
    gap: var(--ifinsta-space-2);
}

.ifinsta-guest-chat__search-item {
    display: block;
    padding: var(--ifinsta-space-2) var(--ifinsta-space-3);
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-md);
    color: var(--ifinsta-guest-text);
    text-decoration: none;
}

.ifinsta-guest-chat__search-item:hover {
    border-color: var(--ifinsta-primary);
    background: var(--ifinsta-primary-50);
}

.ifinsta-guest-chat__typing {
    color: var(--ifinsta-guest-text-muted);
    letter-spacing: 0.1em;
}

.ifinsta-guest-chat__chips {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ifinsta-space-2);
    flex-shrink: 0;
    width: 100%;
    max-width: 52rem;
    margin-inline: auto;
}

.ifinsta-guest-chat__chips--welcome {
    justify-content: center;
}

.ifinsta-guest-chat__messages--hidden {
    display: none;
}

.ifinsta-guest-chat__welcome {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 1;
    padding: var(--ifinsta-space-8) var(--ifinsta-space-4);
    text-align: center;
}

.ifinsta-guest-chat__welcome-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3.5rem;
    height: 3.5rem;
    border-radius: var(--ifinsta-radius-full);
    background: var(--ifinsta-primary-50);
    color: var(--ifinsta-primary);
    margin-bottom: var(--ifinsta-space-4);
}

.ifinsta-guest-chat__welcome-icon .material-symbols-outlined {
    font-size: 1.75rem;
}

.ifinsta-guest-chat__welcome-title {
    margin: 0 0 var(--ifinsta-space-6);
    font: var(--ifinsta-guest-h2);
    color: var(--ifinsta-guest-text);
    max-width: 30ch;
}

.ifinsta-guest-chat__disclaimer {
    margin: 0;
    padding: var(--ifinsta-space-1) var(--ifinsta-space-4) var(--ifinsta-space-2);
    font: var(--ifinsta-guest-meta);
    font-size: 0.7857rem;
    color: var(--ifinsta-guest-text-muted);
    text-align: center;
    flex-shrink: 0;
}

.ifinsta-guest-chat__disclaimer-link {
    color: var(--ifinsta-guest-text-secondary);
    text-decoration: underline;
}

.ifinsta-guest-chat__disclaimer-link:hover {
    color: var(--ifinsta-primary);
}

.ifinsta-guest-chat__chip {
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-full);
    padding: var(--ifinsta-space-2) var(--ifinsta-space-3);
    background: var(--ifinsta-guest-bg);
    color: var(--ifinsta-primary);
    font: var(--ifinsta-guest-meta);
    font-weight: var(--ifinsta-font-semibold);
    cursor: pointer;
    min-height: 2.5rem;
    max-width: 100%;
}

.ifinsta-guest-chat__chip:hover {
    background: var(--ifinsta-primary-50);
    border-color: var(--ifinsta-primary);
}

.ifinsta-guest-chat__form {
    display: flex;
    gap: var(--ifinsta-space-2);
    padding: var(--ifinsta-space-2) var(--ifinsta-space-3);
    border-top: 1px solid var(--ifinsta-border);
    flex-shrink: 0;
}

.ifinsta-guest-chat__input {
    flex: 1;
    min-width: 0;
    border: 1px solid var(--ifinsta-border);
    border-radius: var(--ifinsta-radius-full);
    padding: var(--ifinsta-space-3) var(--ifinsta-space-4);
    background: var(--ifinsta-guest-bg);
    color: var(--ifinsta-guest-text);
    font: var(--ifinsta-guest-meta);
    overflow-wrap: anywhere;
    min-height: 2.75rem;
}

.ifinsta-guest-chat__input::placeholder {
    color: var(--ifinsta-guest-text-muted);
}

.ifinsta-guest-chat__input:disabled {
    opacity: 0.6;
}

.ifinsta-guest-chat__send {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    border: none;
    border-radius: var(--ifinsta-radius-full);
    background: var(--ifinsta-primary);
    color: var(--ifinsta-white);
    cursor: pointer;
    flex-shrink: 0;
}

.ifinsta-guest-chat__send:hover {
    background: var(--ifinsta-primary-hover);
}

.ifinsta-guest-chat__send:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.ifinsta-guest-chat__send .material-symbols-outlined {
    font-size: 1.25rem;
}

.ifinsta-guest-chat__hint {
    min-height: 1.5rem;
    margin: 0;
    padding: 0 var(--ifinsta-space-4) var(--ifinsta-space-2);
    font: var(--ifinsta-guest-meta);
    color: var(--ifinsta-danger);
    flex-shrink: 0;
    overflow-wrap: anywhere;
}

.ifinsta-guest-chat__hint:empty {
    display: none;
}

@media (max-width: 640px) {
    .ifinsta-guest-chat {
        width: 100vw;
        height: 100vh;
        max-width: 100vw;
        max-height: 100vh;
        margin: 0;
        border-radius: 0;
        border: none;
    }
}

@media (max-height: 520px) and (orientation: landscape) {
    .ifinsta-guest-chat {
        width: 80vw;
        height: 90vh;
        max-width: 80vw;
        max-height: 90vh;
    }
}

@media (prefers-reduced-motion: reduce) {

    .ifinsta-guest-chat,
    .ifinsta-guest-chat__messages,
    .ifinsta-guest-chat__bubble {
        scroll-behavior: auto;
        animation: none;
        transition: none;
    }
}
