/* =========================================================================
   BirdieQR — estilos globais
   Tipografia local da Kapta: General Sans no corpo e Satoshi nos destaques.
   ========================================================================= */

@font-face {
    font-family: 'Kapta General Sans';
    src: url('../fonts/GeneralSans-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Kapta General Sans';
    src: url('../fonts/GeneralSans-Medium.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Kapta General Sans';
    src: url('../fonts/GeneralSans-Semibold.woff2') format('woff2');
    font-weight: 600 900;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Kapta Satoshi';
    src: url('../fonts/Satoshi-Regular.woff2') format('woff2');
    font-weight: 400 900;
    font-style: normal;
    font-display: swap;
}

:root {
    --brand: #e22726;
    --brand-600: #c11f1e;
    --brand-dark: #161616;
    --brand-footer: #161616;
    --accent: #e22726;
    --star: #ffb428;
    --ink: #161616;
    --muted: #6b6b6b;
    --bg-soft: #ffffff;   /* minimal: fundos brancos */
    --bg-blush: #fdf0ee;
    --border: #ececec;
    --radius: 16px;
    --shadow: 0 10px 30px rgba(22, 22, 22, .08);
}

body {
    font-family: 'Kapta General Sans', system-ui, -apple-system, sans-serif;
    color: var(--ink);
    background: #fff;
}

h1, h2, h3, h4, h5, .navbar-brand, .btn-cta {
    font-family: 'Kapta Satoshi', 'Kapta General Sans', sans-serif;
}

.tiny { font-size: .75rem; }
.text-accent { color: var(--accent); }
.text-primary-brand { color: var(--brand); }
.bg-soft { background: var(--bg-soft); }
.shadow-soft { box-shadow: var(--shadow); }

/* ---------- Barra de anúncio ---------- */
.announcement-bar {
    background: var(--brand-dark);
    color: #fff;
    font-size: .8rem;
    padding: .45rem 0;
    letter-spacing: .03em;
}
.announcement-bar strong { color: #ff9d99; font-variant-numeric: tabular-nums; }

/* ---------- Header ---------- */
.site-header {
    background: #fff;
    border-bottom: 1px solid var(--border);
    z-index: 1030;
}
.site-header .navbar { padding: .65rem 0; }
.site-header .nav-link {
    font-weight: 600;
    font-size: .92rem;
    color: var(--ink);
    padding: .5rem .85rem;
}
.site-header .nav-link:hover,
.site-header .nav-link.active { color: var(--brand); }
.header-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    color: var(--ink);
    font-size: 1.25rem;
    text-decoration: none;
    transition: background .15s ease;
}
.header-icon:hover { background: var(--bg-blush); color: var(--brand); }
.cart-badge {
    position: absolute;
    top: 2px;
    right: 0;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border-radius: 9px;
    background: var(--brand);
    color: #fff;
    font-size: .65rem;
    font-weight: 700;
    line-height: 18px;
    text-align: center;
}

/* ---------- Botões (pill, estilo Kapta) ---------- */
.btn-cta {
    background: var(--brand);
    color: #fff;
    font-weight: 700;
    letter-spacing: .02em;
    border-radius: 999px;
    border: 0;
    padding: .8rem 1.6rem;
    transition: transform .12s ease, background .15s ease, box-shadow .15s ease;
}
.btn-cta:hover, .btn-cta:focus {
    background: var(--brand-600);
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 8px 22px rgba(226, 39, 38, .32);
}
.btn-outline-brand {
    border: 2px solid var(--brand-dark);
    color: var(--brand-dark);
    font-weight: 600;
    border-radius: 999px;
}
.btn-outline-brand:hover { background: var(--brand-dark); color: #fff; }

/* ---------- Popup promocional ---------- */
.promo-modal .modal-content {
    border: 0;
    border-radius: 22px;
    padding: 1.25rem .75rem;
    box-shadow: 0 30px 80px rgba(22, 22, 22, .35);
}
.promo-close {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 5;
}
.promo-brand {
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    font-size: .7rem;
    color: var(--muted);
}
.promo-title { font-weight: 900; font-size: 1.7rem; }
.promo-sub { font-weight: 600; color: var(--muted); }
.promo-timer {
    font-family: 'Kapta Satoshi', sans-serif;
    font-size: 2.2rem;
    font-weight: 900;
    color: var(--brand-dark);
    font-variant-numeric: tabular-nums;
}
.promo-input {
    border-radius: 999px;
    padding: .8rem 1rem;
    border-color: var(--border);
    text-align: center;
}
.promo-dismiss {
    font-size: .72rem;
    color: var(--muted);
    text-decoration: underline;
    margin-top: .5rem;
}

/* ---------- Hero (branco minimal) ---------- */
.hero {
    background: #fff;
    padding: 4rem 0 3.5rem;
}
.hero-eyebrow {
    display: inline-block;
    background: var(--bg-blush);
    border: 1px solid #f6dcd7;
    color: var(--brand);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: .35rem .9rem;
    margin-bottom: 1rem;
}
.hero-title {
    font-size: clamp(2rem, 4.5vw, 3.2rem);
    font-weight: 900;
    line-height: 1.12;
}
.text-underline-accent {
    background: linear-gradient(transparent 68%, rgba(226, 39, 38, .25) 0);
}
.hero-sub {
    color: var(--muted);
    font-size: 1.05rem;
    margin: 1rem 0 1.5rem;
    max-width: 480px;
}
.hero .hero-img { border: 1px solid var(--border); }

/* ---------- Faixa de marcas ---------- */
.brand-strip {
    padding: 1.4rem 0 1.6rem;
    border-bottom: 1px solid var(--border);
    overflow: hidden;
}
.brand-strip-label {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .18em;
    color: var(--muted);
}
.brand-strip-track {
    display: flex;
    gap: 3rem;
    width: max-content;
    animation: marquee 28s linear infinite;
}
.brand-strip-item {
    font-family: 'Kapta Satoshi', sans-serif;
    font-weight: 700;
    color: #cfc6c0;
    white-space: nowrap;
    letter-spacing: .06em;
}
@keyframes marquee {
    to { transform: translateX(-50%); }
}

/* ---------- Secções ---------- */
.section-title {
    font-size: clamp(1.5rem, 3vw, 2.1rem);
    font-weight: 900;
}
.section-title-sm { font-size: 1.35rem; font-weight: 900; }

/* ---------- Estrelas ---------- */
.stars {
    position: relative;
    display: inline-block;
    font-size: 1rem;
    line-height: 1;
    color: #e8e0db;
}
.stars-bg, .stars-fg { display: inline-flex; gap: 2px; }
.stars-fg {
    position: absolute;
    inset: 0 auto 0 0;
    overflow: hidden;
    color: var(--star);
    white-space: nowrap;
}
.stars-sm { font-size: .8rem; }

/* ---------- Galeria de produto ---------- */
.product-gallery { top: 96px; z-index: 1; }
.gallery-main {
    position: relative;
    border-radius: var(--radius);
    overflow: hidden;
    background: var(--bg-soft);
    border: 1px solid var(--border);
}
.gallery-main img { width: 100%; display: block; }
.badge-sale {
    position: absolute;
    top: 14px;
    left: 14px;
    z-index: 2;
    background: var(--brand);
    color: #fff;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .08em;
    padding: .3rem .7rem;
    border-radius: 999px;
}
.badge-sale-sm { top: 10px; left: 10px; font-size: .62rem; }
.gallery-thumb {
    width: 74px;
    height: 74px;
    padding: 0;
    border: 2px solid var(--border);
    border-radius: 12px;
    overflow: hidden;
    background: var(--bg-soft);
    flex: 0 0 auto;
    transition: border-color .15s ease;
}
.gallery-thumb img { width: 100%; height: 100%; object-fit: cover; }
.gallery-thumb.active, .gallery-thumb:hover { border-color: var(--brand); }

/* ---------- Coluna de compra ---------- */
.product-title { font-size: 1.7rem; font-weight: 900; }
.review-link { color: var(--brand); }
.product-bullets li {
    display: flex;
    align-items: center;
    gap: .55rem;
    font-weight: 600;
    font-size: .95rem;
    padding: .22rem 0;
}
.product-bullets .bi-check-lg {
    color: #14a44d;
    background: rgba(20, 164, 77, .12);
    border-radius: 50%;
    width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .85rem;
}

.sale-banner {
    border: 2px dashed var(--accent);
    background: var(--bg-blush);
    border-radius: 14px;
    padding: .8rem 1rem;
}
.sale-banner-title {
    font-family: 'Kapta Satoshi', sans-serif;
    font-weight: 900;
    font-size: 1.25rem;
    color: var(--accent);
    letter-spacing: .06em;
}
.sale-banner-sub {
    font-size: .8rem;
    font-weight: 600;
    color: var(--ink);
    letter-spacing: .04em;
}

/* Packs */
.bundle-option {
    position: relative;
    display: flex;
    align-items: center;
    gap: .9rem;
    border: 2px solid var(--border);
    border-radius: 14px;
    padding: 1.05rem 1rem;
    cursor: pointer;
    background: #fff;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.bundle-option:hover { border-color: #dccfc9; }
.bundle-option.selected {
    border-color: var(--brand);
    box-shadow: 0 6px 18px rgba(226, 39, 38, .12);
}
.bundle-option input { position: absolute; opacity: 0; pointer-events: none; }
.bundle-flag {
    position: absolute;
    top: -11px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--brand);
    color: #fff;
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: .2rem .8rem;
    border-radius: 999px;
    white-space: nowrap;
}
.bundle-radio {
    width: 20px;
    height: 20px;
    flex: 0 0 auto;
    border: 2px solid #d6cbc5;
    border-radius: 50%;
    position: relative;
    transition: border-color .15s ease;
}
.bundle-option.selected .bundle-radio { border-color: var(--brand); }
.bundle-option.selected .bundle-radio::after {
    content: '';
    position: absolute;
    inset: 3px;
    border-radius: 50%;
    background: var(--brand);
}
.bundle-imgs { display: flex; }
.bundle-imgs img {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    border: 2px solid #fff;
    background: var(--bg-soft);
    margin-left: calc(var(--i) * -14px * 1);
    position: relative;
    z-index: calc(3 - var(--i));
}
.bundle-info { display: flex; flex-direction: column; gap: .15rem; }
.bundle-label { font-weight: 700; }
.bundle-badge {
    align-self: flex-start;
    background: var(--bg-blush);
    color: var(--accent);
    font-size: .68rem;
    font-weight: 700;
    padding: .12rem .5rem;
    border-radius: 6px;
}
.bundle-ship { font-size: .72rem; color: #14a44d; font-weight: 600; }
.bundle-price { margin-left: auto; display: flex; flex-direction: column; }
.bundle-price-now { font-weight: 800; font-size: 1.05rem; }
.bundle-price-old, .price-old {
    color: var(--muted);
    text-decoration: line-through;
    font-size: .8rem;
}

/* Caixa de informação */
.link-info-box {
    background: var(--bg-blush);
    border: 1px solid #f5d9d4;
    border-radius: 12px;
    overflow: hidden;
}
.link-info-toggle {
    display: flex;
    align-items: center;
    width: 100%;
    background: transparent;
    border: 0;
    font-weight: 600;
    font-size: .9rem;
    color: var(--brand-600);
    padding: .85rem 1rem;
}
.link-info-toggle .bi-chevron-down { transition: transform .2s ease; }
.link-info-toggle:not(.collapsed) .bi-chevron-down { transform: rotate(180deg); }
.link-info-body {
    padding: 0 1rem .95rem 2.55rem;
    font-size: .85rem;
    color: var(--ink);
}

/* Acordeões */
.product-accordion .accordion-item,
.faq-accordion .accordion-item {
    border: 1px solid var(--border);
    border-radius: 12px !important;
    margin-bottom: .6rem;
    overflow: hidden;
}
.product-accordion .accordion-button,
.faq-accordion .accordion-button {
    font-weight: 600;
    font-size: .92rem;
    color: var(--ink);
    background: #fff;
    box-shadow: none;
    padding: .95rem 1.1rem;
}
.product-accordion .accordion-button:not(.collapsed),
.faq-accordion .accordion-button:not(.collapsed) {
    color: var(--brand);
    background: #fff;
}
.accordion-button:focus { box-shadow: none; border-color: var(--border); }
.accordion-body { font-size: .88rem; color: var(--muted); }

/* Pagamentos */
.pay-icon { height: 26px; width: auto; border-radius: 4px; }
.pay-icon-light { border: 1px solid var(--border); }

/* ---------- Secção 3 segundos ---------- */
.feature-img { max-height: 460px; width: 100%; object-fit: cover; }

/* ---------- Passos ---------- */
.step-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 1.6rem 1.3rem;
    box-shadow: var(--shadow);
}
.step-img { width: 132px; height: auto; }
.step-title { font-size: 1.02rem; font-weight: 700; margin-bottom: .5rem; }

/* ---------- Testemunhos ---------- */
.testimonial-track {
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    padding: .25rem;
}
.testimonial-track::-webkit-scrollbar { display: none; }
.testimonial-card {
    flex: 0 0 260px;
    scroll-snap-align: start;
    background: #fff;
    border-radius: var(--radius);
    border: 1px solid var(--border);
    overflow: hidden;
    box-shadow: var(--shadow);
    margin: 0;
}
.testimonial-img { width: 100%; height: 240px; object-fit: cover; display: block; }
.testimonial-quote { font-size: .85rem; font-weight: 500; }
.carousel-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 5;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 1px solid var(--border);
    background: #fff;
    box-shadow: var(--shadow);
    color: var(--ink);
    display: flex;
    align-items: center;
    justify-content: center;
}
.carousel-nav.prev { left: -8px; }
.carousel-nav.next { right: -8px; }
.carousel-nav:hover { background: var(--brand); color: #fff; }

/* ---------- Locais ---------- */
.spot-card {
    border-radius: var(--radius);
    overflow: hidden;
    border: 1px solid var(--border);
    background: #fff;
    box-shadow: var(--shadow);
}
.spot-card img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.spot-label {
    text-align: center;
    font-weight: 700;
    padding: .85rem;
    font-size: .95rem;
}

/* ---------- Produtos relacionados ---------- */
.product-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    overflow: hidden;
    transition: transform .15s ease, box-shadow .15s ease;
}
.product-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.product-card-img { position: relative; background: var(--bg-soft); }
.product-card-title {
    font-size: .88rem;
    font-weight: 600;
    font-family: 'Kapta General Sans', sans-serif;
    min-height: 2.6em;
}

/* ---------- Galeria de personalização ---------- */
.custom-gallery { overflow-x: auto; padding-bottom: .5rem; }
.custom-gallery-img {
    width: 190px;
    height: 190px;
    object-fit: cover;
    border-radius: var(--radius);
    flex: 0 0 auto;
    box-shadow: var(--shadow);
}

/* ---------- Garantias ---------- */
.guarantee-box {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: #fff;
}
.guarantee-icon {
    width: 48px;
    height: 48px;
    flex: 0 0 auto;
    border-radius: 14px;
    background: var(--bg-blush);
    color: var(--brand);
    font-size: 1.4rem;
    display: flex;
    align-items: center;
    justify-content: center;
}
.guarantee-title { font-size: 1.05rem; font-weight: 700; }

/* ---------- Mural de avaliações ---------- */
.reviews-wall {
    columns: 4 240px;
    column-gap: 1rem;
}
.review-card {
    break-inside: avoid;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    overflow: hidden;
    margin-bottom: 1rem;
    box-shadow: 0 4px 14px rgba(22, 22, 22, .05);
}
.review-img { width: 100%; display: block; }
.review-avatar {
    width: 34px;
    height: 34px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: var(--brand-dark);
    color: #fff;
    font-weight: 700;
    font-size: .85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* ---------- Barra fixa (mobile) ---------- */
.sticky-atc {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    background: #fff;
    border-top: 1px solid var(--border);
    box-shadow: 0 -8px 24px rgba(22, 22, 22, .1);
    transform: translateY(110%);
    transition: transform .25s ease;
    z-index: 1040;
}
.sticky-atc.visible { transform: translateY(0); }

/* ---------- Footer (preto Kapta) ---------- */
.site-footer {
    background: var(--brand-footer);
    color: rgba(255, 255, 255, .92);
    margin-top: 4rem;
}
.footer-heading {
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    font-size: .74rem;
    color: rgba(255, 255, 255, .7);
    margin-bottom: 1rem;
}
.footer-about { font-size: .88rem; color: rgba(255, 255, 255, .8); }
.footer-list li { margin-bottom: .5rem; }
.footer-list a {
    color: rgba(255, 255, 255, .82);
    text-decoration: none;
    font-size: .88rem;
}
.footer-list a:hover { color: #fff; text-decoration: underline; }
.footer-contacts li { margin-bottom: .65rem; font-size: .9rem; }
.footer-contacts a { color: #fff; text-decoration: none; font-weight: 600; }
.footer-contacts a:hover { color: #ff9d99; }
.footer-phone-note { font-size: .72rem; color: rgba(255, 255, 255, .55); padding-left: 1.55rem; }
.footer-input {
    background: rgba(255, 255, 255, .1);
    border: 1px solid rgba(255, 255, 255, .25);
    color: #fff;
    border-radius: 999px;
    padding-left: 1rem;
}
.footer-input::placeholder { color: rgba(255, 255, 255, .55); }
.footer-input:focus {
    background: rgba(255, 255, 255, .16);
    color: #fff;
    border-color: #fff;
    box-shadow: none;
}
.js-newsletter-form .btn { border-radius: 999px; }
.footer-social a {
    color: #fff;
    font-size: 1.15rem;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .1);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background .15s ease;
}
.footer-social a:hover { background: var(--brand); }

/* Bloco legal PT */
.footer-legal { border-top: 1px solid rgba(255, 255, 255, .15); }
.footer-legal-text {
    font-size: .74rem;
    color: rgba(255, 255, 255, .6);
}
.footer-legal-text a { color: rgba(255, 255, 255, .85); }
.lr-badge {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    background: #fff;
    color: var(--ink);
    border-radius: 10px;
    padding: .5rem .9rem;
    text-decoration: none;
    font-size: .78rem;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: .02em;
}
.lr-badge i { font-size: 1.3rem; color: var(--brand); }
.lr-badge:hover { color: var(--brand); }

.footer-bottom { border-top: 1px solid rgba(255, 255, 255, .15); }
.footer-credit a {
    color: #fff;
    font-weight: 700;
    text-decoration: none;
}
.footer-credit a:hover { color: #ff9d99; }

/* ---------- Banner de cookies (estilo Kapta) ---------- */
.cookie-banner {
    position: fixed;
    left: 16px;
    bottom: 16px;
    z-index: 1060;
    max-width: 340px;
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 20px 60px rgba(22, 22, 22, .25);
    padding: 1.15rem 1.25rem;
}
.cookie-dash {
    display: block;
    width: 26px;
    height: 4px;
    border-radius: 2px;
    background: var(--brand);
    margin-bottom: .6rem;
}
.cookie-title { font-weight: 700; font-size: 1rem; margin-bottom: .35rem; }
.cookie-text { font-size: .78rem; color: var(--muted); margin-bottom: .8rem; }
.cookie-text a { color: var(--ink); }
.btn-cookie-outline {
    border: 1px solid var(--border);
    border-radius: 999px;
    font-weight: 600;
    color: var(--ink);
}
.btn-cookie-outline:hover { border-color: var(--ink); }

/* ---------- Checkout ---------- */
.checkout-hero {
    padding: 2.5rem 0 1rem;
}
.checkout-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 1.75rem;
}
.checkout-card .form-label {
    font-weight: 600;
    font-size: .85rem;
}
.checkout-card .form-control {
    border-radius: 12px;
    border-color: var(--border);
    padding: .65rem .9rem;
}
.checkout-card .form-control:focus {
    border-color: var(--ink);
    box-shadow: none;
}
.checkout-card .form-text { font-size: .74rem; }
.checkout-legend {
    font-family: 'Kapta Satoshi', sans-serif;
    font-weight: 700;
    font-size: 1.05rem;
    margin-bottom: 1rem;
}
.summary-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 1.5rem;
    position: sticky;
    top: 96px;
}
.summary-line {
    display: flex;
    justify-content: space-between;
    font-size: .9rem;
    padding: .3rem 0;
}
.summary-total {
    font-weight: 800;
    font-size: 1.15rem;
    border-top: 1px solid var(--border);
    margin-top: .6rem;
    padding-top: .8rem;
}
.summary-item {
    display: flex;
    gap: .8rem;
    align-items: center;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--border);
    margin-bottom: .8rem;
}
.summary-item img {
    width: 56px;
    height: 56px;
    border-radius: 12px;
    border: 1px solid var(--border);
}
.stripe-note {
    font-size: .76rem;
    color: var(--muted);
    text-align: center;
}
.stripe-note .bi-lock-fill { color: #14a44d; }
.checkout-success {
    max-width: 620px;
    margin: 0 auto;
    text-align: center;
    padding: 4rem 0;
}
.checkout-success .success-icon {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: rgba(20, 164, 77, .12);
    color: #14a44d;
    font-size: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1rem;
}
.order-ref {
    display: inline-block;
    background: var(--bg-blush);
    border-radius: 999px;
    padding: .35rem 1rem;
    font-weight: 700;
    color: var(--brand-600);
}

/* ---------- Modal de avaliação ---------- */
.review-modal {
    border: 0;
    border-radius: 22px;
    padding: .75rem;
}
.review-modal .form-control {
    border-radius: 12px;
    border-color: var(--border);
}
.review-modal .form-control:focus {
    border-color: var(--ink);
    box-shadow: none;
}
.star-picker {
    display: inline-flex;
    gap: .35rem;
}
.star-btn {
    background: transparent;
    border: 0;
    padding: .1rem;
    font-size: 1.7rem;
    line-height: 1;
    color: #e3e3e3;
    transition: color .1s ease, transform .1s ease;
}
.star-btn:hover { transform: scale(1.12); }
.star-btn.active { color: var(--star); }

/* ---------- Toast ---------- */
#appToast { background: var(--brand-dark); color: #fff; border-radius: 12px; }

/* ---------- Direção visual: clean & soft ---------- */
:root {
    --brand: #e1272b;
    --brand-600: #c31f23;
    --brand-dark: #17171b;
    --brand-footer: #17171b;
    --accent: #e1272b;
    --ink: #17171b;
    --muted: #6e6e78;
    --bg-soft: #f7f7f9;
    --bg-blush: #fdeceb;
    --border: #e9e9ef;
    --radius: 20px;
    --radius-sm: 14px;
    --radius-lg: 28px;
    --shadow: 0 6px 24px rgba(23, 23, 27, .06);
    --shadow-lg: 0 18px 48px rgba(23, 23, 27, .10);
    --ring: 0 0 0 4px rgba(225, 39, 43, .16);
}

body {
    background: #fff;
    letter-spacing: -.005em;
    -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, .navbar-brand, .btn-cta { letter-spacing: -.025em; }
h1, h2, h3 { font-weight: 800; }

@media (min-width: 1400px) {
    .container { max-width: 1240px; }
}

/* ---------- Barra de anúncio ---------- */
.announcement-bar {
    background: var(--ink);
    min-height: 36px;
    display: flex;
    align-items: center;
    font-size: .78rem;
    letter-spacing: .01em;
}
.announcement-bar strong { color: #ff9d99; }

/* ---------- Header ---------- */
.site-header {
    background: rgba(255, 255, 255, .82);
    backdrop-filter: saturate(180%) blur(14px);
    -webkit-backdrop-filter: saturate(180%) blur(14px);
    border-bottom: 1px solid var(--border);
}
.site-header .navbar { padding: .7rem 0; }
.site-header .nav-link {
    font-size: .9rem;
    font-weight: 500;
    color: var(--muted);
    border-radius: 999px;
    padding: .45rem .9rem;
    transition: color .15s ease, background .15s ease;
}
.site-header .nav-link:hover { color: var(--ink); background: var(--bg-soft); }
.site-header .nav-link.active {
    color: var(--ink);
    font-weight: 600;
    background: var(--bg-soft);
}
.header-icon { border-radius: 999px; }
.header-icon:hover { background: var(--bg-soft); color: var(--ink); }
.cart-badge { border-radius: 999px; box-shadow: 0 0 0 2px #fff; }
.navbar-toggler {
    border-radius: 12px;
    border-color: var(--border);
    padding: .35rem .55rem;
}
.navbar-toggler:focus { box-shadow: var(--ring); }

/* ---------- Botões ---------- */
.btn-cta,
.btn-outline-brand,
.btn-cookie-outline,
.js-newsletter-form .btn {
    border-radius: 999px;
    min-height: 46px;
    text-transform: none;
    letter-spacing: -.01em;
    font-weight: 600;
}
.btn-cta {
    padding: .8rem 1.7rem;
    box-shadow: 0 6px 18px rgba(225, 39, 43, .20);
}
.btn-cta:hover, .btn-cta:focus {
    transform: translateY(-1px);
    box-shadow: 0 10px 26px rgba(225, 39, 43, .28);
}
.btn-outline-brand {
    border: 1px solid var(--border);
    background: #fff;
    color: var(--ink);
    padding: .75rem 1.4rem;
}
.btn-outline-brand:hover {
    background: var(--bg-soft);
    border-color: #d9d9e2;
    color: var(--ink);
}
.btn-cta:focus-visible,
.btn-outline-brand:focus-visible,
.header-icon:focus-visible { outline: 0; box-shadow: var(--ring); }

/* ---------- Hero (painel claro arredondado) ---------- */
.hero {
    background: #fff;
    padding: 1.25rem 0 0;
}
.hero > .container {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: linear-gradient(155deg, #fff6f5 0%, #fafafc 46%, var(--bg-soft) 100%);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: clamp(2.5rem, 5vw, 4.25rem) clamp(1.5rem, 4vw, 3.5rem);
}
.hero > .container::before {
    content: '';
    position: absolute;
    z-index: -1;
    top: -38%;
    right: -12%;
    width: 46rem;
    height: 46rem;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(225, 39, 43, .13), rgba(225, 39, 43, 0) 62%);
    pointer-events: none;
}
.hero-eyebrow {
    background: #fff;
    border: 1px solid var(--border);
    color: var(--ink);
    border-radius: 999px;
    font-size: .74rem;
    font-weight: 600;
    letter-spacing: .01em;
    text-transform: none;
    padding: .4rem .95rem;
    box-shadow: var(--shadow);
}
.hero-eyebrow .bi { color: var(--brand); }
.hero-title {
    max-width: 15ch;
    font-size: clamp(2.25rem, 4.6vw, 3.6rem);
    font-weight: 800;
    line-height: 1.08;
    letter-spacing: -.035em;
    margin-bottom: 0;
}
.text-lg-start .hero-title { margin-inline: 0; }
.text-center .hero-title { margin-inline: auto; }
.text-underline-accent {
    background: linear-gradient(transparent 62%, rgba(225, 39, 43, .22) 0);
    border-radius: 2px;
}
.hero-sub {
    color: var(--muted);
    font-size: 1.05rem;
    line-height: 1.6;
    max-width: 46ch;
}
.text-center .hero-sub { margin-inline: auto; }
.hero .hero-img {
    border: 1px solid var(--border);
    border-radius: var(--radius-lg) !important;
    box-shadow: var(--shadow-lg);
    background: #fff;
}

/* ---------- Faixa de marcas ---------- */
.brand-strip {
    background: #fff;
    border-top: 0;
    border-bottom: 1px solid var(--border);
    padding: 1.6rem 0;
}
.brand-strip-label {
    color: var(--muted);
    letter-spacing: .14em;
    font-weight: 600;
}
.brand-strip-item { color: #c4c4ce; }

/* ---------- Secções ---------- */
main > section.py-5 { padding-block: clamp(3.5rem, 6vw, 5.5rem) !important; }
.product-section.py-5 { padding-block: clamp(3rem, 5vw, 4.5rem) !important; }
.section-title {
    max-width: 22ch;
    font-size: clamp(1.7rem, 3.1vw, 2.4rem);
    font-weight: 800;
    letter-spacing: -.03em;
    line-height: 1.15;
}
.text-center .section-title, .section-title.text-center { max-width: 30ch; margin-inline: auto; }
.section-title-sm { font-size: 1.3rem; font-weight: 700; letter-spacing: -.02em; }

/* ---------- Cartões: arredondados e suaves ---------- */
.gallery-main,
.step-card,
.testimonial-card,
.spot-card,
.product-card,
.guarantee-box,
.review-card,
.checkout-card,
.summary-card {
    border-radius: var(--radius) !important;
    border: 1px solid var(--border);
    box-shadow: var(--shadow);
}
.gallery-main { background: var(--bg-soft); }
.gallery-thumb { border-radius: var(--radius-sm); border-width: 2px; }
.gallery-thumb.active, .gallery-thumb:hover { border-color: var(--brand); }
.badge-sale, .bundle-flag, .bundle-badge, .order-ref { border-radius: 999px; }
.badge-sale { background: var(--brand); box-shadow: 0 4px 12px rgba(225, 39, 43, .28); }

/* ---------- Coluna de compra ---------- */
.product-title {
    font-size: clamp(1.6rem, 2.6vw, 2.1rem);
    font-weight: 800;
    letter-spacing: -.03em;
}
.product-bullets li { font-weight: 500; }
.sale-banner {
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: linear-gradient(180deg, #fff, var(--bg-blush));
    padding: .9rem 1.1rem;
}
.sale-banner-title { color: var(--brand); letter-spacing: -.02em; }
.sale-banner-sub { letter-spacing: 0; color: var(--muted); }
.bundle-option {
    border-radius: var(--radius-sm);
    border-width: 1.5px;
    padding: 1.05rem 1rem;
    box-shadow: none;
}
.bundle-option:hover { border-color: #d5d5e0; background: var(--bg-soft); }
.bundle-option.selected {
    border-color: var(--brand);
    background: #fff;
    box-shadow: 0 8px 22px rgba(225, 39, 43, .12);
}
.bundle-imgs img { border-radius: 10px; }
.bundle-badge { background: var(--bg-blush); color: var(--brand); }
.link-info-box {
    border-radius: var(--radius-sm);
    border: 1px solid var(--border);
    background: var(--bg-soft);
}
.link-info-toggle { color: var(--ink); }

/* ---------- Acordeões ---------- */
.product-accordion .accordion-item,
.faq-accordion .accordion-item {
    border-radius: var(--radius-sm) !important;
    border-color: var(--border);
    background: #fff;
}
.product-accordion .accordion-button,
.faq-accordion .accordion-button { padding: 1rem 1.15rem; }
.product-accordion .accordion-button:not(.collapsed),
.faq-accordion .accordion-button:not(.collapsed) { color: var(--ink); background: #fff; }

/* ---------- Blocos de conteúdo ---------- */
.feature-img { border-radius: var(--radius) !important; }
.step-card { padding: 1.75rem 1.4rem; transition: transform .18s ease, box-shadow .18s ease; }
.step-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); }
.testimonial-card { flex-basis: 280px; }
.spot-card { transition: transform .18s ease, box-shadow .18s ease; }
.spot-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); }
.product-card:hover { box-shadow: var(--shadow-lg); }
.carousel-nav {
    border-radius: 999px;
    border-color: var(--border);
    box-shadow: var(--shadow);
}
.carousel-nav:hover { background: var(--brand); border-color: var(--brand); color: #fff; }
.custom-gallery-img { border-radius: var(--radius); border: 1px solid var(--border); box-shadow: var(--shadow); }
.guarantee-icon { border-radius: var(--radius-sm); background: var(--bg-blush); color: var(--brand); }
.review-avatar { border-radius: 999px; background: var(--brand); }
.review-card { box-shadow: var(--shadow); }

/* ---------- Barra fixa (mobile) ---------- */
.sticky-atc {
    border-top: 1px solid var(--border);
    box-shadow: 0 -8px 30px rgba(23, 23, 27, .10);
}

/* ---------- Footer ---------- */
.site-footer {
    border-top: 0;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    margin-top: 0;
}
.footer-input, .js-newsletter-form .btn { border-radius: 999px; }
.footer-social a {
    border-radius: 999px;
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .14);
}
.footer-social a:hover { background: var(--brand); border-color: var(--brand); }
.lr-badge { border-radius: var(--radius-sm); }

/* ---------- Banner de cookies ---------- */
.cookie-banner {
    border-radius: var(--radius);
    border: 1px solid var(--border);
    box-shadow: var(--shadow-lg);
}
.cookie-dash { border-radius: 999px; }
.btn-cookie-outline { border-radius: 999px; border-color: var(--border); }

/* ---------- Checkout ---------- */
.checkout-hero {
    background: linear-gradient(180deg, #fff 0%, var(--bg-soft) 100%);
    border-bottom: 1px solid var(--border);
    padding: 2.75rem 0 2.25rem;
}
.checkout-card, .summary-card { border-top: 1px solid var(--border); padding: 1.75rem; }
.checkout-card .form-control,
.review-modal .form-control { border-radius: var(--radius-sm); }
.checkout-card .form-control:focus,
.review-modal .form-control:focus {
    border-color: var(--brand);
    box-shadow: var(--ring);
}
.summary-remove {
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--muted);
    font-size: .75rem;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.summary-remove:hover, .summary-remove:focus-visible { color: var(--brand); }
.summary-remove:focus-visible { outline: 0; box-shadow: var(--ring); border-radius: 6px; }
.summary-item img { border-radius: 12px; }
.order-ref { background: var(--bg-blush); color: var(--brand-600); }
.review-modal { border-radius: var(--radius-lg) !important; }
#appToast { border-radius: var(--radius-sm); background: var(--ink); }

/* ---------- Responsivo ---------- */
@media (max-width: 991.98px) {
    .site-header .navbar-collapse { padding: .5rem 0 .75rem; }
    .hero > .container { padding: clamp(2rem, 6vw, 3rem) clamp(1.25rem, 5vw, 2rem); }
    .hero-title { max-width: 100%; }
    .reviews-wall { columns: 3 200px; }
}
@media (max-width: 575.98px) {
    .announcement-bar { font-size: .68rem; }
    .hero { padding-top: .75rem; }
    .hero > .container {
        border-radius: var(--radius);
        padding: 2rem 1.25rem 2.25rem;
    }
    .hero-title { font-size: clamp(2rem, 9vw, 2.5rem); }
    .hero .hero-img { border-radius: var(--radius) !important; box-shadow: var(--shadow); }
    main > section.py-5 { padding-block: 3.25rem !important; }
    .section-title { max-width: 100%; line-height: 1.2; }
    .reviews-wall { columns: 2 150px; }
    .bundle-imgs { display: none; }
    .testimonial-card { flex-basis: 230px; }
    .cookie-banner { left: 12px; right: 12px; max-width: none; }
    body { padding-bottom: 64px; } /* espaço para a barra fixa */
}

/* Acessibilidade: reduzir animações */
@media (prefers-reduced-motion: reduce) {
    .brand-strip-track { animation: none; }
    * { transition-duration: .01ms !important; }
}
