/*
 * Facil Digital+ - UX-A
 *
 * Camada visual para:
 * - header global;
 * - footer global;
 * - homepage.
 *
 * Regras de negocio permanecem no WooCommerce e Facil Digital Core.
 */

:root {
    --fd-uxa-navy: #0a1733;
    --fd-uxa-navy-soft: #12244b;
    --fd-uxa-blue-soft: #edf4ff;
    --fd-uxa-mint: #eafbf5;
    --fd-uxa-violet: #f3efff;
    --fd-uxa-amber: #fff7df;
    --fd-uxa-shadow:
        0 24px 70px
        rgb(15 36 75 / 0.12);
}

/* ---------------------------------------------------------
 * Global header
 * --------------------------------------------------------- */

.fd-site-header {
    border-bottom:
        1px solid
        rgb(208 213 221 / 0.72);

    background:
        rgb(255 255 255 / 0.92);

    box-shadow:
        0 8px 30px
        rgb(15 23 42 / 0.035);

    backdrop-filter:
        blur(18px)
        saturate(150%);
}

.fd-site-header__inner {
    gap:
        clamp(
            1.25rem,
            3vw,
            2.75rem
        );
}

.fd-site-branding__text {
    color:
        var(--fd-uxa-navy);

    font-size:
        1.42rem;

    letter-spacing:
        -0.055em;
}

.fd-site-branding__text strong {
    margin-left:
        2px;

    color:
        var(--fd-color-primary);
}

.fd-site-branding .custom-logo {
    max-width:
        184px;

    max-height:
        46px;
}

.fd-primary-nav__list,
.fd-primary-nav .menu {
    gap:
        clamp(
            1rem,
            2vw,
            1.8rem
        );
}

.fd-primary-nav a {
    position: relative;

    color:
        #475467;

    font-size:
        0.9rem;

    font-weight:
        720;
}

.fd-primary-nav a::after {
    position: absolute;

    height: 2px;

    right: 50%;
    bottom: 5px;
    left: 50%;

    border-radius:
        var(--fd-radius-full);

    background:
        var(--fd-color-primary);

    content: "";

    transition:
        right
            var(--fd-transition-fast),
        left
            var(--fd-transition-fast);
}

.fd-primary-nav a:hover::after,
.fd-primary-nav .current-menu-item > a::after,
.fd-primary-nav .current_page_item > a::after {
    right: 0;
    left: 0;
}

.fd-header-actions {
    gap:
        0.4rem;
}

.fd-header-search-toggle,
.fd-header-cart {
    border:
        1px solid
        #e8edf5;

    background:
        #fff;

    box-shadow:
        0 4px 14px
        rgb(15 23 42 / 0.035);
}

.fd-header-search-toggle:hover,
.fd-header-cart:hover {
    border-color:
        #cdd9ef;

    background:
        var(--fd-uxa-blue-soft);

    color:
        var(--fd-color-primary);
}

.fd-header-account {
    min-height:
        42px;

    padding:
        0 1rem;

    border:
        1px solid
        #cfe0ff;

    background:
        var(--fd-uxa-blue-soft);

    color:
        #174ea6;

    box-shadow:
        0 4px 14px
        rgb(11 92 255 / 0.045);
}

.fd-header-account:hover {
    border-color:
        #a9c7ff;

    background:
        #e2edff;

    color:
        var(--fd-color-primary);
}

.fd-header-cart__count {
    box-shadow:
        0 2px 8px
        rgb(11 92 255 / 0.3);
}

.fd-header-search {
    border-color:
        #e7ecf4;

    background:
        rgb(255 255 255 / 0.98);

    box-shadow:
        0 24px 50px
        rgb(15 23 42 / 0.10);
}

/* ---------------------------------------------------------
 * Shared home rhythm
 * --------------------------------------------------------- */

.fd-home {
    background:
        #fff;
}

.fd-home .fd-section {
    padding-block:
        clamp(
            4.5rem,
            8vw,
            7rem
        );
}

.fd-home .fd-section-heading {
    margin-bottom:
        clamp(
            2rem,
            4vw,
            3rem
        );
}

.fd-home .fd-section-heading h2 {
    max-width:
        760px;

    color:
        var(--fd-uxa-navy);

    letter-spacing:
        -0.04em;

    text-wrap:
        balance;
}

.fd-home .fd-section-heading p {
    max-width:
        680px;

    color:
        #667085;

    line-height:
        1.72;
}

/* ---------------------------------------------------------
 * Hero
 * --------------------------------------------------------- */

.fd-home-hero--uxa {
    position: relative;

    min-height:
        min(
            780px,
            calc(100vh - var(--fd-header-height))
        );

    padding:
        clamp(
            4.5rem,
            8vw,
            7.25rem
        )
        0
        clamp(
            4rem,
            7vw,
            6.5rem
        );

    overflow: hidden;

    background:
        radial-gradient(
            circle at 86% 18%,
            rgb(11 92 255 / 0.15),
            transparent 28%
        ),
        radial-gradient(
            circle at 70% 82%,
            rgb(121 80 242 / 0.08),
            transparent 26%
        ),
        radial-gradient(
            circle at 10% 94%,
            rgb(255 201 40 / 0.11),
            transparent 24%
        ),
        linear-gradient(
            135deg,
            #ffffff 0%,
            #f8faff 48%,
            #edf4ff 100%
        );
}

.fd-home-hero--uxa::before {
    position: absolute;

    inset: 0;

    opacity:
        0.28;

    background-image:
        linear-gradient(
            rgb(11 92 255 / 0.08) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgb(11 92 255 / 0.08) 1px,
            transparent 1px
        );

    background-size:
        44px 44px;

    mask-image:
        linear-gradient(
            to right,
            transparent,
            #000 64%,
            #000
        );

    content: "";

    pointer-events:
        none;
}

.fd-home-hero--uxa::after {
    width:
        680px;

    height:
        680px;

    top:
        -350px;

    right:
        -220px;

    border:
        78px solid
        rgb(255 255 255 / 0.38);

    background:
        rgb(11 92 255 / 0.055);
}

.fd-home-hero--uxa .fd-home-hero__grid {
    grid-template-columns:
        minmax(0, 1.06fr)
        minmax(390px, 0.94fr);

    gap:
        clamp(
            3rem,
            6vw,
            6.5rem
        );
}

.fd-home-hero--uxa .fd-home-hero__content {
    max-width:
        740px;
}

.fd-home-hero--uxa .fd-eyebrow {
    margin-bottom:
        1.2rem;

    padding:
        7px 13px;

    border-color:
        #bfd2ff;

    background:
        rgb(237 244 255 / 0.92);

    color:
        #244bb8;

    box-shadow:
        0 6px 18px
        rgb(11 92 255 / 0.05);
}

.fd-home-hero--uxa h1 {
    max-width:
        760px;

    margin-bottom:
        1.55rem;

    color:
        var(--fd-uxa-navy);

    font-size:
        clamp(
            3rem,
            6vw,
            5rem
        );

    line-height:
        0.99;

    letter-spacing:
        -0.06em;
}

.fd-home-hero--uxa h1 span {
    display: block;

    margin-top:
        0.16em;

    color:
        var(--fd-color-primary);

    background:
        linear-gradient(
            90deg,
            #0b5cff,
            #4a4cf3 62%,
            #6e56cf
        );

    -webkit-background-clip:
        text;

    background-clip:
        text;

    -webkit-text-fill-color:
        transparent;
}

.fd-home-hero--uxa .fd-home-hero__lead {
    max-width:
        650px;

    margin-bottom:
        1.8rem;

    color:
        #58677c;

    font-size:
        clamp(
            1.08rem,
            1.9vw,
            1.25rem
        );

    line-height:
        1.72;
}

.fd-home-hero--uxa .fd-home-search {
    max-width:
        700px;

    margin-bottom:
        1.35rem;
}

.fd-home-hero--uxa .fd-home-search__field {
    min-height:
        68px;

    padding:
        7px;

    border:
        1px solid
        #d8e1ef;

    border-radius:
        18px;

    background:
        rgb(255 255 255 / 0.96);

    box-shadow:
        0 20px 50px
            rgb(15 36 75 / 0.10),
        0 3px 12px
            rgb(15 23 42 / 0.035);
}

.fd-home-hero--uxa
.fd-home-search__field:focus-within {
    border-color:
        #8cb1ff;

    box-shadow:
        0 0 0 4px
            rgb(11 92 255 / 0.09),
        0 22px 56px
            rgb(15 36 75 / 0.12);
}

.fd-home-hero--uxa
.fd-home-search__field > .fd-icon {
    margin-left:
        0.8rem;

    color:
        #7b8ba4;
}

.fd-home-hero--uxa
.fd-home-search input[type="search"] {
    min-height:
        52px;

    padding-inline:
        0.25rem;

    font-size:
        1rem;
}

.fd-home-hero--uxa
.fd-home-search .fd-button {
    min-height:
        52px;

    padding-inline:
        1.45rem;

    border-radius:
        13px;
}

.fd-home-hero--uxa
.fd-home-hero__actions {
    margin-bottom:
        1.4rem;
}

.fd-home-hero--uxa
.fd-home-hero__actions .fd-button {
    border-radius:
        13px;
}

.fd-home-hero--uxa
.fd-home-hero__actions
.fd-button--primary {
    box-shadow:
        0 12px 28px
        rgb(11 92 255 / 0.20);
}

.fd-home-hero--uxa
.fd-home-hero__trust {
    gap:
        0.65rem;
}

.fd-home-hero--uxa
.fd-home-hero__trust li {
    min-height:
        34px;

    padding:
        7px 11px;

    border-color:
        #e4eaf2;

    background:
        rgb(255 255 255 / 0.72);

    color:
        #5d6b80;

    box-shadow:
        none;
}

.fd-home-hero--uxa
.fd-home-hero__visual {
    position: relative;

    min-height:
        520px;

    align-items:
        center;

    justify-content:
        center;
}

.fd-uxa-orbit {
    position: absolute;

    border:
        1px solid
        rgb(11 92 255 / 0.12);

    border-radius:
        50%;

    pointer-events:
        none;
}

.fd-uxa-orbit--one {
    width:
        500px;

    height:
        500px;
}

.fd-uxa-orbit--two {
    width:
        390px;

    height:
        390px;

    border-color:
        rgb(110 86 207 / 0.13);
}

.fd-study-dashboard {
    position: relative;

    z-index: 2;

    width:
        min(
            100%,
            430px
        );

    padding:
        1.55rem;

    border:
        1px solid
        rgb(213 222 236 / 0.86);

    border-radius:
        28px;

    background:
        rgb(255 255 255 / 0.94);

    box-shadow:
        var(--fd-uxa-shadow),
        inset 0 1px 0
        rgb(255 255 255 / 0.8);

    transform:
        rotate(-1deg);
}

.fd-study-dashboard::before {
    position: absolute;

    width:
        72%;

    height:
        14px;

    right:
        14%;

    bottom:
        -24px;

    border-radius:
        50%;

    background:
        rgb(15 36 75 / 0.12);

    filter:
        blur(14px);

    content: "";

    pointer-events:
        none;
}

.fd-study-dashboard__top {
    display: flex;

    align-items:
        flex-start;

    justify-content:
        space-between;

    gap:
        1rem;

    padding-bottom:
        1.25rem;

    border-bottom:
        1px solid
        #edf0f5;
}

.fd-study-dashboard__top > div {
    display: flex;

    flex-direction:
        column;

    gap:
        0.18rem;
}

.fd-study-dashboard__eyebrow {
    color:
        var(--fd-color-primary);

    font-size:
        0.72rem;

    font-weight:
        850;

    letter-spacing:
        0.08em;

    text-transform:
        uppercase;
}

.fd-study-dashboard__top strong {
    color:
        var(--fd-uxa-navy);

    font-size:
        1.25rem;

    letter-spacing:
        -0.025em;
}

.fd-study-dashboard__status {
    display: inline-flex;

    min-height:
        28px;

    padding:
        0 10px;

    align-items:
        center;

    border:
        1px solid
        #bde7d6;

    border-radius:
        var(--fd-radius-full);

    background:
        var(--fd-uxa-mint);

    color:
        #08744c;

    font-size:
        0.72rem;

    font-weight:
        800;
}

.fd-study-dashboard__progress {
    padding:
        1.35rem 0
        1.1rem;
}

.fd-study-dashboard__progress > div:first-child {
    display: flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        1rem;

    margin-bottom:
        0.75rem;
}

.fd-study-dashboard__progress span {
    color:
        #667085;

    font-size:
        0.78rem;

    font-weight:
        650;
}

.fd-study-dashboard__progress strong {
    color:
        #344054;

    font-size:
        0.72rem;

    font-weight:
        800;
}

.fd-study-dashboard__track {
    height:
        9px;

    overflow: hidden;

    border-radius:
        var(--fd-radius-full);

    background:
        #edf1f7;
}

.fd-study-dashboard__track span {
    display: block;

    width:
        72%;

    height:
        100%;

    border-radius:
        inherit;

    background:
        linear-gradient(
            90deg,
            #0b5cff,
            #5a65f4
        );

    box-shadow:
        0 0 18px
        rgb(11 92 255 / 0.22);
}

.fd-study-dashboard__cards {
    display: grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );

    gap:
        0.7rem;
}

.fd-study-mini-card {
    display: flex;

    min-height:
        92px;

    padding:
        0.9rem;

    flex-direction:
        column;

    justify-content:
        space-between;

    border:
        1px solid
        rgb(255 255 255 / 0.8);

    border-radius:
        16px;
}

.fd-study-mini-card span {
    color:
        #667085;

    font-size:
        0.72rem;

    font-weight:
        700;
}

.fd-study-mini-card strong {
    color:
        var(--fd-uxa-navy);

    font-size:
        0.92rem;

    letter-spacing:
        -0.02em;
}

.fd-study-mini-card--blue {
    background:
        var(--fd-uxa-blue-soft);
}

.fd-study-mini-card--mint {
    background:
        var(--fd-uxa-mint);
}

.fd-study-mini-card--violet {
    background:
        var(--fd-uxa-violet);
}

.fd-study-dashboard__activity {
    display: flex;

    margin-top:
        0.8rem;

    padding:
        0.9rem 1rem;

    align-items:
        center;

    gap:
        0.8rem;

    border:
        1px solid
        #e9edf4;

    border-radius:
        16px;

    background:
        #fbfcfe;
}

.fd-study-dashboard__activity-icon {
    display: grid;

    width:
        38px;

    height:
        38px;

    flex:
        0 0 auto;

    place-items:
        center;

    border-radius:
        12px;

    background:
        var(--fd-uxa-blue-soft);

    color:
        var(--fd-color-primary);
}

.fd-study-dashboard__activity-icon .fd-icon {
    width:
        18px;

    height:
        18px;
}

.fd-study-dashboard__activity > div:last-child {
    display: flex;

    min-width:
        0;

    flex-direction:
        column;
}

.fd-study-dashboard__activity span {
    color:
        #7a879a;

    font-size:
        0.72rem;
}

.fd-study-dashboard__activity strong {
    overflow: hidden;

    color:
        #26354d;

    font-size:
        0.83rem;

    text-overflow:
        ellipsis;

    white-space:
        nowrap;
}

.fd-uxa-floating-card {
    position: absolute;

    z-index: 3;

    display: flex;

    min-width:
        180px;

    padding:
        0.85rem 1rem;

    align-items:
        center;

    gap:
        0.7rem;

    border:
        1px solid
        rgb(215 223 236 / 0.9);

    border-radius:
        16px;

    background:
        rgb(255 255 255 / 0.96);

    box-shadow:
        0 18px 42px
        rgb(15 36 75 / 0.12);
}

.fd-uxa-floating-card > div {
    display: flex;

    flex-direction:
        column;
}

.fd-uxa-floating-card span {
    color:
        #7b8799;

    font-size:
        0.68rem;
}

.fd-uxa-floating-card strong {
    color:
        var(--fd-uxa-navy);

    font-size:
        0.79rem;
}

.fd-uxa-floating-card .fd-icon {
    width:
        20px;

    height:
        20px;

    color:
        var(--fd-color-primary);
}

.fd-uxa-floating-card--pdf {
    left:
        -28px;

    bottom:
        72px;
}

.fd-uxa-floating-card--quiz {
    top:
        70px;

    right:
        -34px;
}

.fd-uxa-floating-card__dot {
    width:
        12px;

    height:
        12px;

    flex:
        0 0 auto;

    border:
        4px solid
        #cfc7ff;

    border-radius:
        50%;

    background:
        #6e56cf;
}

/* ---------------------------------------------------------
 * Benefits
 * --------------------------------------------------------- */

.fd-home-benefits {
    position: relative;

    background:
        #fff;
}

.fd-home-benefits .fd-section-heading {
    margin-bottom:
        2.4rem;
}

.fd-home .fd-benefit-grid {
    gap:
        1rem;
}

.fd-home .fd-benefit-card {
    position: relative;

    min-height:
        230px;

    padding:
        1.55rem;

    overflow: hidden;

    border:
        1px solid
        transparent;

    border-radius:
        22px;

    box-shadow:
        none;

    transition:
        transform
            var(--fd-transition-base),
        box-shadow
            var(--fd-transition-base);
}

.fd-home .fd-benefit-card::after {
    position: absolute;

    width:
        110px;

    height:
        110px;

    top:
        -54px;

    right:
        -42px;

    border:
        18px solid
        rgb(255 255 255 / 0.34);

    border-radius:
        50%;

    content: "";
}

.fd-home .fd-benefit-card:hover {
    transform:
        translateY(-5px);

    box-shadow:
        0 18px 38px
        rgb(15 36 75 / 0.08);
}

.fd-home .fd-benefit-card:nth-child(1) {
    border-color:
        #d7e5ff;

    background:
        var(--fd-uxa-blue-soft);
}

.fd-home .fd-benefit-card:nth-child(2) {
    border-color:
        #d3f0e5;

    background:
        var(--fd-uxa-mint);
}

.fd-home .fd-benefit-card:nth-child(3) {
    border-color:
        #e2dcff;

    background:
        var(--fd-uxa-violet);
}

.fd-home .fd-benefit-card:nth-child(4) {
    border-color:
        #f6e9bd;

    background:
        var(--fd-uxa-amber);
}

.fd-home .fd-benefit-card > span {
    display: grid;

    width:
        42px;

    height:
        42px;

    margin-bottom:
        2rem;

    place-items:
        center;

    border:
        1px solid
        rgb(255 255 255 / 0.85);

    border-radius:
        13px;

    background:
        rgb(255 255 255 / 0.7);

    color:
        var(--fd-uxa-navy);

    box-shadow:
        0 6px 16px
        rgb(15 36 75 / 0.05);

    font-size:
        0.72rem;
}

.fd-home .fd-benefit-card h3 {
    margin-bottom:
        0.65rem;

    color:
        var(--fd-uxa-navy);

    font-size:
        1.16rem;

    letter-spacing:
        -0.03em;
}

.fd-home .fd-benefit-card p {
    color:
        #627086;

    font-size:
        0.92rem;

    line-height:
        1.65;
}

/* ---------------------------------------------------------
 * Contests
 * --------------------------------------------------------- */

.fd-home-contests.fd-section--soft {
    background:
        linear-gradient(
            180deg,
            #f8faff 0%,
            #f4f7fc 100%
        );
}

.fd-home .fd-contest-grid {
    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );

    gap:
        1rem;
}

.fd-home .fd-contest-card {
    overflow: hidden;

    border:
        1px solid
        #e0e7f1;

    border-radius:
        22px;

    background:
        #fff;

    box-shadow:
        0 8px 24px
        rgb(15 36 75 / 0.045);

    transition:
        transform
            var(--fd-transition-base),
        box-shadow
            var(--fd-transition-base),
        border-color
            var(--fd-transition-base);
}

.fd-home .fd-contest-card:hover {
    transform:
        translateY(-5px);

    border-color:
        #bfd2ff;

    box-shadow:
        0 20px 44px
        rgb(15 36 75 / 0.09);
}

.fd-home .fd-contest-card__link {
    position: relative;

    display: flex;

    min-height:
        230px;

    padding:
        1.55rem;

    flex-direction:
        column;

    text-decoration:
        none;
}

.fd-home .fd-contest-card__link::before {
    position: absolute;

    width:
        90px;

    height:
        90px;

    top:
        -44px;

    right:
        -34px;

    border:
        18px solid
        rgb(11 92 255 / 0.07);

    border-radius:
        50%;

    content: "";
}

.fd-home .fd-contest-card__type {
    margin-bottom:
        1.3rem;

    color:
        var(--fd-color-primary);

    font-size:
        0.7rem;

    font-weight:
        850;

    letter-spacing:
        0.08em;

    text-transform:
        uppercase;
}

.fd-home .fd-contest-card h3 {
    margin-bottom:
        0.55rem;

    color:
        var(--fd-uxa-navy);

    font-size:
        1.35rem;

    letter-spacing:
        -0.035em;
}

.fd-home .fd-contest-card__count {
    color:
        #758197;

    font-size:
        0.88rem;
}

.fd-home .fd-contest-card__cta {
    display: flex;

    margin-top:
        auto;

    align-items:
        center;

    justify-content:
        space-between;

    color:
        #344054;

    font-size:
        0.86rem;

    font-weight:
        800;
}

.fd-home .fd-contest-card__cta > span {
    display: grid;

    width:
        34px;

    height:
        34px;

    place-items:
        center;

    border-radius:
        11px;

    background:
        var(--fd-uxa-blue-soft);

    color:
        var(--fd-color-primary);

    transition:
        transform
        var(--fd-transition-fast);
}

.fd-home
.fd-contest-card:hover
.fd-contest-card__cta > span {
    transform:
        translateX(3px);
}

/* ---------------------------------------------------------
 * Featured products
 * --------------------------------------------------------- */

.fd-home-featured {
    background:
        #fff;
}

.fd-home .fd-product-grid {
    gap:
        1.15rem;
}

.fd-home .fd-product-card {
    border-color:
        #e1e7f0;

    border-radius:
        20px;

    box-shadow:
        0 8px 24px
        rgb(15 36 75 / 0.045);
}

.fd-home .fd-product-card:hover {
    transform:
        translateY(-6px);

    box-shadow:
        0 22px 48px
        rgb(15 36 75 / 0.10);
}

.fd-home .fd-product-card__image-wrap {
    background:
        linear-gradient(
            145deg,
            #f7f9fd,
            #eef3fa
        );
}

.fd-home .fd-product-card__content {
    padding:
        1.1rem 1.15rem
        1.2rem;
}

.fd-home .fd-product-card__title {
    color:
        var(--fd-uxa-navy);
}

.fd-home .fd-product-card__price {
    color:
        var(--fd-uxa-navy);
}

.fd-home .fd-product-card__button {
    border-radius:
        12px;
}

.fd-home-featured__footer {
    margin-top:
        2.4rem;
}

.fd-home-featured__footer .fd-button {
    border-radius:
        13px;
}

/* ---------------------------------------------------------
 * Simulations
 * --------------------------------------------------------- */

.fd-home-simulations {
    position: relative;

    overflow: hidden;

    background:
        radial-gradient(
            circle at 92% 0%,
            rgb(68 119 255 / 0.34),
            transparent 34%
        ),
        radial-gradient(
            circle at 64% 100%,
            rgb(110 86 207 / 0.22),
            transparent 28%
        ),
        linear-gradient(
            135deg,
            #08152f,
            #10244c 60%,
            #122a5b
        );

    color:
        #fff;
}

.fd-home-simulations::before {
    position: absolute;

    width:
        420px;

    height:
        420px;

    top:
        -230px;

    right:
        -110px;

    border:
        55px solid
        rgb(255 255 255 / 0.05);

    border-radius:
        50%;

    content: "";
}

.fd-home-simulations__grid {
    position: relative;

    z-index: 1;

    gap:
        clamp(
            3rem,
            7vw,
            7rem
        );
}

.fd-home-simulations .fd-eyebrow {
    border-color:
        rgb(255 255 255 / 0.16);

    background:
        rgb(255 255 255 / 0.08);

    color:
        #dce7ff;
}

.fd-home-simulations h2 {
    max-width:
        650px;

    color:
        #fff;

    font-size:
        clamp(
            2.2rem,
            4vw,
            3.5rem
        );

    letter-spacing:
        -0.045em;
}

.fd-home-simulations p {
    max-width:
        610px;

    color:
        #b9c6dc;

    font-size:
        1.05rem;

    line-height:
        1.72;
}

.fd-home-simulations .fd-button--primary {
    background:
        #fff;

    color:
        #143774;

    box-shadow:
        0 14px 34px
        rgb(0 0 0 / 0.16);
}

.fd-home-simulations .fd-button--primary:hover {
    background:
        #eef4ff;
}

.fd-home .fd-simulation-preview {
    border:
        1px solid
        rgb(255 255 255 / 0.14);

    border-radius:
        26px;

    background:
        rgb(255 255 255 / 0.09);

    box-shadow:
        0 26px 60px
        rgb(0 0 0 / 0.18);

    backdrop-filter:
        blur(12px);
}

.fd-home .fd-simulation-preview__header {
    border-bottom-color:
        rgb(255 255 255 / 0.11);
}

.fd-home .fd-simulation-preview__header span,
.fd-home .fd-simulation-preview__score span {
    color:
        #b8c7df;
}

.fd-home .fd-simulation-preview__header strong,
.fd-home .fd-simulation-preview__score strong {
    color:
        #fff;
}

.fd-home .fd-simulation-preview__bars {
    gap:
        0.65rem;
}

.fd-home .fd-simulation-preview__bars > span {
    height:
        10px;

    background:
        rgb(255 255 255 / 0.1);
}

.fd-home .fd-simulation-preview__bars > span::after {
    background:
        linear-gradient(
            90deg,
            #70a2ff,
            #ad9bff
        );
}

/* ---------------------------------------------------------
 * Steps
 * --------------------------------------------------------- */

.fd-home-steps.fd-section--soft {
    background:
        #f8faff;
}

.fd-home .fd-step-grid {
    position: relative;

    gap:
        1rem;
}

.fd-home .fd-step-grid::before {
    position: absolute;

    height:
        2px;

    top:
        35px;

    right:
        8%;

    left:
        8%;

    background:
        linear-gradient(
            90deg,
            #bfd2ff,
            #ded7ff
        );

    content: "";
}

.fd-home .fd-step-card {
    position: relative;

    z-index: 1;

    min-height:
        205px;

    padding:
        0 1.15rem
        1.2rem;

    border:
        0;

    background:
        transparent;

    text-align:
        center;

    box-shadow:
        none;
}

.fd-home .fd-step-card__number {
    display: grid;

    width:
        70px;

    height:
        70px;

    margin:
        0 auto
        1.3rem;

    place-items:
        center;

    border:
        8px solid
        #f8faff;

    border-radius:
        50%;

    background:
        var(--fd-color-primary);

    color:
        #fff;

    box-shadow:
        0 10px 24px
        rgb(11 92 255 / 0.18);

    font-size:
        0.9rem;

    font-weight:
        850;
}

.fd-home .fd-step-card:nth-child(2)
.fd-step-card__number {
    background:
        #3a6fe8;
}

.fd-home .fd-step-card:nth-child(3)
.fd-step-card__number {
    background:
        #585ee8;
}

.fd-home .fd-step-card:nth-child(4)
.fd-step-card__number {
    background:
        #6e56cf;
}

.fd-home .fd-step-card h3 {
    margin-bottom:
        0.5rem;

    color:
        var(--fd-uxa-navy);

    font-size:
        1.14rem;
}

.fd-home .fd-step-card p {
    max-width:
        240px;

    margin:
        0 auto;

    color:
        #68758a;

    font-size:
        0.9rem;

    line-height:
        1.6;
}

/* ---------------------------------------------------------
 * FAQ
 * --------------------------------------------------------- */

.fd-home-faq.fd-section--soft {
    background:
        #fff;
}

.fd-home-faq__container {
    display: grid;

    max-width:
        var(--fd-container);

    grid-template-columns:
        minmax(260px, 0.75fr)
        minmax(0, 1.25fr);

    column-gap:
        clamp(
            2.5rem,
            7vw,
            6rem
        );

    align-items:
        start;
}

.fd-home-faq__container
.fd-section-heading {
    position: sticky;

    top:
        calc(
            var(--fd-header-height)
            + 2rem
        );

    margin-bottom:
        1.5rem;
}

.fd-home .fd-faq-list {
    display: flex;

    flex-direction:
        column;

    gap:
        0.7rem;
}

.fd-home .fd-faq-item {
    overflow: hidden;

    border:
        1px solid
        #e2e8f1;

    border-radius:
        17px;

    background:
        #fbfcfe;

    transition:
        border-color
            var(--fd-transition-fast),
        background
            var(--fd-transition-fast),
        box-shadow
            var(--fd-transition-fast);
}

.fd-home .fd-faq-item[open] {
    border-color:
        #c7d8fa;

    background:
        #fff;

    box-shadow:
        0 14px 32px
        rgb(15 36 75 / 0.065);
}

.fd-home .fd-faq-item summary {
    position: relative;

    padding:
        1.15rem
        3.4rem
        1.15rem
        1.2rem;

    color:
        var(--fd-uxa-navy);

    font-size:
        0.98rem;

    font-weight:
        780;

    cursor:
        pointer;

    list-style:
        none;
}

.fd-home .fd-faq-item summary::-webkit-details-marker {
    display:
        none;
}

.fd-home .fd-faq-item summary::after {
    position: absolute;

    display: grid;

    width:
        28px;

    height:
        28px;

    top:
        50%;

    right:
        1rem;

    place-items:
        center;

    transform:
        translateY(-50%);

    border-radius:
        9px;

    background:
        var(--fd-uxa-blue-soft);

    color:
        var(--fd-color-primary);

    content:
        "+";

    font-size:
        1.15rem;

    line-height:
        1;

    transition:
        transform
        var(--fd-transition-fast);
}

.fd-home .fd-faq-item[open] summary::after {
    transform:
        translateY(-50%)
        rotate(45deg);
}

.fd-home .fd-faq-item__content {
    padding:
        0 1.2rem
        1.15rem;
}

.fd-home .fd-faq-item__content p {
    margin:
        0;

    color:
        #667085;

    line-height:
        1.66;
}

.fd-home-faq__container > .fd-text-link {
    grid-column:
        1;

    align-self:
        start;

    color:
        var(--fd-color-primary);

    font-weight:
        800;

    text-decoration:
        none;
}

/* ---------------------------------------------------------
 * Final CTA
 * --------------------------------------------------------- */

.fd-home-final-cta {
    padding-top:
        1.5rem !important;

    background:
        #fff;
}

.fd-home .fd-final-cta {
    position: relative;

    padding:
        clamp(
            2rem,
            5vw,
            3.6rem
        );

    overflow: hidden;

    border:
        1px solid
        #cadbff;

    border-radius:
        28px;

    background:
        radial-gradient(
            circle at 88% 20%,
            rgb(255 255 255 / 0.72),
            transparent 23%
        ),
        linear-gradient(
            135deg,
            #eaf2ff,
            #f1efff 62%,
            #fff8e8
        );

    box-shadow:
        0 24px 60px
        rgb(15 36 75 / 0.08);
}

.fd-home .fd-final-cta::after {
    position: absolute;

    width:
        230px;

    height:
        230px;

    top:
        -115px;

    right:
        -45px;

    border:
        35px solid
        rgb(11 92 255 / 0.07);

    border-radius:
        50%;

    content: "";

    pointer-events:
        none;
}

.fd-home .fd-final-cta > * {
    position: relative;

    z-index: 1;
}

.fd-home .fd-final-cta h2 {
    max-width:
        620px;

    color:
        var(--fd-uxa-navy);

    letter-spacing:
        -0.045em;
}

.fd-home .fd-final-cta p {
    color:
        #5f6f85;
}

.fd-home .fd-final-cta .fd-button {
    border-radius:
        13px;

    box-shadow:
        0 12px 28px
        rgb(11 92 255 / 0.18);
}

/* ---------------------------------------------------------
 * Global footer
 * --------------------------------------------------------- */

.fd-site-footer {
    position: relative;

    margin-top:
        auto;

    overflow: hidden;

    background:
        radial-gradient(
            circle at 8% 0%,
            rgb(11 92 255 / 0.20),
            transparent 24%
        ),
        linear-gradient(
            135deg,
            #07142d,
            #0b1c3d 60%,
            #0c214a
        );

    color:
        #fff;
}

.fd-site-footer::before {
    position: absolute;

    width:
        380px;

    height:
        380px;

    right:
        -180px;

    bottom:
        -190px;

    border:
        55px solid
        rgb(255 255 255 / 0.035);

    border-radius:
        50%;

    content: "";

    pointer-events:
        none;
}

.fd-footer-main,
.fd-footer-bottom {
    position: relative;

    z-index: 1;
}

.fd-footer-main {
    padding:
        clamp(
            3.8rem,
            7vw,
            5.5rem
        )
        0
        3.6rem;
}

.fd-footer-grid {
    grid-template-columns:
        minmax(280px, 1.55fr)
        repeat(
            3,
            minmax(130px, 0.8fr)
        );

    gap:
        clamp(
            2rem,
            5vw,
            4rem
        );
}

.fd-footer-brand {
    max-width:
        390px;
}

.fd-footer-brand__logo {
    margin-bottom:
        1.1rem;

    font-size:
        1.65rem;

    letter-spacing:
        -0.055em;
}

.fd-footer-brand__logo strong {
    color:
        #6d9cff;
}

.fd-footer-brand p {
    max-width:
        350px;

    color:
        #aebbd0;

    font-size:
        0.92rem;

    line-height:
        1.72;
}

.fd-footer-brand__contact {
    display: inline-flex;

    margin-top:
        1.15rem;

    padding:
        0.62rem 0.82rem;

    border:
        1px solid
        rgb(255 255 255 / 0.12);

    border-radius:
        11px;

    background:
        rgb(255 255 255 / 0.055);

    color:
        #dce7f8;

    font-size:
        0.83rem;

    font-weight:
        700;

    text-decoration:
        none;

    transition:
        background
            var(--fd-transition-fast),
        border-color
            var(--fd-transition-fast);
}

.fd-footer-brand__contact:hover {
    border-color:
        rgb(255 255 255 / 0.24);

    background:
        rgb(255 255 255 / 0.09);
}

.fd-footer-column h2 {
    margin-bottom:
        1.2rem;

    color:
        #f8fbff;

    font-size:
        0.72rem;

    letter-spacing:
        0.1em;
}

.fd-footer-menu,
.fd-footer-column .menu {
    gap:
        0.72rem;
}

.fd-footer-menu a,
.fd-footer-column .menu a {
    color:
        #aebbd0;

    font-size:
        0.86rem;
}

.fd-footer-menu a:hover,
.fd-footer-column .menu a:hover {
    color:
        #fff;
}

.fd-footer-bottom {
    border-top-color:
        rgb(255 255 255 / 0.08);
}

.fd-footer-bottom__inner {
    min-height:
        68px;
}

.fd-footer-bottom p {
    color:
        #8495af;

    font-size:
        0.78rem;
}

/* ---------------------------------------------------------
 * Responsive UX-A
 * --------------------------------------------------------- */

@media (
    max-width: 1120px
) {
    .fd-home-hero--uxa
    .fd-home-hero__grid {
        grid-template-columns:
            minmax(0, 1fr)
            minmax(340px, 0.8fr);

        gap:
            2.5rem;
    }

    .fd-uxa-floating-card--pdf {
        left:
            -8px;
    }

    .fd-uxa-floating-card--quiz {
        right:
            -10px;
    }
}

@media (
    max-width: 1023px
) {
    .fd-primary-nav a::after {
        display:
            none;
    }

    .fd-primary-nav {
        border-color:
            #e4e9f1;

        background:
            rgb(255 255 255 / 0.985);
    }

    .fd-primary-nav a {
        color:
            #344054;
    }

    .fd-home-hero--uxa {
        min-height:
            auto;
    }

    .fd-home-hero--uxa
    .fd-home-hero__grid {
        grid-template-columns:
            1fr;

        gap:
            3.4rem;
    }

    .fd-home-hero--uxa
    .fd-home-hero__visual {
        width:
            min(
                100%,
                570px
            );

        min-height:
            490px;

        justify-self:
            center;
    }

    .fd-home
    .fd-contest-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }

    .fd-home
    .fd-step-grid::before {
        display:
            none;
    }

    .fd-home-faq__container {
        grid-template-columns:
            1fr;
    }

    .fd-home-faq__container
    .fd-section-heading {
        position:
            static;
    }

    .fd-home-faq__container
    > .fd-text-link {
        grid-column:
            auto;

        margin-top:
            1.25rem;
    }

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

    .fd-footer-brand {
        grid-column:
            1 / -1;

        max-width:
            520px;
    }

    .fd-footer-column:last-child {
        grid-column:
            auto;
    }
}

@media (
    max-width: 760px
) {
    .fd-home-hero--uxa {
        padding-top:
            3.8rem;
    }

    .fd-home-hero--uxa h1 {
        font-size:
            clamp(
                2.65rem,
                12vw,
                4rem
            );
    }

    .fd-home-hero--uxa
    .fd-home-hero__visual {
        min-height:
            450px;
    }

    .fd-study-dashboard {
        max-width:
            390px;
    }

    .fd-uxa-floating-card {
        min-width:
            160px;
    }

    .fd-uxa-floating-card--pdf {
        left:
            0;
    }

    .fd-uxa-floating-card--quiz {
        right:
            0;
    }

    .fd-home
    .fd-contest-grid {
        grid-template-columns:
            1fr;
    }

    .fd-home
    .fd-contest-card__link {
        min-height:
            205px;
    }

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

    .fd-footer-brand {
        grid-column:
            1 / -1;
    }

    .fd-footer-column:last-child {
        grid-column:
            auto;
    }
}

@media (
    max-width: 640px
) {
    .fd-site-header__inner {
        min-height:
            var(--fd-header-height);
    }

    .fd-site-branding__text {
        font-size:
            1.15rem;
    }

    .fd-site-branding
    .custom-logo {
        max-width:
            145px;

        max-height:
            42px;
    }

    .fd-header-account {
        width:
            40px;

        min-height:
            40px;

        padding:
            0;

        border-color:
            #d9e4f6;

        background:
            #f6f9ff;
    }

    .fd-header-cart {
        width:
            40px;

        height:
            40px;
    }

    .fd-menu-toggle {
        width:
            40px;

        height:
            40px;

        border:
            1px solid
            #e6ebf2;

        background:
            #fff;
    }

    .fd-home .fd-section {
        padding-block:
            3.8rem;
    }

    .fd-home-hero--uxa {
        padding:
            3.55rem 0
            3.6rem;
    }

    .fd-home-hero--uxa::before {
        opacity:
            0.18;

        mask-image:
            none;
    }

    .fd-home-hero--uxa h1 {
        font-size:
            clamp(
                2.45rem,
                13vw,
                3.4rem
            );

        line-height:
            1.02;
    }

    .fd-home-hero--uxa
    .fd-home-hero__lead {
        font-size:
            1.02rem;
    }

    .fd-home-hero--uxa
    .fd-home-search__field {
        min-height:
            0;

        padding:
            0.65rem;

        border-radius:
            16px;
    }

    .fd-home-hero--uxa
    .fd-home-search__field
    .fd-button {
        border-radius:
            11px;
    }

    .fd-home-hero--uxa
    .fd-home-hero__trust {
        align-items:
            stretch;

        gap:
            0.5rem;
    }

    .fd-home-hero--uxa
    .fd-home-hero__trust li {
        width:
            100%;

        justify-content:
            flex-start;
    }

    /*
     * O responsive.css original oculta o visual abaixo de 640px.
     * Mantemos isso no UX-A para privilegiar leitura e velocidade.
     */
    .fd-home-hero--uxa
    .fd-home-hero__visual {
        display:
            none;
    }

    .fd-home
    .fd-benefit-card {
        min-height:
            0;

        padding:
            1.4rem;
    }

    .fd-home
    .fd-benefit-card > span {
        margin-bottom:
            1.4rem;
    }

    .fd-home
    .fd-step-card {
        min-height:
            0;

        padding-bottom:
            1.8rem;
    }

    .fd-home
    .fd-step-card__number {
        width:
            62px;

        height:
            62px;
    }

    .fd-home .fd-final-cta {
        padding:
            1.65rem;

        border-radius:
            22px;
    }

    .fd-footer-grid {
        grid-template-columns:
            1fr;
    }

    .fd-footer-brand,
    .fd-footer-column,
    .fd-footer-column:last-child {
        grid-column:
            auto;
    }

    .fd-footer-bottom__inner {
        gap:
            0.45rem;
    }
}

@media (
    prefers-reduced-motion: reduce
) {
    .fd-home *,
    .fd-site-header *,
    .fd-site-footer * {
        scroll-behavior:
            auto !important;

        transition-duration:
            0.01ms !important;
    }
}

/*
 * UX-A.1 - correcoes visuais de login e carrinho
 * Somente apresentacao. Nao altera autenticacao, carrinho, checkout,
 * pedidos, Mercado Pago ou Facil Digital Core.
 */

/* LOGIN -------------------------------------------------------------- */

.fd-auth-page .fd-auth-card,
.fd-auth-page .fd-auth-form,
.fd-auth-page .fd-form-field,
.fd-auth-page .fd-password-field {
    min-width: 0;
}

.fd-auth-page .fd-password-field {
    position: relative;
    width: 100%;
    max-width: 100%;
}

.fd-auth-page .fd-password-field input[type="password"] {
    display: block;
    width: 100%;
    max-width: 100%;
    padding-right: 5.25rem !important;
}

.fd-auth-page .fd-password-toggle {
    position: absolute !important;
    top: 50% !important;
    right: 0.7rem !important;
    bottom: auto !important;
    left: auto !important;

    display: inline-flex !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: max-content !important;
    min-height: 32px !important;

    margin: 0 !important;
    padding: 0.35rem 0.55rem !important;

    align-items: center;
    justify-content: center;

    transform: translateY(-50%) !important;

    border: 0 !important;
    border-radius: 8px !important;

    background: transparent !important;
    box-shadow: none !important;

    color: var(--fd-color-primary) !important;

    font-size: 0.78rem !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    white-space: nowrap;

    z-index: 3;
}

.fd-auth-page .fd-password-toggle:hover {
    background: var(--fd-color-primary-soft) !important;
}

/* CARRINHO ----------------------------------------------------------- */

.woocommerce-cart .woocommerce {
    align-items: start;
}

.woocommerce-cart .woocommerce-cart-form {
    min-width: 0;
    margin: 0;
}

.woocommerce-cart table.shop_table {
    width: 100%;
}

.woocommerce-cart table.shop_table th {
    padding: 0.95rem 1rem;
}

.woocommerce-cart table.shop_table td {
    padding: 1rem;
}

.woocommerce-cart table.shop_table .product-thumbnail img {
    width: 64px;
    max-width: 64px;
    height: 82px;
    object-fit: contain;

    border-radius: 10px;

    background: var(--fd-color-surface-soft);
}

.woocommerce-cart table.shop_table td.actions {
    padding: 0.9rem 1rem;
}

.woocommerce-cart table.shop_table td.actions .coupon {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
}

.woocommerce-cart table.shop_table td.actions .coupon .input-text {
    width: clamp(150px, 18vw, 210px) !important;
    min-height: 42px;

    padding: 0 0.8rem;

    border: 1px solid var(--fd-color-border-strong);
    border-radius: 10px;

    background: #fff;
}

.woocommerce-cart table.shop_table td.actions .button {
    min-height: 42px;

    padding: 0 1rem;

    border-radius: 10px;

    font-size: 0.9rem;
}

.woocommerce-cart .cart-collaterals {
    width: 100%;
}

.woocommerce-cart .cart-collaterals .cart_totals {
    width: 100%;
    max-width: none;

    margin: 0;

    padding: clamp(1.25rem, 2.4vw, 1.75rem);

    border-radius: 20px;
}

.woocommerce-cart .cart_totals h2 {
    margin: 0 0 1rem;

    font-size: clamp(1.55rem, 2.2vw, 2rem);
    line-height: 1.08;
}

.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td {
    padding: 0.9rem 0.75rem;
}

.woocommerce-cart .cart_totals table.shop_table th {
    width: 42%;

    background: var(--fd-color-surface-soft);
}

.woocommerce-cart .cart_totals .wc-proceed-to-checkout {
    display: flex;
    justify-content: flex-end;

    padding: 1rem 0 0;
}

.woocommerce-cart
.cart_totals
.wc-proceed-to-checkout
a.checkout-button {
    display: inline-flex !important;
    width: min(100%, 300px) !important;
    min-height: 48px !important;

    margin: 0 !important;
    padding: 0 1.35rem !important;

    align-items: center;
    justify-content: center;

    border: 0 !important;
    border-radius: 12px !important;

    background: var(--fd-color-primary) !important;
    color: #fff !important;

    font-size: 1rem !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;

    box-shadow: 0 10px 24px rgb(11 92 255 / 0.16);

    text-align: center;
}

.woocommerce-cart
.cart_totals
.wc-proceed-to-checkout
a.checkout-button:hover {
    background: var(--fd-color-primary-hover) !important;
    transform: translateY(-1px);
}

/*
 * Desktop: itens e resumo lado a lado, como uma loja digital moderna.
 * O WooCommerce continua gerando todo o markup e toda a logica.
 */
@media (min-width: 1024px) {
    .woocommerce-cart .woocommerce {
        display: grid;
        grid-template-columns:
            minmax(0, 1.55fr)
            minmax(330px, 0.75fr);

        column-gap: clamp(1.5rem, 3vw, 2.5rem);
        row-gap: 1.5rem;
    }

    .woocommerce-cart
    .woocommerce
    > .woocommerce-notices-wrapper,
    .woocommerce-cart
    .woocommerce
    > .fd-cart-assurance {
        grid-column: 1 / -1;
    }

    .woocommerce-cart .woocommerce-cart-form {
        grid-column: 1;
    }

    .woocommerce-cart .cart-collaterals {
        grid-column: 2;

        margin-top: 0;
    }

    .woocommerce-cart
    .cart_totals
    .wc-proceed-to-checkout
    a.checkout-button {
        width: 100% !important;
    }
}

@media (max-width: 1023px) {
    .woocommerce-cart .cart-collaterals {
        margin-top: 1.5rem;
    }
}

@media (max-width: 700px) {
    .woocommerce-cart table.shop_table td.actions .coupon {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;

        width: 100%;
        margin-bottom: 0.65rem;
    }

    .woocommerce-cart table.shop_table td.actions .coupon .input-text {
        width: 100% !important;
    }

    .woocommerce-cart table.shop_table td.actions > .button {
        width: auto !important;
    }

    .woocommerce-cart .cart_totals .wc-proceed-to-checkout {
        justify-content: stretch;
    }

    .woocommerce-cart
    .cart_totals
    .wc-proceed-to-checkout
    a.checkout-button {
        width: 100% !important;
    }
}

/*
 * UX-A.2 - auth compacto e carrinho estabilizado
 * Ajuste estritamente visual.
 */

/* ============================================================
   AUTENTICACAO
   Mantem o botao Mostrar/Ocultar pequeno e DENTRO do campo.
   ============================================================ */

.fd-auth-page .fd-password-field {
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}

.fd-auth-page .fd-password-field input[type="password"],
.fd-auth-page .fd-password-field input[type="text"] {
    box-sizing: border-box !important;
    display: block !important;

    width: 100% !important;
    max-width: 100% !important;

    padding-right: 5.35rem !important;
}

.fd-auth-page button.fd-password-toggle {
    appearance: none !important;

    position: absolute !important;
    top: 50% !important;
    right: 0.7rem !important;
    bottom: auto !important;
    left: auto !important;

    display: inline-flex !important;

    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;

    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;

    margin: 0 !important;
    padding: 0.4rem 0.55rem !important;

    align-items: center !important;
    justify-content: center !important;

    transform: translateY(-50%) !important;

    border: 0 !important;
    border-radius: 8px !important;

    background: transparent !important;
    box-shadow: none !important;

    color: var(--fd-color-primary) !important;

    font-size: 0.75rem !important;
    font-weight: 800 !important;
    line-height: 1 !important;

    white-space: nowrap !important;

    cursor: pointer !important;

    z-index: 4 !important;
}

.fd-auth-page button.fd-password-toggle:hover,
.fd-auth-page button.fd-password-toggle[aria-pressed="true"] {
    background: var(--fd-color-primary-soft) !important;
}

.fd-auth-page button.fd-password-toggle:focus-visible {
    outline: 2px solid rgb(11 92 255 / 0.30) !important;
    outline-offset: 2px !important;
}


/* ============================================================
   CARRINHO
   A pagina usa fd-page-container (820px) por padrao.
   Para o carrinho precisamos de uma area comercial mais larga.
   ============================================================ */

.woocommerce-cart .fd-page-container {
    max-width: var(--fd-container) !important;
}

.woocommerce-cart .fd-page-header {
    margin-bottom: clamp(1.75rem, 4vw, 3rem);
}

.woocommerce-cart .fd-page-header h1 {
    margin-bottom: 0;

    font-size: clamp(2.6rem, 5vw, 3.6rem);
    line-height: 1;
}

/* Corrige o grid apertado do UX-A.1 e cria duas colunas somente
   quando ha largura real suficiente. */
.woocommerce-cart .woocommerce {
    display: grid !important;

    width: 100% !important;
    max-width: none !important;

    grid-template-columns:
        minmax(0, 1.6fr)
        minmax(320px, 0.78fr);

    column-gap: clamp(1.5rem, 3vw, 2.5rem);
    row-gap: 1.75rem;

    align-items: start;

    margin-inline: 0 !important;
    padding-block: 0 !important;
}

.woocommerce-cart
.woocommerce
> .woocommerce-notices-wrapper,
.woocommerce-cart
.woocommerce
> .fd-cart-assurance {
    grid-column: 1 / -1;
}

.woocommerce-cart .fd-cart-assurance {
    margin-bottom: 0 !important;
}

.woocommerce-cart .woocommerce-cart-form {
    grid-column: 1;

    width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
}

.woocommerce-cart .woocommerce-cart-form table.shop_table {
    box-sizing: border-box !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;

    table-layout: auto;
}

.woocommerce-cart table.shop_table th,
.woocommerce-cart table.shop_table td {
    box-sizing: border-box !important;
}

.woocommerce-cart table.shop_table th {
    padding: 0.9rem 0.8rem !important;
}

.woocommerce-cart table.shop_table td {
    padding: 1rem 0.8rem !important;
}

.woocommerce-cart table.shop_table .product-remove {
    width: 42px;
}

.woocommerce-cart table.shop_table .product-thumbnail {
    width: 78px;
}

.woocommerce-cart table.shop_table .product-thumbnail img {
    display: block;

    width: 56px !important;
    max-width: 56px !important;
    height: 72px !important;

    margin: 0 auto;

    object-fit: contain;

    border-radius: 9px;

    background: var(--fd-color-surface-soft);
}

.woocommerce-cart table.shop_table .product-price,
.woocommerce-cart table.shop_table .product-subtotal {
    white-space: nowrap;
}

/* Linha de cupom/atualizacao. */
.woocommerce-cart table.shop_table td.actions {
    padding: 0.9rem 1rem !important;
}

.woocommerce-cart table.shop_table td.actions::after {
    display: table;
    clear: both;

    content: "";
}

.woocommerce-cart table.shop_table td.actions .coupon {
    display: inline-flex !important;
    float: left !important;

    align-items: center;

    gap: 0.55rem;

    max-width: 100%;
}

.woocommerce-cart
table.shop_table
td.actions
.coupon
.input-text {
    box-sizing: border-box !important;

    width: 170px !important;
    min-height: 42px !important;

    margin: 0 !important;
    padding: 0 0.75rem !important;

    border: 1px solid var(--fd-color-border-strong) !important;
    border-radius: 10px !important;

    background: #fff !important;
}

.woocommerce-cart table.shop_table td.actions .button {
    width: auto !important;
    min-width: 0 !important;
    min-height: 42px !important;

    margin: 0 !important;
    padding: 0 0.95rem !important;

    border-radius: 10px !important;

    font-size: 0.875rem !important;
    line-height: 1 !important;
}

.woocommerce-cart
table.shop_table
td.actions
> button[name="update_cart"] {
    float: right !important;
}

/* Resumo */
.woocommerce-cart .cart-collaterals {
    grid-column: 2;

    display: block !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
}

.woocommerce-cart
.cart-collaterals
.cart_totals {
    box-sizing: border-box !important;

    float: none !important;

    width: 100% !important;
    max-width: 420px !important;

    margin: 0 0 0 auto !important;
    padding: 1.4rem !important;

    border-radius: 20px !important;
}

.woocommerce-cart .cart_totals h2 {
    margin: 0 0 1rem !important;

    font-size: clamp(1.5rem, 2.3vw, 1.9rem) !important;
    line-height: 1.08 !important;
}

.woocommerce-cart .cart_totals table.shop_table {
    width: 100% !important;

    margin: 0 !important;
}

.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td {
    padding: 0.85rem 0.75rem !important;
}

.woocommerce-cart .cart_totals table.shop_table th {
    width: 42% !important;

    background: var(--fd-color-surface-soft) !important;
}

.woocommerce-cart
.cart_totals
.wc-proceed-to-checkout {
    display: flex !important;

    padding: 1rem 0 0 !important;

    justify-content: flex-end !important;
}

.woocommerce-cart
.cart_totals
.wc-proceed-to-checkout
a.checkout-button {
    display: inline-flex !important;

    width: auto !important;
    min-width: 220px !important;
    max-width: 100% !important;

    min-height: 46px !important;

    margin: 0 !important;
    padding: 0.75rem 1.1rem !important;

    align-items: center !important;
    justify-content: center !important;

    border-radius: 11px !important;

    background: var(--fd-color-primary) !important;
    color: #fff !important;

    font-size: 0.92rem !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;

    text-align: center !important;
}

.woocommerce-cart
.cart_totals
.wc-proceed-to-checkout
a.checkout-button:hover {
    background: var(--fd-color-primary-hover) !important;
}


/* Em notebooks menores, mantemos uma composicao vertical organizada. */
@media (max-width: 1050px) {
    .woocommerce-cart .woocommerce {
        display: block !important;
    }

    .woocommerce-cart .fd-cart-assurance {
        margin-bottom: 1.5rem !important;
    }

    .woocommerce-cart .cart-collaterals {
        margin-top: 1.5rem !important;
    }

    .woocommerce-cart
    .cart-collaterals
    .cart_totals {
        width: min(100%, 500px) !important;
        max-width: 500px !important;

        margin-left: auto !important;
    }
}

@media (max-width: 700px) {
    .woocommerce-cart .fd-page-header h1 {
        font-size: 2.35rem;
    }

    .woocommerce-cart table.shop_table td.actions .coupon {
        display: grid !important;
        float: none !important;

        grid-template-columns: minmax(0, 1fr) auto;

        width: 100%;
    }

    .woocommerce-cart
    table.shop_table
    td.actions
    .coupon
    .input-text {
        width: 100% !important;
    }

    .woocommerce-cart
    table.shop_table
    td.actions
    > button[name="update_cart"] {
        float: none !important;

        margin-top: 0.65rem !important;
    }

    .woocommerce-cart
    .cart-collaterals
    .cart_totals {
        max-width: none !important;
    }

    .woocommerce-cart
    .cart_totals
    .wc-proceed-to-checkout
    a.checkout-button {
        width: 100% !important;
        min-width: 0 !important;
    }
}
