.fd-product-page {
    display: grid;

    gap:
        var(--fd-space-16);
}

.fd-product-primary {
    display: grid;

    grid-template-columns:
        minmax(0, 0.9fr)
        minmax(360px, 1.1fr);

    align-items: start;

    gap:
        clamp(
            2.5rem,
            6vw,
            5rem
        );
}

.fd-product-primary__media {
    position: relative;

    min-width: 0;
}

.fd-product-primary__media
.woocommerce-product-gallery {
    width: 100%;
    float: none;

    margin: 0;
}

.fd-product-primary__media
.woocommerce-product-gallery__wrapper {
    margin: 0;
}

.fd-product-primary__media
.woocommerce-product-gallery__image {
    overflow: hidden;

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

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

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

    box-shadow:
        var(--fd-shadow-sm);
}

.fd-product-primary__media
.woocommerce-product-gallery__image
img {
    width: 100%;
    height: auto;

    margin: 0;
}

.fd-product-primary__summary {
    position: sticky;

    top:
        calc(
            var(--fd-header-height)
            + var(--fd-space-6)
        );

    padding:
        clamp(
            1.5rem,
            4vw,
            2.5rem
        );

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

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

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

    box-shadow:
        var(--fd-shadow-md);
}

.fd-product-title {
    margin-bottom:
        var(--fd-space-5);

    font-size:
        clamp(
            2rem,
            4vw,
            3.4rem
        );
}

.fd-product-price {
    margin-bottom:
        var(--fd-space-5);

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

    font-size:
        clamp(
            1.7rem,
            3vw,
            2.4rem
        );

    font-weight: 850;
}

.fd-product-price del {
    color:
        var(--fd-color-text-soft);

    font-size:
        var(--fd-font-size-lg);
}

.fd-product-price ins {
    text-decoration: none;
}

.fd-product-excerpt {
    margin-bottom:
        var(--fd-space-5);

    color:
        var(--fd-color-text-muted);
}

.fd-product-excerpt
> *:last-child {
    margin-bottom: 0;
}

.fd-product-stock {
    display: flex;

    flex-wrap: wrap;

    align-items: center;

    gap:
        var(--fd-space-2);

    margin-bottom:
        var(--fd-space-6);

    color:
        var(--fd-color-text-muted);

    font-size:
        var(--fd-font-size-sm);

    font-weight: 650;
}

.fd-product-stock__dot {
    width: 9px;
    height: 9px;

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

.fd-product-stock__dot--available {
    background:
        var(--fd-color-success);
}

.fd-product-stock__dot--unavailable {
    background:
        var(--fd-color-danger);
}

.fd-product-stock__native
.stock {
    margin: 0;
}

.fd-product-purchase {
    margin-bottom:
        var(--fd-space-6);
}

.fd-product-purchase
form.cart {
    display: flex;

    align-items: stretch;

    gap:
        var(--fd-space-3);

    margin: 0;
}

.fd-product-purchase
.quantity
.qty {
    width: 76px;

    min-height: 50px;

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

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

    text-align: center;
}

.fd-product-purchase
.single_add_to_cart_button {
    min-height: 50px;

    flex: 1;

    border: 0;

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

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

    color: #fff;

    font-weight: 800;
}

.fd-product-purchase
.single_add_to_cart_button:hover {
    background:
        var(--fd-color-primary-hover);
}

.fd-product-purchase
.single_add_to_cart_button.disabled {
    opacity: 0.55;

    cursor: not-allowed;
}

.fd-product-trust {
    display: grid;

    gap:
        var(--fd-space-3);

    margin: 0;
    padding:
        var(--fd-space-5)
        0
        0;

    border-top:
        1px solid
        var(--fd-color-border);

    list-style: none;
}

.fd-product-trust li {
    display: flex;

    align-items: center;

    gap:
        var(--fd-space-3);

    color:
        var(--fd-color-text-muted);

    font-size:
        var(--fd-font-size-sm);
}

.fd-product-trust
.fd-icon {
    color:
        var(--fd-color-primary);
}

.fd-product-section {
    padding-top:
        var(--fd-space-12);

    border-top:
        1px solid
        var(--fd-color-border);
}

.fd-product-section__heading {
    max-width: 760px;

    margin-bottom:
        var(--fd-space-8);
}

.fd-product-section__heading h2 {
    margin-bottom: 0;
}

.fd-product-benefit-grid {
    display: grid;

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

    gap:
        var(--fd-space-5);
}

.fd-product-benefit-grid article {
    padding:
        var(--fd-space-6);

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

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

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

.fd-product-benefit-grid strong {
    display: block;

    margin-bottom:
        var(--fd-space-3);

    font-size:
        var(--fd-font-size-lg);
}

.fd-product-benefit-grid p {
    margin-bottom: 0;

    color:
        var(--fd-color-text-muted);
}

.fd-product-details {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        minmax(260px, 0.4fr);

    gap:
        var(--fd-space-10);
}

.fd-product-description {
    color:
        var(--fd-color-text-muted);
}

.fd-product-description
> *:last-child {
    margin-bottom: 0;
}

.fd-product-facts {
    padding:
        var(--fd-space-6);

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

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

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

.fd-product-facts h3 {
    margin-bottom:
        var(--fd-space-5);

    font-size:
        var(--fd-font-size-xl);
}

.fd-product-facts dl {
    display: grid;

    gap:
        var(--fd-space-4);

    margin: 0;
}

.fd-product-facts dl > div {
    display: flex;

    justify-content: space-between;

    gap:
        var(--fd-space-4);

    padding-bottom:
        var(--fd-space-3);

    border-bottom:
        1px solid
        var(--fd-color-border);
}

.fd-product-facts
dl > div:last-child {
    padding-bottom: 0;

    border-bottom: 0;
}

.fd-product-facts dt {
    color:
        var(--fd-color-text-muted);
}

.fd-product-facts dd {
    margin: 0;

    font-weight: 700;

    text-align: right;
}

.fd-product-simulations {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        minmax(220px, 0.35fr);

    align-items: center;

    gap:
        var(--fd-space-10);
}

.fd-product-simulations p {
    max-width: 720px;

    color:
        var(--fd-color-text-muted);
}

.fd-product-simulations__preview {
    display: flex;

    min-height: 190px;

    flex-direction: column;
    justify-content: flex-end;

    padding:
        var(--fd-space-6);

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

    background:
        linear-gradient(
            145deg,
            #111827,
            #0b5cff
        );

    color: #fff;
}

.fd-product-simulations__preview
> span {
    margin-bottom: auto;

    color:
        #93c5fd;

    font-weight: 800;
}

.fd-product-simulations__preview
strong {
    margin-bottom:
        var(--fd-space-2);

    font-size:
        var(--fd-font-size-2xl);
}

.fd-product-simulations__preview
small {
    color:
        rgb(255 255 255 / 0.7);
}

.fd-product-faq
.fd-faq-list {
    max-width: 900px;
}

.fd-product-related
.fd-product-grid {
    margin-top:
        var(--fd-space-8);
}

.fd-product-extension-hooks:empty {
    display: none;
}

/* P2E - resumo comercial da apostila */

.fd-product-cover-fallback {
    position: relative;

    display: flex;

    width: min(100%, 440px);

    aspect-ratio: 4 / 5;

    margin-inline: auto;

    padding:
        clamp(
            1.75rem,
            4vw,
            2.5rem
        );

    flex-direction: column;

    justify-content: space-between;

    overflow: hidden;

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

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

    background:
        linear-gradient(
            145deg,
            var(--fd-color-secondary),
            #172554 50%,
            var(--fd-color-primary)
        );

    color: #fff;

    box-shadow:
        0 28px 70px
        rgb(16 24 40 / 0.18);
}

.fd-product-cover-fallback::before {
    position: absolute;

    width: 270px;
    height: 270px;

    top: -110px;
    right: -110px;

    border:
        36px solid
        rgb(255 255 255 / 0.08);

    border-radius: 50%;

    content: "";
}

.fd-product-cover-fallback::after {
    position: absolute;

    width: 8px;

    top: 0;
    bottom: 0;
    left: 0;

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

    content: "";
}

.fd-product-cover-fallback__brand,
.fd-product-cover-fallback__content,
.fd-product-cover-fallback__footer {
    position: relative;

    z-index: 1;
}

.fd-product-cover-fallback__brand,
.fd-product-cover-fallback__footer {
    font-size:
        var(--fd-font-size-sm);

    font-weight: 750;
}

.fd-product-cover-fallback__content {
    display: flex;

    flex-direction: column;

    gap:
        var(--fd-space-3);
}

.fd-product-cover-fallback__content > span {
    color:
        rgb(255 255 255 / 0.72);

    font-size:
        var(--fd-font-size-sm);

    font-weight: 700;

    text-transform: uppercase;
}

.fd-product-cover-fallback__content strong {
    font-size:
        clamp(
            1.8rem,
            4vw,
            3rem
        );

    line-height: 1.08;
}

.fd-product-cover-fallback__content small {
    color:
        rgb(255 255 255 / 0.72);

    line-height: 1.5;
}

.fd-product-context {
    display: grid;

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

    gap:
        var(--fd-space-3);

    margin:
        0
        0
        var(--fd-space-5);
}

.fd-product-context > div {
    min-width: 0;

    padding:
        var(--fd-space-3);

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

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

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

.fd-product-context dt {
    margin-bottom:
        4px;

    color:
        var(--fd-color-text-muted);

    font-size:
        var(--fd-font-size-xs);

    font-weight: 700;

    text-transform: uppercase;
}

.fd-product-context dd {
    margin: 0;

    overflow-wrap: anywhere;

    font-size:
        var(--fd-font-size-sm);

    font-weight: 750;
}

.fd-product-purchase
.single_add_to_cart_button:focus-visible,
.fd-product-purchase
.qty:focus-visible {
    outline:
        3px solid
        rgb(11 92 255 / 0.22);

    outline-offset:
        3px;
}

/* P2E.2 - refinamento da pagina da apostila */

.fd-product-primary__summary {
    background:
        linear-gradient(
            180deg,
            var(--fd-color-surface) 0%,
            var(--fd-color-surface) 78%,
            var(--fd-color-surface-soft) 100%
        );
}

.fd-product-title {
    letter-spacing:
        -0.035em;

    line-height: 1.04;
}

.fd-product-context {
    margin-top:
        var(--fd-space-2);
}

.fd-product-jump-links {
    display: flex;

    flex-wrap: wrap;

    gap:
        var(--fd-space-2);

    margin-bottom:
        var(--fd-space-6);
}

.fd-product-jump-links a {
    display: inline-flex;

    min-height: 36px;

    align-items: center;

    padding:
        0
        var(--fd-space-3);

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

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

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

    color:
        var(--fd-color-text-muted);

    font-size:
        var(--fd-font-size-sm);

    font-weight: 700;

    text-decoration: none;

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

.fd-product-jump-links a:hover {
    border-color:
        var(--fd-color-primary);

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

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

.fd-product-jump-links a:focus-visible {
    outline:
        3px solid
        rgb(11 92 255 / 0.22);

    outline-offset:
        2px;
}

.fd-product-price-label {
    display: block;

    margin-bottom:
        var(--fd-space-1);

    color:
        var(--fd-color-text-muted);

    font-size:
        var(--fd-font-size-sm);

    font-weight: 700;
}

.fd-product-price {
    letter-spacing:
        -0.025em;
}

.fd-product-purchase {
    padding:
        var(--fd-space-4);

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

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

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

.fd-product-purchase
.single_add_to_cart_button {
    box-shadow:
        0 8px 20px
        rgb(11 92 255 / 0.15);

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

.fd-product-purchase
.single_add_to_cart_button:hover {
    transform:
        translateY(-1px);

    box-shadow:
        0 10px 26px
        rgb(11 92 255 / 0.20);
}

.fd-product-trust li {
    line-height: 1.45;
}

.fd-product-section {
    scroll-margin-top:
        calc(
            var(--fd-header-height)
            + var(--fd-space-6)
        );
}

.fd-product-section__heading h2,
.fd-product-details__content h2 {
    letter-spacing:
        -0.025em;
}

.fd-product-benefit-grid article {
    position: relative;

    overflow: hidden;

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

.fd-product-benefit-grid article::before {
    position: absolute;

    height: 4px;

    top: 0;
    right: 0;
    left: 0;

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

    content: "";
}

.fd-product-benefit-grid article:hover {
    transform:
        translateY(-3px);

    border-color:
        var(--fd-color-border-strong);

    box-shadow:
        var(--fd-shadow-sm);
}

.fd-product-description {
    font-size:
        var(--fd-font-size-lg);

    line-height: 1.75;
}

.fd-product-facts {
    align-self: start;
}

.fd-product-facts dt {
    font-size:
        var(--fd-font-size-sm);
}

.fd-product-facts dd {
    overflow-wrap: anywhere;
}

.fd-product-faq
.fd-faq-item {
    border:
        1px solid
        var(--fd-color-border);

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

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

.fd-product-faq
.fd-faq-item
+ .fd-faq-item {
    margin-top:
        var(--fd-space-3);
}

.fd-product-faq
.fd-faq-item summary {
    padding:
        var(--fd-space-5);

    cursor: pointer;

    font-weight: 750;
}

.fd-product-faq
.fd-faq-item summary:focus-visible {
    outline:
        3px solid
        rgb(11 92 255 / 0.22);

    outline-offset:
        2px;
}

.fd-product-faq
.fd-faq-item__content {
    padding:
        0
        var(--fd-space-5)
        var(--fd-space-5);
}

.fd-product-faq
.fd-faq-item__content p:last-child {
    margin-bottom: 0;
}
